relationalboundaryinfo

Извлечение покрытия реляционной границы из cvdata объект

Описание

пример

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: ''

The text в поле показаны два операнда. The 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® Я бы

sfObj

Указатель на объект Stateflow API

{BlockPath, sfID}

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

{BlockPath, sfObj}

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

{BlockHandle, sfID}

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

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

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

{BlockPath, fName}

Массив ячеек с путем к S-Function блоку и именем исходного файла.

{BlockHandle, fName}

Массив ячеек с указателем на S-Function блок и именем исходного файла.

{BlockPath, fName, funName}

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

{BlockHandle, fName, funName}

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

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

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

{fileName, funName}

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

{Model, fileName}

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

{Model, fileName, funName}

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

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

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

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

'Normal'

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

'SIL' (or 'PIL')

Моделируйте в режиме симуляции Цикле (SIL) или Цикле (PIL).

'ModelRefSIL' (or 'ModelRefPIL')

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

'ModelRefTopSIL' (or 'ModelRefTopPIL')

Моделируйте ссылку в режиме симуляции Цикл (SIL или Цикле (PIL)) с кодовым интерфейсом, установленным на верхнюю модель.

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

1 - Игнорируйте покрытие дочерних объектов
0 - Сбор покрытия для дочерних объектов

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

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

свернуть все

Результаты покрытия, сохраненные в двухэлементном векторе вида [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