このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
プログラムによるシミュレーションの実行
シミュレーションをプログラムによって実行するには、以下のように、スクリプトを記述するか、MATLAB® コマンド ウィンドウでコマンドを実行できます。
関数
sim
を使用する。関数
set_param
を使用して、名前と値の引数SimulationCommand
を指定してシミュレーション コマンドを実行する。
上記の各オプションでは、シミュレーションの動作の構成および実行中のシミュレーションとの対話用に異なる機能が用意されています。
関数 sim
または関数 set_param
を使用してプログラムによって実行されるシミュレーションは、一度に 1 つずつ逐次実行されます。並列シミュレーションまたはバッチ シミュレーションを実行するには、関数 parsim
または batchsim
を使用します。
プログラムによるシミュレーションを実行する方法の決定
一般的に、関数 sim
では、シミュレーション中にモデルと対話しない個別の逐次的なプログラムによるシミュレーションの実行およびスクリプト作成のほとんどの要件がサポートされています。
シミュレーション中にプログラムによってモデルと対話する場合は、関数 set_param
を使用してシミュレーション コマンドを実行できます。シミュレーション コマンドは、[実行] をクリックして開始したシミュレーション、または関数 set_param
を使用して start
シミュレーション コマンドを実行して開始したシミュレーションでサポートされています。シミュレーション コマンドの実行は、MATLAB コマンド ウィンドウと Simulink® エディターの間で切り替える必要があるワークフローで役立つことがあります。
高速リスタートは、シミュレーション コマンドを実行するか、関数 sim
を使用して実行したプログラムによるシミュレーションでサポートされています。高速リスタートを有効にする方法に関係なく、高速リスタートではシミュレーションの最後にモデルは初期化されたままになり、[実行] をクリックするか、シミュレーション コマンドを実行するか、関数 sim
を呼び出すことで次のシミュレーションを実行できます。
次の表では、関数 sim
を使用して実行したシミュレーションと関数 set_param
を使用して実行したシミュレーションの差異をまとめます。
アクションまたはオプション | 関数 sim | set_param シミュレーション コマンド |
---|---|---|
シミュレーションのためにモデルを構成する | 関数 指定した値はシミュレーション時に適用され、シミュレーションが完了すると元に戻されます。関数 | 関数 プロパティ インスペクター、[コンフィギュレーション パラメーター] ダイアログ ボックス、および [ブロック パラメーター] ダイアログ ボックスなどのツールを使用してシミュレーションを構成することもできます。 このタイプのシミュレーション用にモデルを構成した場合、モデルは変更未保存になります。 |
シミュレーションを開始する | 関数 |
set_param(mdl,"SimulationCommand","Start") Simulink ツールストリップで [実行] をクリックします。 |
シミュレーションを中止する | MATLAB コマンド ウィンドウで Ctrl+C を押します。 |
set_param(mdl,"SimulationCommand","Stop") Simulink ツールストリップで [停止] をクリックします。 |
シミュレーションを一時停止する | サポートなし。 |
set_param(mdl,"SimulationCommand","Pause") Simulink ツールストリップで [一時停止] をクリックします。 |
シミュレーションを再開する | シミュレーションの一時停止はサポートされていないため、適用不可。 |
set_param(mdl,"SimulationCommand","Continue") Simulink ツールストリップで [続行] をクリックします。 |
MATLAB コマンド ウィンドウでコマンドを実行する | サポートなし。 関数 | サポートあり。 |
Scope ブロックなどの可視化ブロック | 可視化は、ノーマル モードとアクセラレータ モードのシミュレーション時にのみ更新されます。 | 可視化は、ノーマル、アクセラレータ、およびラピッド アクセラレータのシミュレーション時に更新されます。 |
端子の値のラベル | サポートなし。 | ノーマル モード、アクセラレータ モード、およびラピッド アクセラレータ モードのシミュレーション時にブロック線図で端子の値のラベルに信号値が表示されます。 |
シミュレーションのステップを進める/戻す | サポートなし。 | ノーマル モードとアクセラレータ モードのシミュレーションでサポートされています。 Simulink ツールストリップの [シミュレーション] タブで [ステップを進める] または [ステップを戻す] をクリックします。 |
信号ブレークポイント | サポートなし。 | タイム ステップ内で一時停止するためにシミュレーションのノーマル モードでサポートされています。 タイム ステップ間のみで一時停止するように構成されたシミュレーションのノーマル モードとアクセラレータ モードでサポートされています。 |
指定した時間またはその後に一時停止する | サポートなし。 | ノーマル モードとアクセラレータ モードのシミュレーションでサポートされています。 |
高速リスタート | 高速リスタートを使用してシミュレーションを実行するには、以下のようにします。
| 関数 set_param(mdl,"FastRestart","on") Simulink ツールストリップの [シミュレーション] タブの [シミュレーション] セクションで [高速リスタート] をクリックします。 |
シミュレーション ペーシング | モデルに対してシミュレーション ペーシングのパラメーターに値を指定することでシミュレーション ペーシングを構成します。
| [シミュレーション ペーシング オプション] ダイアログ ボックスを使用するか、プログラムによってシミュレーション ペーシングのパラメーターの値を指定することで、シミュレーション ペーシングのオプションを構成します。
|
シミュレーション タイムアウト | 名前と値の引数 | サポートなし。 シミュレーション コマンドを実行するか、[停止] をクリックすることで、いつでもシミュレーションを停止できます。 |
エラーの処理 | シミュレーション出力でエラーを取得するか、MATLAB 例外としてエラーを出すかを指定します。
| エラーは診断ビューアーにレポートされます。 |
シミュレーション ステータスをクエリする | サポートなし。 関数 | get_param(mdl,"SimulationStatus") |
matlab (macOS) または matlab (Linux) で -nodesktop オプションまたは -nodisplay オプションを使用して開始した MATLAB セッションでシミュレーションを実行する | サポートあり。 | サポートなし。 |
関数 sim
を使用したシミュレーションの実行
関数 sim
には、シミュレーションをプログラムによって実行および構成するために使用できる複数の構文が用意されています。すべてのモデル コンフィギュレーション パラメーター値、ブロック パラメーター値、変数値などで現在の値を使用してモデルをシミュレートする場合は、最も基本的な構文を使用します。
out = sim("ModelName");
この構文では、[単一のシミュレーション出力] パラメーターが無効になっている場合を除き、すべてのシミュレーション結果が含まれている単一の Simulink.SimulationOutput
オブジェクトが返されます。プログラムによって実行するすべてのシミュレーションで一貫したコードを確実に記述できるようにする場合は、[単一のシミュレーション出力] パラメーターを有効にします。
モデル コンフィギュレーション パラメーター値、ブロック パラメーター値、および変数値の値を指定するなどして、シミュレーションを構成する場合は、Simulink.SimulationInput
オブジェクトを使用してシミュレーションの構成を指定します。
out = sim(simIn);
次の表では、構成できるオプションおよび各構文を使用する使用例をまとめます。
sim の構文 | シミュレーションの構成のオプション |
---|---|
out = sim("ModelName"); | コンフィギュレーション パラメーター、ブロック パラメーター、および変数の値として現在の値を使用してモデルをシミュレートします。 |
out = sim(simIn); | 以下に対してオーバーライド値を指定した
名前と値の引数を使用して、以下を行うかどうかなど、追加のオプションを構成します。
|
out = sim("ModelName",Name=Value); | 名前と値の引数を使用して、以下のようなシミュレーションのオプションを構成します。
|
out = sim("ModelName",paramStruct); | 各パラメーター名に一致するフィールド名と各パラメーターで使用する値を指定するフィールド値をもつ構造体を使用して、モデル コンフィギュレーション パラメーター値およびシミュレーション オプションを指定します。 たとえば、 paramStruct.StopTime = "20"; |
out = sim("ModelName",configSet); |
|
シミュレーション コマンドの実行によるシミュレーションの実行および制御
Simulink エディターなどのユーザー インターフェイスから、または関数 set_param
を使用してシミュレーション コマンドを実行することで、シミュレーションを開始した場合、以下を行うことができます。
関数
set_param
を使用してシミュレーション コマンドを実行することで、シミュレーションの制御、対話を行う。関数
get_param
を使用してシミュレーション ステータスをクエリする。
シミュレーション中にシミュレーション コマンドを実行した場合、コマンドは即時には実行されません。中断できない現在実行中のプロセスが完了した後にはじめて、コマンドが実行されます。たとえば、ソルバーによる次のタイム ステップの判別中にシミュレーション コマンドを実行した場合、ソルバーによる時間の伝播が完了した後にはじめて、シミュレーション コマンドが実行されます。
Simulink エディターで使用可能なすべてのアクションに、対応するシミュレーション コマンドがあるわけではありません。次の表では、各シミュレーション コマンド、および対応するユーザー インターフェイスのアクションとキーボード ショートカットを示します。
シミュレーション コマンド | 説明 | 同等のユーザー インターフェイスのアクション | キーボード ショートカット |
---|---|---|---|
set_param(mdl,"SimulationCommand","start"); | シミュレーションを開始します。 | [実行] をクリックします。 | Ctrl+T または F5 |
set_param(mdl,"SimulationCommand","stop"); | シミュレーションを停止します。 | [停止] をクリックします。 | Ctrl + Shift + T |
set_param(mdl,"SimulationCommand","pause"); | シミュレーションを一時停止します。 | [一時停止] をクリックします。 | Ctrl+T または F5 |
set_param(mdl,"SimulationCommand","continue"); | 一時停止したシミュレーションを再開します。 | [続行] をクリックします。 | Ctrl+T または F5 |
set_param(mdl,"SimulationCommand","update"); | ブロック線図を更新します。 | Simulink ツールストリップの [準備] セクションで [モデルの更新] をクリックします。 | Ctrl + D |
set_param(mdl,"SimulationCommand","writedatalogs"); | データ ログ変数をワークスペースに書き込みます。 | サポートなし。 | サポートなし。 |
次の表では、名前と値の引数 SimulationStatus
の各戻り値に対応するシミュレーション ステータスを示します。
SimulationStatus の値 | 説明 |
---|---|
stopped | シミュレーションは停止状態。 |
initializing | 初期化フェーズを実行中。 |
running | 実行フェーズを実行中。 |
paused | 実行フェーズで一時停止状態。 |
compiled | モデルがコンパイル済み。 |
updating | ブロック線図を更新中。 |
terminating | 終了フェーズを実行中。 |
external | Simulink Coder™ でシミュレート中。 |