Main Content

Simulink.Simulation.Future クラス

名前空間: Simulink.Simulation
スーパークラス:

シミュレーション用の Future オブジェクトを返す

説明

parsim を、'RunInBackground' 引数を 'on' に設定して実行するとき、Simulink.Simulation.Future オブジェクトを作成します。parsim コマンドは、Simulink.SimulationInput オブジェクトの配列で指定された入力を使用して、複数のシミュレーションを並列実行します。このオブジェクトを使用すると、実行中のシミュレーションのステータスをモニターしたり、完了したシミュレーションの出力を取得したり、実行中のシミュレーションをキャンセルしたりすることができます。

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

作成

future = parsim(in,'RunInBackground','on') は、Simulink.SimulationInput オブジェクト in で指定された入力を使用して複数のシミュレーションを並列実行中に、Simulink.Simulation.Future オブジェクト future を作成します。

入力引数

すべて展開する

Simulink.SimulationInput オブジェクトまたは Simulink.SimulationInput オブジェクトの配列は、複数のシミュレーションを実行するために使用されます。変更未保存 (ダーティ) にすることなく複数のシミュレーションを実行するため、モデルのパラメーターと値を指定します。

例: in = Simulink.SimulationInput('vdp'), in(1:10) = Simulink.SimulationInput('vdp')

非同期でシミュレーションを実行し、MATLAB® コマンド プロンプトを利用可能なままにするには、'on' に設定します。

プロパティ

すべて展開する

シミュレーションからの出力のテキスト ログ

このプロパティは読み取り専用です。

future オブジェクトの ID。スカラー整数として指定します。

このプロパティは読み取り専用です。

fetchNext または fetchOutputs への呼び出しが、Simulink.Simulation.Future オブジェクト配列内の出力を読み取ったかどうか。true の場合は 1、false の場合は 0 として指定します。

このプロパティは読み取り専用です。

future オブジェクト配列の現在の状態。'pending''queued''running''finished''failed'、または 'unavailable' として指定します。

このプロパティは読み取り専用です。

メソッド

メソッド

目的

cancel

保留中、キューに入っている、または実行中の Simulink.Simulation.Future オブジェクトをキャンセルする

fetchNext

Simulink.Simulation.Future オブジェクト配列から、次の利用可能な未読の出力を取得する

fetchOutputs

Simulink.Simulation.Future から Simulink.SimulationOutput を取得する

wait

Simulink.Simulation.Future オブジェクトがシミュレーションを完了するまで待機する

すべて折りたたむ

この例は、Simulink.Simulation.Future オブジェクト配列を作成し、それを使用して出力を取得し、シミュレーションのステータスを確認する方法を示します。

この例では、ゲイン Mu の値を変化させて、vdp モデルの複数のシミュレーションを実行します。

モデルを開き、Mu の値のベクトルを定義します。

openExample('simulink_general/VanDerPolOscillatorExample');
open_system('vdp');
Mu_Values = [0.5:0.25:5];
MuVal_length = length(Mu_Values);

Mu_Values を使用して、Simulink.SimulationInput オブジェクトの配列を初期化します。配列を事前に割り当てるために、ループ インデックスは最大値から開始されるように作成します。

for i = MuVal_length:-1:1
    in(i) = Simulink.SimulationInput('vdp');
    in(i) = in(i).setBlockParameter('vdp/Mu',...
        'Gain',num2str(Mu_Values(i)));
end

parsim を使用して、モデルのシミュレーションを実行します。シミュレーション実行中にコマンド プロンプトを利用できるようにするため、'RunInBackground' に設定します。

Future = parsim(in,'RunInBackground','on');

Future シミュレーションで fetchNext メソッドを使用します。

for i = 1:MuVal_length
    [completedIdx,simOut] = fetchNext(Future)
end

バージョン履歴

R2018a で導入

参考

関数

クラス