Выполните основанное на требованиях тестирование на автомобильную следующую за маршрутом систему.
В этом примере показано, как к:
Высокий уровень автора тестирование требований для модели замкнутого цикла реализация следующего за маршрутом алгоритма.
Автор тестирует в Simulink® Test™, чтобы проверить безопасную работу для каждого требования.
Выполните тесты и рассмотрите состояние верификации.
В этом примере показано, как проверить, что автоматизированное хранение маршрут помогает алгоритму с помощью менеджера по Тесту и блоков из библиотеки Model Verification. Этот пример похож на Lane Following Control with Sensor Fusion and Lane Detection
пример в Model Predictive Control Toolbox™. Для получения дополнительной информации на алгоритме управления и системной модели с обратной связью, смотрите, что Маршрут Следует за Управлением с Fusion Датчика и Обнаружением Маршрута (Model Predictive Control Toolbox).
Создайте и откройте рабочую копию файлов проекта. Проект организует файлы в несколько папок. Контроллер и файлы системной модели находятся в Models
папка. Высокоуровневые требования для контроллера получены в LaneFollowingTestRequirements.slreqx
в Requirements
папка. Менеджер по Тесту тестовый файл находится в Tests
папка.
[projectFolder,~]=matlab.internal.project.example.projectDemoSetUp... (fullfile(matlabroot,'toolbox','simulinktest','simulinktestdemos',... 'sltestLaneFollowing.zip'),[],[]); proj = simulinkproject(projectFolder);
Откройте LaneFollowingTestBenchExample
модель.
Маршрут после контроллера реализован блоком Model.
Динамика аппарата и ведущая среда моделируются в Vehicle and Environment
подсистема.
Дорога, маршрут и сценарии трафика используют синтетические данные, сгенерированные Автоматизированной системой вождения Toolbox™, который сохранен в Data
папка.
Scenario Reader
блокируйтесь в Vehicle and Environment
подсистема считывает данные о сценарии в процессе моделирования.
mdl = 'LaneFollowingTestBenchExample';
open_system(mdl);
Данные включают девять ведущих сценариев с требованиями тестирования высокого уровня для каждого сценария. Откройте Редактор Требований от Simulink® Requirements™, чтобы просмотреть набор требования. Во вкладке Apps нажмите Requirements Manager in Model Verification, Validation и Экспериментальный участок. Затем нажмите Requirements Editor во вкладке Requirements и выберите LaneFollowingTestRequirements.slreqx
файл. Можно также войти:
open('LaneFollowingTestRequirements.slreqx');
Каждое требование представляет ведущий сценарий. Первые четыре тестовых способности к отслеживанию требований алгоритма управления. Следующие несколько требований оценивают маршрут после способности под различными дорожными условиями:
Сценарий 1: ACC_ISO_TargetDiscriminationTest. Это - базовый тест, чтобы гарантировать, что контроллер может отследить ведущий автомобиль в маршруте перемещения.
Сценарий 2: ACC_ISO_AutoRetargetTest. Протестируйте, если контроллер может перенастроить к новому автомобилю в маршруте перемещения, когда текущая цель переключает маршруты.
Сценарий 3: ACC_ISO_CurveTest. Протестируйте, если контроллер может отследить замедляющийся автомобиль в маршруте перемещения при навигации по искривлению дороги.
Сценарий 4: ACC_StopnGo. Этот тест симулирует остановку, и пойдите перемещение в маршруте перемещения из-за интенсивного движения
Сценарий 5: LFACC_DoubleCurveDecelTarget. Отследите замедляющийся ведущий автомобиль через две кривые S.
Сценарий 6: LFACC_DoubleCurve_AutoRetarget. Протестируйте способность перенастроить к новому ведущему автомобилю на кривой.
Сценарий 7: LFACC_DoubleCurveStopnGo. Этот тест симулирует остановку, и пойдите перемещение на кривой магистрали.
Сценарий 8: LFACC_Curve_CutInOut. Этот тест гарантирует, что контроллер может идентифицировать автомобильное сокращение в и из маршрута перемещения
Сценарий 9: LFACC_Curve_CutInOut_TooClose. Этот тест повторяет предыдущий тест с более коротким разделительным расстоянием между эго и ведущим автомобилем.
Существует три основных критерия оценки, используемые, чтобы проверить удовлетворительную работу контроллера:
Предотвращение столкновения: Убедитесь, что автомобиль эго не сталкивается с ведущим автомобилем ни в какой точке во время ведущего сценария.
Безопасное расстояние: Убедитесь, что разрыв времени между автомобилем эго и ведущим автомобилем выше 0. 8 с. Разрыв времени между этими двумя автомобилями задан как отношение расчетного прогресса и автомобильной скорости эго.
Следующее маршрута: Убедитесь, что боковое отклонение от средней линии маршрута в 0,2 м
Первые два критерия проверяются LaneFollowingTestBenchExample/Collision Detection/Test Assessments
Блок Test Sequence. verify
оператор проверяет, обнаруживается ли столкновение в какой-либо точке во время симуляции.
Второй verify
оператор проверяет, падает ли расчетный разрыв времени между этими двумя автомобилями ниже 0,8 с. duration
оператор допускает отказы из-за переходного процесса из-за внезапных изменений во входных параметрах датчика или дорожных условиях. duration
оператор позволяет отказы с этой оценкой в течение максимум 5 с за один раз.
Маршрут после оценки включен в блок Test Sequence LFRefMdl/Test Assessments
.
verify
оператор с помощью duration
оператор проверяет, что абсолютное значение бокового отклонения от средней линии маршрута перемещения не превышает 0,2 м больше 5 с за один раз.
Чтобы конфигурировать интерактивное моделирование, выполните эти шаги:
Выберите ведущий сценарий путем установки scenarioId
переменная к значению между 1-9 в базовом рабочем пространстве MATLAB®.
Запустите helperLFSetUp
скрипт, чтобы загрузить требуемые типы и данные.
Откройте Bird ' s-Eye Scope с помощью визуализации, выпадающей на панели инструментов модели Simulink®, и настройте его, чтобы наблюдать симуляцию путем нажатия на Find signals
.
Симулируйте модель, чтобы визуализировать выбранный ведущий сценарий.
Запустите скрипт plotLFResults
оценить скрипт производительности контроллера.
Можно также запустить эти команды, чтобы запустить симуляцию и результаты графика для первого сценария:
scenarioId = 1; helperLFSetUp; sim(mdl); plotLFResults(logsout); Simulink.sdi.view;
Откройте Инспектора Данных моделирования, чтобы просмотреть результаты verify
операторы в Тестовых блоках Последовательности.
Оцените производительность контроллера с помощью фигур графика MATLAB. Существует два графика - один для оценки производительности интервала и другого для оценки боковой производительности. Для получения дополнительной информации о том, как оценить эти графики, смотрите, что Маршрут Следует за Управлением с Fusion Датчика и Обнаружением Маршрута (Model Predictive Control Toolbox).
Откройте LaneFollowingTestScenarios.mldatx
тестовый файл в менеджере по Тесту. Тестовый файл имеет набор девяти тестов, один для каждого из этих девяти сценариев тестирования, описанных выше.
sltestmgr;
sltest.testmanager.load('LaneFollowingTestScenarios.mldatx');
Каждый тест использует Post-Load
коллбэк, чтобы установить соответствующий ID сценария и запустить утилиту установки. Кроме того, каждый тест также соединяется с соответствующим требованием в Редакторе Требований для трассируемости.
Запустите тесты путем нажатия на кнопку воспроизведения или ввода sltest.testmanager.run
.
Раздел результатов менеджера по Тесту показывает агрегированные результаты для всех девяти тестов. Для каждого теста, verify
операторы агрегированы, чтобы вычислить полные результаты передачи/сбоя.
Можно просмотреть фигуры оценки в панели сводных данных результата испытаний.
Откройте Редактор Требований и выберите Display> Verification Status, чтобы видеть сводные данные состояния верификации для каждого требования. Зеленые и красные панели указывают на результаты испытаний и итоговый результат для набора требований.
Закройте все открытые окна и модели.
close_system(mdl, 0);
clear mdl;
sltest.testmanager.clear;
sltest.testmanager.clearResults;
close(proj);
sltest.testmanager.close;
Simulink.sdi.close;