Main Content

sim

Simulink モデルのプログラムによるシミュレーションの実行とスクリプト化

説明

Simulink.SimulationInput オブジェクトの構文

simout = sim(simin) は、1 つ以上の Simulink.SimulationInput オブジェクトで定義されたプロパティに従って Simulink® モデルの 1 つ以上のシミュレーションを実行します。

  • simin がスカラーの Simulink.SimulationInput オブジェクトの場合、simout はスカラーの Simulink.SimulationOutput オブジェクトになります。

  • siminSimulink.SimulationInput オブジェクトのベクトル、行列、または配列の場合、simoutsimin と同じ次元をもつ Simulink.SimulationOutput オブジェクトのベクトル、行列、または配列になります。

SimulationInput オブジェクトを使用してシミュレーションのオプションや入力を構成できます。これには以下が含まれます。

  • シミュレートするモデル

  • 外部入力データのソースの変数またはファイル

  • シミュレーションに使用するブロック パラメーターの値

  • シミュレーションに使用するモデル コンフィギュレーション パラメーターの値

SimulationInput オブジェクトのプロパティでモデルまたはブロックのパラメーターの値を変更すると、その値がシミュレーション中に変更され、シミュレーションの終了時に元に戻されます。

SimulationInput オブジェクトを使用してプログラミングによるシミュレーションを構成すると、使用する関数を sim から parsimbatchsim などの他の関数に簡単に切り替えることができます。

詳細については、プログラムによるシミュレーションの実行を参照してください。

simout = sim(simin,Name=Value) は、1 つ以上の名前と値の引数を使用して指定された追加のオプションを使用して、Simulink.SimulationInput オブジェクト simin で定義されたプロパティに従ってモデルをシミュレートします。

Simulink.SimulationInput の構文でサポートされる名前と値の引数のリストについては、Simulink.SimulationInput オブジェクトの構文を参照してください。

モデルの構文

simout = sim(mdl) は、モデルの現在のコンフィギュレーション パラメーターとブロック パラメーターの値を使用してモデル mdl をシミュレートします。

  • [単一のシミュレーション出力] パラメーターがモデルで有効になっている場合、simoutSimulink.SimulationOutput オブジェクトになります。

  • [単一のシミュレーション出力] パラメーターがモデルで有効になっていない場合、simout はシミュレーション時間を格納したベクトルになります。詳細については、複数の出力引数を返す構文は非推奨を参照してください。

simout = sim(mdl,Name=Value) は、1 つ以上の名前と値の引数を使用して指定されたオプションによってモデル mdl をシミュレートします。たとえば、パラメーターの名前と値を名前と値の引数として指定することで、シミュレーション用のモデル コンフィギュレーション パラメーターの値を変更できます。

関数 sim に入力を提供してモデル コンフィギュレーション パラメーターを変更すると、その変更がシミュレーション中に適用され、シミュレーションの終了時に元に戻されます。

モデルの構文でサポートされる名前と値の引数のリストについては、モデルの構文を参照してください。

simout = sim(mdl,paramstruct) は、構造体 paramstruct で指定されたモデル コンフィギュレーション パラメーターの値を使用してモデル mdl をシミュレートします。

simout = sim(mdl,configset) は、コンフィギュレーション セット configset のモデル コンフィギュレーション パラメーターの値を使用してモデル mdl をシミュレートします。

すべて折りたたむ

Simulink.SimulationInput オブジェクトを使用して、シミュレートするモデルとは別個にシミュレーション用の構成を保存できます。Simulink.SimulationInput オブジェクトの構成が、シミュレーション用にモデルに適用されます。シミュレーション後に、変更されたモデル設定は元の値に戻ります。

モデル IntegrateSine を開きます。このモデルでは Integrator ブロックを使用して Sine Wave ブロックの出力を積分します。Integrator ブロックからの出力が Outport ブロックに接続されます。

The model IntegrateSine.

mdl = "IntegrateSine";
open_system(mdl)

モデル IntegrateSine のシミュレーション構成を保存するための Simulink.SimulationInput オブジェクトを作成します。

simIn = Simulink.SimulationInput(mdl);

関数 setModelParameter を使用して、ode45 ソルバーを使用し、終了時間 20 秒までシミュレートするように SimulationInput オブジェクトを構成します。

simIn = setModelParameter(simIn,"Solver","ode45",...
    "StopTime","20");

