メインコンテンツ

setModelParameter

SimulationInput オブジェクトまたは Simulation オブジェクトを使用してシミュレーション用のモデル パラメーター値を設定する

説明

s = setModelParameter(s,Name=Value) は、Simulink.SimulationInput オブジェクトまたは Simulation オブジェクト s で、名前が Name のモデル パラメーターを値 Value に設定します。

  • sSimulationInput オブジェクトの場合、各パラメーターについて、シミュレーション全体で使用する単一の値のみを指定できます。

  • sSimulation オブジェクトの場合、各パラメーターについて、シミュレーションの開始時に使用する単一の値を指定できます。また、調整可能なパラメーターについて、シミュレーション中に新しい値を指定できます。

setModelParameter 関数を使用すると、SimulationInput オブジェクトまたは Simulation オブジェクトで任意のモデル パラメーターの値を指定できます。SimulationInput オブジェクトまたは Simulation オブジェクトを使用して実行するシミュレーション用にモデルに保存されているパラメーターの値は、シミュレーション中は指定した値でオーバーライドされ、シミュレーションが完了すると元に戻ります。SimulationInput オブジェクトまたは Simulation オブジェクトを使用して任意の数のパラメーター値をオーバーライドできます。

すべて折りたたむ

SimulationInput オブジェクトを使用して、シミュレーション用のモデル パラメーター値を構成します。

モデルを開きます。

mdl = "sldemo_househeat";
openExample("simulink_general/sldemo_househeatExample",...
             SupportingFile=mdl)

モデルの SimulationInput オブジェクトを作成します。

simin = Simulink.SimulationInput(mdl);

シミュレーション タイムアウトを 5 秒と指定し、シミュレーションの開始時間と終了時間を指定します。

simin = setModelParameter(simin,Timeout=5);
simin = setModelParameter(simin,StartTime="1",StopTime="4");

モデルのシミュレーションを実行します。

out = sim(simin);

入力引数

すべて折りたたむ

モデル パラメーターを設定するシミュレーション仕様またはシミュレーション。Simulink.SimulationInput オブジェクトまたは Simulation オブジェクトとして指定します。

SimulationInput オブジェクトは、シミュレーションで使用する初期状態、外部入力、モデル パラメーター値、ブロック パラメーター値、変数値など、シミュレーションの仕様を表します。最初の入力引数を SimulationInput オブジェクトとして指定した場合、次のようになります。

  • 各モデル パラメーターについて、シミュレーション全体で使用する単一の値のみを指定できます。

  • 戻り引数として SimulationInput オブジェクトを指定する必要があります。

Simulation オブジェクトはシミュレーションを表し、シミュレーションを制御および操作するためのインターフェイスを提供します。最初の入力引数を Simulation オブジェクトとして指定した場合、次のようになります。

  • 各モデル パラメーターについて、シミュレーションで使用する初期値を指定できます。

  • 調整可能なモデル パラメーターの値をシミュレーション中に変更できます。

  • 戻り引数として Simulation オブジェクトを指定することはオプションです。

例: simin = setModelParameter(simin,FixedStep="0.1") は、SimulationInput オブジェクト simin に格納されているシミュレーション構成で固定ステップ サイズを 0.1 秒と指定します。

例: sm = setModelParameter(sm,FixedStep="0.1") は、Simulation オブジェクト sm で表されるシミュレーションで固定ステップ サイズの値を 0.1 に変更します。

名前と値の引数

すべて折りたたむ

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

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

例: simin = setModelParameter(simin,TimeOut="100") は、シミュレーション タイムアウトが 100 秒の SimulationInput オブジェクトを構成します。

モデル コンフィギュレーション パラメーター。コンフィギュレーション パラメーターのプログラム上の名前とコンフィギュレーション パラメーターの値で構成される名前と値の引数として指定します。たとえば、[終了時間] パラメーターの値を指定するには、プログラム上のパラメーター名 StopTime を名前と値の引数の名前として使用し、シミュレーション終了時間を値として指定します。次のコマンドでは、simin という名前の SimulationInput オブジェクトでシミュレーション終了時間を 100 秒に設定しています。

simin = setModelParameter(simin,StopTime="100");

setModelParameter 関数を使用して、SimulationInput オブジェクトまたは Simulation オブジェクトで任意のモデル パラメーターの値を指定できます。モデルの階層構造をシミュレートする場合、指定するコンフィギュレーション パラメーターの値は最上位モデルに適用されます。

