对于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;
但是对于像电厂模型这样的复杂模型(它是一个强大的非线性模型),它要复杂得多。
基于示例(https://mbe.modelica.university/behavior/equations/variables/),基于Modelica,如果已将变量选择为迭代变量,则start属性也可用作初始猜测。
那么,在Dymola中初始化模型的过程是什么? Dymola是否会在初始化期间考虑“等式”部分,并将导数设置为零,以便能够将稳态作为初始条件?
还是Dymola只是使用“开始属性”和“初始方程式”部分来获取一组初始值?
答案 0 :(得分:3)
Modelica Language Specification的摘录可能描述了您要寻找的内容:
在对Modelica模型执行任何操作之前(例如,仿真或线性化),需要进行初始化以为模型中存在的所有变量分配一致的值。在此阶段中,导数der(..)和预变量pre(..)也被解释为未知的代数变量。初始化使用了预期操作(例如仿真或线性化)中使用的所有方程式和算法。
这是第8.6节的第一部分,大约三页,应该使您对初始化期间发生的事情有一个很好的了解。它还使用start
讨论了fixed=true/false
属性。