Main Content

モデル階層のコンフィギュレーション パラメーターの設定

参照モデルは、コンフィギュレーション セットを、モデルが独立して実行された場合と同じように使用します。既定の設定では、階層内の個々のモデルにそれぞれコンフィギュレーション セットがあります。個々のモデルが独自のコンフィギュレーション セットをもつことができるので、コンフィギュレーション パラメーターの値はモデルごとに異なる値にすることができます。

パラメーターの値によっては、本来モデル参照に適さないものがあります。コンフィギュレーション パラメーターに矛盾するものや使用不可能なものがあった場合の応答は、そのパラメーターに依存します。

  • 重要性の低い不一致や、リスクのない単純な解決策がある場合、警告を出さずに、その矛盾が無視または解決されます。

  • 単純ではないけれども受け入れられる可能性のある解決策が存在する場合、警告なしで競合が解決されるか、警告して解決されるか、またはエラーが出されます。詳細については、アクセラレータ モードで無視される診断を参照してください。

  • 受け入れ可能な解決策がない場合、エラーが出されます。

コンフィギュレーション参照を使用したコンフィギュレーション パラメーターの管理

外部に保存されたコンフィギュレーション セットを複数のモデルに割り当てるには、コンフィギュレーション参照を使用できます。コンフィギュレーション参照は、コンフィギュレーション パラメーターの非互換性を解消するのに役立ちます。

最上位モデルのコンフィギュレーション参照を個々の参照モデルまたはモデルの階層構造内のすべての参照モデルに伝播することができます。例については、参照モデル間でコンフィギュレーションを共有するを参照してください。

モデル参照階層のシミュレーションにおけるコンフィギュレーション要件の確認

コンフィギュレーション パラメーター設定の一部には、モデルの階層構造で非互換性を生じる可能性のあるものがあります。可能な限り、これらの要件に対する違反は解決されますが、ほとんどの場合、一部またはすべてのモデルでパラメーターを変更する必要があります。

次の表では、モデル参照階層のシミュレーションにおけるコンフィギュレーション パラメーター要件を示します。コード生成要件については、モデルの階層構造のコード生成のためのコンフィギュレーション パラメーターの設定 (Simulink Coder)を参照してください。

ダイアログ ボックス ペインコンフィギュレーション パラメーター要件
ソルバー開始時間

最上位モデルとすべての参照モデルのコンパイル済み開始時間は同じでなければなりません。

コンパイル済み開始時間が、ソルバーでシミュレーションに使用される開始時間です。多くの場合、コンパイル済み開始時間値は、[開始時間] パラメーターを使用して指定した値に一致します。固定ステップ ソルバーを使用していて、指定した開始時間が 0 でもシミュレーションの固定ステップ サイズの整数倍でもない場合、ソルバーは、時間を先に進め、固定ステップ サイズの最も近い整数倍としてコンパイル済み開始時間を決定します。

終了時間

最上位モデルの終了時間がシミュレーションで使用され、参照モデルに異なる終了時間があっても無視されます。

タイプ

ローカル ソルバーを使用している参照モデルが階層内に存在しない場合、階層全体で最上位モデルのソルバー タイプが適用されます。互換性をチェックするには、互換性のあるソルバーの設定の指定を参照してください。

ローカル ソルバーを使用するように 1 つ以上の参照モデルを構成した場合、以下のようになります。

  • 最上位ソルバーのタイプは可変ステップまたは固定ステップのいずれかにすることができます。

  • ローカル ソルバーのタイプは固定ステップでなければなりません。

ソルバー

ローカル ソルバーを使用している参照モデルが階層内に存在しない場合、階層全体で最上位モデルのソルバーが適用されます。

ローカル ソルバーを使用するように 1 つ以上の参照モデルを構成した場合、参照モデルに選択したソルバーにより、別個の微分方程式セットとしてモデルが解かれます。詳細については、ローカル ソルバーの設定の構成を参照してください。

各離散レートを個別のタスクとして扱う

マルチレート モデルで各離散レートを別個のタスクとして扱い、別のマルチレート モデルを参照する場合、参照モデルも各離散レートを別個のタスクとして扱う必要があります。

ターゲット上でタスクの同時実行を許可

親モデルと参照モデルで異なる同時実行タスク設定がサポートされるのは、参照モデルに非同期のサンプル時間が含まれておらず、以下のいずれかの条件が満たされている場合のみです。

  • 参照モデルに周期的なサンプル時間が 1 つだけ含まれている。

  • 参照モデルに複数の周期的なサンプル時間が含まれていて、親モデルで明示的な分割が有効になっている。レート変換の要件はレート モノトニック スケジューリングによって満たされます。

データのインポート/エクスポート初期状態

最上位モデルでシミュレーション用に初期モデル状態または操作点が指定されている場合、参照モデルでも初期モデル状態または操作点を指定してはいけません。

数学とデータ型非正規数に対するシミュレーションの動作

モデル参照階層では、任意のシミュレーション モードで段階的アンダーフローを使用し、最上位モデルをシミュレートできます。最上位モデルで参照されるモデルは、参照モデルのインスタンスがアクセラレータ シミュレーション モードを使用し、このパラメーターが [Flush-to-Zero (FTZ)] に設定されている場合にのみ flush-to-zero 動作をシミュレートできます。

