debugging - 使用断言调试 Modelica
问题描述
在 Modelica 中,可以定义 aprotected final constant Boolean debug
然后在断言语句中使用它来在调试时打印出一些值,类似于下面显示的代码(或在 github 上看到的)。
在最终版本中,调试将被设置为 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;
解决方案
断言将被消除,因为debug
它是恒定的。如果debug
是一个参数,但是断言可能(取决于工具)仍然只被调用一次而不是每个时间步,因为Boolean
断言的输入没有改变。
推荐阅读
- matlab - 如何使用 libsvm 中的 svmtrain() 函数进行回归(什么设置)?什么是标签矩阵形式?
- android - 重新创建活动时如何从 AsyncTask 更新 TextView
- php - PhpSpreadsheet\Reader\Exception 无法将 /root_dir/public/laravel-excel-fLRGTlw9uEE2XRz0k1fXdcg2wfs2RWy7.html 作为 DOM 文档加载
- build - 如果我从源代码构建 linux 内核,它是否默认包含 initramfs?
- swift - 如何快速从弹出视图控制器导航?
- javascript - 添加数字随机连接为字符串而不是数值
- amazon-web-services - AWS dynamodb,表被自动删除
- javascript - gijgo/datepicker 如何仅显示和选择年/月?
- javascript - 关于使用扩展运算符包含 1...N 的数组的 Javascript 异常行为
- python - 如何制作工作命令(PyCharm 2020.3.2 Python 3.9)