Main Content

Simulink Function

Simulink ブロックで関数をグラフィカルに定義

  • Simulink Function block

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

説明

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

ブロック パラメーターについては、Subsystem を参照してください。

Simulink Function の呼び出しをシーケンス ビューアーで可視化できます。ビューアーには、呼び出しが行われたタイミングが引数および戻り値とともに表示されます。

Simulink Function ブロックまたは Function Caller ブロックを選択して、関連するブロックを強調表示できます。1 つ以上の関連するブロックがサブシステムまたは参照モデルに含まれている場合、関連するブロックに加え、その関連ブロックを含む Subsystem ブロックまたは Model ブロックも強調表示されます。

開いているブロック線図または新しいタブに関連するブロックを表示するには、Simulink Function ブロックまたは Function Caller ブロックの選択後に表示される省略記号をポイントします。その後、操作バーから [関連するブロック] Related Blocks button を選択します。選択したブロックに複数のブロックが対応している場合は、関連するブロックのリストが開きます。リストはテキスト ボックスに検索語を入力してフィルター処理できます。関連するブロックをリストから選択すると、関連するブロックが表示された開いているブロック線図または新しいタブにウィンドウのフォーカスが移ります。

関数インターフェイス

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

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

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

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

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

出力

すべて展開する

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

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

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

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

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

ブロックの特性

データ型

Booleana | busa | doublea | enumerateda | fixed pointa | halfa | integera | singlea | stringa

直達

いいえ

多次元信号

はいa

可変サイズの信号

いいえ

ゼロクロッシング検出

いいえ

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

拡張機能

バージョン履歴

R2014b で導入

すべて展開する