関数 setBlockParameter を使用して、Sine Wave ブロックの "Amplitude" パラメーターを 2 に設定するように SimulationInput オブジェクトを構成します。

blk = strcat(mdl,"/Sine Wave");
simIn = setBlockParameter(simIn,blk,"Amplitude","2");

Simulink.SimulationInput オブジェクト simIn に保存されている構成を使用してモデルをシミュレートします。

out = sim(simIn);

モデルは、ode45 ソルバーおよび Sine Wave ブロックの振幅 2 を使用して 20 秒間シミュレートします。

A Dashboard Scope block displays the input and output of the Integrator block.

Simulink.SimulationInput オブジェクトの配列を使用してシミュレーションのセットを構成すると、関数 sim の単一の呼び出しにより、高速リスタートを使用してシミュレーションのセットを実行できます。高速リスタートでは、シミュレーションの複数の実行間でモデルをコンパイル済みの状態のままにすることで、シミュレーションの時間が短縮されます。

モデル IntegrateSine を開きます。このモデルでは Integrator ブロックを使用して Sine Wave ブロックの出力を積分します。Integrator ブロックからの出力が Outport ブロックに接続されます。

mdl = "IntegrateSine";
open_system(mdl)

The model IntegrateSine.

6 つのシミュレーションのセットを実行し、各シミュレーションで Sine Wave ブロックに異なる周波数値を使用するとします。シミュレーションの周波数値を含むベクトルを作成します。

freqs = [0.5 1 1.5 2 2.5 3];

ブロック パラメーターを調整する場合は、変数を使用してパラメーターの値を定義できます。次に、ブロック パラメーターを調整するために、変数の値を変更します。

Sine Wave ブロックの "Frequency" パラメーターの値に使用する変数 freq を定義します。初期変数値には、現在のパラメーター値を使用します。

blk = mdl + "/Sine Wave";
freq = str2double(get_param(blk,"Frequency"));

Sine Wave ブロックの Frequency パラメーター値を freq に設定します。

set_param(blk,"Frequency","freq")

for ループで 6 つの Simulink.SimulationInput オブジェクトの配列を作成し、関数 setVariable を使用して周波数のベクトルからの値を使用するように各オブジェクトを構成します。

for k = length(freqs):-1:1
    simIn(k) = Simulink.SimulationInput(mdl);
    simIn(k) = setVariable(simIn(k),"freq",freqs(k));
end

関数 sim を使用して SimulationInput オブジェクト simIn の配列で定義されているシミュレーションを実行します。名前と値の引数 UseFastRestart を使用して高速リスタートを有効にします。名前と値の引数 UseFastRestart は、最初の入力引数が Simulink.SimulationInput オブジェクトである場合にのみサポートされます。最初の引数がモデルの名前である場合に高速リスタートを使用するには、名前と値の引数 FastRestart を使用します。

out = sim(simIn,"UseFastRestart","on");
[28-Feb-2023 11:45:06] Running simulations...
[28-Feb-2023 11:45:11] Completed 1 of 6 simulation runs
[28-Feb-2023 11:45:12] Completed 2 of 6 simulation runs
[28-Feb-2023 11:45:12] Completed 3 of 6 simulation runs
[28-Feb-2023 11:45:12] Completed 4 of 6 simulation runs
[28-Feb-2023 11:45:12] Completed 5 of 6 simulation runs
[28-Feb-2023 11:45:12] Completed 6 of 6 simulation runs

進行状況メッセージを表示せずにシミュレーションの同じセットを実行するには、名前と値の引数 ShowProgressoff として指定します。

out = sim(simIn,"UseFastRestart","on","ShowProgress","off");

シミュレーション マネージャーを使用してシミュレーションの進行状況を監視するには、名前と値の引数 ShowSimulationManageron として指定します。シミュレーション マネージャーの詳細については、シミュレーション マネージャーを参照してください。

out = sim(simIn,"UseFastRestart","on",...
    "ShowProgress","off","ShowSimulationManager","on");

シミュレーション出力 out は、各シミュレーションのメタデータおよび結果を含む Simulink.SimulationOutput オブジェクトの配列です。出力配列の SimulationOutput オブジェクトの順序は、入力配列の SimulationInput オブジェクトの順序に対応しています。たとえば、インデックス 1SimulationOutput オブジェクトには、インデックス 1SimulationInput オブジェクトを使用して構成されたシミュレーションの結果が含まれます。

