Main Content

fetchNext

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

説明

[idx,simOut] = fetchNext(Future) は、Simulink.Simulation.Future 配列、Future の未読の要素が 'finished' 状態に到達するまで待機します。完了したシミュレーションのインデックスと、対応する Simulink.SimulationOutput オブジェクトを返します。

[idx,simOut] = fetchNext(Future, Timeout) は、結果が利用できるようになるまで、最大 Timeout 秒待機します。結果が利用できるようになるまでにタイムアウトが経過した場合、simOut は空の配列として返されます。

Future に要素がない場合、プロパティ Read は false となり、エラーが報告されます。anyUnread = ~all([F.Read]) を使用すると、未読の Future をチェックできます。

状態が 'finished' である Future の要素を実行中にエラーが発生した場合、fetchNext はエラーを表示します。その要素の Read プロパティは true となり、それより後の fetchNext の呼び出しを実行できるようになります。

すべて折りたたむ

この例は、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

入力引数

すべて折りたたむ

Simulation.Simulink.Future オブジェクトの配列。Future を作成するには、'RunInBackground' オプションを 'on' に設定して parsim を実行します。

例: Future = parsim(in,'RunInBackground','on')

fetchNextSimulation.Simulink.Future 配列、Future から結果を取得する際の Timeout を指定します。

例: [idx, simOut] = fetchNext(Future, 45)

出力引数

すべて折りたたむ

fetchNext メソッドを Simulink.Simulation.Future オブジェクトの配列に対して使用すると、出力取得対象のシミュレーションのインデックスが返されます。

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

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

バージョン履歴

R2017b で導入

参考

関数

クラス