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

时间:2018-02-11 11:30:13

标签: modelica dymola openmodelica

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

2 个答案:

答案 0 :(得分:6)

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

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

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

希望求解器之间的差异会减小,不同的求解器会得到更多类似的结果(应该接近完全相同的结果)。

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

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

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

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

答案 1 :(得分:2)

选择最符合确切解决方案的求解器。

罗伯特·皮奇的work数值解算器可能会提供更多线索。