Simulink.sdi.constraints. Класс MatchesSignalOptions

Пакет: Simulink.sdi.constraints

Задайте опции сравнения для ограничения Simulink.sdi.MatchesSignal

Описание

Используйте объект Simulink.sdi.constraints.MatchesSignalOptions сконфигурировать поведение сравнения и критерии допустимости для экземпляра ограничения Simulink.sdi.constraints.MatchesSignal.

Создание

Описание

пример

MatchesSignalOptions создает экземпляр класса Simulink.sdi.constraints.MatchesSignalOptions со свойствами, которые соответствуют ограничению, которое не игнорирует проверок и использует настройки выравнивания по умолчанию для Инспектора Данных моделирования.

пример

MatchesSignalOptions(Name,Value) создает экземпляр класса Simulink.sdi.constraints.MatchesSignalOptions со свойствами использования поведения сравнения, заданными одним или несколькими аргументами пары Name,Value.

Свойства

развернуть все

Ограничительная чувствительность к фактическому значению, имеющему различный тип данных от ожидаемого значения.

  • ложь Ограничение проверяет ли ожидаемое значение и соответствие типов данных фактического значения.

  • tRUE Ограничение нечувствительно к неверным типам данных между ожидаемым значением и фактическим значением.

Можно задать свойство IgnoreDataTypes в конструкторе, использующем аргумент пары "имя-значение" 'IgnoringDataTypes'.

Атрибуты:

GetAccess

общественность

SetAccess

общественность

Ограничительная чувствительность к одному или нескольким сигналам, не выравнивающимся между ожидаемым значением и фактическим значением.

  • ложь Ограничение проверяет на сигналы, которые не выравниваются между ожидаемым значением и фактическим значением.

  • tRUE Ограничение нечувствительно к одному или нескольким сигналам, не выравнивающимся между ожидаемым значением и фактическим значением.

Можно задать свойство IgnoreSignalsNotAligned в конструкторе, использующем аргумент пары "имя-значение" 'IgnoringSignalsNotAligned'.

Атрибуты:

GetAccess

общественность

SetAccess

общественность

Ограничительная чувствительность к фактическому значению, содержащему данные за пределами временного интервала, задана ожидаемым значением.

  • ложь Ограничение проверяет, содержит ли фактическое значение данные вне временного интервала, заданного ожидаемым значением.

  • tRUE Ограничение нечувствительно к фактическому значению, содержащему данные вне временного интервала, заданного ожидаемым значением.

Можно задать свойство IgnoreExtraData в конструкторе, использующем аргумент пары "имя-значение" 'IgnoringExtraData'.

Атрибуты:

GetAccess

общественность

SetAccess

общественность

Критерии выравнивания сравнения. Когда ожидаемое значение содержит больше чем один сигнал, Инспектор Данных моделирования, алгоритм сравнения выравнивает сигналы для сравнения между ожидаемыми и фактическими значениями. По умолчанию Инспектор Данных моделирования выравнивается источником данных, затем блоком path, затем SID, и затем именем сигнала. Для получения дополнительной информации об Инспекторе Данных моделирования алгоритм выравнивания, смотрите, Как Инспектор Данных моделирования Сравнивает Данные.

Задайте критерии выравнивания как массив строк с одним или несколькими из этих опций, перечисленных в порядке, в котором вы хотите их рассмотренный:

Можно задать свойство Alignment в конструкторе, использующем аргумент пары "имя-значение" 'AligningBy'.

Примеры

свернуть все

Этот пример показывает, как использовать ограничение Simulink.sdi.constraints.MatchesSignal и объект Simulink.sdi.constraints.MatchesSignalObjects настроить, как тесты с помощью ограничения MatchesSignal сравнивают данные временных рядов. Когда вы используете ограничение MatchesSignal, можно задать абсолютный, относительный, и допуски времени, чтобы использовать в сравнении. Можно также сконфигурировать опции, которые определяют ограничительную чувствительность к характеристикам данных, таким как отличающиеся типы данных.

Ограничение MatchesSignal использует Инспектора Данных моделирования для сравнения временных рядов и требует одного из этих продуктов:

  • Simulink®

  • Signal Processing Toolbox™

  • MATLAB Coder™

  • Fixed-Point Designer™

Создайте данные временных рядов

