モデル階層のコンフィギュレーション パラメーターの設定
参照モデルは、コンフィギュレーション セットを、モデルが独立して実行された場合と同じように使用します。既定の設定では、階層内の個々のモデルにそれぞれコンフィギュレーション セットがあります。参照モデルをモデルの階層構造のコンテキストで開く場合は、[モデル設定] ボタンの矢印をクリックして、[参照モデル] の下の [モデル設定] を選択することで、そのコンフィギュレーション パラメーターにアクセスします。
個々のモデルが独自のコンフィギュレーション セットをもつことができるので、コンフィギュレーション パラメーターの値はモデルごとに異なる値にすることができます。さらに、パラメーターの値によっては、本来モデル参照に適しないものがあります。コンフィギュレーション パラメーターに矛盾するものや使用不可能なものがあった場合の Simulink® の反応は、次のようにそのパラメーターに依存します。
重要性の低い不一致や、リスクのない単純な解決策がある場合、Simulink は警告を出さずに、その矛盾を無視または解決します。
単純ではないけれども受け入れられる可能性のある解決策が存在する場合、Simulink は警告なしで矛盾を解決する、警告して解決する、またはエラーを発生する、という対応ができます。詳細については、アクセラレータ モードで無視される診断を参照してください。
受け入れ可能な解決策がない場合、Simulink はエラーを発生します。その場合は、問題を解決するためにパラメーター値を変更します。
コンフィギュレーション参照を使用したコンフィギュレーション パラメーターの管理
外部に保存されたコンフィギュレーション セットを複数のモデルに割り当てるには、コンフィギュレーション参照を使用できます。コンフィギュレーション参照は、コンフィギュレーション パラメーターの非互換性を解消するのに役立ちます。
最上位モデルのコンフィギュレーション参照を個々の参照モデルまたはモデルの階層構造内のすべての参照モデルに伝播することができます。例については、参照モデル間でコンフィギュレーションを共有するを参照してください。
すべての参照モデル シミュレーションに適用されるコンフィギュレーション要件
コンフィギュレーション パラメーター オプションの一部には、モデル階層で非互換性を生じる可能性のあるものがあります。可能な限り、Simulink はこれらの要件に対する違反を解決しますが、ほとんどの場合、一部またはすべてのモデルでパラメーターを変更する必要があります。
ダイアログ ボックス ペイン | オプション | 要件 |
---|---|---|
ソルバー | 開始時間 | 最上位モデルとすべての参照モデルのコンパイル済み開始時間は同じでなければなりません。 コンパイル済み開始時間は指定した開始時間の後の最初のシミュレーション ステップです。シミュレーション ステップはゼロから開始し、モデル内の最速離散レートのインクリメントです。 |
終了時間 | Simulink は最上位モデルの [終了時間] をシミュレーションで使用し、参照モデルに異なる [終了時間] があっても無視します。 | |
タイプ | 最上位モデルの [タイプ] と [ソルバー] が階層全体に適用されます。ソルバーの設定を参照してください。 | |
ソルバー | ||
データのインポート/エクスポート | 初期状態 | 最上位モデルではオンにできますが、参照モデルではオフにしなければなりません。 |
数学とデータ型 | アプリケーションのライフスパン (日) | コード生成の場合は、親モデルと参照モデルで設定が同じでなければなりません。 シミュレーションの場合は、この設定が親モデルと参照モデルを別個にすることもできます。 |
モデル参照 | 最上位モデルごとに可能なインスタンスの総数 | 参照モデルでこれを [0] にすることはできません。[複数] よりは [1] を指定した方が望ましい場合やそれが必要な場合もあります。モデルのインスタンス数の設定を参照してください。 |
[コード生成] 、 [最適化] | 既定のパラメーター動作 | このオプションが親モデルで [インライン] に設定されている場合、参照モデルで [調整可能] に設定することはできません。 |
ソルバーの設定
モデル参照は固定ステップ ソルバーでも可変ステップ ソルバーでも機能します。モデルの階層構造内のすべてのモデルが最上位モデルに指定されているソルバーと同じソルバーを使用します。最上位モデルに指定されているソルバー タイプと互換性のないソルバー タイプが指定されている参照モデルがある場合、エラーが発生します。
最上位モデルのソルバー タイプ | 参照モデルのソルバー タイプ | 互換性 |
---|---|---|
固定ステップ | 固定ステップ | あり |
可変ステップ | 可変ステップ | あり |
可変ステップ | 固定ステップ | あり。ただし、参照モデルがマルチレートで連続サンプル時間と離散サンプル時間の両方を指定している場合は互換性がありません。 |
固定ステップ | 可変ステップ | エラー |
最上位のモデルのソルバーと参照モデルのソルバーとの間に互換性がない場合、一方または両方のモデルを変更して互換性のあるソルバーが使用されるようにしなければなりません。ソルバーの詳細は、ソルバーの比較とソルバーの選択基準を参照してください。
モデルのインスタンス数の設定
参照モデルにはそれが参照可能であることが指定されていなければなりません。さらに、参照が 1 回だけ許可されるのか、複数インスタンスが許可されるのかも指定しなければなりません。これは、[最上位モデルごとに可能なインスタンスの総数] パラメーターで指定します。このパラメーターの可能な値は次のとおりです。
0
— このモデルは参照できません。他のモデルから参照されるとエラーが発生します。1
— モデルの階層構造内で 1 回しか参照できません。モデルのインスタンスが 1 つを超えるとエラーが発生します。この値が望ましい場合や要求される場合があります。複数
— 複数の参照を妨げるような構成がモデルに含まれていない場合は、モデルの階層構造内でそのモデルを複数回参照できます。参照が複数回できないようになっている場合、1 回しか参照されていなくてもエラーが発生します。
1 回しか参照されないモデルで、[最上位モデルごとに可能なインスタンスの総数] を [複数]
に設定すると、実行効率性がわずかに落ちます。ただし、シミュレーションや Simulink Coder™ によって生成されたコードを実行した結果のデータ値には影響しません。モデルのインスタンスが 1 つしかないときでも [複数]
を指定しておくと、次のような場合にモデルを変更またはリビルドする必要がありません。
同じ階層内でそのモデルを再利用する場合
別の階層内で複数回使用する場合
モデルのプロパティや構成によっては、[最上位モデルごとに可能なインスタンスの総数] を [1]
に設定するよう要求されます。詳細については、モデルの再利用を参照してください。
アクセラレータ モードで無視される診断
アクセラレータ モードで参照されるモデルの場合、Simulink は、以下のコンフィギュレーション パラメーター設定の値が [なし]
以外の値に設定されている場合、これらの値を無視します。
配列範囲の超過 (
ArrayBoundsChecking
)Inf または NaN のブロックの出力 (
SignalInfNanChecking
)シミュレーション範囲のチェック (
SignalRangeChecking
)特異値行列による除算 (
CheckMatrixSingularityMsg
)オーバーフロー時にラップ (
IntegerOverflowMsg
)
また、アクセラレータ モードで参照されるモデルの場合、Simulink は、次の [コンフィギュレーション パラメーター] 、 [診断] 、 [データ有効性] 、 [Data Store Memory ブロック] パラメーターが [すべて無効]
以外の値に設定されている場合、それらの値を無視します。詳細については、データ ストア診断を参照してください。
書き込み前の読み取りを検出 (
ReadBeforeWriteMsg
)読み取り後の書き込みを検出 (
WriteAfterReadMsg
)書き込み後の書き込みを検出 (
WriteAfterWriteMsg
)
アクセラレータ モードでのモデル参照シミュレーション中に、Simulink では、いくつかの [コンフィギュレーション パラメーター] 、 [診断] 、 [データ有効性] パラメーター設定が [警告]
または [エラー]
に設定されている場合、それらを一時的に [なし]
に設定します。モデル アドバイザーを使用して、変更するパラメーターがあるかどうか確認できます。詳細については、アクセラレータ モードで無視される診断を参照してください。
モデル アドバイザーを使用して、上記にリストされているコンフィギュレーション パラメーターが Simulink で無視される、アクセラレータ モードで参照されるモデルを特定できます。
[モデル化] タブで [モデル アドバイザー] をクリックします。
最上位モデルを選択し、[OK] をクリックします。
[タスク別] 、 [モデル参照] 、 [高速化されたモデル参照シミュレーション中に無視された診断設定をチェック] を選択します。
[このチェックを実行] ボタンをクリックします。
警告またはエラーを生成するように設定された、指定の診断を実行した結果を表示するには、モデルをノーマル モードでシミュレートします。診断の警告を検査し、アクセラレータ モードでシミュレートします。
メモ
[コンフィギュレーション パラメーター] ダイアログ ボックスの [コード生成] ペインのコンフィギュレーション パラメーターは、ノーマル モードでもアクセラレータ モードでもシミュレーションに影響しません。[コード生成] のパラメーターは、Simulink Coder 自体によるコードの生成にしか影響しません。アクセラレータ モードのシミュレーションでは、シミュレーション ターゲットを生成するためにコード生成が行われます。ターゲットの生成ではすべての [コード生成] パラメーターで既定値が使用され、Simulink はコードの生成が終了した後、元のパラメーター値を復元します。