exponenta event banner

overflowsaturationinfo

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

Описание

пример

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

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

пример

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

Примеры

свернуть все

В этом примере показано, как использовать overflowsaturationinfo извлечение насыщения целочисленных данных переполнения для MinMax блок из cvdata объект.

Создание данных покрытия

Откройте модель и задайте параметры покрытия.

load_system('slcoverage_fuelsys');

Создать Simulink.SimulationInput для изменения параметров конфигурации без изменения модели.

covSet = Simulink.SimulationInput('slcoverage_fuelsys');

Включить анализ покрытия и настроить Simulink ® для сохранения данных покрытия в отдельномcvdata в рабочей области.

covSet = covSet.setModelParameter('CovEnable','on');
covSet = covSet.setModelParameter('CovSaveSingleToWorkspaceVar','on');
covSet = covSet.setModelParameter('CovSaveName','covData');
covSet = covSet.setModelParameter('CovScope','EntireSystem');

Включение сбора данных о насыщении при целочисленном переполнении и моделирование модели путем вызова sim с SimulationInput объект в качестве входных данных.

covSet = covSet.setModelParameter('CovMetricSaturateOnIntegerOverflow','on');
simOut = sim(covSet);

Извлечение насыщения при результатах переполнения целых чисел

Получение дескриптора блока к блоку MinMax с помощью get_param а затем получить насыщение по результатам переполнения целых чисел.

blockHandle = get_param(['slcoverage_fuelsys/',...
    'Engine Gas Dynamics/Mixing & Combustion/MinMax'],'Handle');
saturationResults = overflowsaturationinfo(covData,blockHandle)
percentSaturationCoverage = 100 * saturationResults(1)/saturationResults(2)
saturationResults =

     1     2


percentSaturationCoverage =

    50

Один из двух насыщений по результатам решения о целочисленном переполнении были удовлетворены для MinMax блок в Mixing & Combustion подсистема получила 50% насыщения при покрытии целочисленным переполнением.

В этом примере показано, как использовать overflowsaturationinfo чтобы определить, происходит ли переполнение целых чисел для блока в модели.

Переместите текущий каталог MATLAB ® в папку, содержащую файлы примеров.

openExample('slcoverage/DetermineIndividualIntegerOverflowOutcomesExample');

Создание данных покрытия

Загрузить slvnvdemo_saturation_on_overflow_coverage пример модели.

load_system('slvnvdemo_saturation_on_overflow_coverage');

Установка параметров покрытия с помощью Simulink.SimulationInput объект. Включите покрытие и настройте Simulink ® для вывода cvdata в рабочую область.

covSet = Simulink.SimulationInput('slvnvdemo_saturation_on_overflow_coverage');
covSet = covSet.setModelParameter('CovEnable','on');
covSet = covSet.setModelParameter('CovSaveSingleToWorkspaceVar','on');
covSet = covSet.setModelParameter('CovSaveName','covData');
covSet = covSet.setModelParameter('CovScope','EntireSystem');

Извлечение насыщения при результатах переполнения целых чисел

Получение данных о насыщении по результатам покрытия целочисленного переполнения и описание для Sum блок в Controller подсистема Test Unit подсистема.

covSet = covSet.setModelParameter('CovMetricSaturateOnIntegerOverflow','on');
simOut = sim(covSet);
[covResults, covDesc] = overflowsaturationinfo(covData, ...
		['slvnvdemo_saturation_on_overflow_coverage/Test Unit /' ...
		'Controller/Sum'])
percentSaturation = 100 * covResults(1)/covResults(2)
covResults =

     1     2


covDesc = 

  struct with fields:

           isFiltered: 0
          isJustified: 0
    justifiedCoverage: 0
      filterRationale: ''
             decision: [1x1 struct]


percentSaturation =

    50

Для блока Sum было удовлетворено одно из двух результатов решения о переполнении целых чисел, поэтому он получил 50% насыщение при покрытии переполнения целых чисел.

Просмотрите количество раз Sum блок оценивается для каждого насыщения по результату целочисленного переполнения во время моделирования.

outcome1 = covDesc.decision.outcome(1)
outcome2 = covDesc.decision.outcome(2)
outcome1 = 

  struct with fields:

          execCount: 3
     executionCount: 3
               text: 'false'
         isFiltered: 0
        isJustified: 0
    filterRationale: ''
         executedIn: []


outcome2 = 

  struct with fields:

          execCount: 0
     executionCount: 0
               text: 'true'
         isFiltered: 0
        isJustified: 0
    filterRationale: ''
         executedIn: []

Во время моделирования переполнение целого числа не произошло в Sum блокировать, потому что 'true' результат имеет счетчик выполнения 0.

Если переполнение целых чисел невозможно для блока в модели, рекомендуется очистить параметр блока переполнения Сатурата для целого числа, чтобы оптимизировать эффективность создаваемого кода.

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

свернуть все

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

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

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

BlockPath

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

BlockHandle

Маркер перемещения к модели или блоку

slObj

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

sfID

Stateflow ® ID

sfObj

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

{BlockPath, sfID}

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

{BlockPath, sfObj}

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

{BlockHandle, sfID}

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

Пример: 'slvnvdemo_saturation_on_overflow_coverage'

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

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

1 - Игнорировать охват объектов-потомков
0 - Сбор покрытия для объектов-потомков

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

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

свернуть все

Насыщенность в результатах покрытия переполнения, сохраненных в двухэлементном векторе формы [covered_outcomes total_outcomes]. Двумя элементами являются:

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

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

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

isFiltered

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

decision.text'Saturate on integer overflow'
decision.outcome

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

executionCountКоличество случаев насыщения при переполнении целого числа для object оценивается в соответствии с результатом, описанным text.
text'true' или 'false'

Насыщение при целочисленном переполнении имеет два возможных результата, 'true' и 'false'.

decision.isFiltered

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

decision.filterRationale

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

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

Представлен в R2013a