メインコンテンツ

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

parsim

動的システムを並列または逐次で複数回シミュレーションする

説明

simOut = parsim(in) は、SimulationInput オブジェクト in で指定された入力を使用してモデルをシミュレートします。関数 parsim は、SimulationInput オブジェクトの配列を使用して複数のシミュレーションを実行します。

simOut = parsim(in,Name=Value) は、SimulationInput オブジェクトで指定された入力と 1 つ以上の名前と値の引数を使用して指定されたオプションを使用してモデルを並列にシミュレートします。

futureOut = parsim(designStudy) は、simulink.multisim.DesignStudy オブジェクトを使用して大規模シミュレーションをシミュレートします。

関数 parsim でシミュレーションを並列実行するには、Parallel Computing Toolbox™ のライセンスが必要です。関数 parsim は、並列プールを作成できない場合や Parallel Computing Toolbox が使用されていない場合はシミュレーションを逐次実行します。

すべて折りたたむ

ラピッド アクセラレータ モードでモデル vdp をシミュレートします。

モデルを読み込みます。

openExample('simulink_general/VanDerPolOscillatorExample')
mdl = "vdp";
load_system(mdl)

このステップでラピッド アクセラレータ ターゲットが作成されます。

Simulink.BlockDiagram.buildRapidAcceleratorTarget(mdl);

SimulationInput オブジェクトを作成し、関数 setModelParameter を使用して RapidAcceleratorUpToDateCheck"off" に設定します。

in = Simulink.SimulationInput(mdl);
in = setModelParameter(in,SimulationMode="rapid-accelerator");
in = setModelParameter(in,RapidAcceleratorUpToDateCheck="off");
 

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

out = parsim(in);

変数をスイープしてモデル CSTR を並列でシミュレートします。スイープを実行するために SimulationInput オブジェクトの配列が使用されます。

スイープ値を指定します。

FeedTempSweep = 250:10:300;

SimulationInput オブジェクトの配列を作成します。

for i = length(FeedTempSweep):-1:1
in(i) = Simulink.SimulationInput('CSTR');
in(i) = in(i).setVariable('FeedTemp0',FeedTempSweep(i));
end

モデルを並列でシミュレートします。

out = parsim(in, 'ShowSimulationManager', 'on')
[28-Aug-2024 10:44:10] Checking for availability of parallel pool...
Starting parallel pool (parpool) using the 'Processes' profile ...
28-Aug-2024 10:45:15: Job Queued. Waiting for parallel pool job with ID 2 to start ...
Connected to parallel pool with 8 workers.
[28-Aug-2024 10:45:41] Starting Simulink on parallel workers...
[28-Aug-2024 10:46:32] Configuring simulation cache folder on parallel workers...
[28-Aug-2024 10:46:33] Loading model on parallel workers...
[28-Aug-2024 10:46:49] Running simulations...
[28-Aug-2024 10:47:40] Completed 1 of 6 simulation runs
[28-Aug-2024 10:47:41] Received simulation output (size: 20.18 KB) for run 1 from parallel worker.
[28-Aug-2024 10:47:41] Completed 2 of 6 simulation runs
[28-Aug-2024 10:47:41] Received simulation output (size: 20.22 KB) for run 2 from parallel worker.
[28-Aug-2024 10:47:41] Completed 3 of 6 simulation runs
[28-Aug-2024 10:47:41] Received simulation output (size: 20.61 KB) for run 3 from parallel worker.
[28-Aug-2024 10:47:44] Completed 4 of 6 simulation runs
[28-Aug-2024 10:47:44] Received simulation output (size: 35.84 KB) for run 4 from parallel worker.
[28-Aug-2024 10:47:45] Completed 5 of 6 simulation runs
[28-Aug-2024 10:47:45] Received simulation output (size: 37.76 KB) for run 6 from parallel worker.
[28-Aug-2024 10:47:45] Completed 6 of 6 simulation runs
[28-Aug-2024 10:47:45] Received simulation output (size: 39.48 KB) for run 5 from parallel worker.
[28-Aug-2024 10:47:45] Cleaning up parallel workers...

out = 

1x6 Simulink.SimulationOutput array


入力引数

すべて折りたたむ

並列シミュレーションの入力とコンフィギュレーション。Simulink.SimulationInput オブジェクトの配列として指定します。

大規模な並列シミュレーションの入力とコンフィギュレーション。simulink.multisim.DesignStudy オブジェクトとして指定します。

名前と値の引数

すべて折りたたむ

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

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

例: ShowProgress="on"

並列プールに添付する追加ファイル。文字ベクトルの cell 配列として指定します。関数 parsim では、From File ブロックを使用したサブディレクトリ内の MAT ファイルからのデータの読み込みはサポートされません。

