Modelica 如何正确更改模型文本的输出间隔
当我在模型中引入注释来设置输出间隔时,这些设置似乎只是第一次在OpenModelica会话中模拟模型。例如,如果我创建这个模型Modelica 如何正确更改模型文本的输出间隔,modelica,openmodelica,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
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)=…
),则模拟结果将相应更改(即,更改为振荡器频率的一半),但如果我使用间隔
执行相同操作,则不会更改。我是否误解了注释背后的逻辑?此问题现已解决。请参阅。这似乎是一个bug。你能帮我开张罚单吗?这样我就不会忘记修好了。你的票单看起来很不错…;-)我希望我能帮助,但我的C++知识已经变得有点生锈多年。