困惑于算法部分中的when子句

时间:2012-09-17 08:26:42

标签: modelica

model try
  Real x(start = 1);

algorithm 
  when x >= 7 then
      reinit(x, 5);
  end when;

equation
      der(x) = 1 ;

end try;

只要将保护条件从false更改为true,就应触发when语句。 但在OpenModelica中并非如此。 OpenModelica中的示例try显示when仅触发一次。我想知道这是OpenModelica的错误还是我身边的一些误解。

1 个答案:

答案 0 :(得分:4)

你是对的。我很确定这将是OpenModelica中的一个错误。该模型的工作方式与您在Dymola 2013中的预期相同。

我的猜测是,它与你的条件涉及x并且内部的语句最终改变x(同一个变量)有关。它可能是某种程度上没有注意到监视函数中的reinit用于确定when子句应该触发的点。