Main Content

サブシステムを特定の時間に実行させるスケジューリング

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

時相論理スケジューラの主な動作

この例にある Temporal Logic Scheduler チャートには、時相論理演算子everyの判定に従って、異なるレートで 3 つの Function-Call Subsystem (A1、A2、および A3) の実行をスケジュールする 2 つのステートが含まれています。

FastScheduler ステートがアクティブな場合、チャートは、入力イベント call がチャートを起動する基本レートに対する特定の比率を使用して、さまざまな Simulink サブシステムへの関数呼び出しをスケジュールします。

  • チャートは基本レートで、サブシステム A1 を実行するイベントを送信します。

  • チャートは基本レートの半分で、サブシステム A2 を実行するイベントを送信します。

  • チャートは基本レートの 4 分の 1 で、サブシステム A3 を実行するイベントを送信します。

SlowScheduler ステートがアクティブな場合、チャートは A1、A2 および A3 の関数呼び出しを基本レートの 1/8、1/16 および 1/32 でスケジュールします。

チャートは call イベントを 100 回呼び出すごとに、高速実行と低速実行のモードを切り替えます。

時相論理スケジューラの実行

モデルをシミュレートすると、スコープにタイム ステップごとの値 y が表示されます。

値の変化はさまざまな実行レートを示しています。

  • チャートがサブシステムを低速で実行するとき (たとえば $t=4.5$ から $t=4.6$$t=4.7$ から $t=4.8$、および $t=4.9$ から $t=5.0$) に、値は低速で変化します。

  • チャートがサブシステムを高速で実行するとき (たとえば $t=4.6$ から $t=4.7$ および $t=4.8$ から $t=4.9$) に、値は急速に変化します。

参考

|

関連するトピック