exponenta event banner

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и текстовые описания каждого результата охвата.

Примеры

свернуть все

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

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

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

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

testObj.settings.relationalop = 1;

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

dataObj = cvsim(testObj);

Получение результатов покрытия реляционной границы для блока насыщения в 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 соответствует реляционной операции в блоке. Блок «Насыщенность» содержит два сравнения. Первое сравнение выполняется с нижним пределом, а второе - с верхним пределом. Поэтому decision является 2-элементной структурой.

Просмотрите первую операцию в блоке, который получает покрытие реляционной границы. Для блока Насыщение первая реляционная операция 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]'

Просмотрите вторую операцию в блоке, который получает покрытие реляционной границы. Для блока Насыщение вторая реляционная операция 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

Обращаться к объекту API Simulink ®

sfID

Stateflow ® ID

sfObj

Дескриптор объекта API Stateflow

{BlockPath, sfID}

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

{BlockPath, sfObj}

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

{BlockHandle, sfID}

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

При указании S-функционального блока допустимые значения для 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'

Модель в режиме нормального моделирования.

'SIL' (or 'PIL')

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

'ModelRefSIL' (or 'ModelRefPIL')

Ссылка на модель в режиме моделирования ПО в контуре (SIL) или процессора в контуре (PIL).

'ModelRefTopSIL' (or 'ModelRefTopPIL')

Ссылка на модель в режиме моделирования Software-in-the-Loop (SIL или Processor-in-the-Loop (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