Simulink.Parameter
パラメーター値の保存、共有、構成
説明
Simulink.Parameter
オブジェクトを作成し、モデル内の 1 つ以上のブロック パラメーターの値を設定します (Gain ブロックの [ゲイン] パラメーターなど)。ワークスペースまたはデータ ディクショナリでオブジェクトを作成します。パラメーター値をオブジェクトに設定して、ブロックからオブジェクトを参照します。
Simulink.Parameter
オブジェクトを使用して、以下を行います。
複数のブロック パラメーター間で値を共有する。
エンジニアリング定数または調整可能なキャリブレーション パラメーターを表す。
パラメーター値をそのデータ型とその他のプロパティから分離する。
コード生成用のパラメーター データを構成する。
オブジェクトの Value
プロパティにパラメーター値が格納されます。このオブジェクトをモデルで使用するには、ブロック パラメーターの値をオブジェクトの名前を含む式に設定します。式から Value
プロパティを省略します。詳細については、パラメーター オブジェクトの使用を参照してください。
ブロック パラメーターの詳細については、ブロック パラメーター値の設定および生成されたコードによる内部信号、状態、パラメーター データの保存方法 (Simulink Coder)を参照してください。
Simulink.Parameter
オブジェクトをモデル引数として設定するには、オブジェクトがモデル ワークスペースになければなりません。モデル エクスプローラーなどのダイアログ ボックスで、パラメーター オブジェクトに対して [引数] を選択します。詳細については、再利用可能な参照モデルのインスタンスのパラメーター化を参照してください。
メモ
モデル ワークスペース内の string 値をもつ Simulink.Parameter
オブジェクトはモデル引数として構成できません。Simulink.Parameter
値としての string に対する制限事項の詳細については、Simulink の string の制限の Simulink.Parameter
を参照してください。
作成
次の方法で Simulink.Parameter
オブジェクトを作成します。
直接ブロック ダイアログ ボックスまたはプロパティ インスペクターから。ワークスペース変数の作成、編集、管理を参照してください。
モデル データ エディターを使用する。[パラメーター] タブを検査します。変数を含む行を右クリックし、コンテキスト メニューから [パラメーター オブジェクトに変換] を選択します。
モデル エクスプローラーを使用する。組み込みのデータ クラス パッケージ Simulink からのデータ オブジェクトの作成を参照してください。
以下で説明する関数
Simulink.Parameter
を使用する。
プロパティ
Value
— ブロック パラメーターで使用される値
[]
(既定値) | 数値 | boolean | enum | 構造体 | スカラー | 配列 | 文字の値 | string | <数式>
ブロック パラメーターで使用される値。次の有効な値のいずれかとして指定します。
数値
ブール値
列挙型のインスタンス
構造体
スカラーまたは配列
数式 (数式を使用した変数値の設定を参照)
Simulink.Parameter
オブジェクトを使用して再利用可能な参照モデルでブロック パラメーター値を設定する場合、親モデル参照階層のどこかで明示的な値を提供する限り、オブジェクトの値を空のままにして (Value
を []
に設定)、モデルを参照モデルとしてコンパイルおよびシミュレートできます。この場合、モデルを直接シミュレートできません。値が空の場合、オブジェクトの DataType
および Dimensions
を指定しなければなりません。空の値を指定した場合でも、ソフトウェアは次のいずれかを使用して引き続き Value
を合成します。
Max
Min
(Max
を指定しない場合)1
(Min
もMax
も指定しない場合)
再利用可能な参照モデルのインスタンスのパラメーター化を参照してください。
MATLAB® 構文を使用して値を指定することもできます。
例の式 | 説明 |
---|---|
15.23 | スカラー値を指定します |
[3 4; 9 8] | 行列を指定します |
3+2i | 複素数値を指定します |
"Mystring" | string 値を指定します。 |
struct('A',20,'B',5) | 2 つのフィールド ブロック パラメーターを構造体に整理するか (関連するブロック パラメーター定義を構造体に整理を参照)、バス内の信号要素を初期化します (バス要素の初期条件の指定を参照)。 |
slexpr('myVar + myOtherVar') | 式 myVar + myOtherVar を指定します。myVar と myOtherVar は、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
複素数のサポート: あり
CoderInfo
— パラメーター オブジェクトのコード生成に関する仕様
Simulink.CoderInfo
オブジェクト
この プロパティ は読み取り専用です。
パラメーター オブジェクトのコード生成に関する仕様。Simulink.CoderInfo
オブジェクトとして返されます。
このプロパティに含まれる Simulink.CoderInfo
オブジェクトのプロパティを変更します。
たとえば、Simulink.CoderInfo
オブジェクトの StorageClass
プロパティによって、Simulink® コード生成ツールボックスが生成されたコードのパラメーター オブジェクトにメモリを割り当てる方法が決まります。詳細については、C Data Code Interface Configuration for Model Interface Elements (Simulink Coder)および生成されたコードでのデータ表示を制御するストレージ クラスの選択 (Embedded Coder)を参照してください。
Description
— パラメーター オブジェクトのカスタムの説明
''
(既定値) | 文字ベクトル | string スカラー
パラメーター オブジェクトのカスタムの説明。文字ベクトルとして指定します。このプロパティを使用して、アルゴリズムにおけるパラメーター オブジェクトの有意性をドキュメント化します。
Embedded Coder® ライセンスをお持ちの場合、生成されたコード内にこの説明をコメントとして表示するように構成できます。Simulink data object descriptions (Embedded Coder)を参照してください。
例: 'This parameter represents the maximum rotation speed of the engine.'
データ型: char
| string
DataType
— パラメーター値のデータ型
'auto'
(既定値) | 文字ベクトル | 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
オブジェクトの Min
、Max
、および Unit
のプロパティは無視されます。代わりに、Simulink.ValueType
オブジェクトまたは Simulink.Bus
オブジェクトの Simulink.BusElement
オブジェクトの対応するプロパティが使用されます。
例: 'auto'
例: 'int8'
例: 'fixdt(1,16,5)'
例: 'myAliasTypeObject'
例: 'string'
例: 'Enum: myEnumType'
例: 'ValueType: myValueType'
例: 'Bus: myBusObject'
ヒント
データ型を対話形式で編集する場合に [データ型アシスタント] を表示するには、[データ型アシスタントを表示] ボタン をクリックします。詳細については、データ型アシスタントを利用したデータ型の指定を参照してください。
データ型: char
| string
Min
— パラメーターの最小値
[]
(既定値) | 実数の double
のスカラー
オブジェクトの Value
プロパティが保存できる最小値。実数の double
のスカラーとして指定します。
既定値は空です。これは、パラメーター値に最小値がないことを意味しています。
Value
プロパティに複素数を保存した場合、Min
プロパティは実数部と虚数部に別々に適用されます。
Value
が最小値よりも小さいか、最小値がオブジェクトのデータ型の範囲外である場合、警告が生成されます。ブロック線図を更新したり、シミュレーションを開始したりすると、エラーが生成されます。
このプロパティがどのように使用されるかの詳細については、ブロック パラメーターの最小値と最大値の指定を参照してください。
例: -0.92
依存関係
このプロパティの値は、次のいずれかのオプションが適用されている場合は無視されます。
Value
で構造体が指定されている。構造体の最小値を指定するには、
DataType
をSimulink.Bus
オブジェクトに設定し、Simulink.Bus
オブジェクトの対応するSimulink.BusElement
オブジェクトを使用して各フィールドの最小値を指定します。パラメーター オブジェクトの作成によるフィールドのデータ型と特性の制御を参照してください。DataType
でSimulink.ValueType
オブジェクトまたはSimulink.Bus
オブジェクトが指定されている。代わりに、
Simulink.ValueType
オブジェクトまたはSimulink.Bus
オブジェクトのSimulink.BusElement
オブジェクトで指定されている最小値が使用されます。
ヒント
固定小数点データ型のパラメーター オブジェクトについて、ダイアログ ボックスに整数格納の [最小値] プロパティが表示されます。これはパラメーターが取ることができる最小値で、整数格納値として指定されます。値は実際の最小値から派生します。
データ型: double
Max
— パラメーターの最大値
[]
(既定値) | 実数の double
のスカラー
オブジェクトの Value
プロパティが保存できる最大値。実数の double
のスカラーとして指定します。
既定値は空です。これは、パラメーター値に最大値がないことを意味しています。
Value
プロパティに複素数を保存した場合、Max
プロパティは実数部と虚数部に別々に適用されます。
Value
が最大値よりも大きいか、最大値がオブジェクトのデータ型の範囲外である場合、警告が生成されます。ブロック線図を更新したり、シミュレーションを開始したりすると、エラーが生成されます。
このプロパティがどのように使用されるかの詳細については、ブロック パラメーターの最小値と最大値の指定を参照してください。
例: 5.32
依存関係
このプロパティの値は、次のいずれかのオプションが適用されている場合は無視されます。
Value
で構造体が指定されている。構造体の最大値を指定するには、
DataType
をSimulink.Bus
オブジェクトに設定し、Simulink.Bus
オブジェクトの対応するSimulink.BusElement
オブジェクトを使用して各フィールドの最大値を指定します。パラメーター オブジェクトの作成によるフィールドのデータ型と特性の制御を参照してください。DataType
でSimulink.ValueType
オブジェクトまたはSimulink.Bus
オブジェクトが指定されている。代わりに、
Simulink.ValueType
オブジェクトまたはSimulink.Bus
オブジェクトのSimulink.BusElement
オブジェクトで指定されている最大値が使用されます。
ヒント
固定小数点データ型のパラメーター オブジェクトについて、ダイアログ ボックスに整数格納の [最大値] プロパティが表示されます。これはパラメーターが取ることができる最大値で、整数格納値として指定されます。値は実際の最大値から派生します。
データ型: double
Unit
— パラメーター値の物理単位
''
(既定値) | 文字ベクトル | string スカラー
パラメーター値の物理単位。有効な単位を記述する文字ベクトルとして指定します。詳細については、Simulink モデルでの単位の指定を参照してください。
例: 'degC'
依存関係
このプロパティの値は、DataType
で Simulink.ValueType
オブジェクトまたは Simulink.Bus
オブジェクトが指定されている場合は無視されます。代わりに、Simulink.ValueType
オブジェクトまたは Simulink.Bus
オブジェクトの Simulink.BusElement
オブジェクトで指定されている単位が使用されます。
データ型: char
| string
Complexity
— パラメーターの数値の実数/複素数
'real'
(既定値) | 'complex'
パラメーターの数値の実数/複素数。'real'
または 'complex'
のいずれかとして指定します。モデル ワークスペースの Simulink.Parameter
オブジェクトの場合、このプロパティを使用してモデル引数の実数/複素数を構成します。再利用可能な参照モデルのインスタンスのパラメーター化を参照してください。
数値の場合、Value
プロパティで指定したパラメーター値から実数/複素数が導出されます。この場合、実数/複素数を変更するとエラーになります。
依存関係
このプロパティの値は、次のいずれかのオプションが適用されている場合は無視されます。
Value
で数式が指定されている。Value
で構造体が指定されている。構造体の実数/複素数を指定するには、
DataType
をSimulink.Bus
オブジェクトに設定し、Simulink.Bus
オブジェクトの対応するSimulink.BusElement
オブジェクトを使用して各フィールドの実数/複素数を指定します。パラメーター オブジェクトの作成によるフィールドのデータ型と特性の制御を参照してください。DataType
でSimulink.ValueType
オブジェクトまたはSimulink.Bus
オブジェクトが指定されている。代わりに、
Simulink.ValueType
オブジェクトまたはSimulink.Bus
オブジェクトのSimulink.BusElement
オブジェクトで指定されている実数/複素数が使用されます。
Dimensions
— パラメーター値の次元
[0 0]
(既定値) | 行ベクトル | 文字ベクトル | string スカラー
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]
です。このプロパティの値は、
DataType
でSimulink.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.25
を DataType
プロパティで指定されたデータ型 single
にキャストします。
パラメーター値を数式に設定
この例では、パラメーター オブジェクト myParam
の値を 2 つの他の変数 myVar
と myOtherVar
の和に設定する方法を示します。この手法では、独立変数の値を変更すると、パラメーター オブジェクトの新しい値がすぐに計算されます。
2 つの独立変数を作成します。
myVar = 5.2; myOtherVar = 9.8;
パラメーター オブジェクトを作成します。
myParam = Simulink.Parameter;
パラメーター オブジェクトの値を式 myVar + myOtherVar
に設定します。
myParam.Value = slexpr('myVar + myOtherVar')
コードをシミュレーションまたは生成すると、式は 15
として評価されます。
バージョン履歴
R2006a より前に導入R2023b: Simulink.ValueType
オブジェクトは親の記述をオーバーライドしない
Simulink.ValueType
オブジェクトを Simulink.Parameter
オブジェクトのデータ型として指定した場合、値の型のオブジェクトは Simulink.Parameter
オブジェクトの記述をオーバーライドしなくなります。
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)