式の値を使用したパラメーター オブジェクトのコード生成
数式を使用した変数値の設定で説明するように、Simulink.Parameter
オブジェクトの値を、他の MATLAB® 変数またはパラメーター オブジェクトを伴う式に設定できます。このようなパラメーター オブジェクトを使用するモデルからコードを生成する場合、目標を達成するため、次の表の情報を使用してください。
目的 | 手法および詳細 |
---|---|
Embedded Coder® を使用しないでコードを生成する。 | 式を使用するパラメーター オブジェクトに対して、使用可能なストレージ クラスを適用します (モデル インターフェイス要素の C コード生成の構成を参照)。 式で使用されるパラメーター オブジェクトに対しては、ストレージ クラス |
グローバル変数を定義し、システム定数および他のマクロを伴う式を使用してそれを初期化するコードを生成する (Embedded Coder が必要)。 | システム定数または他のマクロからのパラメーター値の初期化 (Embedded Coder) (Embedded Coder)を参照してください。 |
値が他のマクロを伴う式であるマクロを定義するコードを生成する (Embedded Coder が必要)。 | 式を使用するパラメーター オブジェクトに対して、 式で使用されるパラメーター オブジェクトに対しては、インポートされたマクロを出力するストレージ クラスを適用します。たとえば、ストレージ クラス |
考慮事項と制限
コード生成を妨げるエラーを回避するには、
Auto
以外のストレージ クラスを (式をその値として使用する) 従属パラメーター オブジェクトに適用する場合、式で使用されるパラメーター オブジェクトでAuto
または生成されたコードにマクロを出力するストレージ クラスを使用しなければなりません。シンボリック次元を表すパラメーター オブジェクトの値 (Implement Symbolic Dimensions for Array Sizes in Generated Code (Embedded Coder)を参照) を式に設定することはできません。
Embedded Coder を使用すれば式を保持するコードを生成できますが、グローバル変数の値または従属パラメーター オブジェクトに対応するマクロを静的に初期化する目的に限ります。式の保持のガイドラインに従ってください。
式の保持
Embedded Coder を使用して生成されたコードで式を保持する場合、以下の制限とガイドラインに従ってください。
従属パラメーター オブジェクトは
Auto
以外のストレージ クラスを使用しなければなりません。たとえば、グローバル変数を生成し、式を使用してそれを初期化するには、ExportedGlobal
またはExportToFile
を使用します。式で使用されるパラメーター オブジェクトは以下でなければなりません。
生成されたコードで
Define
などのマクロを出力するストレージ クラスを使用する。式が演算子を使用する場合は、スカラーの実数値をもつ。
式は以下の演算子のみを使用できます (MATLAB 構文において)。
数学演算子:
+
、-
、*
関係演算子:
==
、~=
、<
、>
、<=
、>=
以下のデータ型のガイドラインが適用されます。
可能な場合、式で使用されるパラメーター オブジェクトで
DataType
プロパティを既定値auto
のままにします。auto
以外の値を使用するには、式を使用するオブジェクトのDataType
プロパティを同じ値に設定しなければなりません。そうしない場合、コード ジェネレーターは式を保持しません。複数の異なる式でパラメーター オブジェクトを使用し、従属パラメーター オブジェクトに異なるデータ型をもたせる場合は、独立したオブジェクトの
DataType
プロパティを既定値auto
のままにします。生成されたコードで、マクロの値は (有効なデータ型double
を使用して) 浮動小数点数で表され、各式の結果を型変換することにより、コードで従属パラメーターが初期化されます。