Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

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

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

条件付きモデル

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

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

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

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

次の図には、シンプルなイネーブル参照モデルの内容が表示されています。

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

トリガー

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

次の図は、シンプルなトリガー参照モデルの内容を示しています。

トリガー モデルの例については、モデル sldemo_mdlref_datamngt を参照してください。

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

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

関数呼び出し

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

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

次の図には、シンプルな関数呼び出し参照モデルの内容が表示されています。

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

条件付きモデルの要件

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

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

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

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

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

トリガー

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

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

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

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

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

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

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

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

  • 関数呼び出しモデルでは、そのルートレベルの入力端子と出力端子との間に直接内部接続をもつことはできません。参照される関数呼び出しモデルの [無効なルートの Input/Output ブロックの接続] 診断に対し、Simulink では NoneWarning の設定を考慮しません。すべての無効なルート端子接続がエラーとしてレポートされます。

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

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

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

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

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

    イネーブル

    Enable

    トリガー

    Trigger

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

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

    関数呼び出し

    トリガー

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

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

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

    トリガー

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

    以下のいずれかです。

    • rising

    • falling

    • either

    関数呼び出し

    function-call

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

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

参考

ブロック

関連するトピック