連続系の状態量を含むモデルにおいて、あるステップでS-Functionが複数回コールされてしまいます。
2 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
MathWorks Support Team
il 25 Ott 2013
Modificato: MathWorks Support Team
il 26 Mar 2021
連続系の状態量を含むモデルにおいて、あるステップでS-Functionが複数回コールされてします。複数回呼ばれないようにするには、どのようにすればよいですか?
Risposta accettata
MathWorks Support Team
il 17 Feb 2021
Modificato: MathWorks Support Team
il 26 Mar 2021
連続系の状態量を含むモデルでは、積分を解く為にODEソルバを使います。ODEソルバにはマイナーステップと呼ばれるステップが含まれることがあります。 この影響により、1ステップ時間に複数回 mdlOutputsルーチンがコールされ、静的変数等を使って、カウンタ処理を実現されている場合などに、予期せぬ出力結果が出力されることがあります。
この現象を回避するには、S-Function の API である ssIsMajorTimeStep を使用して、 メジャーステップの場合のみ、処理を実行するように、プログラミングしてください。
if(ssIsMajorTimeStep(S))
{
実現したい処理;
}
下記 URL より本件に関する参考情報をご覧いただけます。
● "Zero Crossings"
0 Commenti
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Block and Blockset Authoring in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!