Пакет: Simulink.sdi.constraints
Задайте опции сравнения для ограничения Simulink.sdi.MatchesSignal
Используйте объект Simulink.sdi.constraints.MatchesSignalOptions
сконфигурировать поведение сравнения и критерии допустимости для экземпляра ограничения Simulink.sdi.constraints.MatchesSignal
.
MatchesSignalOptions
создает экземпляр класса Simulink.sdi.constraints.MatchesSignalOptions
со свойствами, которые соответствуют ограничению, которое не игнорирует проверок и использует настройки выравнивания по умолчанию для Инспектора Данных моделирования.
MatchesSignalOptions(
создает экземпляр класса Name,Value
)Simulink.sdi.constraints.MatchesSignalOptions
со свойствами использования поведения сравнения, заданными одним или несколькими аргументами пары Name,Value
.
IgnoreDataTypes
— Ограничительное поведение, когда типы данных не соответствуютfalse
(значение по умолчанию) | true
Ограничительная чувствительность к фактическому значению, имеющему различный тип данных от ожидаемого значения.
ложь
Ограничение проверяет ли ожидаемое значение и соответствие типов данных фактического значения.
tRUE
Ограничение нечувствительно к неверным типам данных между ожидаемым значением и фактическим значением.
Можно задать свойство IgnoreDataTypes
в конструкторе, использующем аргумент пары "имя-значение" 'IgnoringDataTypes'
.
GetAccess | общественность |
SetAccess | общественность |
IgnoreSignalsNotAligned
— Ограничительное поведение, когда сигналы не выравниваютсяfalse
(значение по умолчанию) | true
Ограничительная чувствительность к одному или нескольким сигналам, не выравнивающимся между ожидаемым значением и фактическим значением.
ложь
Ограничение проверяет на сигналы, которые не выравниваются между ожидаемым значением и фактическим значением.
tRUE
Ограничение нечувствительно к одному или нескольким сигналам, не выравнивающимся между ожидаемым значением и фактическим значением.
Можно задать свойство IgnoreSignalsNotAligned
в конструкторе, использующем аргумент пары "имя-значение" 'IgnoringSignalsNotAligned'
.
GetAccess | общественность |
SetAccess | общественность |
IgnoreExtraData
— Ограничительное поведение, когда фактическое значение покрывает различный временной интервал от ожидаемого значенияfalse
(значение по умолчанию) | true
Ограничительная чувствительность к фактическому значению, содержащему данные за пределами временного интервала, задана ожидаемым значением.
ложь
Ограничение проверяет, содержит ли фактическое значение данные вне временного интервала, заданного ожидаемым значением.
tRUE
Ограничение нечувствительно к фактическому значению, содержащему данные вне временного интервала, заданного ожидаемым значением.
Можно задать свойство IgnoreExtraData
в конструкторе, использующем аргумент пары "имя-значение" 'IgnoringExtraData'
.
GetAccess | общественность |
SetAccess | общественность |
Alignment
— Критерии выравнивания сигналаКритерии выравнивания сравнения. Когда ожидаемое значение содержит больше чем один сигнал, Инспектор Данных моделирования, алгоритм сравнения выравнивает сигналы для сравнения между ожидаемыми и фактическими значениями. По умолчанию Инспектор Данных моделирования выравнивается источником данных, затем блоком path, затем SID, и затем именем сигнала. Для получения дополнительной информации об Инспекторе Данных моделирования алгоритм выравнивания, смотрите, Как Инспектор Данных моделирования Сравнивает Данные.
Задайте критерии выравнивания как массив строк с одним или несколькими из этих опций, перечисленных в порядке, в котором вы хотите их рассмотренный:
BlockPath
— Путь к исходному блоку для сигнала.
SID
— Идентификатор Simulink®. Для получения дополнительной информации смотрите, Определяют местоположение Компонентов Схемы Используя Идентификаторы Simulink.
SignalName
— Имя сигнала.
DataSource
— Путь переменной.
Можно задать свойство Alignment
в конструкторе, использующем аргумент пары "имя-значение" 'AligningBy'
.
Этот пример показывает, как использовать ограничение 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.