relationalboundaryinfo

Получите реляционное граничное покрытие из объекта cvdata

Синтаксис

coverage = relationalboundaryinfo(covdata, object)
coverage = relationalboundaryinfo(covdata, object,mode)
coverage = relationalboundaryinfo(covdata, object, ignore_descendants)
[coverage, description] = relationalboundaryinfo(covdata, object)

Описание

пример

coverage = relationalboundaryinfo(covdata, object) возвращает реляционные граничные результаты покрытия в объект cvdata covdata для объекта модели, заданного object и его потомками.

пример

coverage = relationalboundaryinfo(covdata, object,mode) возвращает реляционные граничные результаты покрытия в объект cvdata covdata для объекта модели, заданного object и его потомками для режима mode симуляции.

coverage = relationalboundaryinfo(covdata, object, ignore_descendants) возвращает реляционные граничные результаты покрытия в объект cvdata covdata для объекта модели, заданного object и, в зависимости от значения ignore_descendants, объектов-потомков.

[coverage, description] = relationalboundaryinfo(covdata, object) возвращает реляционные граничные результаты покрытия в объект cvdata covdata для объекта модели, заданного object и текстовыми описаниями каждого результата покрытия.

Примеры

свернуть все

Этот пример показывает, как собрать реляционную граничную информацию покрытия для блока Saturation в модели. Для получения дополнительной информации о блоках, поддержанных для реляционного граничного покрытия, смотрите Объекты модели, Которые Получают Покрытие.

Откройте модель slvnvdemo_cv_small_controller. Создайте тестовый объект спецификации покрытия модели для модели.

open_system('slvnvdemo_cv_small_controller');
testObj = cvtest('slvnvdemo_cv_small_controller');

В тестовом объекте спецификации покрытия модели активируйте реляционное граничное покрытие.

testObj.settings.relationalop = 1;

Моделируйте модель и соберите результаты покрытия в объекте cvdata.

dataObj = cvsim(testObj);

Получите реляционные граничные результаты покрытия для блока Saturation в slvnvdemo_cv_small_controller. Результаты покрытия хранятся в двухэлементном векторе формы [covered_outcomes total_outcomes].

blockHandle = get_param('slvnvdemo_cv_small_controller/Saturation','Handle');;
[covResults, covDesc] = relationalboundaryinfo(dataObj, blockHandle)
covResults =

     2     4


covDesc = 

    isFiltered: 0
      decision: [1x2 struct]

Поле decision является структурой 1 X 2. Каждый элемент decision соответствует реляционной операции в блоке. Блок Saturation содержит два сравнения. Первое сравнение с нижним пределом и вторым с верхним пределом. Поэтому decision является структурой с 2 элементами.

Просмотрите первую операцию в блоке, который получает реляционное граничное покрытие. Для блока Saturation первой реляционной операцией является input > lowerlimit.

covDesc.decision(1)
ans = 

            outcome: [1x2 struct]
               text: 'input - lowerlimit'
         isFiltered: 0
    filterRationale: ''

Поле text показывает эти два операнда. Поле isFiltered установлено в 1, если блок отфильтрован от реляционного граничного покрытия. Для получения дополнительной информации смотрите, что Покрытие Фильтрует.

Просмотрите результаты для первой реляционной операции в блоке.

for(i=1:2)
  covDesc.decision(1).outcome(i)
end
ans = 

     isActive: 1
    execCount: 0
         text: '[-tol..0]'


ans = 

     isActive: 1
    execCount: 0
         text: '(0..tol]'

Просмотрите вторую операцию в блоке, который получает реляционное граничное покрытие. Для блока Saturation второй реляционной операцией является input < upperlimit.

covDesc.decision(2)
ans = 

            outcome: [1x2 struct]
               text: 'input - upperlimit'
         isFiltered: 0
    filterRationale: ''

Просмотрите результаты для второй реляционной операции в блоке.

for(i=1:2)
  covDesc.decision(2).outcome(i)
end
ans = 

     isActive: 1
    execCount: 1
         text: '[-tol..0)'


ans = 

     isActive: 1
    execCount: 2
         text: '[0..tol]'

Входные параметры

свернуть все

Данные о результатах покрытия, заданные как объект cvdata.

Компонент модели или компонент модели, заданный как полный путь, указатель или массив путей или указателей.

Объектная спецификацияОписание

BlockPath

Полный путь к модели или блоку

BlockHandle

Обработайте к модели или блоку

slObj

Обработайте к объекту Simulink® API

sfID

Stateflow® ID

sfObj

Обработайте к объекту Stateflow API

