連続系の状態量を含むモデルにおいて、あるステップでS-Functionが複数回コールされてしまいます。
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
MathWorks Support Team
el 25 de Oct. de 2013
Editada: MathWorks Support Team
el 26 de Mzo. de 2021
連続系の状態量を含むモデルにおいて、あるステップでS-Functionが複数回コールされてします。複数回呼ばれないようにするには、どのようにすればよいですか?
Respuesta aceptada
MathWorks Support Team
el 17 de Feb. de 2021
Editada: MathWorks Support Team
el 26 de Mzo. de 2021
連続系の状態量を含むモデルでは、積分を解く為にODEソルバを使います。ODEソルバにはマイナーステップと呼ばれるステップが含まれることがあります。 この影響により、1ステップ時間に複数回 mdlOutputsルーチンがコールされ、静的変数等を使って、カウンタ処理を実現されている場合などに、予期せぬ出力結果が出力されることがあります。
この現象を回避するには、S-Function の API である ssIsMajorTimeStep を使用して、 メジャーステップの場合のみ、処理を実行するように、プログラミングしてください。
if(ssIsMajorTimeStep(S))
{
実現したい処理;
}
下記 URL より本件に関する参考情報をご覧いただけます。
● "Zero Crossings"
0 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre Block and Blockset Authoring en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!