Main Content

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

モデルの階層構造のコード生成のためのコンフィギュレーション パラメーターの設定

モデル参照の階層は、このトピックで説明するように、各種の Simulink® Coder™ 要件を満たさなければなりません。Simulink Coder ソフトウェアで処理するモデル参照階層は、以下の要件を満たさなければなりません。

コンフィギュレーション パラメーターの要件

参照モデルは最上位モデル同様、コンフィギュレーション セットを使用します。既定の設定では、階層にあるすべてのモデルにはそれ独自のコンフィギュレーション セットがあります。使用方法は、モデルを非依存的に実行した場合と同じです。

個々のモデルが独自のコンフィギュレーション セットをもつことができるので、コンフィギュレーション パラメーターの値はモデルごとに異なる値にすることができます。さらに、パラメーターの値によっては、本来モデル参照に適しないものがあります。矛盾していたり、使用不可能なコンフィギュレーション パラメーターに対するコード ジェネレーターの反応は、以下のようにそのパラメーターに依存します。

  • パラメーターの矛盾が重大なものでない場合、コード ジェネレーターは警告を出さずに、その矛盾を無視または解決します。

  • 矛盾のあるパラメーターについて、単純ではないけれども受け入れられる可能性のある解決策が存在する場合、コード ジェネレーターは、警告なしで矛盾を解決する、警告して解決する、またはエラーを発生させる、という対応をします。

  • 受け入れ可能な解決策がない場合、コード ジェネレーターはエラーを発生させます。その場合は、問題を解決するためにパラメーター値を変更しなければなりません。

モデル参照の階層に矛盾したパラメーター値をもつ参照モデルが多数ある場合、または、パラメーター値の変更を多数の参照モデルに伝播しなければならない場合、コンフィギュレーション パラメーターの矛盾を手作業で取り除こうとすると時間がかかります。そのような手間を削減するために、コンフィギュレーション参照を使用して外部に保管されているコンフィギュレーション セットを複数のモデルに割り当てることができます。詳細については、コンフィギュレーションの複数のモデル間での共有を参照してください。

個別のモデルを変更することなくモデル参照階層のコード生成ターゲットを選択するには、Simulink データ ディクショナリでコンフィギュレーション参照を使用します。詳細については、コンフィギュレーション参照を使用したコード生成ターゲットの選択を参照してください。

以下の表は、当該設定方法の場合または参照モデルでの設定が親モデルと異なる場合には、問題が発生するコンフィギュレーション パラメーターを示しています。可能な場合には、コード ジェネレーターはこれらの要件の違反を解決しますが、多くの場合、モデルでパラメーターを変更する必要が生じます。

システム ターゲット ファイルが付いたモデル参照のコンフィギュレーション要件

ダイアログ ボックス ペインオプション要件
ソルバー開始時間システム ターゲット ファイルによっては、開始時間を 0 にすることが必要です。
固定ステップ シミュレーションでゼロクロッシング検出を有効にする

コード生成では、設定は親と参照モデルとで同じになっていなければなりません。

数学とデータ型

アプリケーションのライフスパン (日)

コード生成では、設定は親と参照モデルとで同じになっていなければなりません。

ハードウェア実行

すべてのオプション

値は最上位モデルと参照モデルで同じになっていなければなりません。

コード生成

システム ターゲット ファイル

最上位のモデルと参照モデルとで同じになっていなければなりません。

言語最上位のモデルと参照モデルとで同じになっていなければなりません。
コード生成のみ

最上位のモデルと参照モデルとで同じになっていなければなりません。

最適化

既定のパラメーター動作親モデルでこのパラメーターが Inlined に設定されている場合、親モデルはパラメーターを Tunable に設定する参照モデルをサポートしません。

識別子

識別子の最大の長さ

参照モデルは、親モデルより長くならないようにしなければなりません。

インターフェイス

コード置換ライブラリ

最上位のモデルと参照モデルとで同じになっていなければなりません。

ASAP2 インターフェイス

最上位モデルでは、[オン][オフ] も可能ですが、参照モデルでは [オフ] にしなければなりません。[オフ] でない場合、コード ジェネレーターは、コード生成時に一時的にそれを [オフ] に設定します。

ERT システム ターゲット ファイルが付いたモデル参照のコンフィギュレーション要件 (Embedded Coder が必要)

ダイアログ ボックス ペインオプション要件

識別子

グローバル変数
グローバルなタイプ
サブシステムのメソッド
ローカルな一時変数
定数のマクロ
$R トークンが含まれていなければなりません。

信号名

最上位のモデルと参照モデルとで同じになっていなければなりません。

M-function指定した場合、最上位のモデルと参照モデルとで同じになっていなければなりません。

パラメーターの命名

最上位のモデルと参照モデルとで同じになっていなければなりません。

