В этом примере показано, как сконфигурировать поведение сравнения Simulink.sdi.constraints.MatchesSignal ограничение с использованием Simulink.sdi.constraints.MatchesSignalOptions объект. Можно использовать MatchesSignalOptions объект, чтобы сконфигурировать несколько свойств сравнения с одним входом пары "имя-значение" в конструкции MatchesSignal образец.
Создание данных временных рядов
Этот пример создает данные рабочей области для использования только в иллюстративных целях. Можно использовать MatchesSignal ограничение для сравнения данных из других источников, таких как симуляция выходов или файл, содержащий тестовые данные, и ограничение может сравнивать данные временных рядов в любом формате, поддерживаемом Данными моделирования Inspector.
В этом примере первый сигнал является timeseries объект с именем Wave Data который содержит данные для синусоиды.
Второй сигнал также является синусоидой с той же частотой, с небольшим ослаблением и дискретизацией с другой скоростью. Потому что алгоритм сравнения для MatchesSignal ограничение включает в себя шаг синхронизации, сравнение этих двух сигналов с различными временными векторами не обязательно приводит к непройденному тесту. Второй сигнал приведен к single тип данных, а также именованные Wave Data таким образом, алгоритм выравнивания может связать сигналы для сравнения.
Сконфигурируйте MatchesSignal Образец и сравнение данных
Можно использовать MatchesSignalOptions объект, чтобы задать, как образец MatchesSignal условия маркеров ограничений, такие как несоответствующие типы данных и выравнивание сигналов между фактическим и ожидаемым наборами данных. Можно задать свойства MatchesSignalOptions объект, соответствующий тесту, который вы хотите записать. Например, если вы хотите, чтобы ваш тест сравнивал данные различных типов, и тип данных, соответствующий функционально не релевантному, можно задать IgnoreDataTypes свойство к true.
Создайте MatchesSignalOptions объект для создания MatchesSignal образец, который игнорирует несоответствия типов данных и выборки данных за пределами временного интервала фактического и ожидаемого общего использования сигналов.
Создайте TestCase образец для интерактивного использования и сравнения sig1_ts и sig2_ts использование MatchesSignal ограничение, MatchesSignalOptions объект и абсолютная погрешность 0.02.
Тест пройден. Когда вы запускаете тот же тест снова без опций, заданных MatchesSignalOptions объект, тест завершается неуспешно из-за несоответствующих типов данных.
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 C:\Users\snadeau\AppData\Local\Temp\Editor_oxzoe\LiveEditorEvaluationHelperE1184446395.m (LiveEditorEvaluationHelperE1184446395) at 16
In E:\jobarchive\Bdoc20b\2020_06_06_h12m11s21_job1400967_pass\matlab\toolbox\matlab\codetools\embeddedoutputs\+matlab\+internal\+editor\evaluateRegions.p (evaluateRegions) at 0
In E:\jobarchive\Bdoc20b\2020_06_06_h12m11s21_job1400967_pass\matlab\toolbox\matlab\codetools\embeddedoutputs\+matlab\+internal\+editor\EvaluationOutputsService.p (EvaluationOutputsService.evalRegions) at 0