2012-02-28 7 views
1

パート8.3.7は機能assertを説明し、2つの例を示しますが、私は次のいずれかのコマンドを使用しようとするたびに、それが期待どおりに動作しません:Modelica assert(条件、メッセージ、レベル= AssertionLevel.warning); Modelica仕様の

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); 

ここで何が間違っていますか?明白な何かが恋しい?

答えて

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も参照)。

+0

Dymolaサポートはrespondendを持っており、level引数がサポートされていないことを確認しました。 – matth

+0

更新:Dymolaの新しいバージョンはレベル引数をサポートしています。 – matth

1

あなたはどのツールを使用しているかについては言及していませんが、これはアサートのための比較的新しい構文であることを指摘します。 「レベル」インジケータなしで試してみることもできます(つまり、ブールと文字列の2つの引数のみ)。

+0

ツールはDymola 2012 FD01です。ブール値+文字列を使用すると、それは機能します。しかし、AFAIKはデフォルトでエラーを出してシミュレーションを停止します。 – matth

関連する問題