最初のシミュレーションの結果についてログに記録された出力信号にアクセスします。そのシミュレーションでは周波数値 0.5 が使用されました。

youtPt5 = out(1).yout
youtPt5 = 
Simulink.SimulationData.Dataset 'yout' with 1 element

                         Name    BlockPath             
                         ______  _____________________ 
    1  [1x1 Signal]      output  IntegrateSine/Outport

  - Use braces { } to access, modify, or add elements using index.

モデル IntegrateSine を開きます。このモデルでは Integrator ブロックを使用して Sine Wave ブロックの出力を積分します。Integrator ブロックからの出力が Outport ブロックに接続されます。

mdl = "IntegrateSine";
open_system(mdl);

The model IntegrateSine.

現在のコンフィギュレーション パラメーター値を使用してモデルをシミュレートします。

out = sim(mdl);

シミュレーションは 10 秒間実行され、振幅 1 の正弦波が積分されます。

A Dashboard Scope block displays the input and output of the Integrator block.

関数 set_param を使用して、モデルのモデル コンフィギュレーション パラメーター値およびブロック パラメーター値を変更できます。

ode45 ソルバーおよび終了時間 20 秒を使用するようにモデルを構成します。

set_param(mdl,"Solver","ode45","StopTime","20")

Sine Wave ブロックの "Amplitude" パラメーターを 2 に設定します。

blk = strcat(mdl,"/Sine Wave");
set_param(blk,"Amplitude","2")

関数 set_param を使用してコンフィギュレーション パラメーター値またはブロック パラメーター値を変更すると、その変更がブロック線図に適用され、モデル ファイルで変更が未保存 (ダーティ) になります。関数 sim を再度呼び出すと、モデルを保存していなくても、シミュレーションは現在のモデル コンフィギュレーションの一部である新しいパラメーター値を使用します。

out2 = sim(mdl);

シミュレーションは 20 秒間実行され、振幅 2 の正弦波が積分されます。

A Dashboard Scope block displays the input and output of the Integrator block.

関数 sim の名前と値の引数としてシミュレーションのコンフィギュレーション パラメーターを指定することで、モデル コンフィギュレーション パラメーター値で異なる値を使用するようにモデルのシミュレーションを構成できます。指定したパラメーター値はそのシミュレーションに適用されますが、シミュレーションが完了すると元に戻されます。

関数 sim の名前と値の引数として指定できるのはモデル コンフィギュレーション パラメーター値のみであり、ブロック パラメーター値は指定できません。単一の入力でシミュレーションのモデル コンフィギュレーション パラメーターの値、ブロック パラメーターの値、および変数の値を指定するには、代わりに Simulink.SimulationInput オブジェクトを使用します。

モデル IntegrateSine を開きます。このモデルでは Integrator ブロックを使用して Sine Wave ブロックの出力を積分します。Integrator ブロックからの出力が Outport ブロックに接続されます。

mdl = "IntegrateSine";
open_system(mdl);

The model IntegrateSine.

ソルバー ode45 および終了時間 20 秒を使用してモデルをシミュレートするものとします。関数 sim の名前と値の引数としてシミュレーションの Solver 値および StopTime 値を指定します。

out = sim(mdl,"Solver","ode45","StopTime","20");

モデルでソルバー ode45 を使用してシミュレーション時間 20 秒までシミュレートします。

A Dashboard Scope block displays the input and output of the Integrator block.

モデル コンフィギュレーション パラメーターの名前と値の構造体を使用してモデルのシミュレーションを構成できます。構造体内のコンフィギュレーション パラメーター値が、シミュレーション用にモデルに適用されます。シミュレーション後に、変更されたモデル設定は元の値に戻ります。

構造体の入力で指定できるのはモデル コンフィギュレーション パラメーター値のみであり、シミュレーションで使用する別のブロック パラメーター値や変数値は指定できません。単一の入力でシミュレーションのモデル コンフィギュレーション パラメーターの値、ブロック パラメーターの値、および変数の値を指定するには、代わりに Simulink.SimulationInput オブジェクトを使用します。

モデル IntegrateSine を開きます。このモデルでは Integrator ブロックを使用して Sine Wave ブロックの出力を積分します。Integrator ブロックからの出力が Outport ブロックに接続されます。

mdl = "IntegrateSine";
open_system(mdl)

