Когда... в противном случае уравнения в Wolfram Systemmodeler кажутся противоположными

Когда я пробую этот простой код modelica в Wolfram Systemmodeler:

model bug
  Integer y(start = 1);
equation
  when time > 0.2 then
    y = 5 "y = 2";
  elsewhen time > 0.4 then
    y = 4 "y = 3";
  elsewhen time > 0.6 then
    y = 3 "y = 4";
  elsewhen time > 0.8 then
    y = 2 "y = 5";
  end when;
end bug;

результат 1, 2, 3, 4, 5, вот так: Модель симуляции ошибки. Кажется, что когда-уравнения активируются в обратном порядке.

С другой стороны, изменяя "уравнение" на "алгоритм" и (конечно) "=" на ":=" код превращается:

model nobug
  Integer y(start = 1);
algorithm
  when time > 0.2 then
    y := 5;
  elsewhen time > 0.4 then
    y := 4;
  elsewhen time > 0.6 then
    y := 3;
  elsewhen time > 0.8 then
    y := 2;
  end when;
end nobug;

и результат, как и ожидалось, 1, 5, 4, 3, 2, вот так: Модель nobug моделирование

Является ли это относительно базовой проблемой в реализации Wolfram SystemModeler, или есть что-то еще, чего я не вижу?

0 ответов

Другие вопросы по тегам