Main Content

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

parsim

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

説明

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

simOut = parsim(in,'ShowSimulationManager','on') は、SimulationInput オブジェクトで指定された入力を使用してモデルを並列にシミュレートし、シミュレーション マネージャーの UI を開きます。詳細については、Simulation Manager を参照してください。

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

parsim コマンドは、Parallel Computing Toolbox™ ライセンスを使用してシミュレーションを並列実行します。parsim は、並列プールが作成できない場合および Parallel Computing Toolbox が使用されない場合、シミュレーションを逐次実行します。

すべて折りたたむ

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

モデルを読み込みます。

model = 'vdp';
load_system(model)

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

Simulink.BlockDiagram.buildRapidAcceleratorTarget(model);

SimulationInput オブジェクトを作成し、setModelParameter メソッドを使用して RapidAcceleratorUpToDateCheck'off' に設定します。

in = Simulink.SimulationInput(model);
in = in.setModelParameter('SimulationMode', 'rapid-accelerator');
in = in.setModelParameter('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')
[29-Jun-2022 15:05:52] Checking for availability of parallel pool...
Starting parallel pool (parpool) using the 'Processes' profile ...
Connected to the parallel pool (number of workers: 6).
[29-Jun-2022 15:07:01] Starting Simulink on parallel workers...
[29-Jun-2022 15:07:34] Configuring simulation cache folder on parallel workers...
[29-Jun-2022 15:07:35] Loading model on parallel workers...
[29-Jun-2022 15:07:49] Running simulations...
[29-Jun-2022 15:08:24] Completed 1 of 6 simulation runs
[29-Jun-2022 15:08:24] Completed 2 of 6 simulation runs
[29-Jun-2022 15:08:24] Completed 3 of 6 simulation runs
[29-Jun-2022 15:08:27] Completed 4 of 6 simulation runs
[29-Jun-2022 15:08:28] Completed 5 of 6 simulation runs
[29-Jun-2022 15:08:28] Completed 6 of 6 simulation runs
[29-Jun-2022 15:08:28] Cleaning up parallel workers...

out = 

1x6 Simulink.SimulationOutput array


入力引数

すべて折りたたむ

シミュレーション用のモデルの変更を指定するために使用される Simulink.SimulationInput オブジェクトまたは Simulink.SimulationInput オブジェクトの配列。

例: in = Simulink.SimulationInput('vdp')

例: for i = 10:-1:1 in(i) = Simulink.SimulationInput('vdp'); end

名前と値の引数

例: 'ShowProgress', 'on'

メモ

parsim コマンドに渡されるすべてのパラメーターは、sim コマンドで使用されるパラメーターとは無関係です。parsim コマンドに渡すには、次の入力引数のリストを使用します。

オプションの Name,Value の引数ペアをコンマ区切りで指定します。ここで、Name は引数名で Value は対応する値です。Name および Value は一重引用符 (' ') で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を任意の順序で指定できます。

並列プールに付加する追加ファイル。cell 配列として指定します。parsim では、サブディレクトリ内の MAT ファイルへの参照を作成する From File ブロックからのデータの読み込みはサポートされていません。

'on' に設定すると、シミュレーションの進行状況をコマンド ウィンドウで確認できます。'off' に設定すると、進行状況は非表示になります。

メモ

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

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

function handle'SetupFcn' に指定して、シミュレーションの開始前にワーカーごとに 1 回実行します。

例: 'SetupFcn',@()openProject('Modelex/Model_example.prj')

メモ

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

function handle'CleanupFcn' に指定して、シミュレーションの完了後、ワーカーごとに 1 回実行します。

ManageDependencieson に設定されているときは、必要に応じてモデルの依存関係が自動的に並列ワーカーに送信されます。ManageDependenciesoff に設定されているときは、モデルの依存関係が並列プールに明示的に付加されます。

UseFastRestarton に設定されている場合、シミュレーションは高速リスタートを使用してワーカーで実行されます。

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

メモ

parsim を使用する場合は、UseFastRestart オプションを使用し、FastRestart オプションは使用しないでください。詳細については、高速リスタートのご利用の前にを参照してください。

高速リスタート モードの parsim では、ToFile ブロックを含むモデルはサポートされていません。

TransferBaseWorkspaceVariableson に設定されている場合、モデルに使用される変数とベース ワークスペースに定義されているすべてのものが並列ワーカーに転送されます。

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

'ShowSimulationManager''on' に設定すると、シミュレーション マネージャー アプリを使用してシミュレーションを監視できます。

'StopOnError''on' に設定すると、エラーが発生した場合にシミュレーションの実行が停止します。

出力引数

すべて折りたたむ

ログ記録されたシミュレーション結果のすべてを含む Simulink.SimulationOutput オブジェクトの配列。配列のサイズは Simulink.SimulationInput オブジェクトの配列のサイズと等しくなります。

すべてのシミュレーション出力 (ログ記録された時間、状態および信号) は単一の Simulink.SimulationOutput オブジェクトで返されます。ログに記録するモデルの時間、状態および出力は、[モデル コンフィギュレーション パラメーター] ダイアログ ボックスの [データのインポート/エクスポート] ペインを使用して定義します。To WorkspaceScope ブロックなどのブロックを使用して、信号をログ記録できます。[信号とスコープのマネージャー] は、信号を直接ログ記録できます。

拡張機能

バージョン履歴

R2017a で導入