У меня возникла следующая, довольно фундаментальная проблема с JModelica. Рассмотрим довольно простую модель:
model TEST
Real Dum(start = 0);
parameter Integer It = 5;
algorithm
Dum := 0;
for i in 1:It loop
Dum := Dum + 1;
end for;
end TEST;
Я компилирую это с помощью python, и он, конечно же, работает, а переменная Dum всегда имеет значение 5, как и должно быть. Проблема в том, что теперь, когда я хочу изменить параметр «It» после загрузки скомпилированного fmu (test.fmu) с помощью:
test = load_fmu("test.fmu");
test.set("It",4);
а затем запустите симуляцию, она все равно даст 5 для "Dum", а не 4, как должно. Хотя на самом деле "It" меняется на 4, что можно увидеть, построив временную кривую "It" после моделирования. Кто-нибудь знает, есть ли способ изменить его на лету, чтобы он действительно влиял на цикл?
Это, конечно, игрушечный пример, но мне нужна эта функциональность для гораздо более крупного проекта, где мне отчаянно нужно перебирать в цикле изменяющийся диапазон и где повторная компиляция занимает слишком много времени.
Огромное спасибо