最初に表示されるエラーメッセージは、Internal error BackendDAETransform.analyseStrongComponentBlock failed (Sorry - Support for Discrete Equation Systems is not yet implemented)
です。これはhttps://trac.openmodelica.org/OpenModelica/ticket/1232と思われますが、これはwhen文内で条件変数の一部を再定義することによって発生したと思います。
reinit
で対処することができます。 Bouncing ball exampleおよびthe referenceも参照してください。それは状態変数に作用する必要があり、そのため私はそこにder(trigger)
を入れます。
model test_when
Real trigger(start = 1.0, fixed = true);
equation
der(trigger) = 0;
when trigger > 0.5 and time > 5 then
reinit(trigger, 0);
end when;
annotation(
experiment(StartTime = 0, StopTime = 10, Tolerance = 1e-06, Interval = 0.02));
end test_when;
恐らくこれを達成するにはより良い方法があります。誰かがこれに入力を持っていますか?
コンパイルログ(統計 - イベント)を確認して、1つのイベントだけが起動したことを確認できます。 Dymolaはで
"しかし、私のコードはうまくいかない"とはあまり役に立ちません。何が起こると思われますか、どうなりますか?また、完全で実用的な例を投稿してください。 – Christoph
翻訳に誤りがあり、無効なコードだと思います。コードは私が使用するときに動作します: 'x
Tyomich
その後、正確なエラーと、エラーを取得するために使用する正確なコードを投稿してください。 – Christoph