Main Content

setPostSimFcn

各シミュレーションの完了後に実行する MATLAB 関数を設定

説明

simIn = setPostSimFcn(simIn,func) は、Simulink.SimulationInput オブジェクト simIn に対して、関数ハンドル func に関連付けられたポスト シミュレーション関数を構成します。この関数には Simulink.SimulationOutput オブジェクトが引数として渡されます。func は任意の MATLAB® 関数であり、出力で後処理を行うために使用できます。後処理したデータは、構造体の値として返さなければなりません。これらの値は Simulink.SimulationOutput 出力に挿入され、通常のログ データと置き換わるか、新しいデータを Simulink.SimulationOutput オブジェクトに追加します。

すべて折りたたむ

この例では、Simulink.SimulationInput オブジェクトを使用してシミュレーションに対するポスト シミュレーション関数を指定します。

ログに記録された出力の平均を計算する PostSimFcn を作成します。

function newout = postsim(out);
newout.mean = mean(out.yout);
end

モデル vdpSimulationInput オブジェクトを作成します。

openExample('simulink_general/VanDerPolOscillatorExample');
simIn = Simulink.SimulationInput('vdp');
simIn = setPostSimFcn(simIn,@(x) postsim(x));
simIn = setModelParameter(simIn,'SaveOutput','on');

モデルをシミュレートします。

out = sim(simIn);

ポスト シミュレーション関数の結果を表示します。

out.mean

ErrorMessage および SimulationMetadata を関数のフィールド名として使用しないことをお勧めします。

入力引数

すべて折りたたむ

シミュレーション入力とコンフィギュレーション。Simulink.SimulationOutput オブジェクトとして指定します。

各シミュレーションの完了後に実行する関数。関数ハンドルまたは関数名として指定します。Simulink.SimulationOutput オブジェクトが渡されます。次に例を示します。

simIn = simIn.setPostSimFcn(@myPostSim)
ここで、myPostSim は MATLAB 関数です。
% The function can change the contents of the output object before returning to the client.
function newSimOut = myPostSim(simOut); 
% Post process the output for only the relevant values. 
newSimOut.meanValue = (simOut.yout(:,1)); 
newSimOut = simOut;
end
追加の引数を使用して、ポスト シミュレーション関数も関数ハンドルとして指定できます。
% The function can change the contents of the simulation input after parsim runs the simulation.
function newSimOut = myPostSim_additionalArgs(simOut,additionalArg1,additionalArg2) 
     newSimOut = simOut;
end

出力引数

すべて折りたたむ

ポスト シミュレーション関数が追加されたシミュレーションのコンフィギュレーション。Simulink.SimulationInput オブジェクトとして返されます。

バージョン履歴

R2017a で導入