{BlockPath, sfID}

Массив ячеек с путем к диаграмме Stateflow или атомарному подграфику и ID объекта, содержавшегося в том графике или подграфике

{BlockPath, sfObj}

Массив ячеек с путем к диаграмме Stateflow или атомарному подграфику и указателю API объекта Stateflow, содержавшемуся в том графике или подграфике

{BlockHandle, sfID}

Массив ячеек с указателем на диаграмму Stateflow или атомарный подграфик и ID объекта, содержавшегося в том графике или подграфике

При определении Блока s-function допустимые значения для object включают следующее:

Объектная спецификацияОписание

{BlockPath, fName}

Массив ячеек с путем к Блоку s-function и имени исходного файла.

{BlockHandle, fName}

Массив ячеек с указателем Блока s-function и именем исходного файла.

{BlockPath, fName, funName}

Массив ячеек с путем к Блоку s-function, имени исходного файла и имени функции.

{BlockHandle, fName, funName}

Массив ячеек с указателем Блока s-function, именем исходного файла имя функции.

Для данных о покрытии, собранных во время программного обеспечения в режиме Loop (SIL) или Процессора в цикле (PIL) режим симуляции, допустимые значения для object включают следующее:

Объектная спецификацияОписание

{fileName, funName}

Массив ячеек с именем исходного файла и имени функции.

{Model, fileName}

Массив ячеек с именем модели (или образцовый указатель) и имя исходного файла.

{Model, fileName, funName}

Массив ячеек с именем модели (или образцовый указатель), имя исходного файла и имя функции.

Пример: get_param('slvnvdemo_cv_small_controller/Saturation', 'Handle')

Допустимые значения для mode включают следующее:

Объектная спецификацияОписание

'Normal'

Модель в Нормальном режиме симуляции.

'SIL' (or 'PIL')

Модель в программном обеспечении в цикле (SIL) или Процессоре в цикле (PIL) режим симуляции.

'ModelRefSIL' (or 'ModelRefPIL')

Модель - ссылка в программном обеспечении в цикле (SIL) или Процессоре в цикле (PIL) режим симуляции.

'ModelRefTopSIL' (or 'ModelRefTopPIL')

Модель - ссылка в программном обеспечении в цикле (SIL или Процессор в цикле (PIL) режим симуляции с кодом соединяют интерфейсом с набором топ-модели.

Настройка, чтобы проигнорировать покрытие объектов-потомков, заданных как логическое значение.

1 — Проигнорируйте покрытие объектов-потомков
0 — Соберите покрытие для объектов-потомков

Типы данных: логический

Выходные аргументы

свернуть все

Реляционные граничные результаты покрытия, сохраненные в двухэлементном векторе формы [covered_outcomes total_outcomes]. Эти два элемента:

covered_outcomesКоличество реляционных граничных результатов удовлетворено для object
total_outcomesОбщее количество реляционных граничных результатов для object

Типы данных: double

Текстовое описание результатов покрытия для компонента модели, заданного object, возвращенным как массив структур. В зависимости от типов собранного покрытия модели массив структур может иметь различные поля. Если только реляционное граничное покрытие собрано, массив структур содержит следующие поля:

isFiltered

0, если компонент модели, заданный object, не исключен из записи покрытия. 1, если компонент модели, заданный object, исключен из записи покрытия. Для получения дополнительной информации об исключении объектов от покрытия, смотрите, что Покрытие Фильтрует.

decision.text

Вектор символов или строка формы:

op_1-op_2

  • op_1 является левым операндом в реляционной операции.

  • op_2 является правильным операндом в реляционной операции.

decision.outcome

Массив структур, содержащий два поля для каждого результата покрытия:

isActiveЛогическая переменная. Если этой переменной является false, она указывает, что решения не были оценены во время симуляции из-за переменного размера сигнала.
execCountЧисло раз op_1-op_2 упало в области значений, описанной text
textОбласть значений вокруг реляционного контура рассматривается для покрытия. Для получения дополнительной информации смотрите Реляционный Контур.

decision.isFiltered

0, если компонент модели, заданный object, не исключен из записи покрытия. 1, если компонент модели, заданный object, исключен из записи покрытия. Для получения дополнительной информации об исключении объектов от покрытия, смотрите, что Покрытие Фильтрует.

decision.filterRationale

Объяснение для фильтрации компонента модели, заданного object, если object исключен из покрытия и объяснения, задано. Для получения дополнительной информации об исключении объектов от покрытия, смотрите, что Покрытие Фильтрует.

Типы данных: struct

Введенный в R2014b