ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

parsim

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

構文

simOut = parsim(in)
simOut = parsim(in,'ShowSimulationManager','on')
simOut = parsim(in,Name,Value,...NameN,ValueN)

説明

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

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

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

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

すべて折りたたむ

変数をスイープしてモデル 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, 'ShowProgress', 'on')
[08-Jan-2018 14:10:43] Checking for availability of parallel pool...
Starting parallel pool (parpool) using the 'local' profile ...
connected to 6 workers.
[08-Jan-2018 14:11:12] Loading Simulink on parallel workers...
[08-Jan-2018 14:11:40] Configuring simulation cache folder on parallel workers...
[08-Jan-2018 14:11:40] Loading model on parallel workers...
[08-Jan-2018 14:11:48] Running simulations...
[08-Jan-2018 14:12:04] Completed 1 of 6 simulation runs
[08-Jan-2018 14:12:04] Completed 2 of 6 simulation runs
[08-Jan-2018 14:12:04] Completed 3 of 6 simulation runs
[08-Jan-2018 14:12:08] Completed 4 of 6 simulation runs
[08-Jan-2018 14:12:09] Completed 5 of 6 simulation runs
[08-Jan-2018 14:12:09] Completed 6 of 6 simulation runs
[08-Jan-2018 14:12:09] Cleaning up parallel workers...

out = 

1x6 Simulink.SimulationOutput array


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

モデルを読み込みます。

model = 'vdp';
load_system(model)

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

Simulink.BlockDiagram.buildRapidAcceleratorTarget(model);

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

in = in.setModelParameter('SimulationMode', 'rapid-accelerator');
in = in.setModelParameter('RapidAcceleratorUpToDateCheck', 'off');
 

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

out = parsim(in)

入力引数

すべて折りたたむ

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

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

名前と値のペアの引数

例: 'ShowProgress', 'on'

メモ

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

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

並列プールに添付する追加ファイルの cell 配列として指定します。

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

メモ

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

'on' に設定すると、シミュレーションが非同期に実行され、MATLAB® コマンド プロンプトは使用可能な状態で維持されます。

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

例: 'SetupFcn',@()simulinkproject('OCRAex/OCRA_example.prj')

メモ

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

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

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

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

メモ

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

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

メモ

TransferBaseWorkspaceVariables を使用するには、モデルのコンパイルが必要です。

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

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

出力引数

すべて折りたたむ

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

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

拡張機能

R2017a で導入