Этот пример показывает, как создать данные для сравнения в рабочей области и использует формат timeseries. Можно также использовать ограничение MatchesSignal, чтобы сравнить сигналы, регистрируемые от симуляции или из другого источника. Ограничение может сравнить данные временных рядов в любом формате, поддержанном Инспектором Данных моделирования, таким как формат Simulink.SimulationData.Dataset.

В этом примере первый сигнал является синусоидой, и второй сигнал является также синусоидой с маленьким затуханием в данных.

time = linspace(0,20,1001);

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

sig2vals = 0.98*sin(2*pi/5*time);
sig2_ts = timeseries(sig2vals,time);
sig2_ts.Name = 'Wave Data';

Создайте интерактивный тест, чтобы сравнить сигналы

Создайте интерактивный тест и используйте ограничение MatchesSignal, чтобы выполнить сравнение двух сигналов. Используйте sig1_ts для ожидаемого значения в экземпляре ограничения MatchesSignal и проигнорируйте несоответствия типа данных.

import matlab.unittest.TestCase
import Simulink.sdi.constraints.MatchesSignal

testCase = TestCase.forInteractiveUse;
testCase.verifyThat(sig2_ts,MatchesSignal(sig1_ts));
Verification failed.
    ---------------------
    Framework Diagnostic:
    ---------------------
    MatchesSignal failed.
    --> The following aligned signals did not match:
        
              ActualValue        ExpectedValue  
            _______________    _________________
        
            '<Actual>.Data'    '<Expected>.Data'
    --> Comparison snapshots captured to:
        --> /tmp/BR2019ad_1062519_57051/mlx_to_docbook1/Snapshot_c9017eee-a849-4ea5-91e1-a4ace28cd831.png
    ------------------
    Stack Information:
    ------------------
    In /tmp/BR2019ad_1062519_57051/mlx_to_docbook1/tp9dc4a53d/simulink-ex22803619/TestTimeSeriesDataWithTimeToleranceExample.mlx (TestTimeSeriesDataWithTimeToleranceExample) at 14
    In /mathworks/devel/bat/BR2019ad/build/matlab/toolbox/matlab/codetools/embeddedoutputs/+matlab/+internal/+editor/evaluateRegions.p (evaluateRegions) at 110
    In /mathworks/devel/bat/BR2019ad/build/matlab/toolbox/matlab/codetools/embeddedoutputs/+matlab/+internal/+editor/EvaluationOutputsService.p (EvaluationOutputsService.evalRegions) at 58
    In /mathworks/devel/bat/BR2019ad/build/matlab/toolbox/matlab/codetools/+matlab/+internal/+liveeditor/@LiveEditorUtilities/execute.m (execute) at 36
    In /mathworks/devel/bat/BR2019ad/build/matlab/tools/examples/exampletools/+mwtools/liveCodeToDocbook.m (doRun) at 195
    In /mathworks/devel/bat/BR2019ad/build/matlab/tools/examples/exampletools/+mwtools/liveCodeToDocbook.m (doRunConvert) at 147
    In /mathworks/devel/bat/BR2019ad/build/matlab/tools/examples/exampletools/+mwtools/liveCodeToDocbook.m (liveCodeToDocbook) at 68
    In /mathworks/devel/bat/BR2019ad/build/matlab/tools/build_using_matlab/BML.m (BML) at 13

Диагностическая информация показывает что проверка не выполнена. Щелкните по ссылке, чтобы просмотреть снимок состояния сравнения, чтобы просмотреть оба сигнала и сигнал различия. Из графика вы видите, что фаза переключает, который создает различие и заставляет сравнение перестать работать.

Можно задать абсолютный допуск к экземпляру ограничения MatchesSignal, чтобы использовать в сравнении.

testCase.verifyThat(sig2_ts,MatchesSignal(sig1_ts,'AbsTol',0.02));
Verification passed.

Задайте ограничительные опции

Можно также задать опции для ограничения, с помощью объекта MatchesSignalOptions. Например, сигналы в этом примере выравниваются именем сигнала. Создайте объект MatchesSignalOptions сконфигурировать настройки выравнивания, чтобы выровняться сначала именем сигнала.

import Simulink.sdi.constraints.MatchesSignalOptions

opts = MatchesSignalOptions('AligningBy',"SignalName");
testCase.verifyThat(sig2_ts,MatchesSignal(sig1_ts,'AbsTol',0.02,'WithOptions',opts));
Verification passed.

Введенный в R2019a