このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
リビルド
説明
モデルからコードを更新、シミュレーション、生成する前に参照モデルに対するシミュレーションと Simulink® Coder™ ターゲットをいつリビルドするかを決定する方法を選択します。
カテゴリ: モデル参照
設定
既定の設定: 任意の変更を検出
常に行う
参照モデルに対するターゲットのリビルドを常に実行します。この設定では不要なビルドが引き起こされる可能性があるため、処理時間が最も長くなります。すべてのモデル参照ターゲットを最新にするには、モデルを配布する前にこの設定を使用します。
任意の変更を検出
シミュレーション結果に影響する可能性がある変更を Simulink が検出したときに、参照モデルに対するターゲットのリビルドを条件付きで実行します。参照モデルの依存関係に対して加えられた変更を広範囲に検出するには、この設定を使用します。
Simulink で既知の依存関係の変更が見つからない場合、モデルの構造的チェックサムを計算します。構造的チェックサムは [モデルの依存関係] コンフィギュレーション パラメーターで指定されていない、ユーザーが作成した依存関係で発生する変更を検出します。構造的チェックサムが変更されている場合、Simulink はモデル参照ターゲットをリビルドします。
既知の依存関係で任意の変更が検出された場合
シミュレーション結果に影響する可能性がある変更を Simulink が検出したときに、参照モデルに対するターゲットのリビルドを条件付きで実行します。変更の検出に要する時間を短縮する場合は、この設定を使用します。
Simulink で既知または潜在的な依存関係の変更が見つからない場合、モデルの構造的チェックサムは計算 "せず"、モデル参照ターゲットをリビルド "しません"。無効なシミュレーション結果を防ぐには、ユーザーが作成したすべての依存関係を [モデルの依存関係] パラメーターにリストしなければなりません。
行わない
参照モデルに対するターゲットのリビルドを行いません。この設定では処理時間が最も短くなり、可能な場合はシミュレーションを高速化するための Simulink キャッシュ ファイルを使用します。モデルの開発時にリビルドを回避する場合は、この設定を使用します。
モデル参照のターゲットの期限が切れている場合、シミュレーションに無効な結果が示される可能性があります。Simulink で既知のターゲット依存関係の変更をチェックし、モデル参照ターゲットの期限が切れていることを報告するには、[リビルドの診断をしない] パラメーターを使用します。モデル参照ターゲットを手動でリビルドするには、関数
slbuild
を使用します。Simulink キャッシュ ファイルの使用と共有の詳細については、シミュレーションを高速化するための Simulink キャッシュ ファイルの共有を参照してください。
定義
- 既知のターゲット依存関係
既知のターゲット依存関係は、モデル参照ターゲットが最新かどうかについて Simulink が確認するときに変更を検証するモデル ファイルの外部にあるファイルとデータです。Simulink は一連の既知のターゲット依存関係を自動的に計算します。既知のターゲット依存関係の例は次のとおりです。
モデル ワークスペースへの変更 (そのデータ ソースが MAT ファイルまたは MATLAB® ファイルの場合)
列挙型定義
ユーザー作成の S-Function やその TLC ファイル
[モデルの依存関係] パラメーターで指定されたファイル
Stateflow®、MATLAB Function ブロックまたは MATLAB System ブロックによって使用される外部ファイル
Dataflow Subsystem – Dataflow Subsystem の解析には、シミュレーション ターゲットがプロファイルに従ってリビルドされ、再度リビルドされてサブシステムを分割する必要があります。さらに、シミュレーションを実行しているマシンが備えているコアが、サブシステムが使用するよう分割されているよりも少ない場合、たとえば、シミュレーション ターゲットがより多くのコアをもつマシンで前回ビルドされたような場合には、シミュレーション ターゲットをリビルドしなければなりません。詳細については、Simulation of Dataflow Domains (DSP System Toolbox)を参照してください。
- 潜在的なターゲット依存関係
潜在的な依存関係は、モデル参照ターゲットが最新かどうかについて Simulink が変更を確認するときに検証するモデル ファイルの外部にあるファイルとデータおよびモデル コンフィギュレーション設定です。Simulink は一連の潜在的なターゲット依存関係を自動的に計算します。潜在的なターゲット依存関係の例は以下のとおりです。
グローバル変数の変更
このモデルによって参照されているモデルのターゲットの変更
[明示的と暗黙的]
または[明示的と暗黙的で警告]
のいずれかに設定した場合の [コンフィギュレーション パラメーター] 、 [診断] 、 [データ有効性] 、 [信号の関連付け] パラメーター
Simulink は潜在的なターゲット依存関係をそれぞれ検証し、その状態が構造的チェックサムの確認をトリガーするかどうかを判断します。
- ユーザーが作成した依存関係
ユーザーが作成した依存関係は、シミュレーション結果に潜在的な影響がありながらも、Simulink が自動的に識別しないファイルです。ユーザーが作成した依存関係の例は以下のとおりです。
コールバックによって実行されたコードを含んでいる MATLAB ファイル
カスタマイズされた初期化スクリプトの一部として読み込まれたモデルで使用される変数の定義を含んでいる MAT ファイル
ユーザーが作成した依存関係は、[モデルの依存関係] パラメーターを使用することによって、既知のターゲット依存関係のセットに追加できます。
- 構造的チェックサム
構造的チェックサムは、シミュレーション結果に影響する可能性のあるモデル内の変更を検出するために使われる計算です。Simulink は、構造的チェックサムを計算する場合、モデルを読み込んでコンパイルします。モデルをコンパイルするために、Simulink はコールバックを実行してモデルが使用するすべての変数にアクセスしなければなりません。構造的チェックサムは、[モデルの依存関係] パラメーターでこれらのユーザーが作成した依存関係を指定したかどうかにかかわらず、ユーザーが作成した依存関係の変更を検出します。
構造的チェックサムに影響を与える種類の変更の詳細については、
Simulink.BlockDiagram.getChecksum
を参照してください。
ヒント
モデルの階層構造のモデルは異なるリビルド設定をもつことができます。モデルを更新、シミュレートする場合またはモデルのコードを生成する場合、そのモデルのリビルド設定はすべての参照モデルに適用されます。
ノーマル モードで実行されるモデルはシミュレーション ターゲットを生成しません。また、[リビルド] 設定の影響を受けません。
リビルド検出速度および精度を向上させるには、[モデルの依存関係] コンフィギュレーション パラメーターを使用してユーザーが作成した依存関係を指定します。
このフローチャートでは、[リビルド] を
[任意の変更を検出]
または[既知の依存関係で任意の変更が検出された場合]
のいずれかに設定した場合に、Simulink が実行する処理について説明します。この例は、
[任意の変更を検出]
と[既知の依存関係で任意の変更が検出された場合]
設定の違いを説明しています。[モデルの依存関係] パラメーターでリストされていない、コールバック スクリプトの一部として実行された MATLAB ファイルを変更した場合:
[任意の変更を検出]
では、変更がモデルの構造的チェックサムに影響するため、リビルドが実行されます。[既知の依存関係で任意の変更が検出された場合]
では、既知のターゲット依存関係は変更されないため、リビルドは実行されません。
依存関係
[行わない]
を選択すると、[リビルドの診断をしない] パラメーターが有効になります。
コマンド ライン情報
パラメーター: UpdateModelReferenceTargets |
値: 'Force' | 'IfOutOfDateOrStructuralChange' | 'IfOutOfDate' | 'AssumeUpToDate' |
既定の設定: 'IfOutOfDateOrStructuralChange' |
UpdateModelReferenceTargets 値 | [リビルド] の値と同じ |
---|---|
'Force' | 常に行う |
'IfOutOfDateOrStructuralChange' | 任意の変更を検出 |
'IfOutOfDate' | 既知の依存関係で任意の変更が検出された場合 |
'AssumeUpToDate' | 行わない |
推奨設定
アプリケーション | 設定 |
---|---|
デバッグ | 影響なし |
トレーサビリティ | 影響なし |
効率性 | 影響なし |
安全対策 |
|
互換性についての考慮事項
R2019b 以降、[任意の変更を検出]
はブロックの配置変更などの表面的な変更を無視します。