Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

sim

Simulink モデルをシミュレート

説明

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

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

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

  • simInSimulink.SimulationInput オブジェクトの配列の場合、simOutSimulink.SimulationOutput オブジェクトの配列になります。

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

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

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

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

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

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

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

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

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

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

モデル名の構文

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

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

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

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

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

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

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

simOut = sim(modelName,configSet) は、コンフィギュレーション セット configSet のモデル コンフィギュレーション パラメーターの値を使用して、modelName で指定されたモデルをシミュレートします。

すべて折りたたむ

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 オブジェクトとして指定します。SimulationInput オブジェクトのプロパティで、シミュレーションで使用するオプションやパラメーターの値を指定します。これには以下が含まれます。

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

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

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

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

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

シミュレートするモデル。string または文字ベクトルとして指定します。

例: 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(modelName,"Solver","ode15s","StopTime","30") は、modelName で指定されたモデルのシミュレーションを ode15s ソルバーを使用して終了時間 30 まで実行するように構成します。

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

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

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

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

すべて折りたたむ

高速リスタートを有効にするオプション。'off' または 'on' として指定します。高速リスタートは、コンパイルと終了のフェーズを適宜スキップすることで、一連のシミュレーションの実行に要する時間を短縮します。同じモデルのシミュレーションを複数実行する場合は、高速リスタートの使用を検討してください。

詳細については、高速リスタートによる反復的なシミュレーションの改善を参照してください。

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

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

データ型: char | string

シミュレーションを開始したプロセスをエラー発生時に停止するオプション。'off' または 'on' として指定します。

  • 'off' — シミュレーションでエラーが発生したときに、そのシミュレーションが停止し、シミュレーションを開始したプロセスは続行されます。たとえば、Simulink.SimulationInput オブジェクトの配列を使用して一連のシミュレーションを実行する場合、最初のシミュレーションでエラーが発生すると、そのシミュレーションが停止し、後続のシミュレーションの実行は続行されます。

  • 'on' — シミュレーションでエラーが発生したときに、そのシミュレーションとシミュレーションを開始したプロセスの両方が停止します。たとえば、Simulink.SimulationInput オブジェクトの配列を使用して一連のシミュレーションを実行する場合、最初のシミュレーションでエラーが発生すると、そのシミュレーションが停止し、後続のシミュレーションも実行されません。

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

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

ヒント

  • 関数 sim の最初の入力引数としてモデルの名前を指定する場合、この動作を構成するには名前と値の引数 CaptureErrors を使用します。

  • シミュレーションを開始したプロセスをエラー発生時に停止しない場合、Simulink.SimulationOutput オブジェクトと Simulink.SimulationMetadata オブジェクトでエラー メッセージの情報が取得されます。

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

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

データ型: char | string

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

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

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

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

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

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

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

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

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

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

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

モデル名の構文

すべて折りたたむ

シミュレーションを開始したプロセスをエラー発生時に続行するオプション。'off' または 'on' として指定します。関数 sim を使用してシミュレーションを実行する際、最初の入力としてモデルの名前を指定すると、既定では次のようになります。

  • MATLAB® コマンド ウィンドウでエラーが報告されます。

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

  • Simulink.SimulationOutput オブジェクトまたは Simulink.SimulationMetadata オブジェクトでエラー メッセージは取得されません。

CaptureErrors'on' として指定すると、シミュレーション出力でエラーの報告のみが行われます。エラーが発生したシミュレーションの実行は停止しますが、シミュレーションを呼び出したのが別のプロセスであった場合、そのプロセスは続行されます。たとえば、複数のシミュレーションをループで実行する場合、CaptureErrors'on' として指定すると、エラーが発生したシミュレーションの後続のシミュレーションは続行されます。

この引数は、関数 sim の最初の引数としてシミュレートするモデルの名前を指定する場合にのみサポートされます。

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

ヒント

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

  • 関数 sim への入力として 1 つ以上の Simulink.SimulationInput オブジェクトを指定する場合、この動作を構成するには名前と値の引数 StopOnError を使用します。

  • CaptureErrors'on' として指定した場合、Simulink.SimulationOutput オブジェクトと Simulink.SimulationMetadata オブジェクトでエラー メッセージの情報が取得されます。

    • メッセージを確認するには、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("modelName","TimeOut",60) は、シミュレーションを最大 60 秒間実行するように構成します。

ヒント

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

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

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

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

この引数は、関数 sim の最初の引数としてシミュレートするモデルの名前を指定する場合にのみサポートされます。

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

データ型: char | string

出力引数

すべて折りたたむ

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

入力引数としてモデル名のみを指定した場合、シミュレートするモデルで [単一のシミュレーション出力] パラメーターが無効になっていると、関数 sim からの出力がシミュレーション時間のベクトルになります。関数 sim のいずれの構文でも一貫した形式で結果を返すには、[単一のシミュレーション出力] パラメーターを有効にしてモデルを保存します。

ヒント

  • 関数 sim でいずれの入力引数を指定するかに関係なく同じ形式で結果を返すには、[単一のシミュレーション出力] パラメーターを有効にしてモデルを保存します。このオプションが有効になっている場合、すべてのログ データとシミュレーションのメタデータ (タイミング情報や診断など) を含む Simulink.SimulationOutput オブジェクトとしてシミュレーション結果が返されます。複数のシミュレーションの結果を解析するときは、すべてのシミュレーション データとメタデータが単一のオブジェクトに格納されていた方が簡単です。

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

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

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

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

  • 関数 sim を使用してシミュレーションを実行すると、エラーが発生するか指定した終了時間に達するまでシミュレーションが実行されます。プログラムによる一時停止と続行が可能な対話型シミュレーションをプログラムから実行するには、入力引数 SimulationCommand を指定して関数 set_param を使用します。詳細については、プログラムによるシミュレーションの実行を参照してください。

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

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

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

バージョン履歴

R2006a より前に導入

すべて展開する