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