シミュレーションの進行状況を表示するオプション。"on" または "off" として指定します。"on" に設定すると、シミュレーションの進行状況が MATLAB® コマンド ウィンドウに表示されます。"off" に設定すると、進行状況は非表示になります。

メモ

進行状況を表示している場合、最後のいくつかのシミュレーションが完了する前に、メッセージ 'Cleaning up parallel workers..' が表示されることがあります。このメッセージはシミュレーションの完了に依存しません。future から出力が取得されたときにシミュレーションは完了します。詳細については、Simulink.Simulation.Future を参照してください。

シミュレーションをバックグラウンドで実行するオプション。"off" または "on" として指定します。"on" に設定すると、シミュレーションが非同期に実行され、MATLAB コマンド プロンプトは使用可能な状態で維持されます。バックグラウンドで実行されているシミュレーションを終了するには、Simulink.Simulation.Future オブジェクトの関数 cancel を使用します。

引数 'RunInBackground'"on" として指定すると、関数 parsimSimulink.Simulation.Future オブジェクトを返します。Simulink.Simulation.Future オブジェクトは、SimulationOutput オブジェクトにアクセスするために使用します。

シミュレーションの開始前にワーカーごとに 1 回実行される関数。関数ハンドルとして指定します。

例: SetupFcn=@()openProject("Modelex/Model_example.prj")

メモ

buildRapidAcceleratorTargetSetupFcn で使用され、モデルに外部入力が指定されている場合、LoadExternalInput"off" に設定するか、指定されている外部入力がワーカー上で使用できることを確認し、コンパイル エラーを回避します。

シミュレーションの実行後にワーカーごとに 1 回実行される関数。関数ハンドルとして指定します。

モデルの依存関係を管理するオプション。"on" または "off" として指定します。ManageDependencies"on" に設定されているときは、必要に応じてモデルの依存関係が自動的に並列ワーカーに送信されます。ManageDependencies"off" に設定されているときは、モデルの依存関係を並列プールに明示的に付加します。

並列シミュレーションと PreSimFcn および PostSimFcn のダイアリ情報をログに記録するオプション。'on' または 'off' として指定します。parsimbatchsim の設定に関する問題のデバッグに役立つように、setPreSimFcn を使用して診断情報をダイアリに出力できます。

高速リスタートを使用するオプション。"off" または "on" として指定します。UseFastRestart"on" に設定されている場合、シミュレーションは高速リスタートを使用してワーカーで実行されます。

Simscape™ コンポーネントのプロパティ (Simscape Multibody™Solid ブロックの重心と慣性など) が変わるパラメーター スイープを実行する場合は、Simscape ブロック パラメーターを実行時に構成可能として指定します。詳細については、Simscape 実行時パラメーターについて (Simscape)を参照してください。

メモ

関数 parsim では、To File ブロックを含むモデルの高速リスタートはサポートされません。

変数を並列ワーカーに転送するオプション。"off" または "on" として指定します。TransferBaseWorkspaceVariables"on" に設定されている場合、モデルに使用される変数とベース ワークスペースに定義されているすべてのものが並列ワーカーに転送されます。

大規模なシミュレーションでは TransferBaseWorkspaceVariables オプションは推奨されません。不要なベース ワークスペース データを転送すると、むだなネットワークやメモリの使用につながります。代わりに、プロジェクト起動スクリプト、モデル コールバック関数、または名前と値の引数 SetupFcn を使用してベース ワークスペース データを定義することを検討してください。

シミュレーション マネージャーを開くオプション。"off" または "on" として指定します。ShowSimulationManager"on" に設定すると、シミュレーション マネージャーを使用してシミュレーションを監視できます。

シミュレーション エラーが発生した場合に残りのシミュレーションをスキップするオプション。"off" または "on" として指定します。StopOnError"on" に設定すると、シミュレーション エラーが発生した場合にシミュレーションの実行が停止します。

parsimsimulink.multisim.DesignStudy オブジェクトの実行中にシミュレーション出力 (ログ記録と入力のメタデータを含む) を保存する場所のパス。OutputLocation は次のいずれかとして指定します。

  • 'cluster-storage' – 既定では、OutputLocation は基になるジョブまたは並列プールのストレージを使用してシミュレーション結果を書き込みます。ストレージの有効期間は、基になる並列ジョブの有効期間に関連付けられています。対話型プールの場合、プールの終了時にジョブが削除されます。

  • 'memory' – メモリ内ストレージ。出力データがインメモリに格納され、MATLAB クライアントに直接返されます。

  • 'locationPath' – 絶対パス。string または文字ベクトルとして指定します。

出力引数

すべて折りたたむ

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

拡張機能

すべて展開する

バージョン履歴

R2017a で導入