連続系の状態量を含む​モデルにおいて、ある​ステップでS-Fun​ctionが複数回コ​ールされてしまいます​。

2 visualizzazioni (ultimi 30 giorni)
MathWorks Support Team
MathWorks Support Team il 25 Ott 2013
連続系の状態量を含むモデルにおいて、あるステップでS-Functionが複数回コールされてします。複数回呼ばれないようにするには、どのようにすればよいですか?

Risposta accettata

MathWorks Support Team
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"

Più risposte (0)

Categorie

Scopri di più su Block and Blockset Authoring in Help Center e File Exchange

Prodotti


Release

R2008b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!