Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

MATLAB Function ブロックの関数呼び出しの出力の管理

"関数呼び出しの出力" は、モデルの Function-Call Subsystem または Stateflow® チャートを実行する MATLAB Function ブロックの出力端子上のイベントです。Function-Call Subsystem の使用を参照してください。[シンボル] ペインとプロパティ インスペクター、またはモデル エクスプローラーを使用して、MATLAB Function ブロックに関数呼び出しの出力を追加し、関数呼び出しの出力を構成できます。

関数呼び出しの出力を作成した後、MATLAB Function ブロック コードで関数呼び出しの出力を呼び出す必要があります。

関数呼び出しの出力の作成

関数呼び出しの出力を作成するには、[シンボル] ペインまたはモデル エクスプローラーを使用します。

[シンボル] ペインを使用するには、次の手順に従います。

  1. MATLAB Function ブロック エディターを開きます。[関数] タブで、[データの編集] をクリックします。

  2. [イベントの作成] ボタン をクリックし、[関数呼び出し出力追加] を選択します。

関数呼び出しの出力を削除するには、関数呼び出しの出力の名前を右クリックして [削除] を選択します。

モデル エクスプローラーを使用するには、次の手順に従います。

  1. モデル エクスプローラーを開きます。[モデル化] タブの [設計] セクションで、[モデル エクスプローラー] をクリックします。

  2. [モデルの階層構造] ペインで、MATLAB Function ブロックを選択します。

  3. [追加][関数呼び出しの出力] をクリックするか、[関数呼び出し出力追加] ボタン をクリックします。

関数呼び出しの出力を削除するには、関数呼び出しの出力を選択し、[編集][削除] をクリックするか、[削除] ボタン をクリックします。

MATLAB Function ブロックをもつ Function-Call Subsystem を有効にする

この例では、サブシステムをトリガーする関数呼び出しの出力をもつ MATLAB Function ブロックを使用します。

Pulse Generator ブロックからの信号が 1 に等しい場合、MATLAB Function ブロックは関数呼び出しの出力を実行します。その後、ブロックはメジャー タイム ステップごとに関数呼び出しの出力を実行し続けます。MATLAB Function ブロックをダブルクリックしてコードを開きます。

function y = fcn(u)
y = u;
if u == 1
fcncall()
end

Function-Call Subsystem により、関数呼び出しがトリガーされるときに Sine Wave ブロックからの信号が伝播されます。関数呼び出しがトリガーされない場合、サブシステムは最後に伝播された値を出力します。モデルを実行し、Scope ブロックを開いて出力を確認します。

Function-Call Subsystem をトリガーする際の考慮事項

MATLAB Function ブロックが Function-Call Subsystem をトリガーし、同じ Function-Call Subsystem に信号を出力する場合、Function-Call Subsystem への信号は関数呼び出しと比較して 1 タイム ステップ遅れます。ブロックの MATLAB® コード内で出力データが更新されている場合でも、関数呼び出しの出力の時点では、Function-Call Subsystem は MATLAB Function ブロックの以前の出力端子の値を参照します。

[直達を許可] がオフになっていると、関数呼び出しの出力をもつ MATLAB Function ブロックで予期しない結果になることがあります。[直達を許可] が無効になっている場合、トリガーされるサブシステムは関数呼び出しをモデルの更新時に受け取るため、必要とされるよりも後に関数呼び出しの出力が実行されます。このような問題を回避するために、関数呼び出しの出力を使用する際は [直達を許可] を有効にしてください。詳細については、MATLAB Function ブロックでの非直達の使用を参照してください。

関数呼び出しの出力プロパティの設定

関数呼び出しの出力のプロパティを調整するには、[シンボル] ペインとプロパティ インスペクター、またはモデル エクスプローラーを使用します。

[シンボル] ペインとプロパティ インスペクターを使用してプロパティを編集するには、次のいずれかの方法を使用して、関数呼び出しの出力を指定し、プロパティ インスペクターを開きます。

  • [関数] タブで、[データの編集] をクリックします。[シンボル] ペインで関数呼び出しの出力を選択します。

  • [シンボル] ペインで、関数呼び出しの出力の名前を右クリックして [検査] をクリックします。

  • [シンボル] ペインで関数呼び出しの出力を選択します。[モデル化] タブの [データの設計] セクションで、[プロパティ インスペクター] をクリックします。

モデル エクスプローラーを使用してプロパティを編集するには、関数呼び出しの出力をクリックします。

以下のプロパティを変更できます。

名前

関数呼び出しの出力の名前を指定します。MATLAB で使用されている命名規則を使用します。このプロパティは、[シンボル] ペインまたはモデル エクスプローラーでのみ設定できます。

端子

その関数呼び出しの出力に関連付けられた端子のインデックスを指定します。関数呼び出しの出力の端子には、出力端子の後から順番に番号が付けられます。

説明

その関数呼び出しの出力の説明を指定します。

ドキュメント リンク

その関数呼び出しの出力のドキュメンテーションへのリンクを指定します。URL アドレスを入力するか、HTML ファイルやテキストなど、ドキュメンテーションを MATLAB コマンド ウィンドウに表示する MATLAB コマンドを入力できます。[ドキュメント リンク] のリンクをクリックすると、MATLAB Function ブロックは、そのリンクを評価してドキュメンテーションを表示します。

参考

関連するトピック