变量现在以j = 1开头,但增量错误。对于t = 0.5,它应该具有值2并且对于t = 1,j = 3等等...... 您在下图中看到错误
class abc
import Modelica.SIunits;
parameter SIunits.Time delta_t = 0.5;
constant Real a[:] = {4,2,6,-1,3,5,7,4,-3,-6};
Real x;
Integer j(start=1);
Integer k = size(a,1);
algorithm
when {(sample(delta_t, delta_t) and j < k),j == 1} then
x := a[pre(j)];
j := pre(j) + 1;
end when;
end abc;
提前致谢。
答案 0 :(得分:0)
当我将您的代码放入Dymola 2013时,我得到了您期望的结果,j==2
@ time==0.5
。
这个情节来自哪里? Dymola不会生成这样的图,因为j
是一个离散变量。
答案 1 :(得分:0)
好的,我发现了问题。 Dymola可以生成这样的图,它取决于输出设置。上面的图是在没有设置“在事件中存储变量”的情况下生成的,当我设置它时,我得到了正确的结果。