在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;
答案 0 :(得分:1)
断言将被消除,因为debug
是恒定的。如果debug
是一个参数,则断言(取决于工具)可能仅被调用一次,而不是每个时间步,因为断言的Boolean
输入没有改变。