В этом примере используется sldvdemo_sbr_extend_design модель. Эта модель включает диаграмму Stateflow ®SBR который использует временную логику. Переход от KEY_OFF состояние в KEY_ON состояние возникает после того, как диаграмма Stateflow была смоделирована 500 раз. Для тестирования этого перехода требуется тестовый случай с 500 временными шагами.
В этом примере создается тестовый случай, который вынуждает переход к KEY_ON путем установки KEY вход в 1 на протяжении всего тестового случая. Модель моделируется с использованием этого тестового случая, удовлетворяющего целям KEY_OFF/KEY_ON переход. Затем выполняется анализ модели с игнорированием целей, уже удовлетворенных созданным тестом.
Откройте пример модели:
Откройте окно SBR Диаграмма статофлоу для просмотра KEY_OFF/KEY_ON переход.

Создание ссылочной модели кабельных трасс:
[~, harnessModelFilePath] = ...
sldvmakeharness('sldvdemo_sbr_extend_design',[],[],true);Модель электрического жгута, sldvdemo_sbr_extend_design_harness, включает в себя:
Блок модели с именем Test Unit, который ссылается на исходную модель, sldvdemo_sbr_extend_design.

Блок построителя сигналов с именем Inputs, содержащий входные данные тестового случая для модели, на которую ссылается блок Model.

Изначально блок Signal Builder содержит только тестовый случай по умолчанию, для всех трех входов установлено значение 0.
Блок DocBlock с именем «Объяснение тестового случая», который документирует тестовый случай.

Изначально блок «Объяснение тестового случая» не содержит содержимого для тестового случая по умолчанию.
sldvmakeharness возвращает путь к файлу модели кабельных трасс в harnessModelFilePath. Извлечь имя файла модели кабельных трасс в harnessModel, для последующего использования:
[~, harnessModel] = fileparts(harnessModelFilePath);
Для анализа KEY_OFF кому KEY_ON state transition, создайте тестовый случай, который делает переход в KEY_ON состояние за 500 временных шагов:
Откройте диалоговое окно Конструктор сигналов (Signal Builder) для модели кабельных трасс.
Выберите «Оси» > «Изменить временной диапазон».
Диапазон времени Signal Builder определяет интервал времени, в течение которого его выходной сигнал явно определен. В диалоговом окне Set the total time range установите в поле Max time значение 5 секунд, создавая 500 временных шагов длительностью 0,01 секунды каждый.
Установите KEY вход в 1 на время этого стартового тестового случая, вынуждая переход к KEY_ON состояние. Выбор Inputs.KEY сигнал требует двух щелчков. Сначала щелкните сигнал так, чтобы на обоих концах сигнала появились точки.

Щелкните значок Inputs.KEY снова сигнал. Конструктор сигналов утолщает сигнал, указывая, что он выбран.

В нижней части диалогового окна «Конструктор сигналов» в разделе «Левая точка» введите 1 для Y.
Нажмите Enter, чтобы применить изменение.
Inputs.KEY сигнал установлен в 1 на протяжении всего тестового случая.

Закройте диалоговое окно Signal Builder.
Следующим шагом является регистрация созданного начального тестового случая. Затем можно указать, что при выполнении анализа Verifier™ Simulink ® Design игнорирует цели, удовлетворяющие этому тестовому случаю.
sldvlogsignals функция записывает данные тестового случая в MAT-файл, содержащий sldvData структура. В этой структуре хранятся все данные, собранные программным обеспечением во время анализа.
Для регистрации начальных тестовых случаев:
Сохраните имя блока модели в модели кабельных трасс, которая ссылается на sldvdemo_sbr_extend_design модель:
[~, modelBlock] = find_mdlrefs(harnessModel, false);
Моделирование модели, на которую ссылается блок Model, с использованием нового тестового случая и регистрация входных сигналов в переменной рабочего пространства loggeddata:
loggeddata = sldvlogsignals(modelBlock{1});Сохранение зарегистрированных данных в MAT-файле с именем existingtestcase.mat:
save('existingtestcase.mat', 'loggeddata');Этот файл будет указан при анализе sldvdemo_sbr_extend_design модель.
Теперь можно проанализировать sldvdemo_sbr_extend_design и укажите, что анализ расширяет уже удовлетворенные тестовые случаи. Анализ использует существующие данные тестового случая в качестве отправной точки и не пытается создать тестовые примеры для KEY_OFF кому KEY_ON переход в диаграмме SBR Stateflow.
Укажите начальный тестовый пример и проанализируйте модель:
Откройте модель.
open_system('sldvdemo_sbr_extend_design');На вкладке «Design Verifier» выберите «Test Generation Settings».
В диалоговом окне «Параметры конфигурации» на панели «Создание теста» в разделе «Существующие тестовые примеры» выберите «Расширить существующие тестовые примеры».
В поле Data file введите имя MAT-файла, содержащего записанные данные:
existingtestcase.mat
Очистить Игнорировать цели, удовлетворяющие существующим тестовым случаям.
При снятии этой опции программа включает начальный тестовый случай в окончательный набор тестов. Вы увидите, что полный набор тестов достигает 100% покрытия модели.
Чтобы закрыть диалоговое окно Параметры конфигурации (Configuration Parameters), нажмите кнопку ОК.
Сохранить sldvdemo_sbr_extend_design модель на пути MATLAB ® с именемsldvdemo_sbr_extend_design_test.
Щелкните Создать тесты (Generate Tests).
В окне журнала сначала перечисляются цели, удовлетворяющие начальному тестовому случаю.

Затем в окне журнала перечисляются цели, созданные после начального тестового случая.
Чтобы убедиться, что этот анализ создает полный набор тестов, создайте модель кабельных трасс, чтобы можно было смоделировать модель с помощью созданных тестовых примеров:
На вкладке «Верификатор проекта» в разделе «Результаты проверки» выберите «Создать модель тестового кабеля».
В модели кабельных трасс sldvdemo_sbr_extend_design_test_harnessоткройте блок Построитель сигналов с именем Входы.
Для моделирования модели с использованием всех тестовых примеров нажмите кнопку Выполнить все и создать покрытие.![]()
По завершении моделирования отображается отчет о покрытии модели.
Просмотр информации о покрытии для sldvdemo_sbr_extend_design_test модель, чтобы убедиться, что полный набор тестов достигает 100% покрытия.
