メインコンテンツ

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

fetchOutputs

Simulink.Simulation.Job 内のすべてのシミュレーションから Simulink.SimulationOutput オブジェクトの配列を取得する

説明

out = fetchOutputs(simJob) は、バッチ ジョブ simJob のシミュレーションの結果を含む Simulink.SimulationOutput オブジェクトの配列を返します。

ジョブが 'finished' 状態にないか、またはシミュレーションのいずれかで実行中にエラーが発生した場合、fetchOutputs はエラーをレポートします。ジョブが完了するまで待機してから出力を取得するには、wait メソッドを使用します。

すべて折りたたむ

この例は、並列シミュレーションをバッチで実行し、結果として得られた Simulink.SimulationOutput オブジェクトを Simulink.Simulation.Job オブジェクトから取得する方法を示します。batchsim コマンドで、シミュレーションを計算クラスターにオフロードすると、バッチ ジョブの処理中に他のタスクを実行することや、クライアント MATLAB® を閉じてバッチ ジョブに後からアクセスすることができます。

1. モデルを開きます。

open_system('sldemo_househeat');

2. さまざまな温度に対して一連の値を定義します。

setPointValues = 65:2:85;
spv_Length = length(setPointValues);

3. setPointValues を使用して、Simulink.SimulationInput オブジェクトの配列を初期化します。

in(1:spv_Length) = Simulink.SimulationInput('sldemo_househeat');
for i = 1:1:spv_Length 
    in(i) = in(i).setBlockParameter('sldemo_househeat/Set Point',...
        'Value',num2str(setPointValues(i)));
end

4. 使用するワーカー数のプール サイズを指定します。シミュレーションの並列実行に使用されるワーカー数に加え、ヘッド ワーカーが必要です。この例では、3 つのワーカーで並列シミュレーションの 1 つのバッチジョブを実行できると仮定します。ジョブ オブジェクトは、以下のように有用なメタデータを返します。ジョブ ID を使用すると、後で任意のマシンからジョブ オブジェクトにアクセスできます。NumWorkers は、シミュレーションを実行中のワーカー数を示します。これは、'Pool' 引数で指定したワーカー数に追加のヘッド ワーカーを足した数になります。

simJob = batchsim(in,'Pool',3)
                  ID: 1
                Type: pool
          NumWorkers: 4
            Username: #####
               State: running
      SubmitDateTime: ##-###-#### ##:##:##
       StartDateTime: 
    Running Duration: 0 days 0h 0m 0s

5. fetchOutputs メソッドを使用してバッチ ジョブの結果にアクセスします。fetchOutputsSimulink.SimulationOuput オブジェクトの配列を返します。出力の取得は、simJobfinished 状態になった後でのみ可能です。

out = fetchOutputs(simJob)
1x11 Simulink.SimulationOutput array

入力引数

すべて折りたたむ

Simulink.Simulation.Job オブジェクト。simJob を作成するには、batchsim を実行します。

例: simJob = batchsim(in,'Pool',4)

出力引数

すべて折りたたむ

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

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

バージョン履歴

R2018b で導入