2013-02-26 4 views
0

переменная теперь начинается с j = 1, но приращение неверно. Для т = 0,5 оно должно иметь значение 2 и т = 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; 

Заранее спасибо ,

ответ

0

Хорошо, я нашел проблему. Dymola может генерировать графики, подобные этому, это зависит от настроек вывода. Приведенный выше график был создан без установки «Сохранить переменные при событиях», когда я установил это, я получаю правильный результат.

0

Когда я помещаю ваш код в Dymola 2013, я получаю именно то, что вы ожидали, j==2 @time==0.5.

Откуда этот участок? Dymola не генерирует такие графики, поскольку j является дискретными переменными.

Смежные вопросы