Main Content

Simulink.sdi.constraints.MatchesSignalOptions クラス

名前空間: Simulink.sdi.constraints

Simulink.sdi.MatchesSignal 制約の比較オプションの指定

説明

Simulink.sdi.constraints.MatchesSignalOptions オブジェクトを使用して Simulink.sdi.constraints.MatchesSignal 制約のインスタンスについての比較の動作と受容の基準を構成します。

メモ

MatchesSignal 制約は、シミュレーション データ インスペクターを使用して比較を実行します。以下のいずれかの製品ライセンスが必要です。

  • Simulink®

  • Signal Processing Toolbox™

  • MATLAB® Coder™

  • Fixed-Point Designer™

作成

説明

MatchesSignalOptions は、チェックを無視せず、シミュレーション データ インスペクターの既定の整列設定を使用する制約に対応するプロパティをもつ Simulink.sdi.constraints.MatchesSignalOptions クラスのインスタンスを作成します。

MatchesSignalOptions(Name,Value) は、1 つ以上の Name,Value ペア引数によって指定されるプロパティを使用する比較動作を行う Simulink.sdi.constraints.MatchesSignalOptions クラスのインスタンスを作成します。

プロパティ

すべて展開する

想定される値と異なるデータ型をもつ実際の値に対する制約の感度。

  • false — 制約は、想定される値と実際の値とのデータ型が一致することをチェックします。

  • true — 制約は、想定される値と実際の値とのデータ型の不一致に影響されません。

名前と値のペアの引数 'IgnoringDataTypes' を使用してコンストラクターの IgnoreDataTypes プロパティを指定できます。

属性:

GetAccess
public
SetAccess
public

想定される値と実際の値との間で整列されていない 1 つ以上の信号に対する制約の感度。

  • false — 制約は、想定される値と実際の値との間で整列しない信号をチェックします。

  • true — 制約は、想定される値と実際の値との間で整列しない 1 つ以上の信号に影響されません。

名前と値のペアの引数 'IgnoringSignalsNotAligned' を使用してコンストラクターの IgnoreSignalsNotAligned プロパティを指定できます。

属性:

GetAccess
public
SetAccess
public

想定される値により定義される時間間隔の外側の実際の値に対する制約の感度。

  • false — 制約は、想定される値によって定義される時間間隔の外側のデータが実際の値に含まれているかどうかをチェックします。

  • true — 制約は、想定される値によって定義される時間間隔の外側のデータが実際の値に含まれていても影響されません。

名前と値のペアの引数 'IgnoringExtraData' を使用してコンストラクターの IgnoreExtraData プロパティを指定できます。

属性:

GetAccess
public
SetAccess
public

比較のための整列基準。想定される値に 1 つ以上の信号が含まれている場合、シミュレーション データ インスペクターの比較アルゴリズムは、想定される値と実際の値との間の比較のため、信号を整列します。既定では、シミュレーション データ インスペクターは、データ ソース、次にブロック パス、次に SID、次に信号名によって整列します。シミュレーション データ インスペクターの整列アルゴリズムの詳細については、シミュレーション データ インスペクターでデータを比較する方法を参照してください。

1 つ以上の以下のオプションを、考慮する順番に string 配列として指定して、整列基準を指定します。

  • BlockPath — 信号のソース ブロックのパス。

  • SID — 自動的に割り当てられる Simulink 識別子。

  • SignalName — 信号の名前。

  • DataSource — 変数のパス。

名前と値のペアの引数 'AligningBy' を使用してコンストラクターの Alignment プロパティを指定できます。

すべて折りたたむ

この例では、Simulink.sdi.constraints.MatchesSignalOptions オブジェクトを使用した Simulink.sdi.constraints.MatchesSignal 制約の比較の動作を構成する方法を示します。MatchesSignalOptions オブジェクトを使用して、MatchesSignal インスタンスの構築で単一の名前と値のペアの入力をもつ複数の比較プロパティを構成できます。

時系列データの作成

この例では、わかりやすく説明する目的でのみ、使用するワークスペース データを作成します。MatchesSignal 制約を使用して、シミュレーション出力またはテスト データが含まれるファイルなど、その他のソースからのデータを比較できます。また、この制約はシミュレーション データ インスペクターでサポートされている任意の形式で時系列データを比較できます。

この例では、最初の信号は正弦波のデータを含む Wave Data という名前の timeseries オブジェクトです。

time = 0:0.1:20;
sig1vals = sin(2*pi/5*time);
sig1_ts = timeseries(sig1vals,time);
sig1_ts.Name = 'Wave Data';