#define 定義名

最上位のモデルと参照モデルとで同じになっていなければなりません。

インターフェイス

カスタム ストレージ クラスを無視する

最上位のモデルと参照モデルとで同じになっていなければなりません。

サポート: 浮動小数点数

最上位のモデルと参照モデルとで同じになっていなければなりません。

サポート: 非有限数

最上位モデルで [オフ] の場合、参照モデルで [オフ] にしなければなりません。

サポート: 複素数

最上位モデルで [オフ] の場合、参照モデルで [オフ] にしなければなりません。

リアルタイム モデル データ構造のエラー ステータス フィールドを削除

最上位モデルで [オン] の場合、参照モデルで [オン] にならなければなりません。

コード配置

データ定義の配置にデータ オブジェクトからオーナーを使用する

最上位のモデルと参照モデルとで同じになっていなければなりません。

信号表示レベル

最上位のモデルと参照モデルとで同じになっていなければなりません。

パラメーター調整レベル

最上位のモデルと参照モデルとで同じになっていなければなりません。

コードの生成時に変更されるコンフィギュレーション パラメーター

参照モデルで、次の [コンフィギュレーション パラメーター][コード生成][識別子] パラメーターに $R トークン (参照モデルの名前を表す) を含まない設定が行われている場合、コード生成により $R トークンが識別子の書式の先頭に付加されます。

  • グローバル変数 (CustomSymbolStrGlobalVar)

  • グローバルなタイプ (CustomSymbolStrType)

  • サブシステムのメソッド (CustomSymbolStrFcn)

  • 定数のマクロ (CustomSymbolStrMacro)

モデル アドバイザーを使用して、コード生成によってコンフィギュレーション パラメーター設定が変更されるモデルを、モデル参照階層において特定します。

  1. Simulink エディターで、[モデル化] タブから [モデル アドバイザー] を選択します。

  2. [タスク別][モデル参照] を展開します。

  3. [モデル参照に使用されているコード生成識別子の書式をチェック] チェックを実行します。

生成されたコードで機能するスクリプトが、コード生成により変更される識別子の形式を使用している場合は、更新された識別子の形式 (追加された $R トークンが含まれる) を使用するようにスクリプトを更新します。

識別子の詳細については、Identifier Format Controlを参照してください。

名前付けの要件

参照モデルを使用するモデル内で、所属するモデルの名前を競合させることはできません。モデル参照を使用するモデルからコードを生成する場合、[識別子の最大の長さ] パラメーターは、ルート モデル名および名前マングリング テキストに対応できる大きさでなければなりません。[識別子の最大の長さ] が不十分だと、コード生成エラーが発生します。

上位レベル モデルの範囲内のシンボルと参照モデル範囲内のシンボル間で名前の競合が発生すると、参照モデルのシンボルが保持されます。コード ジェネレーターは、上位レベルのモデルからのシンボルに対して名前マングリングを行います。

Embedded Coder の名前付けの要件

Embedded Coder® 製品によって、生成されるシンボルの形式をかなり詳細に制御できます。モデル参照を使用するモデルから ERT ターゲットを使用してコードを生成する場合、以下を実行します。

  • ($M トークンに加えて) $R トークンは、[共有ユーティリティ識別子の形式] を除き、[識別子の書式の制御] パラメーター仕様に含まれていなければなりません。

  • [識別子の最大の長さ] は、$R トークンと $M トークンの拡張を格納するのに十分な大きさでなければなりません。

詳細については、モデル コンフィギュレーション パラメーター: コード生成識別子を参照してください。

カスタム ターゲットの要件

Embedded Coder がある場合は、カスタム ターゲットは、モデル参照をサポートするために様々な要件を満たさなければなりません。詳細については、モデル参照のサポートを参照してください。

その他の考慮事項

[モデル参照] ペインの [代数ループの発生の最小化] パラメーターを選択すると、代数ループの発生を最小限に抑えることができます。このオプションの設定は、モデルからのコードの生成にのみ影響します。直達の詳細については、代数ループの概念を参照してください。

モデルのブロックで [整数丸めモード] パラメーターを使用して、モデルから生成されるコードをコンパイルする C コンパイラの丸め動作をシミュレートします。この設定は、Product, Matrix Multiply ブロックや n-D Lookup Table ブロックなど、符号付き整数演算を実行できるブロックのパラメーター ダイアログ ボックスの [信号属性] ペインに表示されます。

ほとんどのブロックでは、[整数丸めモード] の値によって丸め動作が完全に定義されます。固定小数点データと Simplest 丸めモードをサポートするブロックでは、[符号付き整数の除算の丸め] の値も丸め動作に影響を及ぼします。詳細については、丸め (Fixed-Point Designer)を参照してください。

関連するトピック