Main Content

参照モデルに対するシミュレーション ターゲットの管理

"シミュレーション ターゲット"、別名 "SIM ターゲット" は自動生成される MEX ファイルで、アクセラレータ モードで実行される参照モデルを実装します。Simulink® はシミュレーション中に必要に応じて参照モデルの動作と出力を計算するためにシミュレーション ターゲットを呼び出します。Simulink は、アクセラレータ モードで実行される参照モデルのすべてのインスタンスに対して、同じシミュレーション ターゲットを使用します。ノーマル モードで実行される参照モデルのインスタンスはシミュレーション ターゲットを使用しません。

モデル参照のシミュレーション ターゲットを作成するために、Simulink はアクセラレータ モードで実行される参照モデルにいくつかの要件と制限を適用するコードを生成します。それらの制約を除けば、アクセラレータ モードで参照モデルを実行するときに、シミュレーション ターゲットについて考慮する必要は通常ありません。これらの制約の詳細については、モデルの階層構造内のシミュレーション モードの選択を参照してください。

既定の設定で、Simulink は、以下の場合にアクセラレータ モードで実行される参照モデルのシミュレーション ターゲットを生成します。

  • 参照モデルの直接または間接の親のブロック線図を更新する際、またはモデルの階層構造をシミュレートする際に、シミュレーション ターゲットが存在しない。

  • 参照モデル内の構造的な変更により、シミュレーション ターゲットが無効になっている。

シミュレーション ターゲットの生成中は、MATLAB® コマンド ウィンドウにステータス メッセージが表示されるため、シミュレーション ターゲットの生成プロセスを監視できます。

プログラムによりモデル参照のシミュレーション ターゲットをビルドするには、関数 slbuild を使用します。

メモ

Simulink Coder™ ライセンスがある場合は、参照モデルのシミュレーション ターゲットを次のような他のタイプのターゲットと混同しないように注意してください。

  • ハードウェア ターゲット — Simulink Coder がコードを生成する対象プラットフォーム

  • システム ターゲット — 目的に応じたコード生成の方法を Simulink Coder に指示するファイル

  • ラピッド シミュレーション ターゲット (RSim) — Simulink Coder が供給するシステム ターゲット ファイル

  • モデル参照ターゲット — 参照モデルの Simulink Coder コードを含むライブラリ モジュール

変更のチェックに費やす時間の短縮

Simulink がリビルドを必要とするシミュレーション ターゲットがあるかどうかをチェックするために費やす時間を短縮するには、コンフィギュレーション パラメーターの値を次のように設定します。

  • 階層全体のすべての参照モデル内で、[信号の関連付け] コンフィギュレーション パラメーターを [明示的のみ] または [なし] に設定します。

  • モデルの階層構造の最上位モデルで、[リビルド] コンフィギュレーション パラメーターを [既知の依存関係で変更が検出された場合] に設定します。または、このパラメーターを使用して Simulink がシミュレーション ターゲットを必ずリビルドする、または決してリビルドしないように指定できます。

これらのパラメーターはモデルのコンフィギュレーション セットに存在します。Model ブロックのパラメーターではありません。これらのパラメーターを参照モデルのいずれかのインスタンスに設定すれば、そのモデルのすべてのインスタンスに設定されます。

シミュレーション ターゲットのプログラミング言語の指定

モデル参照のシミュレーション ターゲットに対するプログラミング言語を指定するには、[コンフィギュレーション パラメーター] ダイアログ ボックスの [シミュレーション ターゲット] タブで [言語] コンフィギュレーション パラメーターを使用します。

シミュレーション ターゲットのカスタム コードの使用

モデル参照シミュレーション ターゲットをビルドするときにカスタム コードを Stateflow® ブロックまたは MATLAB Function ブロックと共に使用するには、[参照モデルにカスタム コードを含める] コンフィギュレーション パラメーターを使用します。

注意

アクセラレータ モードで参照モデルにカスタム コードを使用すると、カスタム コードを使用せずにモデルをシミュレーションした場合とは異なる結果になる可能性があります。カスタム コードにバスまたは列挙型の構造体の宣言が含まれる場合、シミュレーション ターゲットの生成は、ビルドの結果でこれらの構造体の宣言が重複する場合に失敗します。また、カスタム コードでバスまたは列挙型を表す構造体を使用すると、予期しないシミュレーション結果になる場合があります。

シミュレーション ターゲットの場所の制御

Simulink は現在のフォルダーの slprj ビルド フォルダー内にシミュレーション ターゲットを作成します。slprj フォルダーが存在しない場合、Simulink はそれを作成します。

メモ

Simulink Coder のコード生成では slprj フォルダーも使用します。slprj 内のサブフォルダーには、シミュレーション コード、Simulink Coder のコードおよびその他のファイルが分離されて保管されます。詳細については、ビルド プロセスのフォルダーの管理 (Simulink Coder)を参照してください。

生成ファイルは、現在の作業フォルダーとは異なるルート フォルダーに保存できます。このオプションでは、以下を実行できます。

  • 生成ファイルを生成するために使用するモデルおよびその他のソースを生成ファイルとは別に保管する。

  • 現在の作業フォルダーを以前の作業フォルダーに設定せずに、以前ビルドしたシミュレーション ターゲットを再利用または共有する。

  • 生成されたシミュレーション アーティファクトを生成された量産コードと分離する。

シミュレーション キャッシュ フォルダー は、シミュレーションに使用するアーティファクトを配置するルート フォルダーです。

現在のフォルダー (pwd) の代わりに使用するシミュレーション キャッシュ フォルダーを指定するには、[Simulink 基本設定][一般] ダイアログ ボックスでフォルダー パスを入力するか参照し、[シミュレーション キャッシュ フォルダー] を設定します。

Simulation cache folder option in Simulink Preferences dialog box

この基本設定は MATLAB セッション パラメーターの初期既定値を指定します。

または、関数 set_param を使用して CacheFolder の MATLAB セッション パラメーターを設定できます。

>> set_param(0, 'CacheFolder', fullfile('C:','Work','MyModelSimCache'))
>> get_param(0, 'CacheFolder')
ans =

C:\Work\MyModelSimCache

[シミュレーション キャッシュ フォルダー] 基本設定を現在の MATLAB セッションに対してのみオーバーライドまたは元に戻すには、関数 Simulink.fileGenControl を使用します。Simulink.fileGenControl を使用して設定した値は、現在の MATLAB セッションが終了すると無効になります。

関連するトピック