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

时间:2019-11-15 22:13:01

标签: 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 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;

但是对于像电厂模型这样的复杂模型(它是一个强大的非线性模型),它要复杂得多。

enter image description here

基于示例(https://mbe.modelica.university/behavior/equations/variables/),基于Modelica,如果已将变量选择为迭代变量,则start属性也可用作初始猜测。

那么,在Dymola中初始化模型的过程是什么? Dymola是否会在初始化期间考虑“等式”部分,并将导数设置为零,以便能够将稳态作为初始条件?

还是Dymola只是使用“开始属性”和“初始方程式”部分来获取一组初始值?

如何确保我使用的初始化值可以构成稳定状态? enter image description here

1 个答案:

答案 0 :(得分:3)

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

  

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

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