Следующий код Modelica сбрасывает переменную 'bb' в 0 после того, как она устанавливается в 123. Кто-нибудь может объяснить почему? Я использую OpenModelica v1.13.2.
model test2
import Modelica.Utilities.Streams.print;
Real b(start=0, fixed=true);
Real bb(start=0, fixed=true);
Integer c(start=0,fixed=true);
algorithm
when sample(0,0.1) then
c := pre(c) + 1;
if c == 1 then
b := 12.3;
elseif c == 2 then
bb := 123;
end if;
print(String(time)+", "+String(b)+", "+String(bb));
end when;
end test2;
Имитация отпечатков:
0, 12.3, 0
0, 12.3, 123
0, 12.3, 0
...(repeats)
Также скриншот сюжета: