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');

Включите набор насыщения при целочисленном переполнении Coverage и симулируйте модель, вызывая 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.

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

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

свернуть все

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

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

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

BlockPath

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

BlockHandle

Указатель на модель или блок

slObj

Указатель на Simulink® Объект API

sfID

Stateflow® Я бы

sfObj

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

{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