ドキュメンテーション

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

Simulink Function

Simulink ブロックで定義される関数

  • ライブラリ:
  • Simulink / User-Defined Functions

    SimEvents

説明

Simulink Function ブロックは、Simulink® ブロックを使用した関数をグラフィカルに定義するための開始点として事前定義される Subsystem ブロックです。このブロックは、関数の呼び出し元にテキスト インターフェイスを提供します。Simulink Function ブロックは、Function Caller ブロック、MATLAB Function ブロック、または Stateflow® Chart から呼び出すことができます。

ブロック パラメーターの説明については、Simulink ドキュメンテーションにある Subsystem ブロックのリファレンス ページを参照してください。

Simulink Function の呼び出しを Sequence Viewer で可視化できます。ビューアーには、呼び出しが行われたタイミングが引数および戻り値とともに表示されます。Sequence Viewer ブロックのリファレンスを参照してください。

関数インターフェイス

Simulink Function ブロック上には関数インターフェイスが表示されます。ブロックのテキストを編集すると、関数定義に対して Argument Inport ブロックと Argument Outport ブロックが追加、削除されます。また、編集することで、Simulink Function ブロック内の Trigger ブロックの [関数名] パラメーターが設定されます。

たとえば、Simulink Function ブロック上に「y = myfunction(u)」と入力すると、サブシステム内に 1 つの Argument Inport ブロック (u) および 1 つの Argument Outport ブロック (y) が追加されます。

Function Caller ブロックを使用して関数を呼び出す場合は、Function Caller ブロック パラメーターの [関数プロトタイプ] が、Simulink Function ブロックで指定した関数インターフェイスと完全に一致しなければなりません。この一致には、関数名および入力引数と出力引数の名前が含まれます。たとえば、Simulink Function ブロックと Function Caller ブロックはどちらも引数名 uy を使用します。

Stateflow 遷移ラベルまたはステート ラベルから関数を呼び出す場合は、異なる引数名を使用できます。たとえば、Simulink Function ブロックは x 引数と y 引数を使用しますが、Stateflow 遷移は x2 引数と y2 引数を使用して関数を呼び出します。

Function-Call Subsystem ブロックと Simulink Function ブロック

一般的には、信号の直接接続を使用している Function-Call Subsystem ブロックの方が Simulink Function ブロックよりも信号のトレーサビリティに優れています。一方、Simulink Function ブロックでは、モデルの階層構造を通して入力および出力信号線の経路指定を行う必要がありません。

属性Function-Call Subsystem ブロックSimulink Function ブロック
関数の実行/呼び出し方法信号線を使用してトリガー関数名を使用して参照によって呼び出す
正式な入力引数 (Argument Inport ブロック) および出力引数 (Argument Outport ブロック)なしあり
ローカル入力 (Inport ブロック) および出力 (Outport ブロック)ありあり

端子

入力

すべて展開する

Inport ブロックをサブシステム ブロック内に配置することで、Simulink Function ブロックへの外部入力端子が追加されます。端子ラベルは Inport ブロックの名前と一致します。

ローカル環境から信号を取得するには、Inport ブロックを使用します。

データ型: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | Boolean | fixed point | enumerated | bus | struct

サブシステム ブロック内の Argument Inport ブロックは、入力引数に対応する入力端子を提供します。端子はサブシステム ブロックには表示されません。

データ型: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | Boolean | fixed point | enumerated | bus | struct

出力

すべて展開する

Outport ブロックをサブシステム ブロック内に配置することで、ブロックの出力端子が追加されます。サブシステム ブロック上の端子ラベルは Outport ブロックの名前です。

信号をローカル環境に送信するには、Outport ブロックを使用します。

データ型: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | Boolean | fixed point | enumerated | bus | struct

サブシステム ブロックの Argument Outport ブロックは、出力引数に対応する出力端子を提供します。端子はサブシステム ブロックには表示されません。

データ型: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | Boolean | fixed point | enumerated | bus | struct

モデルの例

ブロックの特性

データ型

Boolean[a] | bus[a] | double[a] | enumerated[a] | fixed point[a] | integer[a] | single[a] | string[a]

直接フィードスルー

いいえ

多次元信号

限定的[a]

可変サイズの信号

いいえ

ゼロクロッシング検出

いいえ

[a] 実際のデータ型または機能のサポートは、ブロックの実装に依存します。

拡張機能

R2014b で導入