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

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

sfID

Stateflow® ID

sfObj

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

{BlockPath, sfID}

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

{BlockPath, sfObj}

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

{BlockHandle, sfID}

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

Пример: 'slvnvdemo_saturation_on_overflow_coverage'

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

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

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

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

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

свернуть все

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