メインコンテンツ

getSignalIDByIndex

Simulink.sdi.Run オブジェクト内の指定されたインデックスにある信号の信号 ID を取得

説明

sigID = getSignalIDByIndex(runObj,idx)Simulink.sdi.Run オブジェクト runObj の指定されたインデックス idx にある信号の信号 ID sigID を返します。

ヒント

信号 ID を使用して、信号データとメタデータを含む Simulink.sdi.Signal オブジェクトを取得するか、関数 Simulink.sdi.compareSignals を使用して信号比較を実行できます。

すべて折りたたむ

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

飛行制御データを含むシミュレーション データ インスペクターのセッション ファイルを読み込みます。

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");

信号 ID を使い、Simulink.sdi.compareSignals 関数を使用して Stick 信号と alpha, rad 信号を比較します。Stick 信号がベースラインです。そのベースラインと比較する信号が alpha, rad 信号です。

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

    OutOfTolerance

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

Simulink.sdi.view

Comparison of the stick and alpha, rad signals

比較に使用する時間と振幅の許容誤差値を指定できます。比較のベースライン信号に指定された許容誤差値が比較に使用されます。位相シフトを考慮して、Stick 信号に 1 の時間の許容誤差を設定します。振幅の違いを考慮して、Stick 信号に 0.1 の絶対許容誤差値を設定します。

stick.TimeTol = 1;
stick.AbsTol = 0.1;

信号を再度比較します。今回は、絶対許容誤差と時間の許容誤差により、信号比較はパスします。

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

    WithinTolerance

Comparison of the Stick and alpha, rad signals using a time tolerance of 1 and an absolute tolerance of 0.1

入力引数

すべて折りたたむ

目的の信号が含まれる実行。Simulink.sdi.Run オブジェクトとして指定します。

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

出力引数

すべて折りたたむ

一意の数値信号識別子。整数として返されます。

バージョン履歴

R2012b で導入