Пакет: Simulink.sdi.constraints
Суперклассы: matlab.unittest.constraints.Constraint
Ограничение, которое сравнивает данные временных рядов с допусками с помощью Инспектора Данных моделирования
Используйте ограничение Simulink.sdi.constraints.MatchesSignal, чтобы сравнить данные временных рядов с ожидаемым значением как часть теста. Можно сконфигурировать ограничение, чтобы использовать комбинацию абсолютных, относительных, и значения допуска времени для сравнения. Можно также задать дополнительные опции сконфигурировать поведение сравнения с помощью объекта Simulink.sdi.constraints.MatchesSignalOptions или с помощью одного или нескольких аргументов пары "имя-значение".
Ограничение использует Инспектора Данных моделирования, чтобы выполнить сравнения и требует лицензии на один из этих продуктов:
Simulink®
Signal Processing Toolbox™
MATLAB® Coder™
Fixed-Point Designer™
Для получения дополнительной информации о том, как допуски и опции выравнивания влияют на ограничительные сравнения, смотрите, Как Инспектор Данных моделирования Сравнивает Данные.
MatchesSignal(expVal) создает ограничение, которое определяет, совпадают ли данные временных рядов, представляющие фактическое значение, с данными, заданными ожидаемым значением, expVal.
MatchesSignal( создает ограничение с дополнительными свойствами, заданными одним или несколькими аргументами пары expVal,Name,Value)Name,Value.
Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.
'IgnoringDataTypes',true'IgnoringDataTypes' — Ограничительное поведение, когда типы данных не соответствуютfalse (значение по умолчанию) | trueСконфигурируйте ограничительную чувствительность к фактическому значению, имеющему различный тип данных от ожидаемого значения.
ложь Ограничение проверяет ли ожидаемое значение и соответствие типов данных фактического значения.
tRUE Ограничение нечувствительно к неверным типам данных между ожидаемым значением и фактическим значением.
Пример: 'IgnoringDataTypes',true
'IgnoringSignalsNotAligned' — Ограничительное поведение, когда сигналы не выравниваютсяfalse (значение по умолчанию) | trueСконфигурируйте ограничительную чувствительность к одному или нескольким сигналам, не выравнивающимся между ожидаемым значением и фактическим значением.
ложь Ограничение проверяет на сигналы, которые не выравниваются между ожидаемым значением и фактическим значением.
tRUE Ограничение нечувствительно к одному или нескольким сигналам, не выравнивающимся между ожидаемым значением и фактическим значением.
Пример: 'IgnoringSignalsNotAligned',true
'IgnoringExtraData' — Ограничительное поведение, когда фактическое значение покрывает различный временной интервал от ожидаемого значенияfalse (значение по умолчанию) | trueСконфигурируйте ограничительную чувствительность к фактическому значению, содержащему данные за пределами временного интервала, заданного ожидаемым значением.
ложь Ограничение проверяет, содержит ли фактическое значение данные вне временного интервала, заданного ожидаемым значением.
tRUE Ограничение нечувствительно к фактическому значению, содержащему данные вне временного интервала, заданного ожидаемым значением.
Пример: 'IgnoringExtraData',true
'AligningBy' — Критерии выравнивания сигналаКритерии выравнивания сравнения. Когда ожидаемое значение содержит больше чем один сигнал, Инспектор Данных моделирования, алгоритм сравнения выравнивает сигналы для сравнения между ожидаемыми и фактическими значениями. По умолчанию Инспектор Данных моделирования выравнивается источником данных, затем блоком path, затем SID, и затем именем сигнала. Для получения дополнительной информации об Инспекторе Данных моделирования алгоритм выравнивания, смотрите, Как Инспектор Данных моделирования Сравнивает Данные.
Задайте критерии выравнивания как массив строк с одним или несколькими из этих опций, перечисленных в порядке, в котором вы хотите их рассмотренный:
BlockPath — Путь к исходному блоку для сигнала.
SID — Идентификатор Simulink. Для получения дополнительной информации смотрите, Определяют местоположение Компонентов Схемы Используя Идентификаторы Simulink.
SignalName — Имя сигнала.
DataSource — Путь переменной.
Пример: 'AligningBy',["SignalName","BlockPath"] задает выравнивание сигнала именем сигнала и затем блоком path.
Expected — Ожидаемое значение, чтобы использовать в качестве базовой линии для сравненияОжидаемое значение, чтобы использовать в качестве базовой линии для сравнения. Данные для ожидаемого значения должны соединить значения данных со временем. Данные могут быть в любом формате, поддержанном Инспектором Данных моделирования. Инспектор Данных моделирования требует данных в формате, который сопоставляет демонстрационные значения со временем. Поддерживаемые форматы включают timeseries, Structure with time и Dataset.
| GetAccess | общественность |
| SetAccess | неизменяемый |
MatchesSignalOptions — Ограничительные параметры конфигурации сравненияSimulink.sdi.constraints.MatchesSignalOptionsОбъект Simulink.sdi.constraints.MatchesSignalOptions, который задает опции, чтобы сконфигурировать сравнение для ограничения. По умолчанию сравнение использует настройки выравнивания по умолчанию для Инспектора Данных моделирования и имеет строгие критерии допустимости, означая, что сравнение не игнорирует проверок. Можно использовать свойство MatchesSignalOptions сконфигурировать, как ограничение выравнивает сигналы в ожидаемых и фактических выполнениях и чувствительны ли тесты с помощью ограничения к:
Фактическое значение, имеющее различный тип данных от ожидаемого значения.
Один или несколько сигналов, не выравнивающихся между ожидаемыми и фактическими выполнениями.
Фактическое значение, содержащее данные вне временного интервала, задано ожидаемым значением.
Можно задать свойство MatchesSignalOptions для ограничения с помощью отдельных аргументов пары "имя-значение" или с помощью пары "имя-значение" 'WithOptions' с объектом Simulink.sdi.constraints.MatchesSignalOptions как значение. Когда вы задаете свойство MatchesSignalOptions с помощью объекта MatchesSignalOptions, можно сконфигурировать все ограничительные опции с помощью одной пары "имя-значение".
| GetAccess | общественность |
| SetAccess | неизменяемый |
Типы данных: Simulink.sdi.constraints.MatchesSignalOptions
'AbsTol' Абсолютный допуск к сравнениюАбсолютный допуск к сравнениям с помощью ограничения. Для получения дополнительной информации о том, как Инспектор Данных моделирования использует значения допуска в сравнениях, смотрите, Как Инспектор Данных моделирования Сравнивает Данные.
Пример: 0.1
Пример 2
| GetAccess | общественность |
| SetAccess | неизменяемый |
Типы данных: double
'RelTol' Относительный допуск к сравнениюОтносительный допуск к сравнениям с помощью ограничения. Например, задайте 0.1, чтобы использовать 10%-й допуск к сравнению. Для получения дополнительной информации о том, как Инспектор Данных моделирования использует значения допуска в сравнениях, смотрите, Как Инспектор Данных моделирования Сравнивает Данные.
Пример: 0.05
| GetAccess | общественность |
| SetAccess | неизменяемый |
Типы данных: double
TimeTol — Допуск времени к сравнениюДопуск времени к сравнениям с помощью ограничения, в s. Для получения дополнительной информации о том, как Инспектор Данных моделирования использует значения допуска в сравнениях, смотрите, Как Инспектор Данных моделирования Сравнивает Данные.
Пример: 0.001
| GetAccess | общественность |
| SetAccess | неизменяемый |
Типы данных: double
Этот пример показывает, как использовать ограничение 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.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.