OpenModelica中非线性函数的迭代极限

OpenModelica中非线性函数的迭代极限,modelica,openmodelica,Modelica,Openmodelica,我想知道我们如何定义OpenModelica中求解非线性函数的迭代极限?是否可以记录每个时间步的平均迭代次数或每个时间步的迭代次数?据我所知,在OpenModelica()中无法限制非线性解算器的迭代次数 要查看执行时间、计数和求解系统的最长时间(要获得平均值,请将总时间除以执行计数),请启用分析(在模拟标志下)。请注意,分析会增加总模拟时间的一些开销,特别是当您分析了许多小型系统时。如果信息没有自动填充,您可能需要在弹出的转换调试器窗口中按下刷新按钮。首先,非线性函数是什么意思?你是说一个Mo

我想知道我们如何定义OpenModelica中求解非线性函数的迭代极限?是否可以记录每个时间步的平均迭代次数或每个时间步的迭代次数?

据我所知,在OpenModelica()中无法限制非线性解算器的迭代次数


要查看执行时间、计数和求解系统的最长时间(要获得平均值,请将总时间除以执行计数),请启用分析(在模拟标志下)。请注意,分析会增加总模拟时间的一些开销,特别是当您分析了许多小型系统时。如果信息没有自动填充,您可能需要在弹出的转换调试器窗口中按下刷新按钮。

首先,非线性函数是什么意思?你是说一个Modelica函数,它计算一个显式的非线性方程,例如y=f(x),并作为一个函数执行?或者只是方程部分的一个非线性方程?我认为第一个,我指的是非线性函数,比如RLC电路中的非线性电感器模型或电涌放电器模型(非线性电阻)识别非线性方程是作为独立方程求解,还是在DAE系统中降落并在DAE解算器中求解,并不容易。如果非线性方程(系统)将要求解,比如说使用高斯-牛顿迭代,在每个时间步,前一时间步的解将作为初始猜测。通常情况下,高斯-牛顿迭代在实际时间步长上收敛到解不会超过两次。在产生大规模非线性方程组的情况下,也可以使用所谓的撕裂法。感谢Atiyah,在模拟过程中,有时我们会遇到这样的信息“警告:已达到最大迭代次数,但未找到根警告:”。我们如何更改最大迭代次数?欢迎您。这与评估状态事件的根查找算法有关,即事件指示器改变其符号的时间点。