メインコンテンツ

Function Caller

Simulink 関数の呼び出し

  • Function Caller block

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

説明

Function Caller ブロックは Simulink® 関数を呼び出して実行します。Simulink 関数は、関数名と入力引数および出力引数を含む関数プロトタイプを指定します。たとえば、Function Caller ブロックがプロトタイプ y = f(u) をもつ関数を呼び出す場合、Function Caller ブロックの入力は Simulink 関数の入力引数 u であり、Simulink 関数の出力引数 yFunction Caller ブロックの出力です。

この例の Function Caller ブロックは、Simulink Function ブロックで定義された Simulink 関数 y = timestwo(x) を呼び出して実行するように構成されています。関数呼び出しをテストするために、入力データを供給する Sine Wave ブロックが入力端子 x に接続されており、出力から結果を表示する Scope ブロックが出力端子 y に接続されています。

A Sine Wave block is the input to the Function Caller block which sends output to a Scope block.

Simulink Function ブロック、エクスポートされた関数としての Stateflow® Chart (Stateflow)、または S-Function ブロックで定義された Simulink 関数を呼び出すことができます。Simulink 関数の定義の詳細については、モデルでの Simulink 関数の定義を参照してください。

詳細については、Simulink 関数の概要を参照してください。

ヒント

Function Caller ブロックを使用して、モデルの階層構造の外部にある関数を呼び出すことができます。

詳細については、参照モデルにおける Simulink Function ブロックを参照してください。

Simulink Function ブロックと Function Caller ブロックを使用したコード生成

Simulink Coder™ または Embedded Coder® がある場合、Simulink 関数を含むモデルからコードを生成できます。詳細については、Simulink Function ブロックとコードの生成 (Embedded Coder)およびConfigure Entry-Point Function Interfaces for Simulink Function and Function Caller Blocks (Embedded Coder)を参照してください。

端子

入力

すべて展開する

関数に送信される入力引数のための入力信号。

関数プロトタイプにより、Function Caller ブロックに表示される入力端子の数と名前が決まります。信号線を入力端子に接続し、関数入力引数を通してデータを関数に送信します。

たとえば y = myfunction(u) は Function Caller ブロックに 1 つの入力端子 (u) を作成します。

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

出力

すべて展開する

関数から返される出力引数のための出力信号。

関数プロトタイプにより、Function Caller ブロックに表示される出力端子の数と名前が決まります。信号またはメッセージの線を出力端子に接続し、関数出力引数を通してデータを関数から受信します。Function Caller ブロックでは、[関数呼び出しを非同期で実行] チェック ボックスがオンの場合はメッセージを出力します。

たとえば y = myfunction(u)Function Caller ブロックに 1 つの出力端子 (y) を作成します。

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

パラメーター

すべて展開する

Function Caller ブロックと Simulink 関数との間の関数プロトタイプを指定します。

メモ

Simulink Function ブロックで定義された関数を呼び出す場合、次が適用されます。

  • 関数呼び出しの引数名は関数の引数と一致しなければならない。

  • 関数名、入力引数、出力引数は有効な MATLAB® 識別子でなければならない。

プログラムでの使用

ブロック パラメーター: FunctionPrototype
型: 文字ベクトル
値: 'y=f(u)' | function prototype
既定の設定: 'y=f(u)'

修飾された関数名。文字ベクトルまたは string として指定します。

関数名はブロック アイコン上に表示されます。この名前は、ブロック アイコン上のパラメーター値をクリックして新しい値を入力することで編集できます。

メモ

このパラメーターは Function Caller ブロックの [関数プロトタイプ] パラメーターと自動的に同期されます。

関数の修飾による関連付けの詳細については、モデルのスコープ内の Simulink Function ブロックおよびサブシステムのスコープ内の Simulink Function ブロックを参照してください。

プログラムでの使用

ブロック パラメーター: ScopedFunctionName
型: 文字ベクトル
値: 'f' | 'Client.f' | function name
既定の設定: 'f'

各入力引数のデータ型、次元、実数/複素数 (実数または虚数) の指定を組み合わせた MATLAB 式をコンマ区切りリストで指定します。例については、Simulink Function ブロックの引数の指定を参照してください。

メモ

この指定は、Argument Inport ブロックの [データ型] パラメーターで指定された Simulink Function ブロック データ型と一致しなければなりません。

プログラムでの使用

ブロック パラメーター: InputArgumentSpecifications
型: 文字ベクトル
値: '' | MATLAB expression
既定の設定: ''

各出力引数のデータ型、次元、実数/複素数 (実数または虚数) の指定を組み合わせた MATLAB 式をコンマ区切りリストで指定します。例については、Simulink Function ブロックの引数の指定を参照してください。

メモ

この指定は、Argument Outport ブロックの [データ型] パラメーターで指定された Simulink Function ブロック データ型と一致しなければなりません。

プログラムでの使用

ブロック パラメーター: OutputArgumentSpecifications
型: 文字ベクトル
値: '' | MATLAB expression
既定の設定: ''

Simulink 関数の呼び出しの時間間隔を指定します。

既定の設定では、ブロックはモデル内の前後関係に基づいてサンプル時間を継承します。他のサンプル時間を設定するには、サンプル時間の指定の表にあるサンプル時間形式を使用して値を入力します。

Function Caller ブロックに入力がある場合、それは非ソース ブロックであり、サンプル時間を -1 に設定しなければなりません。

プログラムでの使用

ブロック パラメーター: SampleTime
: string | 文字ベクトル
: スカラー | ベクトル | sample time
既定の設定: '-1'

この Function Caller ブロックに関連付けられた Simulink Function ブロックを非同期で実行するかどうかを指定します。

  • 非同期実行を有効にするには、[関数呼び出しを非同期で実行] をオンにします。

    "非同期実行" では、呼び出し元が関数を呼び出すと、優先順位に基づいて関数が実行され、呼び出し元に出力引数が返されます。関数は、スケジュール エディターで定義されている順序に基づいて実行され、出力引数を呼び出し元に返します。ブロックは、それらの引数をメッセージ出力端子を使用して出力します。

    • 関数出力引数が 1 つの場合、その出力引数がメッセージ ペイロードになります。

    • 関数出力引数が複数の場合、Function Caller ブロックは出力引数を構造体としてまとめ、その構造体がメッセージ ペイロードになります。

    メッセージ出力端子は、即時モードで Message Triggered Subsystem ブロックに接続します。Message Triggered Subsystem ブロックが関数のコールバックとして機能します。

  • 同期実行を有効にするには、[関数呼び出しを非同期で実行] をオフにします。

    "同期実行" では、呼び出し元が関数を呼び出すと、直ちに関数が実行され、呼び出し元に出力引数が返されます。

プログラムでの使用

ブロック パラメーター: AsynchronousCaller
: 文字ベクトル
: 'on' | 'off'
既定の設定: 'off'

ブロックの特性

データ型

Boolean | bus | double | enumerated | fixed point | integer | single

直達

はい

多次元信号

はい

可変サイズの信号

いいえ

ゼロクロッシング検出

いいえ

拡張機能

すべて展開する

固定小数点の変換
Fixed-Point Designer™ を使用して固定小数点システムの設計とシミュレーションを行います。

バージョン履歴

R2014b で導入

すべて展開する