1

Modelica Spec 的第 8.3.7 部分描述了该功能assert并给出了两个示例,但是每当我尝试使用以下命令之一时,它都无法按预期工作:

assert(T > 250 and T < 400, 
    "Medium model outside full accuracy range", 
    AssertionLevel.warning);

或者

assert(T > 250 and T < 400, 
    "Medium model outside full accuracy range", 
    level=AssertionLevel.warning);

这里有什么问题?我错过了什么明显的东西吗?

4

2 回答 2

3

所以我检查了 Dymola (2012FD01),看起来 Dymola 没有实现这个level参数:

> document("assert")
function assert "assert that a condition is true"
input Boolean _condition;
input String _error;

The given condition should be true.
If it is false an error message will be given
end assert;

或者也许它根本没有记录在案。您可能应该就此询问 DS 支持。在 OpenModelica 中,它们似乎已按照规范中的描述实现(另请参见http://build.openmodelica.org/Documentation/assert.html)。

于 2012-02-29T07:06:06.873 回答
1

您没有说明您正在使用什么工具,但我会指出这是一种相对较新的断言语法。您可以尝试不使用“级别”指示符(即只有两个参数:一个布尔值和一个字符串)。

于 2012-02-28T16:58:12.123 回答