Main Content

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

Simulink.Parameter

パラメーター値の保存、共有、構成

説明

Simulink.Parameter オブジェクトを作成し、モデル内の 1 つ以上のブロック パラメーターの値を設定します (Gain ブロックの [ゲイン] パラメーターなど)。ワークスペースまたはデータ ディクショナリでオブジェクトを作成します。パラメーター値をオブジェクトに設定して、ブロックからオブジェクトを参照します。

Simulink.Parameter オブジェクトを使用して、以下を行います。

  • 複数のブロック パラメーター間で値を共有する。

  • エンジニアリング定数または調整可能なキャリブレーション パラメーターを表す。

  • パラメーター値をそのデータ型とその他のプロパティから分離する。

  • コード生成用のパラメーター データを構成する。

オブジェクトの Value プロパティにパラメーター値が格納されます。このオブジェクトをモデルで使用するには、ブロック パラメーターの値をオブジェクトの名前を含む式に設定します。式から Value プロパティを省略します。詳細については、パラメーター オブジェクトの使用を参照してください。

ブロック パラメーターの詳細については、ブロック パラメーター値の設定および生成されたコードによる内部信号、状態、パラメーター データの保存方法 (Simulink Coder)を参照してください。

Simulink.Parameter オブジェクトをモデル引数として設定するには、オブジェクトがモデル ワークスペースになければなりません。モデル エクスプローラーなどのダイアログ ボックスで、パラメーター オブジェクトに対して [引数] を選択します。詳細については、再利用可能な参照モデルのインスタンスのパラメーター化を参照してください。

メモ

モデル ワークスペース内の string 値をもつ Simulink.Parameter オブジェクトはモデル引数として構成できません。Simulink.Parameter 値としての string に対する制限事項の詳細については、Simulink の string の制限の「Simulink の string の制限」の Simulink.Parameter を参照してください。

作成

次の方法で Simulink.Parameter オブジェクトを作成します。

説明

paramObj = Simulink.Parameter は、既定のプロパティ値をもつ Simulink.Parameter オブジェクトを返します。

paramObj = Simulink.Parameter(paramValue)Simulink.Parameter オブジェクトを返し、Value プロパティを paramValue に初期化します。

プロパティ

すべて展開する

ブロック パラメーターで使用される値。次の有効な値のいずれかとして指定します。

Simulink.Parameter オブジェクトを使用して再利用可能な参照モデルでブロック パラメーター値を設定する場合、親モデル参照階層のどこかで明示的な値を提供する限り、オブジェクトの値を空のままにして (Value[] に設定)、モデルを参照モデルとしてコンパイルおよびシミュレートできます。この場合、モデルを直接シミュレートできません。値が空の場合、オブジェクトの DataType および Dimensions を指定しなければなりません。空の値を指定した場合でも、ソフトウェアは次のいずれかを使用して引き続き Value を合成します。

  • Max

  • Min (Max を指定しない場合)

  • 1 (MinMax も指定しない場合)

再利用可能な参照モデルのインスタンスのパラメーター化を参照してください。

MATLAB® 構文を使用して値を指定することもできます。

例の式説明
15.23

スカラー値を指定します

[3 4; 9 8]

行列を指定します

3+2i

複素数値を指定します

"Mystring"

string 値を指定します。

struct('A',20,'B',5)

2 つのフィールド A および B に倍精度値 20 および 5 を備えた構造体を指定します。

ブロック パラメーターを構造体に整理するか (関連するブロック パラメーター定義を構造体に整理を参照)、バス内の信号要素を初期化します (バス要素の初期条件の指定を参照)。

slexpr('myVar + myOtherVar')myVar + myOtherVar を指定します。myVarmyOtherVar は、MATLAB の他の変数またはパラメーター オブジェクトです。ソフトウェアは、この数学的関係をオブジェクトと変数の間で維持します。

Simulink.Parameter オブジェクトを使用して特定の数値データ型の値を保存するには、Value プロパティを使用して理想値を指定し、DataType プロパティを使用してデータ型を制御します。

single(32.5) のような型付き式を使用して Value プロパティを設定した場合、DataType プロパティは新しい型を反映するように変更されます。ベスト プラクティスは、入力しない式を使用して、特に固定小数点データ型の場合、量子化の繰り返しやデータ型の飽和よる数値誤差の累積を避けることです。

Simulink.Parameter オブジェクト Value を string または文字値として設定した場合、Value は MATLAB string として保存されます。Simulink.Parameter オブジェクト値としての string に対する制限事項については、Simulink の string の制限Simulink.Parameter を参照してください。

例: 3.15

例: "mystring"

例: 1.2 + 3.2i

例: true

例: myEnumType.myEnumValue

