1
私は外部関数を呼び出すModelicaモデルを持っています。タイムステップが大きすぎると、しばしば外部C++コードが例外をスローします。外部関数が例外をスローするのに応答してタイムステップを減らす方法
タイムステップを減らしてもう一度やり直すのが適切な対応のようです。例外に応答してタイムステップを減らす方法はありますか?
私は外部関数を呼び出すModelicaモデルを持っています。タイムステップが大きすぎると、しばしば外部C++コードが例外をスローします。外部関数が例外をスローするのに応答してタイムステップを減らす方法
タイムステップを減らしてもう一度やり直すのが適切な対応のようです。例外に応答してタイムステップを減らす方法はありますか?
そこには直接標準的な方法はありませんが、あなたがキャッチ部分にModelicaErrorを使用して(例外をキャッチし、いずれかのModelicaにエラーフラグとしてそれを返すとassert
を使用するか、またはC-ラッパーでModelicaError
を使用することができますC++が可能かもしれません)。
この仕様では、アサーションが失敗した後(ModelicaErrorの呼び出し後)には、ステップサイズがより短い、または反復変数の値を変更するなどの別の評価を続けると述べています。