Протестируйте подсистему автопилота против требований.
Этот пример демонстрирует тестирование подсистемы против требования, с помощью менеджера по тесту, тестовой обвязки, блока Test Sequence и блока Test Assessment. Ссылки на документ требований на тест и тестовую обвязку и verify
операторы оценивают компонент под тестом.
Когда вы создаете свою модель, можно добавить тесты, чтобы проверить модель по требованиям. Следующие пользователи могут запустить те же тесты, затем добавить тесты, чтобы выполнить дальнейшие цели верификации, такие как достижение 100%-го покрытия или проверка сгенерированного кода.
Этот пример тестирует Roll Reference
подсистема против требования с помощью трех сценариев. Блок Test Sequence обеспечивает входные параметры, и блок Test Assessment оценивает компонент. Roll Reference
подсистема является одним компонентом системы управления автопилота. Roll Reference
управляет опорным углом системы управления списка самолета. Подсистема приводит одну оценку к сбою, запрашивая конструктивное изменение, которое ограничивает подсистему выход под высокими входными углами.
Введите следующее, чтобы сохранить пути и имена файлов для примера:
filePath = fullfile(matlabroot,'toolbox','simulinktest','simulinktestdemos'); topModel = 'TestAndVerificationAutopilotExample'; rollModel = 'RollAutopilotMdlRef'; testHarness = 'RollReference_Requirement1_3'; testFile = 'AutopilotTestFile.mldatx';
Откройте тестовый файл в менеджере по Тесту. Можно также открыть менеджера по Тесту путем выбора Analysis> Test Manager в меню Simulink.
tf = sltest.testmanager.load(fullfile(filePath,testFile)); sltest.testmanager.view;
Откройте RollAutopilotMdlRef
модель.
open_system(fullfile(filePath,rollModel));
В правом нижнем углу холста кликните по значку и выберите мозаику Требований. Перспектива Требований показывает требования, сопоставленные с моделью. Можно просмотреть элементы модели или тесты, которые реализуют или проверяют требование путем щелчка по ссылкам.
В тесте расширьте раздел Requirements, чтобы просмотреть ссылки на набор требования.
Тест создает три сценария, чтобы протестировать нормальные условия, и исключения в Списке Содержат Ссылочные требования. Тестовые векторы созданы в блоке Test Sequence.
Откройте блок Test Sequence.
sltest.harness.load([rollModel '/Roll Reference'],testHarness) open_system('RollReference_Requirement1_3/Test Sequence')
Для каждого сценария тестовая последовательность устанавливает уровень сигнала, затем затрагивает автопилот. Тестовая последовательность проверяет тот PhiRef
устойчиво в течение минимального времени DurationLimit
прежде чем это перейдет к следующему уровню сигнала. Для первых двух сценариев тестовая последовательность устанавливает EndTest
локальная переменная к 1
, инициирование перехода к следующему сценарию.
Откройте блок Test Assessment.
open_system('RollReference_Requirement1_3/Test Assessment')
Блок Test Assessment оценивает Roll Reference
. Блок оценки является соединенной подсистемой библиотеки, которая упрощает тестовое повторное использование оценки между несколькими тестовыми обвязками. Блок содержит verify
соответствие операторов:
Требование, что PhiRef
= Phi
когда Phi
действует в низких и высоких пределах.
Требование, что PhiRef = 0
когда Phi < 6
степени.
Требование, что PhiRef = 30
когда Phi > 30
степени.
Требование это, когда TurnKnob
занят, PhiRef = TurnKnob
если TurnKnob >= 3
степени.
В менеджере по Тесту панель инструментов нажмите Run.
Симуляция возвращает verify
результаты оператора и симуляция выводятся в менеджере по Тесту. verify_high_pos
сбои оператора.
Нажмите Results и Artifacts в менеджере по тесту.
В дереве результатов расширьтесь, Проверяют Операторы. Нажмите Simulink: verify_high_pos. Трассировка показывает, когда оператор перестал работать.
Во вкладке Data Inspector нажмите Subplots и выберите два графика, расположенные вертикально. Выберите более низкий график в Визуализировать панели.
В дереве результатов расширьте Результаты, Тест Требования 1.3 и Сима Аутпута.
Выберите PhiRef
и Phi
. Выходные трассировки выравниваются с verify
результаты в вышеупомянутом графике. Наблюдайте тот PhiRef
превышает 30 градусов когда Phi
превышает 30 градусов.
Обновите RollReference
ограничить PhiRef
сигнал:
Добавьте блок Saturation как показано.
Установите нижний предел на -30
и верхний предел 30
.
Соедините блок с его требованием. От браузера Требований перетащите требование 1.1.2 с блоком Saturation. Значок появляется на блоке, и требование подсвечено.
Запустите тест снова. verify
передачи оператора и выход в менеджере по тесту показывают тот PhiRef
не превышает 30 градусов.
close_system(rollModel,0); close_system(topModel,0); close_system('RollRefAssessLib',0); sltest.testmanager.clear; sltest.testmanager.clearResults; sltest.testmanager.close; clear filePath topModel reqDoc rollModel testHarness testFile