ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

Simulink.Parameter

ブロック パラメーターの値を保存、共有、構成する

説明

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

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

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

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

  • パラメーターの値をそのデータ型から分離する。

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

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

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

作成

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

説明

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

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

プロパティ

すべて展開する

Simulink.Parameter オブジェクトのプロパティ ダイアログ ボックスのプロパティの詳細については、Simulink.Parameter プロパティ ダイアログ ボックスを参照してください。

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

このプロパティは読み取り専用です。代わりに、このプロパティに含まれる Simulink.CoderInfo オブジェクトのプロパティを変更します。

たとえば、Simulink.CoderInfo オブジェクトの StorageClass プロパティによって、Simulink® コード生成ツールボックスが生成されたコードのパラメーター オブジェクトにメモリを割り当てる方法が決まります。詳細については、個別の信号、状態、およびパラメーター データ要素へのストレージ クラスの適用 (Simulink Coder)およびChoose Storage Class for Controlling Data Representation in Generated Code (Embedded Coder)を参照してください。

パラメーターの数値の実数/複素数。'real' として返されるか (値が実数の場合)、'complex' として返されます (値が複素数の場合)。Simulink によって、Value プロパティで指定するパラメーター値の実数/複素数が決まります。このプロパティは読み取り専用です。

データ型: char

Value プロパティで指定するパラメーター値のデータ型。モデルのシミュレーションまたはコードの生成を行うときに、Simulink は指定されたデータ型に値をキャストします。

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

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

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

  • 'double'

  • 'single'

  • 'int8'

  • 'uint8'

  • 'int16'

  • 'uint16'

  • 'int32'

  • 'uint32'

  • 'int64'

  • 'uint64'

  • 'boolean'

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

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

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

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

例: 'auto'

例: 'int8'

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

例: 'myAliasTypeObject'

例: 'Enum: myEnumType'

例: 'Bus: myBusObject'

データ型: char

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

Embedded Coder® をお持ちの場合、この説明を生成されたコード内でコメントとして表示するように構成することができます。Simulink データ オブジェクトの説明 (Simulink Coder)を参照してください。

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

データ型: char

Value プロパティに保存されている値の次元。行ベクトルとして返されるか、文字ベクトルとして指定します。

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

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

例: [1 3]

例: '[1 myDimParam]'

データ型: double | char

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

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

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

Value プロパティに構造体を保存した場合、オブジェクトは Max プロパティを無視します。代わりに、Simulink.Bus オブジェクトをパラメーター オブジェクトのデータ型として使用し、バス オブジェクトの要素を使用して各フィールドの最大値を指定します。パラメーター オブジェクトの作成によるフィールドのデータ型と特性の制御を参照してください。

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

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

例: 5.32

データ型: double

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

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

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

Value プロパティに構造体を保存した場合、オブジェクトは Min プロパティを無視します。代わりに、Simulink.Bus オブジェクトをパラメーター オブジェクトのデータ型として使用し、バス オブジェクトの要素を使用して各フィールドの最小値を指定します。パラメーター オブジェクトの作成によるフィールドのデータ型と特性の制御を参照してください。

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

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

例: -0.92

データ型: double

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

例: 'degC'

データ型: char

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

MATLAB® 構文を使用して、値を指定できます。

例の式説明
15.23

スカラー値を指定します

[3 4; 9 8]

行列を指定します

3+2i

複素数値を指定します

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

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

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

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

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

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

例: 3.15

例: single([3.15 1.23])

例: 1.2 + 3.2i

例: true

例: myEnumType.myEnumValue

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

例: slexpr('myVar + myOtherVar')

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

パラメーター オブジェクトを使用して [ゲイン] パラメーターの値を設定する

  1. コマンド プロンプトで、Simulink.Parameter オブジェクトを作成します。

    myParam = Simulink.Parameter;
    

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

    myParam.Value = 15.23;

  3. オブジェクトのプロパティを調整することによってブロック パラメーターのその他の特性を指定します。たとえば、パラメーターが取ることのできる最小値および最大値を指定するには、Min プロパティと Max プロパティを使用します。

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

  4. ブロックのダイアログ ボックスでパラメーターの値を myParam に指定します。たとえば、Gain ブロックのダイアログ ボックスで [ゲイン]myParam を指定します。

    シミュレーション中に、[ゲイン] パラメーターの値として 15.23 が使用されます。

パラメーター オブジェクトによって保存された値の変更

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

    myParam = Simulink.Parameter(2.52);

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

    myParam.Value = 1.13;

特定の数値データ型をもつパラメーター オブジェクトの作成

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

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

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

    myParam = Simulink.Parameter(18.25);

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

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

    myParam.DataType = 'single';

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

パラメーター値を数式に設定

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

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

    myVar = 5.2;
    myOtherVar = 9.8;

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

    myParam = Simulink.Parameter;

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

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

R2006a より前に導入