Dymola在非线性系统初始化过程中如何选择迭代变量?

时间:2019-11-24 21:13:32

标签: modelica dymola

假设我有一个用Dymola构建的非常复杂的热流体模型。在初始化过程中,dymola将如何选择非线性求解器的迭代变量?是否存在针对此问题的标准?我想弄清楚这一点,因为有时如果迭代变量的起始值与正确的解决方案相距太远,则在初始化过程中会出现发散问题。我想,如果我知道迭代变量的选择,我可以确保它们的值合适,而不用检查所有起始值。

2 个答案:

答案 0 :(得分:2)

我认为此信息对公众不可用。至少我在用户手册中找不到任何内容。因此,您只有有限的选择。

您可以做的是:

  • 列出您当前的迭代变量
  • 尝试影响选择
  • 获取有关已执行迭代的信息

列出迭代变量

您可以通过激活标志来列出当前的迭代变量

Advanced.LogNonLinearIterationVariables = true;

迭代变量将在Translation标签中作为信息消息Variables appearing in the nonlinear systems of equations列出:

screenshot of iteration variables

影响所选变量

您可以通过设置起始值来影响(但不能控制)为迭代选择的变量。以下面的代码为例:

model MyNonLinear
  Real x;
  Real y;
  Real z(start=-1);
equation 
  0 = y - z;
  x = (y + z)^2;
  x = (y + z) + time;
end MyNonLinear;

如果在激活上述标记的情况下进行翻译,Dymola将在消息窗口的翻译选项卡中提供以下信息:

  

迭代变量:
  y

当您另外设置x的起始值时,(例如start=1)在这种情况下,x成为迭代变量。

已执行迭代的信息

要获取有关执行的迭代的更多信息,请激活Nonlinear solver diagnostics的{​​{1}}标签中的Debug标志:

Nonlinear solver flags

Dymola随后将在模拟日志中显示其他信息。请注意,其中一些标志可以生成输出日志。

答案 1 :(得分:2)

这可以通过非常简单的文档功能实现。有关某些有限信息,请参见2019 FD01版本的亮点:https://www.3ds.com/fileadmin/PRODUCTS/CATIA/DYMOLA/PDF/Dymola-2019FD01-highlights.pdf

特别是:enter image description here