2.8.1 设置初始条件

2.8.1 设置初始条件

模型初始化发生在模型仿真的起始时刻,其目的是为模型中出现的所有变量设定相容的初始值。模型的相容初始值通过求解初值系统获得。初值系统的变量由两部分组成,除了模型变量外,导数der(…)和pre变量pre(…)也被当作未知代数变量。初值系统的方程除了模型仿真期间的所有方程与算法外,还包括用户建模时给定的初始条件。

(1)在定义变量时,直接为其设定初始值。例如:

其中,属性start用于为变量设定初始值,属性fixed用于设定初始值的性质。当属性fixed置为true时,表示该初始值是既定初始值,必须得到满足,即变量的初始值必须等于由start指定的值。当属性fixed置为false或者默认时,表示该初始值是备选初始值,可以不满足。

备选初始值有两个方面的作用:其一,在求解初值时,若初值系统缺少约束条件,取备选初始值进行补充;其二,在求解非连续系统时,将该值当作变量的迭代初始值。

(2)定义初始方程或初始算法。例如:

在模型的initial equation部分定义的方程属于初始方程。初始方程是一种初始约束条件,表达初始时刻变量和变量导数之间的数值约束关系,常用于为变量导数设定初始值。此外,还可以通过定义初始算法(initial algorithm)来给定初始约束条件。

综上所述,Modelica模型的初始条件分为两类:一类是既定初始条件,包括既定初始值、初始方程与初始算法;另一类是备选初始条件,也就是备选初始值。