メインコンテンツ

setPostSimFcn

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

説明

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

すべて折りたたむ

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

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

function newSimOut = postsim(simOut);
newSimOut = simOut
newSimOut.mean = mean(simOut.yout(:,1));
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 = simOut;
newSimOut.meanValue = (simOut.yout(:,1)); 
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

PostSimFcn は、2 番目の引数として Simulink.SimulatinInput オブジェクトを受け取ることもできます。PostSimFcn の構文は次のようになります。ここで、xSimulationOutput オブジェクト、ySimulationInput オブジェクトです。

simIn = setPostSimFcn(simIn, @(x,y) myPostSimFcn(x,y));

出力引数

すべて折りたたむ

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

バージョン履歴

R2017a で導入