使用dymola模拟模型,根据所选的积分方法,我会得到不同的结果。所以我的问题是:为什么选择哪种方法?
答案 0 :(得分:6)
理想情况下,方法的选择应该基于哪一个最快速地给出足够接近确切结果的结果。
但我们并不知道确切的结果,在这种情况下,至少有一些解算器(可能全部)都不会产生足够接近它的结果。
一种可能性是首先尝试以更严格的容差进行模拟 - 例如1e-9。(注意:对于固定的步长解算器,Euler和Rkfix *它的步长会更小,但不要开始使用它们。)
希望求解器之间的差异会减小,不同的求解器会得到更多类似的结果(应该接近完全相同的结果)。
然后,您可以始终使用这种更严格的容差。或者,如果一个求解器已经给出了相同的结果且不太严格的公差 - 那么你可以使用那个不太严格的公差;但你还必须在准确度和模拟时间之间进行权衡。
有时候这种情况不会发生,甚至相同的求解器会针对不同的容差产生不同的结果;没有收敛到真正的解决方案。 (假设解决方案在开始时很接近,但随后很快发散。) 在这种情况下,模型很可能是混乱的。处理起来有点复杂,有几种选择:
它也可能是其他一些错误(包括初始化期间的问题),但这需要一个更完整的示例来进行调查。
答案 1 :(得分:2)
选择最符合确切解决方案的求解器。
罗伯特·皮奇的work数值解算器可能会提供更多线索。