时间步长的变化不会影响 Dymola 中的仿真结果

Variation in Time Step Size does not affect the simulation results in Dymola

我正在研究在 Modelica 的建筑库中开发的热水储存模型。使用 Dymola 通过 Dassl 模拟模型,我将模拟的时间步长从 1s 更改为 1200s,但我没有看到模拟结果有任何变化。它与求解器有关吗?如果您能提供帮助,我将不胜感激。

首先我的假设:对于“时间步长”,您指的是下面屏幕截图中显示的“间隔长度”。

如果是这样的话,这是完全正确的行为。 “输出间隔”独立于模拟本身。 DASSL 之类的可变步长求解器自行选择步长大小,并根据计算点对输出进行插值——这些点可能是在不同时间点计算的。您可以使用 Dymola 的“模拟分析”功能检查求解器采取的步骤。

如果您想影响求解器采取的实际步骤,您还有其他一些可能性:

  1. 更改“公差”,也显示在屏幕截图中。较小的公差可能会导致更小的步长,从而提高精度并降低性能,反之亦然。
  2. 有几个变量直接影响步长:
    • Advanced.Simulation.StepSizeMax限制上限或步长
    • Advanced.Simulation.StepSizeMin限制下界或步长
    • Advanced.Simulation.StepSizeStart设置初始步长

小心高级变量,因为它们会影响性能和稳定性。 旁注:“Interval length/Number of intervals”可能会对模拟结果产生一些影响,因为 DASSL 在选择其初始步长时会考虑此设置。但这种影响可能会消失,具体取决于动态。