Modelica assert (условие, сообщение, уровень = AssertionLevel.warning); - PullRequest
1 голос
/ 28 февраля 2012

Часть 8.3.7 спецификации Modelica описывает функцию 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);

Что здесь не так?Я что-то упустил очевидное?

Ответы [ 2 ]

3 голосов
/ 29 февраля 2012

Итак, я проверил с помощью 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).

1 голос
/ 28 февраля 2012

Вы не указываете, какой инструмент вы используете, но я хотел бы отметить, что это относительно новый синтаксис для assert. Вы можете попробовать без индикатора уровня (то есть только два аргумента: логическое значение и строка).

...