В этом примере показано, как симулировать автоматизированную систему маневра изменения маршрута для магистрали ведущий сценарий.
В этом примере вы будете:
Выполните траекторию, планирующую автоматизировать маневр изменения маршрута.
Разверните контроллер следования траектории, чтобы вести транспортное средство вдоль сгенерированной траектории.
Протестируйте маневр изменения маршрута в модели Simulink® с обратной связью использование предварительно созданных сценариев, сгенерированных Automated Driving Toolbox™.
Автоматизированная система маневра изменения маршрута (LCM) помогает автомобилю, оборудованному датчиком автоматически перемещаться от одной полосы до другого маршрута (с тем же направлением перемещения) в магистрали. Системные модели LCM продольная и боковая динамика управления для автоматизированного маршрута изменяются на прямом дорожном сегменте. Высокоуровневая блок-схема системы LCM находится как показано в фигуре ниже
Система LCM динамически генерирует оптимальную траекторию для изменения маршрута при предотвращении столкновения с другими агентами в сценарии. Система LCM регулирует автомобиль, оборудованный датчиком, чтобы переместиться вдоль оптимальной траектории. Модель места размещения тестирования системы LCM фокусируется на планировщике и аспектах контроллера системы изменения маршрута. Модель включает три основных подсистемы
Планировщик и Подсистема контроллера генерируют оптимальную траекторию для изменения маршрута и отправляют команду управления, чтобы регулировать автомобиль, оборудованный датчиком.
Подсистема транспортного средства и Среды моделирует среду и движение автомобиля, оборудованного датчиком. Подсистема получает команду управления от Планировщика и Подсистемы контроллера и обновляет состояние для автомобиля, оборудованного датчиком.
Метрическая подсистема Оценки подтверждает состояние автомобиля, оборудованного датчиком для предотвращения столкновения.
Чтобы открыть тестовую модель Simulink, используйте следующую команду.
open_system('LaneChangeTestBench')
Открытие этой модели запускает exampleHelperLaneChangeSetup
скрипт, который инициализирует параметры модели транспортного средства, параметры проектирования контроллера и дорожный сценарий. Скрипт также инициализирует шины, требуемые для определения входных параметров в и выходных параметров для модели LCM Simulink.
Откройте планировщика и модели контроллеров под тестом.
open_system('PlannerandControllerRefMdl')
Планировщик и подсистема контроллера включают Планировщика Движения и Диспетчера Следования траектории, который симулирует планирование траектории и управление движением автомобиля, оборудованного датчиком соответственно.
A) Планировщик движения
open_system('PlannerandControllerRefMdl/Motion Planner');
Планировщик Движения выполняет траекторию, планирующую при помощи информации о маршруте, данных об эго и данных агентов неэго из блока подсистемы Транспортного средства и Среды. Планировщик Движения состоит из:
Найдите функциональный блок MIOs
Обновите Глобальный функциональный блок Плана и Отклонения
Подсистема Генератора траектории
Траектория к функциональному блоку Пути
Путь подсистема Анализатора
Находка блок MATLAB function MIOs находит самые важные объекты (MIOs) в сценарии. MIOs относятся к агентам неэго, которые лежат около автомобиля, оборудованного датчиком. MIOs может быть расположен впереди или задняя часть автомобиля, оборудованного датчиком вдоль его текущего маршрута и смежных маршрутов.
Глобальный блок MATLAB function Плана и Отклонения Обновления вычисляет желаемое отклонение от ссылочного пути и обновляет глобальный план предотвратить частые изменения маршрута и обеспечить боковое отклонение. Глобальный план обновляется на основе отклонения. Положительное значение смещения означает, что автомобиль, оборудованный датчиком возмещен справа от ссылочного пути. Отрицательное значение смещения означает, что автомобиль, оборудованный датчиком возмещен слева от ссылочного пути.
Подсистема Генератора Траектории генерирует оптимальную траекторию на основе MIOs, ссылочного пути и заданного отклонения. MIOs используются, чтобы обновить блок проверки допустимости состояния. Объект блока проверки допустимости состояния и ссылочный путь waypoints передаются как входные параметры trajectoryOptimalFrenet
функция. trajectoryOptimalFrenet
функция генерирует несколько траекторий. Выбранные траектории подтверждены для динамического столкновения с помощью блока проверки допустимости состояния. Подсистема идентифицирует оптимальную траекторию на основе различных весов и свойств набора trajectoryOptimalFrenet
.
Траектория к блоку MATLAB function Пути извлекает информацию о пути из сгенерированной траектории.
Путь подсистема Анализатора оценивает направляющийся угол и находит, что соответствующая точка на пути следует. Сгенерированный путь должен соответствовать дорожной форме.
B) Контроллер следования траектории
Контроллер Следования траектории симулирует механизм управления следования траектории (PFC), который сохраняет автомобиль, оборудованный датчиком, перемещающийся вдоль сгенерированной траектории при отслеживании скорости набора. Для этого контроллер настраивает и продольное ускорение и передний руководящий угол автомобиля, оборудованного датчиком. Контроллер вычисляет действия оптимального управления в то время как удовлетворяющая скорость, ускорение и держащиеся угловые ограничения с помощью адаптивной модели прогнозирующее управление (MPC). Контроллер включает:
Виртуальная подсистема Центра Маршрута - создает виртуальный маршрут из точки контура. Виртуальный маршрут совпадает с форматом, требуемым контроллером следования траектории.
Подсистема Искривления Предварительного просмотра - преобразует траекторию во вход искривления, требуемый контроллером следования траектории.
Маршрут После Подсистемы контроллера - использует блок Path Following Control System из Model Predictive Control Toolbox.
Маршрут После Контроллера сохраняет транспортное средство, перемещающееся в отмеченном маршруте магистрали при поддержании установленной пользователями скорости или безопасного расстояния от предыдущего транспортного средства. Маршрут после контроллера включает объединенное продольное и боковое управление автомобиля, оборудованного датчиком:
Продольное управление - Обеспечивает установленную пользователями скорость и сохраняет безопасное расстояние от предыдущего автомобиля в маршруте путем корректировки ускорения автомобиля, оборудованного датчиком.
Боковое управление - Сохраняет автомобиль, оборудованный датчиком, перемещающийся вдоль средней линии его маршрута путем корректировки регулирования автомобиля, оборудованного датчиком.
Подсистема Транспортного средства и Среды включает симуляцию с обратной связью контроллера следования траектории.
open_system('LaneChangeTestBench/Vehicle and Environment')
Системные блоки Задержки моделируют задержку в системе между входами и выходами модели.
Подсистема Динамики аппарата моделирует динамику аппарата с помощью блока Bicycle Model - Force Input из Vehicle Dynamics Blockset™. Движущие силы низшего уровня моделируются линейной системой первого порядка с постоянной времени секунд.
SAE J670E к подсистеме ISO 8855 преобразует координаты от Динамики аппарата, который использует SAE J670E Читателю Сценария, который использует ISO 8855.
Блок Scenario Reader считывает данные из файла сценария, созданного с помощью приложения Driving Scenario Designer. Чтобы изменить файл сценария, дважды кликните на блоке Scenario Reader и откройте вкладку параметров блоков.
Установите Источник ведущего параметра сценария к From File
и нажмите на Browse, чтобы выбрать желаемый файл сценария. Блок Scenario Reader считывает данные об агенте и информацию о маршруте из файла сценария. Блок преобразует положения агента от мировых координат сценария в координаты автомобиля, оборудованного датчиком.
Блок Vision Detection Generator берет контуры маршрута из блока Scenario Reader и генерирует обнаружения от симулированных положений агента. На все обнаружения ссылаются к системе координат автомобиля, оборудованного датчиком. Генератор обнаружения моделирует поле зрения монокулярной камеры и определяет направляющийся угол, искривление, производную искривления и допустимую длину каждого контура маршрута, составляя любые другие препятствия.
open_system('LaneChangeTestBench/Metric Assessment')
Метрическая подсистема Оценки подтверждает это, автомобиль, оборудованный датчиком не сталкивается с другими транспортными средствами. Метрическая подсистема Оценки останавливает маневрирование изменения маршрута и остановки симуляция, если система обнаруживает столкновение автомобиля, оборудованного датчиком с целевыми транспортными средствами.
Запустите систему имитационной модели LCM, чтобы визуализировать поведение системы во время изменения маршрута. Блок Visualization в модели создает график птичьего глаза, который отображает информацию о маршруте, автомобиль, оборудованный датчиком, траекторию эго и другие транспортные средства в сценарии.
% Turn off messages from MPC. mpcverbosity('off'); % Run the model for 3 secs. sim("LaneChangeTestBench","StopTime","3");
Запустите симуляцию в течение 9 секунд и заметьте, что траектория вычисляется, чтобы перейти вокруг более медленного ведущего транспортного средства.
% Turn off messages from MPC. mpcverbosity('off'); % Run the model for 3 secs. sim("LaneChangeTestBench","StopTime","9");
Запустите симуляцию в течение 14 секунд и заметьте, что транспортное средство продолжается прямо вперед в левом маршруте.
% Turn off messages from MPC. mpcverbosity('off'); % Run the model for 3 secs. sim("LaneChangeTestBench","StopTime","14");
Исследуйте другие сценарии тестирования в примере путем изменения scenarioId
и выполнение exampleHelperLaneChangeSetup
скрипт. Этот скрипт обновляет блок читателя сценария с выбранным сценарием и повторно инициализирует шины относительно выбранного сценария. Сохраните и запустите модель, чтобы исследовать поведение. Обновление сценария от читателя сценария блокирует потребности, обновляющие scenarioId
из командной строки и повторно выполненный exampleHelperLaneChangeSetup
скрипт, чтобы повторно инициализировать шины, требуемые моделью.
Этот пример показал, как симулировать магистральный маршрут, меняют маневр с помощью идеальных положений транспортного средства и обнаружений маршрута.