固定小数点の正味勾配計算に除算を使用

ノーマル モードまたはアクセラレータ モードでのシミュレーションでは、親モデルおよび参照モデルは、同じように Fixed-Point Designer™ 正味スケーリング計算を実行するように構成されている必要があります。

[診断][互換性]ブロックの動作は信号のフレームの状態に依存する

このパラメーターのエラーを生成するようにモデルを構成する場合は、各参照モデルでもエラーを生成するように構成しなければなりません。

モデル参照最上位モデルごとに可能なインスタンスの総数

参照モデルにはそれが参照可能であることが指定されていなければなりません。さらに、参照が 1 回だけ許可されるのか、複数インスタンスが許可されるのかも指定しなければなりません。既定では、参照モデルは複数回参照できます。

参照モデルでは、最上位モデルごとに可能なインスタンスの総数がゼロであってはなりません。

互換性のあるソルバーの設定の指定

モデル参照は固定ステップ ソルバーでも可変ステップ ソルバーでも機能します。ローカル ソルバーを使用している参照モデルが存在しない場合、モデルの階層構造内のすべてのモデルが同じソルバーを使用します。このソルバーは常に、最上位モデルで指定されているソルバーです。最上位モデルで指定されているソルバー タイプが、参照モデルで指定されているソルバー タイプと互換性がない場合、エラーが出されます。

最上位モデルのソルバー タイプ参照モデルのソルバー タイプ互換性
固定ステップ固定ステップ互換性があります。
可変ステップ可変ステップ互換性があります。
可変ステップ固定ステップ参照モデルが離散サンプル時間と連続サンプル時間の両方を指定している場合を除き、互換性があります。
固定ステップ可変ステップ互換性はありません。エラーが出されます。

最上位モデルのソルバー タイプと参照モデルのソルバー タイプの間に互換性がない場合、一方または両方のモデルを変更して互換性のあるソルバー タイプが使用されるようにしなければなりません。ソルバーの詳細は、ソルバーの比較ソルバーの選択基準を参照してください。

ローカル ソルバーの設定の構成

ローカル ソルバーを使用するようにモデルの階層構造内の 1 つ以上の参照モデルを構成できます。以下の場合は、ローカル ソルバーの使用を検討します。

  • システムの残りの部分に比べてダイナミクスがはるかに低速で、システムの残りの部分から分離された連続状態をもつコンポーネントを参照モデルが表している。

  • 最上位モデルのソルバーとは異なるソルバーが、参照モデルを解くのに適している。

ローカル ソルバーを使用するには、参照モデルで以下のコンフィギュレーション パラメーターを設定します。

  1. [モデルの参照時にローカル ソルバーを使用] を選択します。

  2. ソルバー タイプを [固定ステップ] に設定します。

  3. 最上位モデルのソルバーが固定ステップの場合、[固定ステップ サイズ (基本サンプル時間)] パラメーター値を auto または最上位ソルバーの固定ステップ サイズの整数倍として指定します。

参照モデルのローカル ソルバーは、参照モデルの連続状態に対して動作します。離散状態のみをもつ参照モデルでローカル ソルバーを使用してもシミュレーション結果に影響がないため、連続状態が含まれていないモデルでは、ローカル ソルバーはサポートされていません。モデルに連続状態が含まれていない場合は、常に離散ソルバーが使用されます。固定ステップ離散ソルバーはローカル ソルバーとしてサポートされていません。

ローカル ソルバーの動作、インスタンス固有のローカル ソルバーの設定を構成する方法、および制限事項と考慮事項の完全なリストについては、Use Local Solvers in Referenced Modelsを参照してください。

アクセラレータ モードで無視される診断

参照モデルがアクセラレータ モードでのみシミュレートされる場合、参照モデルの次の診断コンフィギュレーション パラメーターについて警告やエラーは出されません。

アクセラレータ モードでのシミュレーション中に無視される診断をもつ参照モデルを特定するには、モデル アドバイザーを使用します。

  1. [モデル化] タブで [モデル アドバイザー] をクリックします。

  2. 最上位モデルを選択し、[OK] をクリックします。

  3. [タスク別][モデル参照][高速化されたモデル参照シミュレーション中に無視された診断設定をチェック] を選択します。

  4. [このチェックを実行] をクリックします。

特定された参照モデルの診断を実行するには、警告またはエラーを生成するように対応するコンフィギュレーション パラメーターを構成します。その後、ノーマル モードでモデルのシミュレーションを実行し、診断メッセージがないかを確認します。

メモ

[コンフィギュレーション パラメーター] ダイアログ ボックスの [コード生成] ペインのコンフィギュレーション パラメーターは、ノーマル モードでもアクセラレータ モードでもシミュレーションに影響しません。[コード生成] のパラメーターは、Simulink® Coder™ によるコードの生成にしか影響しません。アクセラレータ モードのシミュレーションでは、シミュレーション ターゲットを生成するためにコード生成が行われます。ターゲットの生成ではすべての [コード生成] パラメーターで既定値が使用され、Simulink ソフトウェアはコードの生成が終了した後、元のパラメーター値を復元します。

関連するトピック