The model IntegrateSine.

ode45 ソルバーおよび終了時間 20 秒を使用するようにシミュレーションを構成する構造体 SimConfig を作成します。構造体には、シミュレーションで変更する各コンフィギュレーション パラメーターのフィールドが含まれています。各フィールドの名前は各パラメーターのプログラム上の名前に対応しています。各フィールドの値ではシミュレーションでそのパラメーターに使用する値を指定します。

simConfig.Solver = "ode45";
simConfig.StopTime = "20";

構造体のモデル コンフィギュレーション パラメーター値を使用してモデルをシミュレートします。

out = sim(mdl,simConfig);

モデルで ode45 ソルバーを使用してシミュレーション時間 20 秒までシミュレートします。

A Dashboard Scope block displays the input and output of the Integrator block.

Simulink.ConfigSet オブジェクトは、モデル コンフィギュレーション パラメーターの値のセットを保存します。Simulink.ConfigSet オブジェクトを関数 sim への入力として指定できます。オブジェクトのコンフィギュレーション セットが、シミュレーション用にモデルに適用されます。シミュレーション後に、元のコンフィギュレーション セットがモデルで復元されます。

Simulink.Configset オブジェクトは、モデル コンフィギュレーション パラメーターの値のみを保存します。単一の入力でシミュレーションのモデル コンフィギュレーション パラメーターの値、ブロック パラメーターの値、および変数の値を指定するには、代わりに Simulink.SimulationInput オブジェクトを使用します。

モデル IntegrateSine を開きます。このモデルでは Integrator ブロックを使用して Sine Wave ブロックの出力を積分します。Integrator ブロックからの出力が Outport ブロックに接続されます。

mdl = "IntegrateSine";
open_system(mdl)

The model IntegrateSine.

関数 getActiveConfigSet を使用して、現在のモデル コンフィギュレーションの Simulink.ConfigSet オブジェクトを取得します。

mdlConfig = getActiveConfigSet(mdl);

関数 copy を使用して、変更する Simulink.ConfigSet オブジェクトのコピーを作成します。

simConfig = copy(mdlConfig);

ソルバー ode45 および終了時間 20 秒を使用するように Simulink.ConfigSet オブジェクト simConfig を変更します。

set_param(simConfig,"Solver","ode45","StopTime","20");

Simulink.Configset オブジェクト simConfig のコンフィギュレーション パラメーターを使用してモデルをシミュレートします。

out = sim(mdl,simConfig);

モデルで ode45 ソルバーを使用してシミュレーション時間 20 秒までシミュレートします。

A Dashboard Scope block displays the input and output of the Integrator block.

入力引数

すべて折りたたむ

シミュレーション入力とコンフィギュレーション。Simulink.SimulationInput オブジェクトまたは Simulink.SimulationInput オブジェクトの配列として指定します。SimulationInput オブジェクトのプロパティで、シミュレーションで使用するオプションやパラメーターの値を指定します。これには以下が含まれます。

  • シミュレートするモデル

  • 外部入力データのソースの変数またはファイル

  • シミュレーションに使用するブロック パラメーターの値

  • シミュレーションに使用するモデル コンフィギュレーション パラメーターの値

SimulationInput オブジェクトのプロパティで定義した値はシミュレーション用のモデルに適用され、シミュレーションの終了時に元に戻されます。

シミュレートするモデル。モデルの名前を定義する string または文字ベクトルかモデル ハンドル (R2024a 以降)として指定します。

例: simOut = sim("vdp") は、モデルで現在構成されているパラメーターの値を使用して vdp という名前のモデルをシミュレートします。

データ型: char | string

シミュレートするモデル コンフィギュレーション。構造体として指定します。構造体のフィールドはモデル コンフィギュレーション パラメーターの名前になります。各フィールドの値がシミュレーションで使用するパラメーターの値を示します。たとえば、モデルを開始時間 5 から終了時間 10 までシミュレートするには、次のように構造体を作成します。

paramStruct.StartTime = "5";
paramStruct.StopTime = "10";

データ型: struct

シミュレートするモデル コンフィギュレーション。Simulink.ConfigSet オブジェクトとして指定します。

名前と値の引数

引数のオプションのペアを Name1=Value1,...,NameN=ValueN として指定します。Name は引数名、Value は対応する値です。名前と値の引数は他の引数の後に表示されなければなりませんが、ペアの順序は重要ではありません。

