ドキュメンテーション

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

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

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

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

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

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

% 1) Load model
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 つのシミュレーションを指定します。これらのオブジェクトの配列が複数のシミュレーションに対して作成されます。詳細については、複数のシミュレーションの実行を参照してください。

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

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

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

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

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

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

  • InitialState - 初期状態の変更

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

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

参考

| | | | | | | | | |

関連するトピック