Main Content

参照モデルの条件付き実行

"条件付きで実行される参照モデル"、または "条件付きモデル" を使用すると、その実行を外部信号で制御できます。"制御信号" と呼ばれる外部信号は "制御入力端子" に接続されています。条件付きモデルは、実行が他のコンポーネントに依存するコンポーネントを含む複雑なモデルの階層構造を作成するような場合に便利です。

条件付きモデル

条件付きサブシステムと同様に、参照モデルを条件付きで実行するように設定することができます。条件付きサブシステムの詳細は、条件付き実行サブシステムの概要を参照してください。

Simulink® ソフトウェアは、以下の条件付きモデル タイプをサポートしています。

条件付きモデル説明
イネーブル

イネーブル端子は、制御信号が正の値をもつ参照モデルを各シミュレーション ステップで実行します。イネーブル端子を Model ブロックに追加するには、参照モデルに Enable ブロックを挿入します。

Simple enabled referenced model

Enabled Subsystem の例については、Enabled Subsystemを参照してください。対応するイネーブル参照モデルは、Enabled Subsystem にあるブロックと同じブロックを使用します。

トリガー

トリガー イベントが発生するたびに、トリガー端子で参照モデルが実行されます。トリガー端子を Model ブロックに追加するには、参照モデルに Trigger ブロックを挿入します。

Simple triggered referenced model

トリガーおよびイネーブル

Model ブロックには、トリガー端子とイネーブル端子の両方を含めることができます。トリガーおよびイネーブル モデルは、トリガー イベントが発生したタイム ステップで、イネーブル制御信号が正の値の場合に 1 回実行されます。

関数呼び出し

関数呼び出しイベントが発生するたびに、関数呼び出し端子で参照モデルが実行されます。関数呼び出し端子を Model ブロックに追加するには、参照モデルに Trigger ブロックを挿入します。次に、[ブロック パラメーター] ダイアログ ボックスを開いて、[トリガー タイプ][関数呼び出し] に設定します。

Stateflow® チャート、Function-Call Generator ブロック、Hit Crossing ブロック、または適切に設定されたカスタムの S-Function は関数呼び出しイベントを提供できます。Function-Call Subsystem の使用を参照してください。

Simple function-call referenced model

関数呼び出しモデルの例については、モデル参照の関数呼び出しを参照してください。

条件付きモデルの要件

条件付きモデルは以下の要件を満たさなければなりません。

条件付きモデルは、条件付きモデルの各タイプに応じた固有の要件も満たさなければなりません。

条件付きモデル必要条件
イネーブル
  • マルチレートのイネーブル モデルはマルチタスク ソルバーを使用できません。シングルタスクを使用します。

  • ルートにイネーブル端子を使用しているモデルで、モデルが固定ステップ ソルバーを使用している場合、モデルの固定ステップ サイズはモデル内のブロックのレートを超えてはいけません。

  • 参照モデル内のイネーブル端子の信号属性は、Model ブロックがそのイネーブル端子に提供する入力と一致していなければなりません。

トリガー

参照モデル内のトリガー端子の信号属性は、Model ブロックがそのトリガー端子に提供する入力と一致していなければなりません。

トリガーおよびイネーブルトリガー モデルとイネーブル モデルの要件を参照してください。
関数呼び出し
  • 関数呼び出しモデルでは、Simulink によって挿入された隠れた Ground ブロックも含めて、Ground ブロックによってのみ駆動される出力端子をもつことはできません。この要件を満たすには以下のようにします。

    1. 出力端子に接続されている信号に Signal Conversion ブロックを挿入します。

    2. 挿入されたブロックの ['ブロック削減' の最適化からこのブロックを排除する] オプションをオンにします。

  • 関数呼び出しモデルが以下の両方の条件を満たしている場合、親モデルは [コンフィギュレーション パラメーター][ソルバー]'Fixed-step size' オプションによって指定されているレートで関数呼び出しモデルをトリガーしなければなりません。

    • 固定ステップ ソルバーを指定している。

    • 絶対時間または経過時間を使用する 1 つ以上のブロックを含んでいる。

    それ以外の場合は、親モデルは関数呼び出しモデルをいつでもトリガーできます。

  • 関数呼び出しモデルでは、そのルートレベルの入力端子と出力端子との間に直接内部接続をもつことはできません。

  • [サンプル時間のタイプ] [周期的] の場合、サンプル時間間隔がオフセットを含むことはできません。

  • Model ブロックの関数呼び出し端子に接続する信号はスカラーでなければなりません。

条件付き実行の参照モデルの変更

  1. 参照モデルのルート レベルに次のいずれかのブロックを挿入します。

    モデルのタイプ挿入するブロック

    イネーブル

    Enable

    トリガー

    Trigger

    トリガーおよびイネーブル

    トリガーおよびイネーブル

    関数呼び出し

    トリガー

    イネーブル モデルの場合、手順 3 に進みます。

  2. Trigger ブロックの場合、[トリガー タイプ] パラメーターを次のように設定します。

    モデルのタイプ[トリガー タイプ] パラメーター設定

    トリガー

    トリガーおよびイネーブル

    以下のいずれかです。

    • rising

    • falling

    • either

    関数呼び出し

    function-call

  3. Model ブロック端子を使用して、参照モデルを親モデル内の他の端子に接続します。

    • Model ブロックの上部には、参照モデルで予測される制御信号タイプを表すアイコンが表示されます。トリガー モデルの場合、Model ブロックの上部に次のアイコンが表示されます。

      Model block with trigger port

参考

| |

関連するトピック