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
。
对于 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
。