Simulink Function ブロックの引数の指定
Simulink Function ブロックが Function Caller ブロックのスコープ外であると見なされるのは、これらの 2 つのブロックが共通の親モデルから参照される別々のモデル内にある場合です。
Simulink Function ブロックが Function Caller ブロックのスコープ内にある場合、Function Caller ブロックで入力引数と出力引数の指定を継承できます。Function Caller ブロックのパラメーターを指定する必要はありません。
Simulink Function ブロックが Function Caller ブロックのスコープ外にある場合、Function Caller ブロックの入力引数と出力引数を指定する必要があります。
データ型に対するサンプル引数の指定
次の表は、可能な入力引数と出力引数の指定の一覧です。
Simulink Function ブロックのデータ型 | Function Caller ブロックの式 | 説明 |
---|---|---|
double | double(1.0) | 倍精度スカラー。 |
double | double(ones(12,1)) | 長さ 12 の倍精度列ベクトル。 |
single | single(1.0) | 単精度スカラー。 |
int8 、int16 、int32 | int8(1) , int16(1) , int32(1) | 整数スカラー。 |
int32([1 1 1]) | 長さ 3 の整数行ベクトル。 | |
int32(1+1i) | 32 ビット整数の実数部と虚数部をもつ複素数スカラー。 | |
uint8 、int16 、int32 | uint8(1) , uint16(1) , uint32(1) | 符号なし整数スカラー。 |
boolean | boolean(true) ,boolean(false) | boolean。true (1) または false (0) に初期化されます。 |
|
| 2 進小数点が 0 に設定された 16 ビットの符号付き固定小数点スカラー。 固定小数点数は、最大 65,535 ビットのワード サイズをもつことができます。 |
fixdt(1,16,4) | fi(0,1,16,4) | 2 進小数点が 4 に設定された 16 ビットの符号付き固定小数点スカラー。 |
fixdt(1,16,2^0,0) | fi(0,1,16,2^0,0) | 傾きが 2^0 に設定され、バイアスが 0 に設定された 16 ビットの符号付き固定小数点スカラー。 |
Bus: <object name> | bus object name | Simulink.Bus オブジェクト |
Enum:<class name> | enumerated value | 列挙値に設定された列挙型。 |
<alias name> | parameter object name | DataType パラメーターが Simulink.AliasType オブジェクトに設定され、Value パラメーターが特定の値に設定された Simulink.Parameter オブジェクト。 |
列挙データ型の入力引数の仕様
3 つの基本色の列挙データ型を作成し、Function Caller ブロックに対して [入力引数の仕様] パラメーターを指定します。Function Caller ブロックは、列挙型の信号を入力として受け入れる Simulink Function ブロックを呼び出します。
データ型定義を保存する MATLAB® ファイルを作成します。MATLAB ツールストリップで、[新規] 、 [クラス] を選択します。
MATLAB エディターで、列挙データ型の要素を定義します。
BasicColors
クラスはSimulink.IntEnumType
クラスのサブクラスです。classdef BasicColors < Simulink.IntEnumType enumeration Red(0) Yellow(1) Blue(2) end end
BasicColors.m
という名前のファイルにクラス定義を保存します。Function Caller ブロックのダイアログ ボックスで、[入力引数の仕様] を
BasicColors(0)
に設定します。Simulink Function ブロック内の Argument Inport ブロックのダイアログ ボックスで、[データ型] パラメーターを
Enum: BasicColors
に設定します。
エイリアス データ型の入力引数の仕様
single データ型のエイリアス名を作成し、Function Caller ブロックに対して [入力引数の仕様] パラメーターを指定します。Function Caller ブロックで呼び出される Simulink Function ブロックもエイリアス名を使用して入力データ型を定義します。
Simulink® エイリアスデータ型オブジェクト
myAlias
を作成します。myAlias = Simulink.AliasType;
データ型を割り当てます。
myAlias.BaseType = 'single';
Simulink パラメーター オブジェクト
myAlias_parameter
を作成し、エイリアス名をDataType
パラメーターに割り当てます。myAlias_parameter = Simulink.Parameter; myAlias_parameter.DataType = 'myAlias'; myAlias_parameter.Value = 1;
Function Caller ブロックのダイアログ ボックスで、[入力引数の仕様] パラメーターを
myAlias_parameter
に設定します。Simulink Function ブロック内の Argument Inport ブロック ダイアログ ボックスに対して、[データ型] パラメーターを
myAlias
に設定します。
非有界の可変サイズ信号の入力引数の仕様
R2023b 以降
Function Caller ブロックは、非有界の可変サイズの信号を表す Simulink.Signal
オブジェクトのみを受け入れます。詳細については、Unbounded Variable-Size Signalsを参照してください。
次の手順では、非有界の可変サイズの信号を Function Caller ブロックの入力引数として指定する方法と、関連する Simulink Function ブロックを構成する方法を示します。
入力信号を表す
Simulink.Signal
オブジェクトmySig
を作成します。mySig = Simulink.Signal; mySig.Dimensions = [Inf 2]; mySig.DimensionsMode = 'Variable';
次に、出力信号を表す
Simulink.Signal
オブジェクトmySigOut
を作成します。mySigOut = Simulink.Signal; mySigOut.Dimensions = [Inf Inf]; mySigOut.DimensionsMode = 'Variable';
Function Caller ブロック ダイアログ ボックスで、[入力引数の仕様] パラメーターと [出力引数の仕様] パラメーターをそれぞれ
mySig
とmySigOut
に設定します。Function Caller ブロックの入力引数端子に接続された Inport ブロックを構成して、ブロックが非有界の可変サイズの信号を受け入れるようにします。Inport ブロックのダイアログ ボックスで、以下のようにします。
[信号属性]、[可変サイズの信号] を
[あり]
に設定します。[実行]、[サンプル時間] フィールドで離散サンプル時間を指定します。
Function Caller ブロック内で定義されている関数を呼び出す Simulink Function ブロック内の Argument Inport ブロックで、[信号属性]、[端子の次元] パラメーターを
mySig
の次元 ([Inf 2]
) と一致するように設定します。同様に、Argument Outport ブロックで、[信号属性]、[端子の次元] パラメーターを
mySigOut
の次元 ([Inf Inf]
) に一致するように設定します。Simulink Function ブロック内で使用するブロックで非有界の可変サイズの信号がサポートされているかどうかを確認するには、Supported Blocks and Features for Simulationのブロックのリストを参照してください。