如何在MATLAB中更改ODE求解器中参数的值,例如ODE45?

时间:2018-02-16 13:53:00

标签: matlab function ode45

当T在[0,12]范围内时,我必须在matlab中用ode45求解这个等式:

enter image description here

我想要的时候:

  • T> Tend,switch为0,
  • (T< Tin和dT / dt> 0),开关为1.

我看到文档here,但我无法理解它是如何做到的。

clc;
clear all;
close all;

global Q Tamb n swicth

Tamb = 0;
Q = 1000;
n = 1/3;
Ti = 0;
swicth = 1;
T_end = 2000;

maxT = 12;
tspan = [0 maxT];
CI = [Ti];

[TOUT,YOUT] = ode45(@odefun,tspan, CI); <--------- ??

odefun功能:

function T = odefun(t, Tin)

global Q Tamb n swicth

T = (swicth*Q - (Tin - Tamb)^n);

end

正如我上面所说的,我不想将参数传递给函数!也许之前的标题有误导性,但我认为我的问题很明确。但是我试着更好地解释一下。 Ode45数值积分我的函数,因此它给出了函数在时间t_i( f(t_i))的值,并且对于[0:12]中的每个t_i重复这个。我希望,基于时间t_i处的函数值,在时间t_(i + 1)处更改用于积分的开关的值。[规则在上面解释]。< / p>

0 个答案:

没有答案