当我尝试使用sample
函数在dymola(2015)中模拟一个简单模型时:
model test_sample
Integer counter(start = 0);
algorithm
when sample(0, 0.25) then
counter:=counter + 1;
end when;
end test_sample;
我必须将间隔数增加到一个较大的数字(例如5000),以便能够在采样间隔看到counter
变量的瞬时变化。即使有5000个间隔,counter
也会在0.2496而不是0.25时开始改变其值。这在OpenModelica(版本1.9.1 + dev(r17879))中并非如此,即使有1个间隔,counter
变量也会将其值精确地改为0.25。我在两个平台上都使用Dassl。这是一个错误/功能吗?
答案 0 :(得分:1)
好的,没有错误。根据Dassault的说法,只需要在活动中启用"存储变量"在模拟>设置>输出>输出选择。 "启用此选项后,事件的确切时间将存储在结果文件中,如果没有它,您将在图中看到事件左侧和右侧的结果点之间的插值,因为事件本身不是 。存储"