В этом примере показано, как собрать реляционную информацию о покрытии границы для блока Saturation в модели. Для получения дополнительной информации о блоках, поддерживаемых для реляционного покрытия границ, смотрите Объекты модели, которые получают Покрытие.
Откройте slvnvdemo_cv_small_controller
модель. Создайте объект спецификации теста покрытия модели.
В объекте спецификации тестирования покрытия модели активируйте реляционный граничный охват.
Симулируйте модель и собирайте результаты покрытия в cvdata
объект.
Получите результаты покрытия реляционной границы для блока Saturation в slvnvdemo_cv_small_controller
. Результаты покрытия хранятся в двухэлементном векторе формы [covered_outcomes total_outcomes]
.
covResults =
2 4
covDesc =
isFiltered: 0
decision: [1x2 struct]
Полевые decision
является 1 X 2
структура. Каждый элемент decision
соответствует реляционной операции в блоке. Блок Saturation содержит два сравнения. Первое сравнение имеет нижний предел, а второе - верхний предел. Поэтому decision
является 2-элементной структурой.
Просмотрите первую операцию в блоке, который получает реляционный граничный охват. Для блока Saturation первая реляционная операция input > lowerlimit
.
ans =
outcome: [1x2 struct]
text: 'input - lowerlimit'
isFiltered: 0
filterRationale: ''
The text
в поле показаны два операнда. The isFiltered
установлено значение 1, если блок отфильтрован от реляционного покрытия границы. Дополнительные сведения см. в разделе Фильтрация покрытия.
Просмотрите результаты для первой реляционной операции в блоке.
ans =
isActive: 1
execCount: 0
text: '[-tol..0]'
ans =
isActive: 1
execCount: 0
text: '(0..tol]'
Просмотрите вторую операцию в блоке, который получает реляционный граничный охват. Для блока Saturation вторая реляционная операция input < upperlimit
.
ans =
outcome: [1x2 struct]
text: 'input - upperlimit'
isFiltered: 0
filterRationale: ''
Просмотрите результаты второй реляционной операции в блоке.
ans =
isActive: 1
execCount: 1
text: '[-tol..0)'
ans =
isActive: 1
execCount: 2
text: '[0..tol]'