Получите насыщение на покрытии целочисленного переполнения от cvdata
объект
возвращает насыщение на результатах покрытия целочисленного переполнения от coverage
= overflowsaturationinfo(covdata
, object
, ignore_descendants
)cvdata
объект covdata
для объекта модели, заданного object
и, в зависимости от значения ignore_descendants
, объекты-потомки.
[
возвращает насыщение на результатах покрытия целочисленного переполнения от coverage
, description
]
= overflowsaturationinfo(covdata
, object
)cvdata
объект covdata
для объекта модели, заданного object
, и текстовые описания каждого результата покрытия.
В этом примере показано, как использовать overflowsaturationinfo
извлекать насыщение на данных о целочисленном переполнении для MinMax
блок из cvdata
объект.
Переместите текущую директорию MATLAB® в местоположение, которое содержит файлы в качестве примера.
openExample('slcoverage/ExtractSaturationOnIntegerOverflowDataExample');
Сгенерируйте данные о покрытии
Откройте модель и установите настройки покрытия.
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
.
Если целочисленное переполнение не возможно для блока в вашей модели, полагайте, что очистка Насыщения на параметрах блоков целочисленного переполнения оптимизирует КПД вашего сгенерированного кода.
covdata
— Данные о результатах покрытияcvdata
объектДанные о результатах покрытия в виде cvdata
объект.
object
— Компонент модели или компонент моделиКомпонент модели или компонент модели в виде полного пути, указателя или массива путей или указателей.
Объектная спецификация | Описание |
---|---|
| Полный путь к модели или блоку |
| Обработайте к модели или блоку |
| Обработайте к объекту Simulink® API |
| Stateflow® ID |
| Обработайте к объекту Stateflow API |
| Массив ячеек с путем к диаграмме Stateflow или атомарной субдиаграмме и ID объекта, содержавшегося в том графике или субдиаграмме |
| Массив ячеек с путем к диаграмме Stateflow или атомарной субдиаграмме и указателю API объекта Stateflow, содержавшемуся в том графике или субдиаграмме |
| Массив ячеек с указателем на диаграмму Stateflow или атомарную субдиаграмму и ID объекта, содержавшегося в том графике или субдиаграмме |
Пример: 'slvnvdemo_saturation_on_overflow_coverage'
Пример: get_param('slvnvdemo_cv_small_controller/Saturation', 'Handle')
ignore_descendants
— Настройка, чтобы проигнорировать покрытие объектов-потомков
(значение по умолчанию) | 1
Настройка, чтобы проигнорировать покрытие объектов-потомков в виде логического значения.
1 — Проигнорируйте покрытие объектов-потомков |
0 — Соберите покрытие для объектов-потомков |
Типы данных: логический
coverage
— Насыщение на результатах покрытия переполнения для object
Насыщение на результатах покрытия переполнения, сохраненных в двухэлементном векторе из формы [covered_outcomes total_outcomes]
. Эти два элемента:
covered_outcomes | Количество насыщения на результатах целочисленного переполнения, которым удовлетворяют для object |
total_outcomes | Общее количество насыщения на результатах целочисленного переполнения для object |
Типы данных: double
description
— Текстовое описание результатов покрытияТекстовое описание результатов покрытия для компонента модели задано object
, возвращенный как массив структур. В зависимости от типов собранного покрытия модели массив структур может иметь различные поля. Если только насыщение на покрытии переполнения собрано, массив структур содержит следующие поля:
isFiltered | 0 | ||||
decision.text | 'Saturate on integer overflow' | ||||
decision.outcome | Массив структур, содержащий два поля для каждого результата покрытия:
Насыщение на целочисленном переполнении имеет два возможных исхода, | ||||
decision.isFiltered | 0 | ||||
decision.filterRationale | Объяснение для фильтрации компонента модели задано |
Типы данных: struct
complexityinfo
| conditioninfo
| cvsim
| cvtest
| decisioninfo
| getCoverageInfo
| mcdcinfo
| sigrangeinfo
| sigsizeinfo
| tableinfo
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.