例: struct('field1',15,'field2',7.32)

例: slexpr('myVar + myOtherVar')

ヒント

  • Simulink.Parameter オブジェクトに保存する大きなベクトル、2 次元行列、または構造体をより簡単に編集するには、変数エディターを使用します。ワークスペース変数の作成、編集、管理を参照してください。

  • 3 次元以上の配列をモデル エクスプローラーなどを使用して対話形式で指定する場合、このプロパティは、関数 reshape への呼び出しを含む式として配列を表示します。配列の値を編集するには、reshape 呼び出しの最初の引数を変更します。この引数には配列のすべての値がシリアル化されたベクトルとして含まれています。次元に沿って要素を追加または削除する場合、変更された次元の長さを表す引数も修正しなければなりません。

データ型: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | struct | fi | enum | string
複素数のサポート: あり

この プロパティ は読み取り専用です。

パラメーター オブジェクトのコード生成に関する仕様。Simulink.CoderInfo オブジェクトとして返されます。

このプロパティに含まれる Simulink.CoderInfo オブジェクトのプロパティを変更します。

たとえば、Simulink.CoderInfo オブジェクトの StorageClass プロパティによって、Simulink® コード生成ツールボックスが生成されたコードのパラメーター オブジェクトにメモリを割り当てる方法が決まります。詳細については、C Data Code Interface Configuration for Model Interface Elements (Simulink Coder)および生成されたコードでのデータ表示を制御するストレージ クラスの選択 (Embedded Coder)を参照してください。

パラメーター オブジェクトのカスタムの説明。文字ベクトルとして指定します。このプロパティを使用して、アルゴリズムにおけるパラメーター オブジェクトの有意性をドキュメント化します。

Embedded Coder® ライセンスをお持ちの場合、生成されたコード内にこの説明をコメントとして表示するように構成できます。Simulink data object descriptions (Embedded Coder)を参照してください。

例: 'This parameter represents the maximum rotation speed of the engine.'

データ型: char | string

Value プロパティのパラメーター値のデータ型。'auto' または文字ベクトルとして指定します。モデルのシミュレーションまたはコードの生成を行うときに、ソフトウェアは指定されたデータ型に値をキャストします。

'auto' (既定の設定) を指定する場合、パラメーター オブジェクトはオブジェクトを使用するブロック パラメーターと同じデータ型を使用します。データ型の継承による保守労力の軽減を参照してください。

double の数値以外の値を使用して Value プロパティを設定する場合、オブジェクトは一般的に Value プロパティの値に基づいて DataType プロパティを設定します。たとえば、Value プロパティを int8(5) に設定すると、オブジェクトは DataType プロパティの値を 'int8' に設定します。

組み込みデータ型を明示的に指定するには (Simulink でサポートされているデータ型を参照)、次のいずれかのオプションを使用します。

  • 'double'

  • 'single'

  • 'half'

  • 'int8'

  • 'uint8'

  • 'int16'

  • 'uint16'

  • 'int32'

  • 'uint32'

  • 'int64'

  • 'uint64'

  • 'boolean'

  • 'string'

固定小数点データ型を指定するには、関数 fixdt を使用します。たとえば、'fixdt(1,16,5)' を指定します。

Simulink.AliasType オブジェクトまたは Simulink.NumericType オブジェクトを使用してモデル内でカスタム データ型を作成および共有するには、オブジェクトの名前を指定します。

列挙データ型を指定するには、Enum: が前に付いた型名を使用します。たとえば、'Enum: myEnumType' を指定します。

Simulink.ValueType オブジェクトをデータ型として指定するには、ValueType: が前に付いたオブジェクトの名前を使用します。たとえば、'ValueType: myValueType' を指定します。

構造体または構造体の配列をオブジェクトの Value プロパティに保存すると、オブジェクトは DataType プロパティを 'struct' に設定します。Simulink.Bus オブジェクトをデータ型として指定するには、Bus: が前に付いたバス オブジェクトの名前を使用します。たとえば、'Bus: myBusObject' を指定します。

Simulink.Parameter オブジェクト Value を string として設定した場合は、Simulink の string の制限の制限事項に留意してください。

Simulink.ValueType オブジェクトまたは Simulink.Bus オブジェクトをデータ型として指定する場合、Simulink.Parameter オブジェクトの一部のプロパティは無視されます。たとえば、Simulink.Parameter オブジェクトの MinMax、および Unit のプロパティは無視されます。代わりに、Simulink.ValueType オブジェクトまたは Simulink.Bus オブジェクトの Simulink.BusElement オブジェクトの対応するプロパティが使用されます。

例: 'auto'

例: 'int8'

例: 'fixdt(1,16,5)'

例: 'myAliasTypeObject'

例: 'string'