R2021a より前は、名前と値をそれぞれコンマを使って区切り、Name を引用符で囲みます。

例: simout = sim(simin,UseFastRestart="on") は、Simulink.SimulationInput オブジェクトの配列を使用して構成された一連のシミュレーションを高速リスタートを有効にして実行します。

例: simout = sim(mdl,Solver="ode15s",StopTime="30") は、モデル mdl のシミュレーションでソルバー ode15s および終了時間 30 秒を使用するように構成します。

関数 sim でサポートされる名前と値の引数は、最初の入力として 1 つ以上の Simulink.SimulationInput オブジェクトを指定するかシミュレートするモデルの名前またはハンドルを指定するかによって異なります。このページで示している引数に加え、関数 sim への入力を使用してモデル コンフィギュレーション パラメーターの値も指定できます。

  • 最初の入力引数が 1 つ以上の Simulink.SimulationInput オブジェクトの場合、シミュレーション用のモデル パラメーターの値を関数 setModelParameter を使用して入力オブジェクトで構成します。

  • 最初の入力引数がモデルの名前またはハンドルの場合、任意のモデル コンフィギュレーション パラメーターを名前と値の引数として指定します。

Simulink.SimulationInput オブジェクトの構文

すべて折りたたむ

高速リスタートを有効にするオプション。"off" または "on" として指定します。高速リスタートは、コンパイルと終了のフェーズを適宜スキップすることで、一連のシミュレーションの実行に要する時間を短縮します。詳細については、高速リスタートによる反復的なシミュレーションの改善を参照してください。

SimulationInput オブジェクトの配列を指定することで、関数 sim の単一の呼び出しを使用して同じモデルのシミュレーションを複数実行する場合は、高速リスタートの使用を検討してくください。

この引数は、スカラーの SimulationInput オブジェクトを指定する場合は効果はありません。

この引数は、関数 sim の最初の入力引数として 1 つ以上の Simulink.SimulationInput オブジェクトを指定する場合にのみサポートされます。

例: sim(simIn,UseFastRestart="on")

データ型: char | string

シミュレーション エラーが発生した場合に後続のシミュレーションをスキップするオプション。"off" または "on" として指定します。この引数は、Simulink.SimulationInput オブジェクトの配列を最初の引数として指定することで、関数 sim の単一の呼び出しを使用して複数のシミュレーションを実行する場合にのみ効果があります。

  • "off" — シミュレーション エラーが発生した場合、そのシミュレーション出力でエラーが取得され、後続のシミュレーションはいずれも引き続き実行されます。

    たとえば、5 つの SimulationInput オブジェクトを含むベクトルを指定した場合、2 番目のシミュレーション中にエラーが発生すると、2 番目のシミュレーションの出力でエラーが取得され、3 番目、4 番目、5 番目のシミュレーションは引き続き実行されます。

  • "on" — シミュレーション エラーが発生した場合、そのシミュレーション出力でエラーが取得され、後続のシミュレーションはいずれも実行されません。

    たとえば、5 つの SimulationInput オブジェクトを含むベクトルを指定した場合、2 番目のシミュレーション中にエラーが発生すると、2 番目のシミュレーションの出力でエラーが取得され、3 番目、4 番目、5 番目のシミュレーションは実行されません。実行されないシミュレーションについては、関数 sim は空の Simulink.SimulationOutput オブジェクトをそれぞれ返します。

この引数は、スカラーの SimulationInput オブジェクトを指定して単一のシミュレーションを実行する場合は効果はありません。 (R2024a 以降)

この引数は、関数 sim の最初の入力引数として 1 つ以上の Simulink.SimulationInput オブジェクトを指定する場合にのみサポートされます。

例: sim(simIn,StopOnError="on")

