Пакет: 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.