变量的增量出错了

时间:2013-02-26 08:32:04

标签: modelica dymola

变量现在以j = 1开头,但增量错误。对于t = 0.5,它应该具有值2并且对于t = 1,j = 3等等...... 您在下图中看到错误

variable j

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;

提前致谢。

2 个答案:

答案 0 :(得分:0)

当我将您的代码放入Dymola 2013时,我得到了您期望的结果,j==2 @ time==0.5

这个情节来自哪里? Dymola不会生成这样的图,因为j是一个离散变量。

答案 1 :(得分:0)

好的,我发现了问题。 Dymola可以生成这样的图,它取决于输出设置。上面的图是在没有设置“在事件中存储变量”的情况下生成的,当我设置它时,我得到了正确的结果。