Этот пример иллюстрирует использование Проводника Результатов покрытия, чтобы упростить генерацию совокупных данных о покрытии и отчетов, охватывающих набор нескольких запусков покрытия.
Этот пример использует slvnvdemo_ratelim_harness
модель, чтобы объяснить настройки и опции, чтобы накопить покрытие. В этой модели реализация Ограничителя Регулируемой процентной ставки. Это использует три блока switch, чтобы управлять, когда выход должен быть ограничен и тип предела, чтобы применяться.
Входные параметры производятся с помощью три Из блоков Рабочей области: получите, возрастающий предел и падающий предел. Значения входных параметров заданы шестью переменными, заданными в рабочей области MATLAB®: t_gain, u_gain, t_pos, u_pos, t_neg, и u_neg.
open_system('slvnvdemo_ratelim_harness');
open_system('slvnvdemo_ratelim_harness/Adjustable Rate Limiter');
Запустите путем открытия настроек покрытия. От вкладки Modeling выберите Model Settings.
Чтобы включить инструмент покрытия, выберите анализ покрытия Enable в панели Покрытия. Эта установка включает другие опции в панели Покрытия.
В данном примере соберите условие и Decision Coverage. Под панелью Метрик покрытия, набор уровень Структурного покрытия к Решению Условия.
Нажмите ОК, чтобы применить ваши выбранные настройки и закрыть это диалоговое окно.
Первый тест осуществляет сценарий, где входные значения не изменяются быстро. Это использует синусоиду в качестве времени, варьируясь сигнал и константы для повышения и падения пределов.
t_gain = (0:0.02:2.0)'; u_gain = sin(2*pi*t_gain);
Вычислите минимальное и максимальное изменение входа варьирования времени с помощью diff
MATLAB функция.
max_change = max(diff(u_gain)) min_change = min(diff(u_gain))
max_change = 0.1253 min_change = -0.1253
На основе этих минимальных и максимальных скоростей изменения, набор ограничения скорости для 1
и -1
. По сути, скорость изменения входа будет хорошо в этих пределах для этого тестового прогона.
t_pos = [0;2]; u_pos = [1;1]; t_neg = [0;2]; u_neg = [-1;-1];
Симулируйте модель с этим первым набором входных переменных путем нажатия кнопки Run (Coverage).
Чтобы открыть Проводник Результатов, в Покрытии приложение Анализатора, нажимают Results Explorer.
В этой точке Текущие Совокупные Данные содержат только это первое запущенное покрытие (теговый как Запуск 1). Проводник Результатов первоначально показывает информацию относительно этого последнего запущенного покрытия, включая сводные данные результатов для каждой активированной метрики.
Чтобы отслеживать намерение этой симуляции, введите текст "Test within rate limits"
в поле Description и нажимают Apply.
Второй тест дополняет первый случай возрастающим усилением, которое превышает ограничение скорости. После секунды это увеличивает ограничение скорости так, чтобы изменения усиления были ниже того предела.
t_gain = [0;2]; u_gain = [0;4]; t_pos = [0;1;1;2]; u_pos = [1;1;5;5]*0.02; t_neg = [0;2]; u_neg = [0;0];
Симулируйте модель с этим вторым набором переменных путем нажатия кнопки Run (Coverage).
Теперь, когда несколько запусков покрытия были выполнены, можно сгенерировать совокупные отчеты покрытия.
Во-первых, добавьте краткое описание этого запуска, как был сделан для предыдущей симуляции. Введите текст "Test rising rate limit"
в поле Description для Запущенных 2 и нажимают Apply.
Существуют различные форматы отчетов покрытия, которые могут быть сгенерированы. Чтобы визуализировать, как новая симуляция влияет на совокупные результаты покрытия, можно сгенерировать совокупный отчет о выполнении работ.
В Проводнике Результатов, при Настройках, выбирают Show совокупный отчет о выполнении работ и нажимают Apply.
Нажмите на Current Cumulative Data в крайней левой панели Проводника Результатов. Обратите внимание на то, что Сводные данные указывают на совокупные результаты покрытия, накопленные от Запущенного 1 и Запуска 2. Нажмите на Generate Report, чтобы создать совокупный отчет о выполнении работ.
Раздел Summary совокупного отчета о выполнении работ имеет три столбца: Текущий Запуск, Delta, и Совокупный. Текущие отображения столбца Запуска, которые покрытие от последней симуляции перечислило под Текущими Совокупными Данными (который Запущен 2 в этом случае). Отображения столбца Delta покрытие, отсоединенное текущим запуском, который не был достигнут в совокупных результатах перед этой симуляцией. Совокупный столбец дает текущие совокупные результаты покрытия.
Третий тест является зеркальным отображением второго с возрастающим усилением, замененным падающим усилением.
t_gain = [0;2]; u_gain = [-0.02;-4.02]; t_pos = [0;2]; u_pos = [0;0]; t_neg = [0;1;1;2]; u_neg = [-1;-1;-5;-5]*0.02;
Симулируйте модель с этим третьим набором переменных путем нажатия кнопки Run (Coverage).
Еще раз добавьте краткое описание последнего запуска. Введите текст "Test falling rate limit"
в поле Description для Запущенных 3 и нажимают Apply.
Перейдите к Текущим Совокупным Данным и нажмите Generate Report, чтобы создать совокупный отчет о выполнении работ для этого последнего запуска.
Заметьте, что с этим последним запуском, совокупные результаты достигают полного охвата для Решения, Условия и метрик Выполнения.
Если вы решаете, что конкретное запущенное покрытие не необходимо, можно исключить этот запуск из совокупного набора данных и сгенерировать новый совокупный отчет.
В Проводнике Результатов, под Текущими Совокупными Данными, щелкают правой кнопкой по Run 1 и выбирают Exclude из совокупных данных.
Теперь, когда вы выбрали желаемое подмножество тестовых прогонов, можно сгенерировать отчет покрытия для накопленных результатов.
Перейдите к Настройкам, отмена выбора Показывают совокупный отчет о выполнении работ, и затем нажимают Apply.
Перейдите к Текущим Совокупным Данным и нажмите Generate Report.
Совокупный отчет покрытия отображает результаты, сопоставленные с текущими совокупными данными. Заметьте под разделом Tests, существует один тест с описанием "Test rising rate limit,Test falling rate limit"
, указание, что этот тест содержит накопленные результаты запусков 2 и 3.
Раздел Summary показывает, что эти совокупные результаты достигают полного охвата для всех анализируемых метрик.