Кумулятивный анализ покрытия

Этот пример иллюстрирует использование Результатов покрытия Explorer для упрощения генерации совокупных данных покрытия и отчетов, охватывающих набор нескольких запусков покрытия.

Откройте модель примера

Этот пример использует 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).

Чтобы включить инструмент покрытия, выберите Включить анализ покрытия на панели Покрытие. Этот параметр включает другие опции на панели «Покрытие».

В данном примере соберите условие и Decision Coverage. На панели «Метрики покрытия» установите уровень структурного покрытия на Условие Decision.

Нажмите кнопку ОК, чтобы применить выбранные настройки и закрыть это диалоговое окно.

Симулируйте модель с первым тестом

Первый тест реализует сценарий, в котором входные значения не изменяются быстро. Он использует синусоиду в качестве изменяющегося во времени сигнала и констант для повышения и падения пределов.

t_gain = (0:0.02:2.0)';
u_gain = sin(2*pi*t_gain);

Вычислите минимальное и максимальное изменение времени изменения входа с помощью MATLAB diff функция.

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];

Симулируйте модель с этим первым набором переменных входов, нажав кнопку Запуска (Покрытие).

sim('slvnvdemo_ratelim_harness');

Проверьте первый тест в проводнике результатов

Чтобы открыть проводник результатов, в приложении Анализатор покрытия, нажмите Проводник результатов.

На данной точке Текущие кумулятивные данные содержат только этот первый запуск переадресации (помеченный как Запуск 1). Обозреватель результатов первоначально показывает информацию об этом последнем запуске покрытия, включая сводные данные результатов для каждой включенной метрики.

Чтобы отслеживать намерение этой симуляции, введите текст "Test within rate limits" в поле Описание и нажмите Применить.

Симулируйте модель со вторым тестом

Второй тест дополняет первый случай увеличением усиления, которое превышает предел скорости. Через секунду он увеличивает предел скорости, так что изменения усиления ниже этого предела.

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).

sim('slvnvdemo_ratelim_harness');

Сгенерируйте совокупный отчет о прогрессе выполнения для второго теста

Теперь, когда выполнено несколько запусков переадресации, можно сгенерировать совокупные отчеты переадресации.

Сначала добавьте краткое описание этого запуска, как это было сделано для предыдущей симуляции. Введите текст "Test rising rate limit" в поле Описание для выполнения 2 и нажмите Применить.

Существуют различные форматы отчетов о покрытии, которые могут быть сгенерированы. Чтобы визуализировать, как самая последняя симуляция влияет на совокупные результаты покрытия, можно сгенерировать совокупный отчет о прогрессе.

В обозревателе результатов в разделе Настройки выберите Показать совокупный отчет о прогрессе и нажмите Применить.

Щелкните Текущие кумулятивные данные (Current Cumulative Data) на левой панели Диспетчера результатов (Results Explorer). Обратите внимание, что Сводные данные указывают совокупные результаты покрытия, накопленные из прогона 1 и Запуск 2. Щелкните Сгенерировать отчет (Generate Report), чтобы создать совокупный отчет о прогрессе.

Раздел «Сводка» совокупного отчета о прогрессе имеет три столбца: Current Run, Delta и Cumulative. В столбце Current Run отображается покрытие от последней симуляции, перечисленного в разделе Current Cumulative Data (в данном случае это Выполнение 2). В столбце «Дельта» отображается покрытие, доступное текущим запуском, которое не было достигнуто в совокупных результатах до этой симуляции. В столбце Кумулятивный (Cumulative) приведены текущие совокупные результаты покрытия.

Симулируйте модель с третьим тестом

Третий тест является зеркальным изображением второго, при этом увеличение усиления заменяется падением усиления.

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).

sim('slvnvdemo_ratelim_harness');

Сгенерируйте совокупный отчет о прогрессе выполнения для третьего теста

Еще раз добавьте краткое описание последнего запуска. Введите текст "Test falling rate limit" в поле Описание для выполнения 3 и нажмите Применить.

Перейдите к Текущим кумулятивным данным и нажмите Сгенерировать отчет, чтобы создать совокупный отчет о прогрессе для этого последнего запуска.

Заметьте, что при этом последнем запуске совокупные результаты достигают полного покрытия для метрик Решение, Условие и Выполнение.

Уточнение совокупного набора данных

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

В обозревателе результатов в разделе «Текущие совокупные данные» щелкните правой кнопкой мыши на значке «Выполнить 1» и выберите «Исключить из совокупных данных».

Сгенерируйте окончательный совокупный отчет о покрытии

Теперь, когда вы выбрали требуемый подмножество тестовых запусков, можно сгенерировать отчет о покрытии для накопленных результатов.

Перейдите в раздел Настройки, снимите флажок Показать совокупный отчет о прогрессе и нажмите кнопку Применить.

Перейдите к Текущим кумулятивным данным и нажмите Сгенерировать отчет.

В сводном отчете о покрытии отображаются результаты, связанные с текущими совокупными данными. Заметьте в разделе «Тесты», что существует один тест с описанием "Test rising rate limit,Test falling rate limit", что указывает, что этот тест содержит накопленные результаты запусков 2 и 3.

В разделе «Сводка» показано, что эти совокупные результаты достигают полного охвата для всех проанализированных метрик.