Using Simulink | ![]() ![]() |
時間ステップ毎の処理
Simulinkは、ブロックの出力関数を呼び出してブロックの出力を計算します。Simulinkは、出力関数がブロックの出力の計算のために、カレントの時間とブロックの入力および状態を引数として必要とするため、これらを出力関数に渡します。Simulinkは、カレントのステップがブロックのサンプル時間の定数倍である場合にのみ、離散ブロックの出力をアップデートします。
Simulinkは、離散状態アップデート関数を呼び出してブロックの離散状態を計算します。Simulinkは、連続状態の時間微係数を数値積分して、ブロックの連続状態を計算します。ブロックの連続状態の微分関数を呼び出して、状態の時間微係数を計算します。
Simulinkは、ゼロクロッシング検出と呼ばれる手法を使って、連続状態の不連続性を検出します。詳細は、3-12ページの"ダイナミックシステムのシミュレーション時に、Simulinkは、ゼロクロッシング検出として知られる手法を使って各時間ステップでのシステムの状態変数の不連続性をチェックします。Simulinkがカレントの時間ステップ内で不連続性を検出した場合は、不連続性が生じる正確な時間を決定し、その前後に付加的な時間ステップをとります。この節では、ゼロクロッシングの検出がなぜ重要かを、またその機能について説明します。" を参照してください。
Simulinkは、シミュレーション終了時間に達するまで、1から4を繰り返します。
![]() | モデル実行フェーズ | ブロックのアップデート順の決定 | ![]() |