このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
Simulink.sdi.compareSignals
2 つの Simulink.sdi.Signal
オブジェクトでデータを比較する
説明
は信号 ID の diff
= Simulink.sdi.compareSignals(sigID1
,sigID2
)sigID1
と sigID2
に対応する信号を比較し、その結果を Simulink.sdi.DiffSignalResult
オブジェクトに返します。比較結果を計算する方法の詳細については、シミュレーション データ インスペクターでデータを比較する方法を参照してください。
例
同じ実行内に含まれる 2 つの信号の比較
シミュレーション データ インスペクターのプログラムによるインターフェイスを使用して、同じ実行内の信号を比較できます。この例では、航空機用縦方向コントローラーの入力信号と出力信号を比較します。
最初に、データを含むセッションを読み込みます。
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
を使用して、シミュレーション データ インスペクターを開き、比較結果を表示および解析できます。
異なる実行からの信号を比較
この例では、シミュレーション データ インスペクターの関数 Simulink.sdi.compareSignals
を使用して異なるシミュレーション実行の信号を比較する方法について説明します。比較する対象の信号が 1 つのみの場合、信号比較を使用すると比較データをもつ Simulink.sdi.diffSignalResult
オブジェクトが直接返されます。
シミュレーション データの生成
slexAircraftExample
モデルを使用してシミュレーション実行を生成します。実行間で入力フィルターの時定数を変更します。
% Load example model load_system('slexAircraftExample') % Mark the alpha, rad signal for streaming Simulink.sdi.markSignalForStreaming('slexAircraftExample/Aircraft Dynamics Model',4,'on') % Simulate system out_1 = sim('slexAircraftExample'); % Change input filter time constant modelWorkspace = get_param('slexAircraftExample','modelworkspace'); assignin(modelWorkspace,'Ts',0.2) % Simulate again out_2 = sim('slexAircraftExample');
信号比較のための信号 ID を取得
実行 ID を使用して実行オブジェクトを作成したら、getSignalIDByIndex
を使用して Simulink.sdi.compareSignals
に渡す信号 ID を取得します。
% Get run data
runIDs = Simulink.sdi.getAllRunIDs;
runID1 = runIDs(end-1);
runID2 = runIDs(end);
run1 = Simulink.sdi.getRun(runID1);
run2 = Simulink.sdi.getRun(runID2);
sigID1 = getSignalIDByIndex(run1,1);
sigID2 = getSignalIDByIndex(run2,1);
信号の比較
信号を比較し、シミュレーション データ インスペクターを開いて結果を表示します。
diffResult = Simulink.sdi.compareSignals(sigID1,sigID2); Simulink.sdi.view
入力引数
sigID1
— ベースライン信号の信号 ID
スカラー
ベースライン信号の信号 ID。整数として指定します。シミュレーション データ インスペクターは実行が作成されると各信号に信号 ID を割り当てます。次のいずれかの関数を使用して信号の信号 ID を取得します。
sigID2
— 比較する信号の信号 ID
スカラー
比較する信号の信号 ID。整数として指定します。シミュレーション データ インスペクターは実行が作成されると各信号に信号 ID を割り当てます。次のいずれかの関数を使用して信号の信号 ID を取得します。
出力引数
diff
— 信号の比較結果
Simulink.sdi.diffSignalResult
| Simulink.sdi.diffSignalResult
オブジェクトの配列
信号の比較結果。Simulink.sdi.DiffSignalResult
オブジェクトとして返されます。複素信号の比較結果は 2 つの DiffSignalResult
オブジェクトの配列として返されます。1 つの DiffSignalResult
オブジェクトには実数データが含まれ、もう 1 つのオブジェクトには虚数データが含まれます。DiffSignalResult
オブジェクトの Name
プロパティをチェックし、実数データと虚数データのどちらが含まれているのかを判別します。
制限
シミュレーション データ インスペクターは以下の比較をサポートしていません。
データ型
int64
またはuint64
の信号。可変サイズの信号。
バージョン履歴
R2011b で導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)