2.8.2 确定初始条件个数

2.8.2 确定初始条件个数

对于以状态空间形式表示的常微分方程系统(ODE),dx/dt=f(x,t),其初值系统有2*dim(x)个未知量x(t0)和dx/dt(t0),但模型方程只有dim(x)个,因此,还需要dim(x)个初始条件。

对于微分代数方程DAE,初始条件个数的确定要比ODE复杂。

例如,对于方程0=g(dx/dt,x,y,t),其中x(t)是状态变量,y(t)是代数变量。方程共有dim(g)=dim(x)+dim(y)个原始方程。其初值系统有2*dim(x)+dim(y)个变量,因而也必须有2*dim(x)+dim(y)个方程。这意味着用户可以指定dim(x)个初始条件,但由于DAE系统可能是高指标的,其中可能包含隐含初始条件,因此用户给定的初始条件通常必须少于dim(x)个。

如果一个模型规模较大,而且是高指标的,那么让用户确定需要给定多少个初始条件是件很困难的事情。为此,如果用户指定的初始条件太多,MWorks将输出错误信息,根据提示信息,用户可以移除某些初始条件。

避免初始条件过多的一个有效方法是,将具有start属性的变量的fixed属性设置为false,这时MWorks根据需要自动选择备选初始条件并实现相容初始值求解;如果缺少初始条件,MWorks自动选择状态变量的start值补充初始条件。