Main Content

Triggered Subsystem の使用

Triggered Subsystem とは、制御信号 (トリガー信号) が以下となるたびに実行される条件付き実行 Atomic サブシステムです。

  • 負の値から正の値またはゼロに立ち上がるか、ゼロの値から正の値に立ち上がる場合。

  • 正の値から負の値またはゼロに立ち下がるか、ゼロの値から負の値に立ち下がる場合。

  • ゼロの値を通過またはゼロの値に対して立ち上がるか立ち下がる場合。

Enabled Subsystem ブロックとは異なり、Triggered Subsystem ブロックはトリガー間でその出力を常に最後の値に保持します。また、Triggered Subsystem は実行されたときにブロックの状態をリセットすることはできません。どの離散ブロックでもその状態は、トリガー間で保持されます。

Triggered Subsystem の作成

Triggered Subsystem を作成するには次を行います。

  1. Triggered Subsystem ブロックをモデルに追加します。

    • ブロックを Simulink® Ports & Subsystems ライブラリからモデルにコピーします。

    • モデル ブロック線図をクリックし、trigger と入力してから、Triggered Subsystem を選択します。

  2. Outport ブロックの初期値とディセーブルにされた値を設定します。条件付きサブシステムの初期出力値および条件付きサブシステムが無効な場合の出力値を参照してください。

  3. 制御信号が実行をトリガーする方法を設定します。

    Subsystem ブロックを開き、Trigger Port ブロックのパラメーター ダイアログ ボックスを開きます。[トリガー タイプ] ドロップダウン リストで次を選択します。

    • 立ち上がり — 制御信号が負の値またはゼロの値から正の値に上昇すると、サブシステムの実行がトリガーされます。

    • 立ち下がり — 制御信号が正の値またはゼロの値から負の値に下降すると、サブシステムの実行がトリガーされます。

    • 両方 — 立ち上がりまたは立ち下がりのいずれかの制御信号でサブシステムの実行がトリガーされます。

    Trigger ブロックと Subsystem ブロックに異なる記号が表示され、立ち上がりトリガーおよび立ち下がりトリガーを示します。

  4. Trigger Port ブロックからイネーブル制御信号を出力します。Trigger Port ブロックを開きます。[出力端子の表示] チェック ボックスをオンにして制御信号を Triggered Subsystem に受け渡します。

    この信号は、制御信号の値に依存するアルゴリズムで使用できます。

  5. [出力データ型] ドロップダウン リストから、autoint8double を選択します。

    [auto] オプションを指定すると、出力信号のデータ型が信号に接続されるブロック端子のデータ型 (int8 または double) に設定されます。

離散時間システムによるトリガー

離散時間システムの場合、トリガー制御信号は 1 より多いタイム ステップでゼロを保持しなければなりません。このようなトリガー手法があることで、制御信号のサンプリングが原因の誤ったトリガーが防止されます。

以下に示した離散システムのタイミング図では、立ち上がりトリガー信号 (R) はタイム ステップ 3 で発生しません。トリガー信号は、信号がゼロから増加する前に 1 つのタイム ステップの間しか 0 を保持しません。

トリガー モデルと Triggered Subsystem

次のいずれかのブロックを使う代わりに、Trigger Port ブロックを Model ブロック (参照モデル) 内に配置し、モデル設計を簡略化できます。

  • Model ブロック内の Triggered Subsystem ブロック。

  • Triggered Subsystem ブロック内の Model ブロック。

参照モデル内で Trigger Port ブロックを使用する方法の詳細については、参照モデルの条件付き実行を参照してください。

モデル参照を使用するようにサブシステムを変換するには、サブシステムから参照モデルへの変換を参照してください。

Triggered Subsystem 内のブロック

Triggered Subsystem 内のすべてのブロックは、継承 (-1) または定数 (inf) に設定された [サンプル時間] をもたなければなりません。この要件により、Triggered Subsystem 自体が実行された場合にのみ Triggered Subsystem 内のブロックが実行されるように指定できます。また、この要件は、Triggered Subsystem が Integrator ブロックのような連続ブロックを含むことができないことも意味します。

モデル例

モデル例については、以下を参照してください。

参考

| | |

関連するトピック