例: simin = setModelParameter(simin,FixedStep="0.1") は、SimulationInput オブジェクト simin に格納されているシミュレーション構成で固定ステップ サイズを 0.1 秒と指定します。

例: sm = setModelParameter(sm,FixedStep="0.1") は、Simulation オブジェクト sm で表されるシミュレーションで固定ステップ サイズの値を 0.1 に変更します。

ヒント

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

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

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

R2024a 以降

個々の反復シミュレーションに対して高速リスタートを有効にするオプション。"on" または "off" として指定します。

  • "on" — シミュレーションで高速リスタートを有効にします。高速リスタートでは、高速リスタートを有効にした後に実行する最初のシミュレーションでモデルをコンパイルし、それ以降はコンパイルと終了をスキップすることで、反復的なシミュレーション ワークフローの時間を短縮します。既定では、高速リスタートは無効になっています。詳細については、高速リスタートによる反復的なシミュレーションの改善を参照してください。

    Simulation オブジェクトまたはスカラーの SimulationInput オブジェクトを使用して高速リスタートを有効にしたシミュレーションを実行する場合、モデルがまだ高速リスタートで初期化されていなければ、シミュレーションの実行前にモデルがコンパイルされます。高速リスタートでは、シミュレーションの終了後にモデルは初期化されたままになります。

  • "off" — シミュレーションで高速リスタートを無効にします。

このパラメーターは、以下を使用して実行される個々のシミュレーションにのみ影響します。

  • sim 関数とスカラーの SimulationInput オブジェクト

  • Simulation オブジェクト

SimulationInput オブジェクトの配列を simparsimbatchsim などの関数への入力として指定して複数のシミュレーションを実行する場合は、sim 関数、parsim 関数、または batchsim 関数で名前と値の引数 UseFastRestart を指定して高速リスタートを有効にします。詳細については、Script Iterative or Batch Simulations Using Fast Restartを参照してください。

例: simin = setModelParameter(simin,FastRestart="on") は、SimulationInput オブジェクト simin で、スカラーの SimulationInput オブジェクトを sim 関数の入力引数として指定して実行するシミュレーションに対して高速リスタートを有効にするように構成します。

例: sm = setModelParameter(sm,FastRestart="on") は、Simulation オブジェクト sm で表されるシミュレーションで高速リスタートを有効にするように構成します。

データ型: char | string

シミュレーション モード。"normal""accelerator"、または "rapid-accelerator" として指定します。

説明
"normal"

ノーマル モードを使用してシミュレーションを実行します。

ノーマル モードのシミュレーションでは、完全なモデルの表現が使用され、シミュレーション中のモデル操作のサポートが最大になります。

ノーマル モードは、シミュレーションの合間にモデルの構造の変更が必要なワークフローに使用します。最良の結果が得られるように、シミュレーションのデバッグにはノーマル モードを使用します。

"accelerator"

アクセラレータ モードを使用してシミュレーションを実行します。

アクセラレータ モードのシミュレーションでは、シミュレーションで使用する "シミュレーション ターゲット" と呼ばれる最適化されたモデルの表現が生成されます。シミュレーションのパフォーマンスを改善する最適化によって、シミュレーション中のモデル操作機能が低下する可能性があります。アクセラレータ モードのシミュレーションの合間にモデルを変更すると、シミュレーション ターゲットの再生成が必要になることがあります。

アクセラレータ モードは、シミュレーションの合間にモデルの構造を変更しないワークフローで、シミュレーションの速度を上げるために使用します。

"rapid-accelerator"

ラピッド アクセラレータ モードを使用してシミュレーションを実行します。

ラピッド アクセラレータ モードのシミュレーションでは、シミュレーションに使用するスタンドアロン実行可能ファイルが生成されます。スタンドアロン実行可能ファイルでは、シミュレーション中のモデル操作のサポートは最小限になります。ラピッド アクセラレータ シミュレーションの合間にモデルを変更すると、スタンドアロン実行可能ファイルのリビルドが必要になることがあります。

ラピッド アクセラレータ モードは、シミュレーションの合間に行うモデルの変更が変数やパラメーターの値の調整 "のみ" である場合に、シミュレーションの実行を最も速くするために使用します。一部のパラメーターの値を調整すると、スタンドアロン実行可能ファイルのリビルドが必要になることがあります。

