В этом примере показано, как сконфигурировать поведение сравнения 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:
ActualValue ActualDataType ExpectedValue ExpectedDataType
_________________ ______________ ___________________ ________________
{'<Actual>.Data'} {'single'} {'<Expected>.Data'} {'double'}
------------------
Stack Information:
------------------
In \\fs03ahzp05cfs0\vmgr$\home05\snadeau\Documents\MATLAB\Examples\simulink-ex71177165\ConfigureMatchesSignalConstraintBehaviorExample.mlx (ConfigureMatchesSignalConstraintBehaviorExample) at 16
In E:\jobarchive\Bdoc20a\2019_09_13_h15m07s26_job1204077_pass\matlab\toolbox\matlab\codetools\embeddedoutputs\+matlab\+internal\+editor\evaluateRegions.p (evaluateRegions) at 0
In E:\jobarchive\Bdoc20a\2019_09_13_h15m07s26_job1204077_pass\matlab\toolbox\matlab\codetools\embeddedoutputs\+matlab\+internal\+editor\EvaluationOutputsService.p (EvaluationOutputsService.evalRegions) at 0
In E:\jobarchive\Bdoc20a\2019_09_13_h15m07s26_job1204077_pass\matlab\toolbox\matlab\codetools\+matlab\+internal\+liveeditor\@LiveEditorUtilities\execute.m (execute) at 52
In E:\jobarchive\Bdoc20a\2019_09_13_h15m07s26_job1204077_pass\matlab\toolbox\matlab\codetools\+matlab\+internal\+liveeditor\@LiveEditorUtilities\openAndExecute.m (openAndExecute) at 12
In E:\jobarchive\Bdoc20a\2019_09_13_h15m07s26_job1204077_pass\matlab\toolbox\matlab\codetools\+matlab\+internal\+liveeditor\executeAndSave.m (executeAndSave) at 20
In \\mathworks\www\badomains\examplemanager\prod\public\em_matlab_scripts\+examples\private\publishMainFile.m (publishMainFile) at 35
In \\mathworks\www\badomains\examplemanager\prod\public\em_matlab_scripts\+examples\previewExample.m (previewExample) at 70