Dymola:为什么选择哪种集成方法

Mag*_*nne 2 modelica openmodelica dymola

使用dymola模拟模型,根据所选的积分方法,我会得到不同的结果.所以我的问题是:为什么选择哪种方法?

Han*_*son 6

理想情况下,方法的选择应基于哪一个最快速地给出足够接近精确结果的结果.

但是我们不知道确切的结果,在这种情况下,至少有一些求解器(可能全部)不会产生足够接近它的结果.

一种可能性是首先尝试用更严格的公差来模拟 - 例如1e-9.(注意:对于固定的步长求解器,Euler和Rkfix*它的步长会更小,但不要开始使用它们.)

希望求解器之间的差异会减小,并且不同的求解器会得到更多相似的结果(应该接近于精确的结果).

然后,您可以始终使用这种更严格的容差.或者,如果一个求解器已经给出了相同的结果且不太严格的公差 - 那么你可以使用那个不太严格的公差; 但你还必须在准确性和模拟时间之间进行权衡.

有时候这种情况不会发生,甚至同一个解算器也会针对不同的公差产生不同的结果; 没有收敛到真正的解决方案.(假设解决方案在开始时很接近,但很快就会发散.)在这种情况下,模型很可能是混乱的.处理起来有点复杂,有几种选择:

  • 这可能是由于可以纠正的建模错误
  • 可能是模型是正确的,但系统可以更改为更顺畅
  • 无论其他变量的差异如何,重要的输出都可能会收敛

它也可能是一些其他错误(包括初始化期间的问题),但这需要更完整的示例来进行调查.