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 オブジェクトとして返されます。

すべて折りたたむ

シミュレーション データ インスペクターのプログラムによるインターフェイスを使用して、同じ実行内の信号を比較できます。この例では、航空機用縦方向コントローラーの入力信号と出力信号を比較します。

最初に、データを含むセッションを読み込みます。

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

関数 Simulink.sdi.Run.getLatest を使用してデータ内の最新の実行にアクセスします。

aircraftRun = Simulink.sdi.Run.getLatest;

次に、関数 Simulink.sdi.getSignalsByName を使用して、コントローラーへの入力を表す Stick 信号と、出力を表す alpha, rad 信号にアクセスできます。

stick = getSignalsByName(aircraftRun,'Stick');
alpha = getSignalsByName(aircraftRun,'alpha, rad');

信号を比較する前に、比較に使用する許容誤差値を指定できます。比較のベースライン信号に指定された許容誤差値が使用されるため、Stick 信号に 0.1 の絶対許容誤差値を設定します。

stick.AbsTol = 0.1;

ここで、関数 Simulink.sdi.compareSignals を使用して信号を比較します。Stick 信号はベースラインで、alpha, rad 信号はベースラインと比較される信号です。

comparisonResults = Simulink.sdi.compareSignals(stick.ID,alpha.ID);
match = comparisonResults.Status
match = 
  ComparisonSignalStatus enumeration

    OutOfTolerance

比較結果は許容誤差の範囲外です。関数 Simulink.sdi.view を使用して、シミュレーション データ インスペクターを開き、比較結果を表示および解析できます。

代替方法

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

バージョン履歴

R2012b で導入