2 つ目の信号も、わずかな減衰があり、異なるレートでサンプリングされる同じ周波数の正弦波です。MatchesSignal 制約の比較アルゴリズムには同期ステップが含まれるため、異なる時間ベクトルをもつこれら 2 つの信号を比較しても、結果が必ずしもテスト エラーになるとは限りません。2 番目の信号は single データ型にキャストされ、Wave Data とも呼ばれるため、整列アルゴリズムでは、比較するために信号をペアにすることができます。

time2 = 0:0.1:22;
sig2vals = single(0.98*sin(2*pi/5*time2));
sig2_ts = timeseries(sig2vals,time2);
sig2_ts.Name = 'Wave Data';

MatchesSignal インスタンスの構成およびデータの比較

MatchesSignalOptions オブジェクトを使用して、MatchesSignal 制約のインスタンスがデータ型の不一致などの条件を処理する方法と、実際のデータセットと想定されるデータセットとの間で信号が整列される方法を指定できます。書き込むテストに合わせて MatchesSignalOptions オブジェクトのプロパティを指定できます。たとえば、テストでさまざまな型のデータを比較し、データ型の一致が機能的に関連しない場合、IgnoreDataTypes プロパティを true に設定することもできます。

MatchesSignalOptions オブジェクトを作成して、データ型の不一致や、実際の信号と想定される信号が共有する時間間隔外のデータ サンプルを無視する MatchesSignal インスタンスを作成します。

import Simulink.sdi.constraints.MatchesSignalOptions
opts = MatchesSignalOptions('IgnoringDataTypes',true,'IgnoringExtraData',true);

対話型で使用する TestCase インスタンスを作成し、MatchesSignal 制約、MatchesSignalOptions オブジェクト、0.02 の絶対許容誤差を使用して、sig1_tssig2_ts を比較します。

import matlab.unittest.TestCase
testCase = TestCase.forInteractiveUse;

import Simulink.sdi.constraints.MatchesSignal
testCase.verifyThat(sig2_ts,MatchesSignal(sig1_ts,'AbsTol',0.02,'WithOptions',opts))
Verification passed.

テストにパスします。MatchesSignalOptions オブジェクトで定義されたオプションなしで、同じテストを再実行すると、データ型の不一致が原因でテストは失敗します。

testCase.verifyThat(sig2_ts,MatchesSignal(sig1_ts,'AbsTol',0.02))
Verification failed.
    ---------------------
    Framework Diagnostic:
    ---------------------
    MatchesSignal(<Value>,'AbsTol',0.02) failed.
    --> Data types do not match for the following aligned signals:
        
              Name       ActualSignals    ActualDataType    ExpectedSignals    ExpectedDataType
            _________    _____________    ______________    _______________    ________________
                                                                                               
            Wave Data    <Actual>.Data        single        <Expected>.Data         double     
    
    ------------------
    Stack Information:
    ------------------
    In /tmp/Bdoc24a_2511836_2316910/tp8cb43bfc/simulink-ex71177165/ConfigureMatchesSignalConstraintBehaviorExample.mlx (ConfigureMatchesSignalConstraintBehaviorExample) at 16
    In /mathworks/devel/bat/filer/batfs1904-0/Bdoc24a.2511836/build/matlab/toolbox/matlab/codetools/embeddedoutputs/+matlab/+internal/+editor/evaluateRegions.p (evaluateRegions) at 0
    In /mathworks/devel/bat/filer/batfs1904-0/Bdoc24a.2511836/build/matlab/toolbox/matlab/codetools/embeddedoutputs/+matlab/+internal/+editor/EvaluationOutputsService.p (EvaluationOutputsService.evalRegions) at 0
    In /mathworks/devel/bat/filer/batfs1904-0/Bdoc24a.2511836/build/matlab/toolbox/matlab/codetools/+matlab/+internal/+liveeditor/@LiveEditorUtilities/execute.m (execute) at 85
    In /mathworks/devel/bat/filer/batfs1904-0/Bdoc24a.2511836/build/matlab/tools/examples/exampletools/+mwtools/liveCodeToDocbook.m (doRun) at 431
    In /mathworks/devel/bat/filer/batfs1904-0/Bdoc24a.2511836/build/matlab/tools/examples/exampletools/+mwtools/liveCodeToDocbook.m (doRunConvert) at 346
    In /mathworks/devel/bat/filer/batfs1904-0/Bdoc24a.2511836/build/matlab/tools/examples/exampletools/+mwtools/liveCodeToDocbook.m (liveCodeToDocbook) at 164
    In /mathworks/devel/bat/filer/batfs1904-0/Bdoc24a.2511836/build/matlab/tools/build_using_matlab/BML.m (BML) at 13

バージョン履歴

R2019a で導入