例: 'Enum: myEnumType'

例: 'ValueType: myValueType'

例: 'Bus: myBusObject'

ヒント

データ型を対話形式で編集する場合に [データ型アシスタント] を表示するには、[データ型アシスタントを表示] ボタン をクリックします。詳細については、データ型アシスタントを利用したデータ型の指定を参照してください。

データ型: char | string

オブジェクトの Value プロパティが保存できる最小値。実数の double のスカラーとして指定します。

既定値は空です。これは、パラメーター値に最小値がないことを意味しています。

Value プロパティに複素数を保存した場合、Min プロパティは実数部と虚数部に別々に適用されます。

Value が最小値よりも小さいか、最小値がオブジェクトのデータ型の範囲外である場合、警告が生成されます。ブロック線図を更新したり、シミュレーションを開始したりすると、エラーが生成されます。

このプロパティがどのように使用されるかの詳細については、ブロック パラメーターの最小値と最大値の指定を参照してください。

例: -0.92

依存関係

このプロパティの値は、次のいずれかのオプションが適用されている場合は無視されます。

  • Value で構造体が指定されている。

    構造体の最小値を指定するには、DataTypeSimulink.Bus オブジェクトに設定し、Simulink.Bus オブジェクトの対応する Simulink.BusElement オブジェクトを使用して各フィールドの最小値を指定します。パラメーター オブジェクトの作成によるフィールドのデータ型と特性の制御を参照してください。

  • DataTypeSimulink.ValueType オブジェクトまたは Simulink.Bus オブジェクトが指定されている。

    代わりに、Simulink.ValueType オブジェクトまたは Simulink.Bus オブジェクトの Simulink.BusElement オブジェクトで指定されている最小値が使用されます。

ヒント

固定小数点データ型のパラメーター オブジェクトについて、ダイアログ ボックスに整数格納の [最小値] プロパティが表示されます。これはパラメーターが取ることができる最小値で、整数格納値として指定されます。値は実際の最小値から派生します。

データ型: double

オブジェクトの Value プロパティが保存できる最大値。実数の double のスカラーとして指定します。

既定値は空です。これは、パラメーター値に最大値がないことを意味しています。

Value プロパティに複素数を保存した場合、Max プロパティは実数部と虚数部に別々に適用されます。

Value が最大値よりも大きいか、最大値がオブジェクトのデータ型の範囲外である場合、警告が生成されます。ブロック線図を更新したり、シミュレーションを開始したりすると、エラーが生成されます。

このプロパティがどのように使用されるかの詳細については、ブロック パラメーターの最小値と最大値の指定を参照してください。

例: 5.32

依存関係

このプロパティの値は、次のいずれかのオプションが適用されている場合は無視されます。

  • Value で構造体が指定されている。

    構造体の最大値を指定するには、DataTypeSimulink.Bus オブジェクトに設定し、Simulink.Bus オブジェクトの対応する Simulink.BusElement オブジェクトを使用して各フィールドの最大値を指定します。パラメーター オブジェクトの作成によるフィールドのデータ型と特性の制御を参照してください。

  • DataTypeSimulink.ValueType オブジェクトまたは Simulink.Bus オブジェクトが指定されている。

    代わりに、Simulink.ValueType オブジェクトまたは Simulink.Bus オブジェクトの Simulink.BusElement オブジェクトで指定されている最大値が使用されます。

ヒント

固定小数点データ型のパラメーター オブジェクトについて、ダイアログ ボックスに整数格納の [最大値] プロパティが表示されます。これはパラメーターが取ることができる最大値で、整数格納値として指定されます。値は実際の最大値から派生します。

データ型: double

パラメーター値の物理単位。有効な単位を記述する文字ベクトルとして指定します。詳細については、Simulink モデルでの単位の指定を参照してください。

例: 'degC'

依存関係

このプロパティの値は、DataTypeSimulink.ValueType オブジェクトまたは Simulink.Bus オブジェクトが指定されている場合は無視されます。代わりに、Simulink.ValueType オブジェクトまたは Simulink.Bus オブジェクトの Simulink.BusElement オブジェクトで指定されている単位が使用されます。

データ型: char | string

パラメーターの数値の実数/複素数。'real' または 'complex' のいずれかとして指定します。モデル ワークスペースの Simulink.Parameter オブジェクトの場合、このプロパティを使用してモデル引数の実数/複素数を構成します。再利用可能な参照モデルのインスタンスのパラメーター化を参照してください。

数値の場合、Value プロパティで指定したパラメーター値から実数/複素数が導出されます。この場合、実数/複素数を変更するとエラーになります。

依存関係

