Resettable Subsystem の使用
Resettable Subsystem ブロックは、Reset 端子がトリガー信号を受信するたびにブロック状態がリセットされるサブシステムを作成する開始点として事前設定された Subsystem ブロックです。
以下のセクションでは、Resettable Subsystem の動作について説明し、Reset 端子、または Reset 端子のように動作するように構成できる他の端子をもつ Simulink® ブロックのサブセットと比較します。
Resettable Subsystem の動作
このモデルは、ブロックのリセット端子と Resettable Subsystem の動作が同じであることを示しています。Resettable Subsystem を使用すると、その中のすべてのブロックの状態をリセットできます。このモデルでは、Resettable Subsystem にはルートレベルの Integrator ブロックと同様に設定された Integrator ブロックが含まれますが、このブロックにはリセット端子がありません。サブシステムは、中に含んでいる Integrator ブロックの状態を、Integrator ブロックのリセット端子と同じようにリセットします。
この動作は、モデルを実行し、Scope ブロックで出力を表示して確認できます。スコープで以下を確認できます。
reset trigger
信号は Reset 端子における信号を表しています。reset trigger
信号の立ち上がりエッジで、Resettable Subsystem と Integrator ブロックの両方により Integrator ブロックの状態が初期状態 (ここでは 0) にリセットされています。reset trigger
信号の 2 つの立ち上がりエッジごとに、そのエッジ間に Resettable Subsystem と Integrator ブロックの両方が実行されています。Resettable Subsystem および Integrator ブロックからの出力は、スコープでそれぞれresettable output
信号およびintegrator output
信号によって表されています。信号で示されているように、両方の出力は同じです。
Resettable Subsystem を使用すると、ブロックまたはサブシステムの状態を他の方法でリセットする場合と比べ、以下のような利点があります。
サブシステム内の複数のブロックの状態をリセットする場合、各ブロックのリセット端子の表示と接続は煩雑で、ブロック線図が読みにくくなります。代わりに Resettable Subsystem にすべてのブロックを含めて、サブシステムで Reset ブロックを設定します。
Discrete State-Space ブロックなどの一部のブロックには状態はあってもリセット端子はありません。これらのブロックは個別にリセットできないため、それらのブロックが含まれるサブシステムをリセットしなければなりません。この場合は、これらのブロックを Resettable Subsystem に含めると便利です。
また、イネーブル端子で [イネーブル時の状態] パラメーターを
[リセット]
に設定して、Enabled Subsystem でブロックをリセットすることもできます。ただし、この動作を行うには、サブシステムをディセーブルにしてから、後のタイム ステップで再度イネーブルにしなければなりません。同じタイム ステップでブロックの状態をリセットするには、Resettable Subsystem を使用します。詳細については、Resettable Subsystem と Enabled Subsystem の比較を参照してください。
Resettable Subsystem 内のすべてのブロックのサンプル時間は同じでなければなりません。またこれらのブロックはサブシステムのサンプル時間ヒットごとに実行されます。Resettable Subsystem およびモデルは、共通のクロックを使用します。
メモ
Resettable Subsystem に Simulink Function ブロックを含む Stateflow® チャートが含まれる場合、Resettable Subsystem が実行されたとき Simulink Function ブロック内のブロックは初期条件に戻りません。
Resettable Subsystem と Enabled Subsystem の比較
Enable ブロックの [イネーブル時の状態] を [リセット]
に設定すると、Enabled Subsystem はサブシステム内のすべてのブロックの状態をリセットします。ただし、状態をリセットするには、少なくとも 1 タイム ステップでサブシステムをディセーブルにしてから、再度イネーブルにしなければなりません。
一方、Resettable Subsystem は常に実行され、そのブロックの状態は瞬時にリセットされます。
このモデルは、これらのサブシステムの実行動作の違いを示しています。それには、制御端子が Pulse Generator ブロックに接続されている Enabled Subsystem と Resettable Subsystem が含まれています。Resettable Subsystem は制御信号の立ち上がりエッジでリセットされるように設定され、Enabled Subsystem では Enable 端子の [イネーブル時の状態] パラメーターが [リセット]
に設定されています。
サブシステムには同一の Discrete-Time Integrator ブロックが含まれ、その入力はモデルのルート レベルにある Constant ブロックです。次の図は Resettable Subsystem の内容を示しています。
次の図は、Scope ブロックのシミュレーション出力を示しています。スコープで以下を確認できます。
control signal
は Enable 端子における制御信号を表しています。制御信号が 0 のときに、Enabled Subsystem はディセーブルになり、Integrator はその出力を変更しませんが、Resettable Subsystem は実行され続けます。制御信号の立ち上がりエッジによって、Resettable Subsystem のリセット端子がトリガーされ、Enabled Subsystem がイネーブルになります。どちらのサブシステムも、このタイム ステップでは状態をリセットしています。
Enabled Subsystem および Resettable Subsystem からの出力は、スコープでそれぞれ
enabled output
信号およびresettable output
信号によって表されています。Enabled Subsystem の状態をリセットするには、少なくとも 1 タイム ステップで Enabled Subsystem をディセーブルにしなければなりません。Resettable Subsystem にはこの制限はありません。
モデル例
モデル例については、以下を参照してください。
参考
Enabled Subsystem | Enable | Resettable Subsystem | Reset | Integrator | Discrete-Time Integrator | Pulse Generator