Тестирование следующего за маршрутом контроллера с Simulink Test

Выполните основанное на требованиях тестирование на автомобильную следующую за маршрутом систему.

В этом примере показано, как к:

  1. Высокий уровень автора тестирование требований для модели замкнутого цикла реализация следующего за маршрутом алгоритма.

  2. Автор тестирует в Simulink® Test™, чтобы проверить безопасную работу для каждого требования.

  3. Выполните тесты и рассмотрите состояние верификации.

Введение

В этом примере показано, как проверить, что автоматизированное хранение маршрут помогает алгоритму с помощью менеджера по Тесту и блоков из библиотеки 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. Этот тест повторяет предыдущий тест с более коротким разделительным расстоянием между эго и ведущим автомобилем.

Критерии оценки

Существует три основных критерия оценки, используемые, чтобы проверить удовлетворительную работу контроллера:

  1. Предотвращение столкновения: Убедитесь, что автомобиль эго не сталкивается с ведущим автомобилем ни в какой точке во время ведущего сценария.

  2. Безопасное расстояние: Убедитесь, что разрыв времени между автомобилем эго и ведущим автомобилем выше 0. 8 с. Разрыв времени между этими двумя автомобилями задан как отношение расчетного прогресса и автомобильной скорости эго.

  3. Следующее маршрута: Убедитесь, что боковое отклонение от средней линии маршрута в 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 с за один раз.

Выполнение интерактивной симуляции

Чтобы конфигурировать интерактивное моделирование, выполните эти шаги:

  1. Выберите ведущий сценарий путем установки scenarioId переменная к значению между 1-9 в базовом рабочем пространстве MATLAB®.

  2. Запустите helperLFSetUp скрипт, чтобы загрузить требуемые типы и данные.

  3. Откройте Bird ' s-Eye Scope с помощью визуализации, выпадающей на панели инструментов модели Simulink®, и настройте его, чтобы наблюдать симуляцию путем нажатия на Find signals.

  4. Симулируйте модель, чтобы визуализировать выбранный ведущий сценарий.

  5. Запустите скрипт 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;