このプロパティの値は、次のいずれかのオプションが適用されている場合は無視されます。

  • Value で数式が指定されている。

  • Value で構造体が指定されている。

    構造体の実数/複素数を指定するには、DataTypeSimulink.Bus オブジェクトに設定し、Simulink.Bus オブジェクトの対応する Simulink.BusElement オブジェクトを使用して各フィールドの実数/複素数を指定します。パラメーター オブジェクトの作成によるフィールドのデータ型と特性の制御を参照してください。

  • DataTypeSimulink.ValueType オブジェクトまたは Simulink.Bus オブジェクトが指定されている。

    代わりに、Simulink.ValueType オブジェクトまたは Simulink.Bus オブジェクトの Simulink.BusElement オブジェクトで指定されている実数/複素数が使用されます。

Value プロパティに保存されている値の次元。行ベクトル、文字ベクトル、または string スカラーとして指定します。

オブジェクトの Value プロパティを設定すると、オブジェクトは Dimensions プロパティの値を double の行ベクトルに設定します。ベクトルは、関数 size によって返されるベクトルと同じです。

オブジェクトをモデルの引数として設定していて、親モデル参照階層の他の場所でオブジェクトの値を提供する場合、Value プロパティを空のままにして ([] に設定)、Dimensions プロパティおよび Data Type プロパティを明示的に設定できます。再利用可能な参照モデルのインスタンスのパラメーター化を参照してください。

シンボリック次元を使用するには、文字ベクトルを指定します。Implement Symbolic Dimensions for Array Sizes in Generated Code (Embedded Coder)を参照してください。

例: [1 3]

例: '[1 myDimParam]'

依存関係

  • このプロパティを有効にするには、Value が空 ([]) でなければなりません。それ以外の場合、Value プロパティから次元が導出されます。たとえば、値 [3 4;9 8] の次元は [2 2] です。

  • このプロパティの値は、DataTypeSimulink.ValueType オブジェクトが指定されている場合は無視されます。代わりに、Simulink.ValueType オブジェクトで指定されている次元が使用されます。

データ型: double | char | string

すべて折りたたむ

MATLAB コマンド ウィンドウで、Simulink.Parameter オブジェクトを作成します。

myParam = Simulink.Parameter;

Value プロパティに数値を代入します。

myParam.Value = 15.23;

パラメーターが取ることのできる最小値および最大値を Min プロパティと Max プロパティを使用して指定します。

myParam.Min = 10.11;
myParam.Max = 25.27;

新しい Simulink モデルを開きます。Gain ブロックを追加して [ゲイン] パラメーターを myParam に設定します。シミュレーション中に、[ゲイン] パラメーターの値として 15.23 が使用されます。

MATLAB コマンド ウィンドウで、値 2.52 を保存する Simulink.Parameter オブジェクトを作成します。

myParam = Simulink.Parameter(2.52);

オブジェクトの Value プロパティにアクセスすることで値を変更します。この手法により、オブジェクトの他のプロパティの値が保持されます。

myParam.Value = 1.13;

モデルのメンテナンスを軽減するには、DataType プロパティを既定値 auto のまま残します。パラメーター オブジェクトは、オブジェクトを使用するブロック パラメーターからデータ型を取得します。

モデル内で信号のデータ型またはその他のデータ型を変更するときに、データ型変更のリスクを軽減するには、パラメーター オブジェクトのデータ型を明示的に指定します。たとえば、パラメーター データをカスタム コードにエクスポートするコードを生成するときは、オブジェクトのデータ型を明示的に指定します。

MATLAB コマンド ウィンドウで、値 18.25 を保存する Simulink.Parameter オブジェクトを作成します。

myParam = Simulink.Parameter(18.25);

18.25 は、倍精度の浮動小数点データ型 double を備えた数値 18.25 を返します。Value プロパティは、数値 18.25 を倍精度で保存します。

DataType プロパティを使用して、単精度のデータ型 single を指定します。

myParam.DataType = 'single';

コードをシミュレーションまたは生成するときに、オブジェクトは Value プロパティの値 18.25DataType プロパティで指定されたデータ型 single にキャストします。

この例では、パラメーター オブジェクト myParam の値を 2 つの他の変数 myVarmyOtherVar の和に設定する方法を示します。この手法では、独立変数の値を変更すると、パラメーター オブジェクトの新しい値がすぐに計算されます。

2 つの独立変数を作成します。

myVar = 5.2;
myOtherVar = 9.8;

パラメーター オブジェクトを作成します。

myParam = Simulink.Parameter;

パラメーター オブジェクトの値を式 myVar + myOtherVar に設定します。

myParam.Value = slexpr('myVar + myOtherVar')

コードをシミュレーションまたは生成すると、式は 15 として評価されます。

バージョン履歴

R2006a より前に導入

すべて展開する