В этом примере показано, как настроить поведение сравнения Simulink.sdi.constraints.MatchesSignal ограничение с использованием Simulink.sdi.constraints.MatchesSignalOptions объект. Вы можете использовать MatchesSignalOptions объект для настройки нескольких свойств сравнения с одним вводом пары имя-значение при построении MatchesSignal экземпляр.
Создание данных временных рядов
В этом примере создаются данные рабочей области для использования только в иллюстративных целях. Вы можете использовать MatchesSignal ограничение для сравнения данных из других источников, таких как выходные данные моделирования или файл, содержащий тестовые данные, и ограничение может сравнивать данные временных рядов в любом формате, поддерживаемом инспектором данных моделирования.
В этом примере первым сигналом является 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