ヒント

  • SimulationInput オブジェクトの配列を指定して複数のシミュレーションを実行する場合、各シミュレーションで CaptureErrors パラメーターが常に有効になります。関数 sim を使用して実行する個々のシミュレーションについては、既定では CaptureErrors はオフになります。

  • スカラーの SimulationInput オブジェクトを指定して実行する単一のシミュレーションについて、シミュレーション出力でエラーを取得するかどうかを制御するには、関数 setModelParameter を使用してシミュレーションに対して CaptureErrors パラメーターを指定します。 (R2024a 以降)

  • 関数 sim の単一の呼び出しを使用して複数のシミュレーションを実行する場合や、シミュレーション出力でシミュレーション エラーを取得するように個々のシミュレーションを構成する場合は、シミュレーション出力でエラーとシミュレーションに関する情報を確認できます。

    • メッセージを確認するには、SimulationOutput オブジェクトの ErrorMessage プロパティを使用します。

    • エラーの詳細を確認するには、Simulink.SimulationMetadata オブジェクトの ExecutionInfo プロパティを使用します。エラーが発生したシミュレーション フェーズなど、エラーに関する情報が ErrorDiagnostic フィールドに格納されています。

データ型: char | string

シミュレーションの進行状況を示すオプション。"off" または "on" として指定します。

  • "off" — 進行状況のメッセージを表示せずにシミュレーションが実行されます。

  • "on" — シミュレーションの進行に合わせて進行状況の更新情報が表示されます。

このパラメーターの既定値は、最初の入力引数のサイズによって異なります。

  • 最初の入力引数がスカラーの Simulink.SimulationInput オブジェクトである場合、既定値は "off" です。

  • 最初の入力引数が Simulink.SimulationInput オブジェクトの配列である場合、既定値は "on" です。

この引数は、関数 sim の最初の入力引数として 1 つ以上の Simulink.SimulationInput オブジェクトを指定する場合にのみサポートされます。

例: sim(simIn,ShowProgress="on")

シミュレーション マネージャーを開くオプション。"off" または "on" として指定します。シミュレーション マネージャーは、実行するシミュレーションの進行状況の監視に使用します。Simulink.SimulationInput オブジェクトの配列を指定して複数のシミュレーションを実行する場合は、シミュレーション マネージャーの使用を検討してください。

この引数は、関数 sim の最初の入力引数として 1 つ以上の Simulink.SimulationInput オブジェクトを指定する場合にのみサポートされます。

例: sim(simIn,ShowSimulationManager="on")

モデルの構文

すべて折りたたむ

高速リスタートを有効にするオプション。"on" または "off" として指定します。

  • "on" — シミュレーションで高速リスタートを有効にします。高速リスタートでは、高速リスタートを有効にした後に実行する最初のシミュレーションでモデルをコンパイルし、それ以降はコンパイルと終了をスキップすることで、反復的なシミュレーション ワークフローの時間を短縮します。

    この名前と値の引数を使用して高速リスタートを有効にした場合、モデルがまだ高速リスタートで初期化されていなければ、シミュレーションを実行する前にモデルがコンパイルされます。高速リスタートでは、シミュレーションの終了後にモデルは初期化されたままになります。

  • "off" — シミュレーションで高速リスタートを無効にします。高速リスタートを無効にした場合、シミュレーションを実行するたびに、モデルのコンパイル、シミュレーションの初期化、シミュレーションの実行、シミュレーションの終了がすべて行われます。

既定では、高速リスタートは無効になっており、関数 sim を使用して実行するシミュレーションで高速リスタートが有効になりません。詳細については、高速リスタートによる反復的なシミュレーションの改善を参照してください。

この引数は、関数 sim の最初の入力引数としてモデルの名前またはハンドルを指定する場合にのみサポートされます。

例: sim("myModel",FastRestart="on")

ヒント

  • 関数 sim への最初の入力としてスカラーの SimulationInput オブジェクトを指定する場合、このパラメーターは関数 setModelParameter を使用して SimulationInput オブジェクトで指定します。 (R2024a 以降)

  • 関数 sim への最初の入力として SimulationInput オブジェクトの配列を指定する場合、名前と値の引数 UseFastRestart を指定してシミュレーションのバッチに対して高速リスタートを有効にします。

  • 高速リスタートで初期化されているモデルをシミュレートするときに、この名前と値の引数を "off" として指定すると、前のシミュレーションが終了し、モデルがコンパイルされてから現在のシミュレーションが実行されます。

  • Simulink エディターまたは関数 set_param を使用して高速リスタートを有効にすると、名前と値の引数 FastRestart を指定しなくても、関数 sim を使用して実行するシミュレーションで高速リスタートが使用されます。

データ型: char | string

シミュレーション エラーが発生した場合にエラーを取得してシミュレーション出力を返すオプション。"off" または "on" として指定します。

動作CaptureErrors="off" (既定)CaptureErrors="on"
シミュレーション エラーに対する例外の発行

