Main Content

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

isValidSignalID

信号 ID が Simulink.sdi.Run オブジェクトの信号に対応するかどうかをチェック

説明

isValid = isValidSignalID(runObj,sigID) は、信号 ID sigIDSimulink.sdi.Run オブジェクト runObj 内の信号と一致しているかどうかの論理インジケーター isValid を返します。

すべて折りたたむ

この例では、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 を使用して、比較結果を検証および解析できます。

入力引数

すべて折りたたむ

シミュレーション データ インスペクター内の実行。Simulink.sdi.Run オブジェクトとして指定します。

一意の数値信号識別子。整数として指定します。シミュレーション データ インスペクターは実行が作成されると各信号に信号 ID を割り当てます。次のいずれかの関数を使用して信号の信号 ID を取得します。

出力引数

すべて折りたたむ

信号の有効性。loical 1 または 0 として返されます。

  • 1 — 指定された信号 ID は指定された実行内の信号に対応します。

  • 0 — 指定された信号 ID は指定された実行内の信号に対応していません。

R2012b で導入