modelFirstOrderDocumented"A simple first order differential equation"Realx"State variable";equationder(x)=1-x"Drives value of x toward 1.0";endFirstOrderDocumented;
基于此,Modelica 还提供了用于描述我们方程系统初始化的结构。例如,如果我们希望模型中变量 x 的初始值为 2,我们可以像下面这样在模型中添加一个初始方程部分:
modelFirstOrderInitial"First order equation with initial value"Realx"State variable";initialequationx=2"Used before simulation to compute initial values";equationder(x)=1-x"Drives value of x toward 1.0";endFirstOrderInitial;
请注意,此模型与在“添加一些文档说明”部分所介绍的上一个模型之间的唯一区别在于新增了初始方程部分,其中包含方程 x = 2 。在之前的示例中,模拟开始时 x 的初始值未作说明。一般来说,这意味着 x 的初始值将是其“起始属性”的值(默认情况下为零)。然而,由于每个工具都使用其特定的算法来构建最终的方程组,因此最好明确说明初始条件,正如我们在此处所做的那样。通过将此方程添加到初始方程部分,我们明确指定了 x 的初始条件。
modelFirstOrderSteady"First order equation with steady state initial condition"Realx"State variable";initialequationder(x)=0"Initialize the system in steady state";equationder(x)=1-x"Drives value of x toward 1.0";endFirstOrderSteady;
modelFirstOrderExperiment"Defining experimental conditions"Realx"State variable";initialequationx=2"Used before simulation to compute initial values";equationder(x)=1-x"Drives value of x toward 1.0";annotation(experiment(StartTime=0,StopTime=8));endFirstOrderExperiment;