假设我有一个用Dymola构建的非常复杂的热流体模型。在初始化过程中,dymola将如何选择非线性求解器的迭代变量?是否存在针对此问题的标准?我想弄清楚这一点,因为有时如果迭代变量的起始值与正确的解决方案相距太远,则在初始化过程中会出现发散问题。我想,如果我知道迭代变量的选择,我可以确保它们的值合适,而不用检查所有起始值。
答案 0 :(得分:2)
我认为此信息对公众不可用。至少我在用户手册中找不到任何内容。因此,您只有有限的选择。
您可以做的是:
您可以通过激活标志来列出当前的迭代变量
Advanced.LogNonLinearIterationVariables = true;
迭代变量将在Translation
标签中作为信息消息Variables appearing in the nonlinear systems of equations
列出:
您可以通过设置起始值来影响(但不能控制)为迭代选择的变量。以下面的代码为例:
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
标志:
Dymola随后将在模拟日志中显示其他信息。请注意,其中一些标志可以生成输出日志。
答案 1 :(得分:2)
这可以通过非常简单的文档功能实现。有关某些有限信息,请参见2019 FD01版本的亮点:https://www.3ds.com/fileadmin/PRODUCTS/CATIA/DYMOLA/PDF/Dymola-2019FD01-highlights.pdf