シミュレーション エラーに対して例外が発行されます。

例外により、エラーが発生したシミュレーションとそのシミュレーションを呼び出したプロセスの両方が停止します。

シミュレーション エラーに対して例外が発行されません。

シミュレーション エラーによってシミュレーションが停止します。ただし、シミュレーションを呼び出したのが別の関数またはスクリプトであった場合、その関数またはスクリプトの実行は続行されます。

エラー報告

シミュレーション中に発生したエラーが MATLAB® コマンド ウィンドウで報告されます。

シミュレーション エラーに関する情報 (メッセージやエラーが発生したシミュレーション フェーズなど) がシミュレーション出力で取得されます。

シミュレーション結果

例外の発行により、シミュレーションが直ちに停止します。関数 sim はシミュレーション結果を返しません。

関数 sim は、エラーが発生したシミュレーション時間までのシミュレーション結果とシミュレーション メタデータを返します。

この引数は、関数 sim の最初の入力引数としてモデルの名前またはハンドルを指定する場合にのみサポートされます。

例: sim("myModel",CaptureErrors="on")

ヒント

  • このオプションは、ソフトウェアインザループ (SIL) およびプロセッサインザループ (PIL) のシミュレーションではサポートされません。

  • 関数 sim への入力としてスカラーの SimulationInput オブジェクトを指定する場合、このパラメーターは関数 setModelParameter を使用して SimulationInput オブジェクトで指定します。 (R2024a 以降)

  • シミュレーション エラーを取得するように個々のシミュレーションを構成する場合や、SimulationInput オブジェクトの配列を指定して複数のシミュレーションを実行する場合は、シミュレーション結果でエラーとシミュレーションに関する情報を確認できます。

    • メッセージを確認するには、SimulationOutput オブジェクトの ErrorMessage プロパティを使用します。

    • エラーの詳細を確認するには、Simulink.SimulationMetadata オブジェクトの ExecutionInfo プロパティを使用します。エラーが発生したシミュレーション フェーズなど、エラーに関する情報が ErrorDiagnostic フィールドに格納されています。

データ型: char | string

プログラムによるシミュレーション デバッグ セッションを開始するオプション。"off" または "on" として指定します。

この引数は、関数 sim の最初の入力引数としてモデルの名前またはハンドルを指定する場合にのみサポートされます。

例: sim("modelName",Debug="on")

データ型: char | string

ラピッド アクセラレータ ターゲットのリビルドを無効にするオプション。"on" または "off" として指定します。この引数を "on" として指定すると、ラピッド アクセラレータ ターゲットのリビルドが必要になる変更は無視されます。このオプションを使用する場合、変更するオプションは、ラピッド アクセラレータ ターゲットをリビルドする必要がないものだけにしてください。

この引数は、関数 sim の最初の入力引数としてモデルの名前またはハンドルを指定する場合にのみサポートされます。

例: sim("modelName",RapidAcceleratorUpToDateCheck="off")

ヒント

このオプションを Simulink.SimulationInput オブジェクトを使用して構成されたシミュレーションに対して指定するには、関数 setModelParameter を使用します。

simIn = Simulink.SimulationInput("MyModel");
simIn = setModelParameter(simIn,RapidAcceleratorUpToDateCheck="off");

データ型: char | string

シミュレーションの最大実行時間。正のスカラーとして指定します。時間を秒単位で指定し、シミュレーションを実行させます。シミュレーションの実行時間が指定した値を超えると、ソフトウェアにより警告が発行され、シミュレーションが停止します。たとえば、TimeOut30 として指定した場合、シミュレーション結果の計算に 30 秒かかると、その時点でソフトウェアによりシミュレーションが停止し、警告が発行されます。

TimeOut パラメーターで指定するのは、実行するシミュレーションのクロック時間の制限です。シミュレートする最大時間の値を指定するには、[終了時間] パラメーターを使用します。

この引数は、関数 sim の最初の入力引数としてモデルの名前またはハンドルを指定する場合にのみサポートされます。

例: sim("MyModel",TimeOut=60) は、最大実行時間 60 秒でシミュレーションを実行するように構成します。

