【发布时间】:2021-06-17 14:25:57
【问题描述】:
最近我正在使用 Modelica 进行流体建模,但我遇到了很多非线性方程的发散问题,如下面的屏幕截图所示。
所以我正在考虑是否可以使用变量的最小/最大/名义属性来提高模型的收敛性,尤其是当用户遇到非线性求解器故障时。根据answer of this question on StackOverflow,最小/最大属性无助于收敛,根据Modelica Specification 4.8.6,名义属性用于确定适当的公差或ε,或可用于缩放。
所以我的问题是:
如果我遇到这种由模型的非线性引起的发散问题,如何帮助编译器更好更快地收敛?
有人可能会建议用作状态变量的变量的起始值更好,但是当我处理大型模型时,我不确定如何找到我应该修改其起始值的特定状态变量。
【问题讨论】:
-
您的公式(最后一条语句)表明您正在处理初始化问题。但是屏幕截图表明问题发生在模拟过程中。我在这里感到困惑?
-
@AtiyahElsheikh 我指的是起始值不好的情况,即使初始化也会收敛,但是在 time=0 的起始点会处于某种极端情况,因此会在模拟过程中导致发散。