Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

Simulink.sdi.DiffSignalResult

信号の比較結果にアクセスする

説明

シミュレーション データ インスペクターを使用して実行または信号を比較する場合、その結果は Simulink.sdi.DiffSignalResult オブジェクト、または 1 つ以上の Simulink.sdi.DiffSignalResult オブジェクトを含む Simulink.sdi.DiffRunResult オブジェクトのいずれかとして返されます。DiffSignalResult オブジェクトには、差分信号、許容誤差データ、および同期された信号データなど、信号比較結果のデータとメタデータが含まれます。

作成

シミュレーション データ インスペクターを使用して実行または信号を比較する場合、2 つの方法で Simulink.sdi.DiffSignalResult オブジェクト内の信号比較結果にアクセスできます。

プロパティ

すべて展開する

このプロパティは読み取り専用です。

ベースライン信号名。文字ベクトルとして返されます。比較結果が複素数である場合、実数データを含む DiffSignalResult オブジェクトの名前には (real) が付加され、虚数データを含む DiffSignalResult オブジェクトの名前には (imag) が付加されます。

このプロパティは読み取り専用です。

DiffSignalResult オブジェクトに対応する信号比較のステータス。次のいずれかのオプションとして返されます。ステータスは、特定の信号比較が、比較時間が長い比較プロセスのどこにあるかを示すことも、信号比較の結果に関する情報を示すこともできます。

  • WithinTolerance — 信号比較が完了し、比較したすべてのデータ点が指定した許容誤差内にあります。

  • OutOfTolerance — 信号比較が完了し、比較した一部のデータ点が指定した許容誤差外にあります。

  • Unaligned — ベースライン実行からの信号が比較対象の実行の信号と整列しませんでした。

  • Empty — ベースライン実行または比較対象の実行で整列後の信号にデータは含まれていません。

  • EmptySynced — ベースライン実行または比較対象の実行で同期後の信号にデータは含まれていません。空の同期後の信号とは、信号がオーバーラップしないか、intersection 同期メソッドを指定した場合は、同じ時間点が含まれないことを意味します。

  • Canceled — この信号結果が計算される前にユーザーが比較をキャンセルしたか、アルゴリズムによって比較が終了したため、信号結果は計算されませんでした。

  • Pending — 比較は処理中であり、信号結果の計算は開始していません。

  • Processing — 信号結果比較が処理中です。

  • UnitsMismatch — ベースライン実行と比較対象の実行で信号単位が一致しません。

  • DataTypeMismatch — ベースライン実行と比較対象の実行で信号データ型が一致しません。信号データ型をチェックするように設定された比較の結果のみが、このステータスをもつことができます。

  • TimeMismatch — ベースライン実行と比較対象の実行で信号時間ベクトルが一致しません。信号時間ベクトルをチェックするように設定された比較の結果のみが、このステータスをもつことができます。

  • StartStopMismatch — ベースライン実行と比較対象の実行で信号開始時間と終了時間が一致しません。信号開始時間と終了時間をチェックするように設定された比較の結果のみが、このステータスをもつことができます。

  • Unsupported — シミュレーション データ インスペクターの比較アルゴリズムは、この信号のタイプをサポートしていません。たとえば、double に変換すると精度が低下するデータ型をもつ信号はサポートされていません。

整列、許容誤差、同期の詳細については、シミュレーション データ インスペクターでデータを比較する方法を参照してください。追加のメタデータをチェックする比較の構成の詳細については、Simulink.sdi.compareRuns を参照してください。

このプロパティは読み取り専用です。

実行比較で整列される信号の基準となるプロパティ。文字ベクトルとして返されます。DiffSignalResult オブジェクトが信号比較から作成された場合、AlignBy プロパティは空です。実行比較が信号を整列する方法の詳細については、シミュレーション データ インスペクターでデータを比較する方法を参照してください。

このプロパティは読み取り専用です。

比較におけるベースライン信号の一意の信号識別子。整数として返されます。

このプロパティは読み取り専用です。

ベースライン信号に対して比較する信号の一意の信号識別子。整数として返されます。

このプロパティは読み取り専用です。

2 つの比較信号間の最大差。double として返されます。

このプロパティは読み取り専用です。

同期されたベースライン信号。timeseries オブジェクトとして返されます。同期の詳細については、シミュレーション データ インスペクターでデータを比較する方法を参照してください。

このプロパティは読み取り専用です。

同期された比較対象の信号。timeseries オブジェクトとして返されます。同期の詳細については、シミュレーション データ インスペクターでデータを比較する方法を参照してください。

このプロパティは読み取り専用です。

比較された結果の差分信号。timeseries オブジェクトとして返されます。

すべて折りたたむ

この例では、slexAircraftExample モデルを使用して、制御システムの入力信号と出力信号の比較方法を示します。

モデルの設定とシミュレーション

slexAircraftExample モデルはデータを記録しません。モデルを読み込み、入力信号と出力信号をログ記録するようマークします。

load_system('slexAircraftExample')
Simulink.sdi.markSignalForStreaming('slexAircraftExample/Pilot',1,'on')
Simulink.sdi.markSignalForStreaming('slexAircraftExample/Aircraft Dynamics Model',4,'on')

モデルをシミュレートします。ログ信号のデータはシミュレーション データ インスペクターとワークスペースに記録されます。

out = sim('slexAircraftExample');

シミュレーション データへのアクセス

シミュレーション データ インスペクターのプログラムによるインターフェイスを使用して、データにアクセスします。関数 Simulink.sdi.Run.getLatest は、シミュレーション データ インスペクター リポジトリ内で最後に作成された実行を返します。関数 getSignalIDByIndex を使用して、ログ信号の信号 ID にアクセスします。

aircraftRun = Simulink.sdi.Run.getLatest;

signalID1 = getSignalIDByIndex(aircraftRun,1);
signalID2 = getSignalIDByIndex(aircraftRun,2);

許容誤差値の指定

比較に使用する許容誤差値を、記録された Simulink.sdi.Signal オブジェクトのプロパティとして指定できます。関数 Simulink.sdi.getSignal を使用し、信号 ID を使用して Signal オブジェクトにアクセスします。

signal1 = Simulink.sdi.getSignal(signalID1);
signal1.AbsTol = 0.1;

信号の比較

関数 Simulink.sdi.compareSignals を使用して、入力信号と出力信号を比較します。この例では、関数 isValidSignalID を使用して、両方の信号 ID が関数 Simulink.sdi.compareSignals の呼び出し前に依然として有効であることを検証します。信号がシミュレーション データ インスペクターから削除されると、信号 ID は無効になります。比較後、Simulink.sdi.DiffSignalResult オブジェクトのステータスをチェックします。

if (isValidSignalID(aircraftRun,signalID1) && isValidSignalID(aircraftRun,signalID2))
    sigDiff = Simulink.sdi.compareSignals(signalID1,signalID2);

    match = sigDiff.Status
end
match = 
OutOfTolerance

比較結果は許容誤差の範囲外です。関数 Simulink.sdi.view を使用して、比較結果を検証および解析できます。

代替方法

シミュレーション データ インスペクター UI を使用して、比較結果を表示および検証できます。詳細については、シミュレーション データの比較を参照してください。

R2012b で導入