Main Content

式の値を使用したパラメーター オブジェクトのコード生成

数式を使用した変数値の設定で説明するように、Simulink.Parameter オブジェクトの値を、他の MATLAB® 変数またはパラメーター オブジェクトを伴う式に設定できます。このようなパラメーター オブジェクトを使用するモデルからコードを生成する場合、目標を達成するため、次の表の情報を使用してください。

目的手法および詳細

Embedded Coder® を使用しないでコードを生成する。

式を使用するパラメーター オブジェクトに対して、使用可能なストレージ クラスを適用します (C Data Code Interface Configuration for Model Interface Elementsを参照)。

式で使用されるパラメーター オブジェクトに対しては、ストレージ クラス Auto のみを適用します。

グローバル変数を定義し、システム定数および他のマクロを伴う式を使用してそれを初期化するコードを生成する (Embedded Coder が必要)。

システム定数または他のマクロからのパラメーター値の初期化 (Embedded Coder) (Embedded Coder)を参照してください。

値が他のマクロを伴う式であるマクロを定義するコードを生成する (Embedded Coder が必要)。

式を使用するパラメーター オブジェクトに対して、Define などのマクロを生成されたコードに出力するストレージ クラスを適用します (マクロ定義 (#define) (Embedded Coder)を参照)。

式で使用されるパラメーター オブジェクトに対しては、インポートされたマクロを出力するストレージ クラスを適用します。たとえば、ストレージ クラス ImportedDefine を使用します。外部コードでこれらのマクロを定義しなければなりません。

考慮事項と制限

  • コード生成を妨げるエラーを回避するには、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 を使用して) 浮動小数点数で表され、各式の結果を型変換することにより、コードで従属パラメーターが初期化されます。

参考

関連するトピック