Main Content

getResultByIndex

信号の比較結果を返す

説明

diffSig = getResultByIndex(diffRes,index) は、Simulink.sdi.DiffRunResult オブジェクト diffRes 内の指定されたインデックスで、Simulink.sdi.DiffSignalResult オブジェクト diffSig を返します。

すべて折りたたむ

シミュレーション データ インスペクターを使用して、実行した比較で使用する信号の許容誤差値をプログラムによって指定できます。この例では、航空機用縦方向飛行制御システムのモデルをシミュレーションして収集したデータを比較します。各シミュレーションは入力フィルターの時定数に異なる値を使用して、入出力信号をログに記録します。シミュレーション データ インスペクターと信号許容誤差を使用して結果を比較し、時定数の変更の影響を解析します。

まず、シミュレーション データを含むセッション ファイルを読み込みます。

Simulink.sdi.load('AircraftExample.mldatx');

セッション ファイルには 4 つの実行が含まれます。この例では、ファイル内の最初の 2 つの実行からデータを比較します。ファイルから読み込まれた最初の 2 つの実行について、Simulink.sdi.Run オブジェクトにアクセスします。

runIDs = Simulink.sdi.getAllRunIDs;
runIDTs1 = runIDs(end-3);
runIDTs2 = runIDs(end-2);

次に、許容誤差を指定しないで 2 つの実行を比較します。

noTolDiffResult = Simulink.sdi.compareRuns(runIDTs1,runIDTs2);

関数 getResultByIndex を使用して q 信号と alpha 信号の比較結果にアクセスします。

qResult = getResultByIndex(noTolDiffResult,1);
alphaResult = getResultByIndex(noTolDiffResult,2);

各信号結果の Status をチェックし、比較結果が許容誤差の範囲内または範囲外にあるかどうかを判断します。

qResult.Status
ans = 
  ComparisonSignalStatus enumeration

    OutOfTolerance

alphaResult.Status
ans = 
  ComparisonSignalStatus enumeration

    OutOfTolerance

比較では、すべての許容誤差に 0 の値を使用するため、OutOfTolerance の結果は信号が同一でないことを意味します。

信号の許容誤差値を指定して、時定数の影響をさらに解析できます。比較対象の信号に対応する Simulink.sdi.Signal オブジェクトのプロパティを設定し、許容誤差を指定します。比較ではベースライン信号に対して指定された許容誤差が使用されます。この例では、時間の許容誤差と絶対許容誤差を指定します。

許容誤差を指定するには、最初にベースライン実行から Signal オブジェクトにアクセスします。

runTs1 = Simulink.sdi.getRun(runIDTs1);
qSig = getSignalsByName(runTs1,'q, rad/sec');
alphaSig = getSignalsByName(runTs1,'alpha, rad');

AbsTol プロパティと TimeTol プロパティを使用して、q 信号に対して 0.1 の絶対許容誤差と 0.6 の時間の許容誤差を指定します。

qSig.AbsTol = 0.1;
qSig.TimeTol = 0.6;

alpha 信号に対して、0.2 の絶対許容誤差と 0.8 の時間の許容誤差を指定します。

alphaSig.AbsTol = 0.2;
alphaSig.TimeTol = 0.8;

結果を再度比較します。比較の結果にアクセスし、各信号の Status プロパティをチェックします。

tolDiffResult = Simulink.sdi.compareRuns(runIDTs1,runIDTs2);
qResult2 = getResultByIndex(tolDiffResult,1);
alphaResult2 = getResultByIndex(tolDiffResult,2);

qResult2.Status
ans = 
  ComparisonSignalStatus enumeration

    WithinTolerance

alphaResult2.Status
ans = 
  ComparisonSignalStatus enumeration

    WithinTolerance

入力引数

すべて折りたたむ

アクセスする信号の結果を含む実行の比較結果。Simulink.sdi.DiffRunResult オブジェクトとして指定します。

実行の比較結果内の信号のインデックス。整数として指定します。

例: 2

出力引数

すべて折りたたむ

指定されたインデックスでの信号の比較結果。Simulink.sdi.DiffSignalResult オブジェクトとして返されます。

バージョン履歴

R2012b で導入