使用断言来调试Modelica

时间:2018-08-02 10:08:52

标签: debugging constants assert modelica

在Modelica中,可以定义一个protected final constant Boolean debug,然后在断言语句中使用它来在调试时打印一些值,类似于下面的代码(或as seen on github)。

在最终版本中,然后将debug设置为false。因为调试是一个常数,这会减慢仿真速度还是消除断言?

model debugexample
  parameter Real a;
  parameter Real b;
  Real sum;

protected 
  final constant Boolean debug = false "set to true while debugging";

equation 
  assert(not debug, "a=" + String(a), level=AssertionLevel.warning);
  sum = a+b;
end debugexample;

1 个答案:

答案 0 :(得分:1)

断言将被消除,因为debug是恒定的。如果debug是一个参数,则断言(取决于工具)可能仅被调用一次,而不是每个时间步,因为断言的Boolean输入没有改变。