最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

Function-Call Subsystem の使用

Function-Call Subsystem ブロックは、制御信号が関数呼び出しイベントを受信するたびに実行される条件付き実行サブシステムです。Stateflow® チャート、Function-Call Generator ブロックまたは S-function ブロックは関数呼び出しイベントを提供できます。

Function-Call Subsystem は手続きプログラミング言語の関数と同じです。Function-Call Subsystem を呼び出すと、サブシステム内のブロックの出力メソッドが並べ替えられた順序で実行されます。Function-Call Subsystem ブロックのパラメーターについては、Subsystem, Atomic Subsystem, Nonvirtual Subsystem, CodeReuse Subsystemを参照してください。

Function-Call Subsystem の作成

Function-Call Subsystem を作成するには次を行います。

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

  2. サブシステム ブロックを開きます。サブシステムが関数呼び出しイベントを受信するときに実行されるアルゴリズムを定義するブロック線図を追加します。

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

  4. サブシステム実行時のサブシステムの状態を処理する方法を指定します。

    Subsystem ブロックを開き、Trigger ブロックのブロック パラメーター ダイアログ ボックスを開きます。[イネーブル時の状態] ドロップダウン リストから次を選択します。

    • 保持 — 状態は最新の値を保持します。

    • リセット — 状態を初期条件に設定します。

    • 継承 — 関数呼び出しを行った親サブシステムの [保持] または [リセット] 設定を使用します。

    入れ子にされたサブシステムの Function-Call Subsystem ブロックが異なるパラメーター設定をもつ場合、子サブシステムの設定は、親サブシステムから継承された設定をオーバーライドします。

  5. 関数呼び出しイニシエーターを関数呼び出し入力端子に接続します。

    Inport ブロックを接続する場合、ブロックを開き、[信号属性] ペインを選択して、[関数呼び出しの出力] チェック ボックスをオンにします。

Function-Call Subsystem でのサンプル時間の伝播

Function-Call Subsystem ブロックを構成するには、その Trigger Port ブロックの [サンプル時間タイプ][トリガー] または [周期的] に設定します。

  • トリガーされた (非周期的) Function-Call Subsystem は 1 つのタイム ステップ中に 0 回、1 回または複数回実行できます。

    Function-Call Subsystem が離散サンプル時間をもつルートレベルの関数呼び出し Inport ブロックによって実行される場合、1 つのタイム ステップ中に複数の関数呼び出しは許可されません。複数の関数呼び出しを許可するには、[サンプル時間]-1 (継承) に設定し、Function-Call Subsystem のすべてのブロックのサンプル時間を -1 (継承) に設定します。

  • 周期的な Function-Call Subsystem は 1 つのタイム ステップ中に 1 回実行され、周期的な関数呼び出しを受信しなければなりません。関数呼び出しが非周期的である場合、シミュレーションが停止し、エラー メッセージが表示されます。Function-Call Subsystem のすべてのブロックのサンプル時間を -1 (継承) に設定します。

メモ

範囲のチェック中には、Function-Call Subsystem がイネーブルでない場合でも、最小値と最大値のパラメーター設定は Function-Call Subsystem の実際のソース端子に逆伝播されます。

逆伝播を回避するために、次を行います。

  1. ソース端子の後に Signal Conversion ブロックと Signal Specification ブロックを追加します。

  2. Signal Conversion ブロックの [出力][信号のコピー] に設定します。

  3. ソース端子に指定する代わりに、Signal Specification ブロックの最小値と最大値を指定します。

モデル例

参考

ブロック

関連する例

詳細