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

The initialization process in Dymola and Start attribute uses

对于 Dymola 中的简单模型,Start 属性用于为 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(https://mbe.modelica.university/behavior/equations/variables/),如果变量已被选为迭代变量,则 start 属性也可用作初始猜测。

那么,在 Dymola 中初始化模型的过程是怎样的? Dymola 会在初始化期间考虑 "equation" 部分,并将导数设置为零,以便它可以找到稳态作为初始条件吗?

或者 Dymola 只是使用 "start attributes" 和 "initial equation" 部分来获得一组初始值?

我应该如何确保我使用的初始化值能够构成稳态?

可能摘自 Modelica Language Specification 描述了您要查找的内容:

Before any operation is carried out with a Modelica model [e.g., simulation or linearization], initialization takes place to assign consistent values for all variables present in the model. During this phase, also the derivatives, der(..), and the pre-variables, pre(..), are interpreted as unknown algebraic variables. The initialization uses all equations and algorithms that are utilized in the intended operation [such as simulation or linearization].

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