Выполните основанное на требованиях тестирование на автомобильную следующую за маршрутом систему.
Этот пример показывает как:
Высокий уровень автора тестирование требований для модели замкнутого цикла реализация следующего за маршрутом алгоритма.
Автор тестирует в Simulink® Test™, чтобы проверить безопасную работу для каждого требования.
Выполните тесты и рассмотрите состояние верификации.
Этот пример показывает, как проверить, что автоматизированное хранение маршрут помогает алгоритму с помощью менеджера по Тесту и блоков от библиотеки Model Verification. Этот пример подобен примеру Lane Following Control with Sensor Fusion and Lane Detection
в Model Predictive Control Toolbox™. Для получения дополнительной информации на алгоритме управления и системной модели с обратной связью, смотрите, что Маршрут Следует за Управлением с Fusion Датчика и Обнаружением Маршрута.
Создайте и откройте рабочую копию файлов Проекта Simulink. Проект организует файлы в несколько папок. Контроллер и файлы системной модели находятся в папке 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
.
Дорога, маршрут и сценарии трафика используют синтетические данные, сгенерированные Automated Driving Toolbox™, который сохранен в папке Data
.
Блок Scenario Reader
в подсистеме Vehicle and Environment
считывает данные о сценарии во время симуляции.
mdl = 'LaneFollowingTestBenchExample';
open_system(mdl);
Данные включают девять ведущих сценариев с требованиями тестирования высокого уровня для каждого сценария. Откройте Редактор Требований от Simulink® Requirements™, чтобы просмотреть набор требования. Выберите Analysis> Requirements> Requirements Editor и выберите файл 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
, чтобы загрузить требуемые типы и данные.
Откройте Видимый с большого расстояния Осциллограф с помощью визуализации, выпадающей на панели инструментов модели Simulink®, и настройте его, чтобы наблюдать симуляцию путем нажатия на Find signals
. Смотрите Видимый с большого расстояния Осциллограф для деталей.
Моделируйте модель, чтобы визуализировать выбранный ведущий сценарий.
Запустите скрипт plotLFResults
, чтобы оценить скрипт производительности контроллера.
Можно также запустить эти команды, чтобы запустить симуляцию и результаты графика для первого сценария:
scenarioId = 1; helperLFSetUp; sim(mdl); plotLFResults(logsout); Simulink.sdi.view;
Откройте Инспектора Данных моделирования, чтобы просмотреть результаты операторов verify
в Тестовых блоках Последовательности.
Оцените производительность контроллера с помощью фигур графика MATLAB. Существует два графика - один для оценки производительности интервала и другого для оценки боковой производительности. Для получения дополнительной информации о том, как оценить эти графики, смотрите, что Маршрут Следует за Управлением с Fusion Датчика и Обнаружением Маршрута.
Откройте тестовый файл 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;