Main Content

単一のステップにおける複数のサブシステムのスケジューリング

この例では、Stateflow® で "ラダー ロジック スケジューラ" を設計する方法を説明します。ラダー ロジック スケジューラの設計パターンを使用すると、単一のタイム ステップで複数の Simulink® サブシステムを実行する順序を指定できます。Stateflow スケジューラにより、Simulink モデルのサブシステム実行の制御が拡張され、ブロックの接続状態とサンプル時間の伝播に基づいて実行順序が暗黙的に決定されます。

ラダー ロジック スケジューラの主な動作

この例では、Ladder Logic Scheduler チャートは一連の関数呼び出し出力イベントをブロードキャストして、3 つの Function-Call Subsystem (A1、A2、A3) を実行します。各タイム ステップにおいて次が行われます。

  1. Simulink モデルは 1 ミリ秒のパルス発生器の立ち上がりエッジで Edge to Function チャートをアクティブ化します。

  2. Edge to Function チャートは関数呼び出し出力イベント call をブロードキャストして、Ladder Logic Scheduler チャートをアクティブ化します。

  3. Ladder Logic Scheduler チャートは、シーケンス処理を行うラダー ロジックを使用して、入力信号 u1u2 の値に基づいて関数呼び出し出力イベントをブロードキャストします。

チャートは各条件を順番に評価します。条件が有効な場合、チャートはsend演算子を呼び出して出力イベントをブロードキャストします。対応するサブシステムがその出力を計算し、Ladder Logic Scheduler チャートに制御を戻します。

ラダー ロジック スケジューラの実行

モデルをシミュレートすると、スコープに各 Function-Call Subsystem の入力と出力が表示されます。

各タイム ステップにおいて、Ladder Logic Scheduler チャートは入力信号 u1u2 の値に基づいてサブシステムを実行します。

  1. u1 が正の場合、チャートはサブシステム A1 を実行する関数呼び出し出力イベントを送信します。このサブシステムは、u1 の値をゲイン 3 で乗算した値を、入力 u2 として Ladder Logic Scheduler チャートに返します。制御は、Ladder Logic Scheduler チャートの次の条件に戻ります。

  2. u2 が 1 より大きい場合、チャートはサブシステム A2 を実行する関数呼び出し出力イベントを送信します。このサブシステムは、u2 の値を 1 減らします。制御は、Ladder Logic Scheduler チャートの最終条件に戻ります。

  3. u2 が 2 より小さい場合、チャートはサブシステム A3 を実行する関数呼び出し出力イベントを送信します。このサブシステムは、その入力をゲイン 2 で乗算します。

スコープの水平のセグメントは、サブシステムが実行されない場合のタイム ステップを示しています。

参考

関連するトピック