ヒント

  • 複数の可変ステップのシミュレーションを逐次実行する場合は、タイムアウトを指定することを検討してください。ソルバーが多数の非常に小さいタイム ステップをとりはじめるようにシミュレーション条件でステップ サイズを制約すると、後続のシミュレーションを実行できるようにシミュレーションをタイムアウトにすることができます。

  • このオプションを Simulink.SimulationInput オブジェクトを使用して構成されたシミュレーションに対して指定するには、関数 setModelParameter を使用します。

    simIn = Simulink.SimulationInput("MyModel");
    simIn = setModelParameter(simIn,TimeOut=60);

シミュレーション前にパラメーターの概要を表示するオプション。"siminfo" として指定します。

この引数は、関数 sim の最初の入力引数としてモデルの名前またはハンドルを指定する場合にのみサポートされます。

例: sim("modelName",Trace="siminfo")

データ型: char | string

出力引数

すべて折りたたむ

シミュレーション結果とシミュレーション メタデータ。Simulink.SimulationOutput オブジェクト、Simulink.SimulationOutput オブジェクトの配列、またはベクトルとして返されます。Simulink.SimulationOutput オブジェクトには、シミュレーションでログに記録されたすべてのデータとシミュレーションに関するメタデータ (タイミング情報や診断など) が格納されます。

モデルの名前またはハンドルを唯一の入力引数として指定した場合、シミュレートするモデルで [単一のシミュレーション出力] パラメーターが無効になっていれば、関数 sim からの出力はシミュレーションで発生したメジャー タイム ヒットのベクトルになります。関数 sim がいずれの構文でも必ず一貫した形式で結果を返すようにするには、[単一のシミュレーション出力] パラメーターを有効にしてモデルを保存します。

ヒント

  • 関数 sim がいずれの構文でも必ず同じ形式で結果を返すようにするには、[単一のシミュレーション出力] パラメーターを有効にしてモデルを保存します。このオプションが有効になっている場合、シミュレーションのすべてのログ データとシミュレーション メタデータ (タイミング情報や診断など) をそれぞれ含む 1 つ以上の Simulink.SimulationOutput オブジェクトとしてシミュレーション結果が返されます。すべてのシミュレーション データとシミュレーション メタデータを単一のオブジェクトで返すことで、複数のシミュレーションの結果を簡単に解析できます。

  • モデル コンフィギュレーション パラメーターのリストを取得するには、関数 getActiveConfigSet と関数 get_param を使用します。たとえば、モデル vdp のコンフィギュレーション パラメーターを表示するには、MATLAB コマンド ウィンドウで次のコマンドを入力します。

    configSet = getActiveConfigSet("vdp");
    configSetNames = get_param(configSet,"ObjectParameters")

    関数 get_param から、StopTimeSaveTimeSaveStateSaveOutputSignalLogging など、すべてのモデル コンフィギュレーション パラメーターのリストが返されます。

  • モデルの階層構造をシミュレートする場合、関数 sim に入力引数として指定したモデル コンフィギュレーション パラメーターは最上位モデルに適用されます。

  • 関数 sim を使用してシミュレーションを実行すると、エラーが発生するか指定した終了時間に達するまでシミュレーションが実行されます。シミュレーション中にシミュレーション実行の制御やパラメーター値の調整が可能なプログラムによるシミュレーションを実行またはスクリプト化するには、Simulation オブジェクトを使用します。 (R2024a 以降)詳細については、プログラムによるシミュレーションの実行を参照してください。

  • シミュレーションの操作には、MATLAB コマンド ウィンドウと Simulink エディターの両方を使用できます。関数 set_param を使用してシミュレーション コマンドを発行します。詳細については、プログラムによるシミュレーションの実行を参照してください。

  • 終了時間を無限にしてモデルをシミュレートする場合、MATLAB コマンド ウィンドウから Ctrl + C を押してシミュレーションを停止します。この場合、シミュレーションが停止し、シミュレーション結果は MATLAB ワークスペースに保存されません。

  • 時間、状態、出力のログ記録の構成には [コンフィギュレーション パラメーター] ダイアログ ボックスを使用します。[モデル化] タブの [設定] で、[モデル設定] をクリックします。[コンフィギュレーション パラメーター] ダイアログ ボックスで [データのインポート/エクスポート] を選択します。

  • モデル全体で信号のログを記録するには、信号ログを使用するか、To Workspace ブロックや Record ブロックなどのログ記録ブロックを使用します。信号ログの詳細については、信号ログを使用した信号データの保存を参照してください。

バージョン履歴

R2006a より前に導入

すべて展開する