我对如何使用有疑问,ode45
因为我知道它使用内部可变步长。例如,在我的特定情况下,我有一个 ODE 模型,我使用 5 分钟的采样时间。因此,在我的主模拟循环中,我有以下行来通过使用求解它来获得我的模型的输出ode45
:
[T,X] = ode45(@(t,x) model(t,x,u,data),[t t+scenario.Ts],x0);
其中u
是模型的输入,data
是带参数的结构,x0
是当前时间步的初始条件,[t t+scenario.Ts]
是初始时间和最终时间。我的疑问是 betweent
和-solver 使用可变时间步长,因此我引入输入操作的方式可能会受到影响。因此,我了解特定输入的值在. 然后,如果我有例如通量,即水进入水箱,时间步长对此有直接影响。t+scenario.Ts
ode45
u
u
[t t+scenario.Ts]
u
让我用一个例子来解释一下。如果结束[t t+scenario.Ts]
我就知道了u(1) = 10
。那么我应该使用的真正输入是u(1)=10/(# of time steps between [t0 tend])
. 但是,由于内部步骤是可变的,我必须使用哪个输入?
我希望你能理解我的问题并能帮助我。