Main Content

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

並列シミュレーションの実行

parsim コマンドを使用すると、モデル (設計) の並列 (同時) Simulink® シミュレーションを実行できます。ここでは、並列実行は複数のシミュレーションを異なるワーカーで同時に実行することを意味します。parsim により、モンテカルロ解析、パラメーター スイープ、モデルのテスト、実験設計およびモデルの最適化などのシナリオで異なる入力または異なるパラメーター設定をもつ同じモデルを実行しやすくなります。モデルを小さなコンポーネントに分割することで単一のシミュレーションを並列で実行する機能や、複数のワーカーでこれらの個々の部分を同時に実行する機能は現在サポートされていません。

[複数のシミュレーション] パネルで Simulink エディターを使用して複数のシミュレーションを実行できます。モデル キャンバスから対象のブロック パラメーターを選択し、シミュレーションで使用する値を指定できます。[複数のシミュレーション] パネルで、シミュレーションを並列で実行する [並列の使用] などの構成を指定できます。設定したシミュレーションを実行するには、設計検討を選択してから、Simulink ツールストリップの [シミュレーション] タブにある [すべて実行] ボタンをクリックします。シミュレーションが完了したら、シミュレーション マネージャーで結果を表示および管理できます。詳細については、Multiple Simulations Panel: Simulate for Different Values of Stiffness for a Vehicle Dynamics SystemおよびConfigure and Run Simulations with Multiple Simulations Panelを参照してください。

parsim を使用してシミュレーションを並列で実行するには、ローカル ワーカーに Parallel Computing Toolbox™ が必要です。さらに、複数のコンピューター クラスター、クラウドおよびグリッドに MATLAB® Parallel Server™ を使用できます。Parallel Computing Toolbox および MATLAB Parallel Server がない場合、parsim はシミュレーションを逐次実行します。詳細については、Parallel Computing ToolboxおよびMATLAB Parallel Serverを参照してください。

並列プールが存在しない場合、parsim は既定のクラスター プロファイルからプールを作成します。既定以外のクラスターを使用するには、parsim を呼び出す前にそのクラスター プロファイルをもつプールを作成します。

この例では、一連のスイープ パラメーターについて複数のシミュレーションを並列で実行します。

% 1) Load model
openExample('sldemo_suspn_3dof');
model = 'sldemo_suspn_3dof';
load_system(model);

% 2) Set up the sweep parameters
Cf_sweep  = 2500*(0.05:0.1:0.95);
numSims   = numel(Cf_sweep);

% 3) Create an array of SimulationInput objects and specify the sweep value for each simulation
simIn(1:numSims) = Simulink.SimulationInput(model);
for idx = 1:numSims
    simIn(idx) = simIn(idx).setBlockParameter([model '/Road-Suspension Interaction'], 'Cf', num2str(Cf_sweep(idx)))
end

% 4) Simulate the model 
simOut = parsim(simIn)

parsim の機能

parsim は、Simulink.SimulationInput オブジェクトに基づいて、さまざまなパラメーターおよび値を使用してシミュレーションを実行できます。各 SimulationInput オブジェクトは、モデルの 1 つのシミュレーションを指定します。これらのオブジェクトの配列が複数のシミュレーションに対して作成されます。詳細については、Running Multiple Simulationsを参照してください。

Simulink.SimulationInput オブジェクトの次のメソッドおよびプロパティを使用できます。

  • setVariables - ベース ワークスペース、データ ディクショナリまたはモデル ワークスペースでの変数の変更

  • setBlockParameter - ブロック パラメーターの変更

  • setModelParameter - モデルのパラメーターの変更

  • setPreSimFcn - カスタマイズおよびクラスターでの後処理結果に対して各シミュレーションの前に実行する MATLAB 関数の指定

  • setPostSimFcn - カスタマイズおよびクラスターでの後処理結果に対して各シミュレーションの後に実行する MATLAB 関数の指定

  • InitialState - 初期状態の変更

  • ExternalInput - 数値配列、timeseries または Dataset オブジェクトのモデルへの外部入力としての指定

このフローチャートは、parsim の実行時に発生するイベントの一般的な順序を示します。

parsim を使用する場合、モデル ライブラリ ブロックに対する変更が上書きされる可能性があります。モデルが新しいワーカーで設定される場合、モデルはプロパティをワーカー ライブラリから直接継承します。モデル ライブラリ ブロックの変更点をワーカーに転送するには、parsim と共に SetUpFcn を使用します。

参考

オブジェクト

関数

ツール

関連するトピック