詳細については、シミュレーション モードの選択および高速化されたモデルでのコードの再生成を参照してください。

例: simin = setModelParameter(simin,SimulationMode="rapid-accelerator") は、SimulationInput オブジェクト simin を使用して実行されるシミュレーションでラピッド アクセラレータ モードを使用するように構成します。

例: sm = setModelParameter(sm,SimulationMode="rapid-accelerator") は、Simulation オブジェクト sm で表されるシミュレーションについて、ラピッド アクセラレータ モードを使用してシミュレーションを実行するように構成します。

ヒント

  • 可視化ブロックは、シミュレーションを Simulink エディターなどの UI から実行する場合はシミュレーション中に更新されますが、ラピッド アクセラレータ シミュレーションをプログラムで実行する場合はシミュレーション中に更新されません。

  • スタンドアロン実行可能ファイルのリビルドを回避するために、RapidAcceleratorUpToDateCheck パラメーターの値を "off" として指定してラピッド アクセラレータの最新チェックを無効にできます。最新チェックを無効にすると、実行可能ファイルのリビルドが必要になる変更が無視されます。

  • ラピッド アクセラレータ モードを使用してシミュレートするために、"rapid-accelerator" の部分一致である "rapid" を指定できます。MATLAB の名前と値の引数の詳細については、名前と値の引数の検証を参照してください。

データ型: char | string

R2024a 以降

シミュレーション出力でシミュレーション エラーを取得するオプション。"off" または "on" として指定します。このパラメーターは、以下を使用して実行される個々のシミュレーションにのみ影響します。

  • sim 関数とスカラーの SimulationInput オブジェクト

  • Simulation オブジェクト

SimulationInput オブジェクトの配列を simparsimbatchsim などの関数への入力として指定して複数のシミュレーションを実行する場合、CaptureErrors パラメーターは常に有効になります。

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

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

例外により、該当する場合は、エラーが発生したシミュレーションとそのシミュレーションを呼び出した関数またはスクリプトの両方が停止します。

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

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

エラー報告

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

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

シミュレーション結果

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

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

例: simin = setModelParameter(simin,CaptureErrors="on") は、スカラーの SimulationInput オブジェクト simin を使用して実行される単一のシミュレーションについて、シミュレーション出力でシミュレーション エラーを取得するように構成します。

例: sm = setModelParameter(sm,CaptureErrors="on") は、Simulation オブジェクト sm で表されるシミュレーションについて、シミュレーション出力でシミュレーション エラーを取得するように構成します。

ヒント

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

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

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

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

データ型: char | string

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

例: simin = setModelParameter(simin,RapidAcceleratorUpToDateCheck="off") は、SimulationInput オブジェクトでラピッド アクセラレータ ターゲットのリビルドを無効にするように構成します。

例: sm = setModelParameter(sm,RapidAcceleratorUpToDateCheck="off") は、Simulation オブジェクト sm で表されるシミュレーションでラピッド アクセラレータの最新チェックを無効にします。

データ型: char | string

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

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

例: simin = setModelParameter(simin,TimeOut=60) は、SimulationInput オブジェクト simin に格納されているシミュレーション構成で最大実行時間を 60 秒に設定します。

例: sm = setModelParameter(sm,TimeOut=60) は、Simulation オブジェクト sm で表されるシミュレーションで最大実行時間を 60 秒に設定します。

データ型: char | string

出力引数

すべて折りたたむ

モデル パラメーターが追加または変更されたシミュレーション仕様またはシミュレーション。Simulink.SimulationInput オブジェクトまたは Simulation オブジェクトとして返されます。

setModelParameter 関数を使用して SimulationInput オブジェクトでモデル パラメーターの値を指定する場合、戻り引数として SimulationInput オブジェクトを指定する必要があります。

setModelParameter 関数を使用して Simulation オブジェクトでモデル パラメーターの値を指定する場合、戻り引数の割り当てはオプションです。

ヒント

  • SimulationInput オブジェクトまたは Simulation オブジェクトで指定されているパラメーターの値を取得するには、getModelParameter 関数を使用します。

    paramval = getModelParameter(s,"ParamName");

  • SimulationInput オブジェクトまたは Simulation オブジェクトからモデル パラメーターを削除するには、removeModelParameter 関数を使用します。

    s = removeModelParameter(s,"ParamName");

バージョン履歴

R2017a で導入

すべて展開する