时间步长的变化不会影响 Dymola 中的模拟结果

AJo*_*iri 2 simulation modelica timestep

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

Mar*_* A. 5

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

Dymola 模拟设置

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

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

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

小心使用高级变量,因为它们会影响性能和稳定性。旁注:“间隔长度/间隔数”可能会对模拟结果产生一些影响,因为 DASSL 在选择其初始步长时会考虑此设置。但是这种效果可能会根据动态而消失。