Modelica Dymola和Start属性中的初始化过程使用

Modelica Dymola和Start属性中的初始化过程使用,modelica,dymola,Modelica,Dymola,对于Dymola中的简单模型,“开始”属性用于为DOE方程提供初始条件,如以下示例所示 model QuiescentModelUsingStart "Find steady-state solutions to LotkaVolterra equations" parameter Real alpha=0.1 "Reproduction rate of prey"; parameter Real beta=0.02 "Mortality rate of predator per pre

对于Dymola中的简单模型,“开始”属性用于为DOE方程提供初始条件,如以下示例所示

model QuiescentModelUsingStart "Find steady-state solutions to LotkaVolterra equations"
  parameter Real alpha=0.1 "Reproduction rate of prey";
  parameter Real beta=0.02 "Mortality rate of predator per prey";
  parameter Real gamma=0.4 "Mortality rate of predator";
  parameter Real delta=0.02 "Reproduction rate of predator per prey";
  Real x(start=10) "Prey population";
  Real y(start=10) "Predator population";
initial equation
  der(x) = 0;
  der(y) = 0;
equation
  der(x) = x*(alpha-beta*y);
  der(y) = y*(delta*x-gamma);
end QuiescentModelUsingStart;
但是对于像电厂模型这样的复杂模型,这是一个强非线性模型,它要复杂得多

根据Modelica by example(),如果变量被选为迭代变量,则“开始”属性也可以用作初始猜测

那么,在Dymola中初始化模型的过程是什么?Dymola会在初始化过程中考虑“方程”部分,并将导数设置为零,以便找到稳态作为初始条件吗

或者Dymola只是使用“开始属性”和“初始方程”部分来获得一组初始值

我应该如何确保我使用的初始化值可以构成稳定状态?

可能是从中摘录的描述您正在寻找的内容:

在使用Modelica模型执行任何操作[例如,模拟或线性化]之前,会进行初始化,为模型中存在的所有变量分配一致的值。在此阶段,导数der(..)和前置变量pre(..)也被解释为未知代数变量。初始化使用预期操作中使用的所有方程和算法[如模拟或线性化]


这是第8.6节的第一部分,大约有三页,应该可以让您很好地了解初始化过程中会发生什么。它还讨论了带有
fixed=true/false
start
属性,可能是中的一段摘录,描述了您正在查找的内容:

在使用Modelica模型执行任何操作[例如,模拟或线性化]之前,会进行初始化,为模型中存在的所有变量分配一致的值。在此阶段,导数der(..)和前置变量pre(..)也被解释为未知代数变量。初始化使用预期操作中使用的所有方程和算法[如模拟或线性化]


这是第8.6节的第一部分,大约有三页,应该可以让您很好地了解初始化过程中会发生什么。它还讨论了
start
属性和
fixed=true/false

您可以在初始方程部分用零初始化导数。在初始化过程中,使用所有正则方程和所有初始方程,所有代数变量、状态导数和状态都是未知的,正如@Markus所描述的。如果由添加的初始方程生成的系统是正则的,则不需要直接初始化状态。实际上,可以在初始方程部分用零初始化导数。在初始化过程中,将使用所有正则方程和所有初始方程,并且所有代数变量、状态导数以及状态都是未知的,正如@Markus所述。如果由添加的初始方程生成的系统是正则的,则无需直接初始化状态。