如何正确更改模型文本的输出间隔

时间:2019-02-25 08:33:07

标签: modelica openmodelica

当我在模型中加入用于设置输出间隔的注释时,似乎仅在OpenModelica会话中首次模拟模型时才采用这些设置。例如,如果我创建此模型

model IntervalTest
  Real y(start = 1, fixed = true);
  Real v(start = 1, fixed = true);
equation
  der(y) = v;
  der(v) = -100 * y;
  annotation(
    experiment(StartTime = 0, StopTime = 67, Tolerance = 1e-06, Interval = 0.01),
    __OpenModelica_simulationFlags(lv = "LOG_STATS", outputFormat = "mat", s = "dassl"));
end IntervalTest;

并进行首次仿真,输出间隔正确设置为10毫秒。但是,当我将Interval更改为0.001,保存模型并进行仿真时,输出间隔保持在10ms。关闭所有结果和绘图窗口,关闭模型窗口,甚至从OpenModelica卸载整个项目文件并随后重新加载,都不会将输出间隔更改为我在模型中设置的值。

仅在关闭OpenModelica并将其重新打开之后,才会遵守新的输出间隔。当然,在使用模拟设置对话框时,可以手动更改输出间隔,但是我很少要使用它,因为它不是永久的。

那么立即从模型文本中更改模拟设置的正确方法是什么?如果我在模型文本中将上述振荡器模型的刚度值从100更改为25(der(v)=...),则模拟结果将相应地更改(即变为振荡器频率的一半),但是如果我对{ {1}},不会。我是否误解了Interval背后的逻辑?

1 个答案:

答案 0 :(得分:1)