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

2 ビュー (過去 30 日間)
MathWorks Support Team
MathWorks Support Team 2013 年 10 月 25 日
編集済み: MathWorks Support Team 2021 年 3 月 26 日
連続系の状態量を含むモデルにおいて、あるステップでS-Functionが複数回コールされてします。複数回呼ばれないようにするには、どのようにすればよいですか?

採用された回答

MathWorks Support Team
MathWorks Support Team 2021 年 2 月 17 日
編集済み: MathWorks Support Team 2021 年 3 月 26 日
連続系の状態量を含むモデルでは、積分を解く為にODEソルバを使います。ODEソルバにはマイナーステップと呼ばれるステップが含まれることがあります。 この影響により、1ステップ時間に複数回 mdlOutputsルーチンがコールされ、静的変数等を使って、カウンタ処理を実現されている場合などに、予期せぬ出力結果が出力されることがあります。
この現象を回避するには、S-Function の API である ssIsMajorTimeStep を使用して、 メジャーステップの場合のみ、処理を実行するように、プログラミングしてください。
if(ssIsMajorTimeStep(S))
{
実現したい処理;
}
下記 URL より本件に関する参考情報をご覧いただけます。
● "Zero Crossings"

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeBlock and Blockset Authoring についてさらに検索

製品


リリース

R2008b

Community Treasure Hunt

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

Start Hunting!