Маршрут после управления с обнаружением cочетания датчиков и маршрута

В этом примере показано, как симулировать и сгенерировать код для автомобильного следующего за маршрутом контроллера.

В этом примере, вас:

  1. Рассмотрите алгоритм управления, который комбинирует cочетание датчиков, обнаружение маршрута и маршрут после контроллера из программного обеспечения Model Predictive Control Toolbox™.

  2. Протестируйте систему управления в модели Simulink® с обратной связью использование синтетических данных, сгенерированных программным обеспечением Automated Driving Toolbox™.

  3. Сконфигурируйте настройки генерации кода для программного обеспечения в симуляции цикла и автоматически сгенерируйте код для алгоритма управления.

Введение

Маршрут после системы является системой управления, которая сохраняет транспортное средство, перемещающееся в отмеченном маршруте магистрали при поддержании установленной пользователями скорости или безопасного расстояния от предыдущего транспортного средства. Маршрут после системы включает объединенное продольное и боковое управление автомобиля, оборудованного датчиком:

  • Продольное управление - Обеспечивает скорость набора драйверов и сохраняет безопасное расстояние от предыдущего автомобиля в маршруте путем корректировки ускорения автомобиля, оборудованного датчиком.

  • Боковое управление - Сохраняет автомобиль, оборудованный датчиком, перемещающийся вдоль средней линии его маршрута путем корректировки регулирования автомобиля, оборудованного датчиком

Объединенный маршрут после системы управления достигает отдельных целей по продольному и боковому управлению. Далее, маршрут после системы управления может настроить приоритет двух голов, когда им нельзя соответствовать одновременно.

Для примера продольного управления с помощью адаптивного круиз-контроля (ACC) с cочетанием датчиков смотрите Адаптивный Круиз-контроль с Cочетанием датчиков (Model Predictive Control Toolbox). Для примера бокового управления с помощью системы хранения маршрута помогает (LKA) с обнаружением маршрута смотрите, что Маршрут Сохранить Помогает с Обнаружением Маршрута (Model Predictive Control Toolbox). Пример ACC принимает идеальное обнаружение маршрута, и пример LKA не рассматривает окружающие транспортные средства.

В этом примере рассматриваются и обнаружение маршрута и окружающие автомобили. Маршрут после системы синтезирует данные из видения и радарных обнаружений, оценивает центр маршрута и ведущее автомобильное расстояние, и вычисляет продольное ускорение и держащийся угол автомобиля, оборудованного датчиком.

Задайте сценарий

Прежде, чем открыть модель, можно опционально изменить сценарий, который симулирует модель. Этим выбором сценария управляет функция обратного вызова, helperLFSetUp, который запускается, когда модель открывается.

По умолчанию модель симулирует сценарий врезания на кривой дороге. Чтобы изменить используемый сценарий по умолчанию, или отредактируйте скрипт настройки путем нажатия кнопки Edit Setup Script в модели или путем вызова helperLFSetup с новым входным сценарием. Например, следующий синтаксис эквивалентен определению сценария по умолчанию.

helperLFSetup('LFACC_04_Curve_CutInOut');

Можно выбрать из следующих сценариев.

   'ACC_01_ISO_TargetDiscriminationTest'
   'ACC_02_ISO_AutoRetargetTest'
   'ACC_03_ISO_CurveTest'
   'ACC_04_StopnGo'
   'LFACC_01_DoubleCurve_DecelTarget'
   'LFACC_02_DoubleCurve_AutoRetarget'
   'LFACC_03_DoubleCurve_StopnGo'
   'LFACC_04_Curve_CutInOut'
   'LFACC_05_Curve_CutInOut_TooClose'

Открытая тестовая модель

Откройте тестовую модель Simulink.

open_system('LaneFollowingTestBenchExample')

Модель содержит четыре основных компонента:

  1. Маршрут После Контроллера - Средства управления и продольное ускорение и передний руководящий угол автомобиля, оборудованного датчиком

  2. Транспортное средство и Среда - Моделируют движение автомобиля, оборудованного датчиком и моделируют среду

  3. Обнаружение столкновений - Остановки симуляция, когда столкновение автомобиля, оборудованного датчиком и ведущего транспортного средства обнаруживается

  4. Дорожка MIO - Включает дорожку MIO для отображения в Bird ' s-Eye Scope.

Открытие этой модели также запускает helperLFSetUp скрипт, который инициализирует данные, используемые моделью путем выполнения функции сценария и загрузки констант, необходимых модели Simulink, таких как параметры модели транспортного средства, параметры проектирования контроллера, дорожный сценарий и окружающие автомобили.

Постройте дорогу и путь, за которым будет следовать автомобиль, оборудованный датчиком.

plot(scenario)

Чтобы построить результаты симуляции и изобразить среду автомобиля, оборудованного датчиком и отслеживаемые объекты, используйте Bird ' s-Eye Scope. Bird ' s-Eye Scope является инструментом визуализации уровня модели, который можно открыть от панели инструментов Simulink. На вкладке Simulation, рассматриваемых Результатах, нажимают Bird's-Eye Scope. После открытия осциллографа, настроенного сигналы путем нажатия на Find Signals.

Чтобы получить середину представления симуляции, симулируйте модель для 10 секунды.

sim('LaneFollowingTestBenchExample','StopTime','10')

После симуляции модели в течение 10 секунд откройте Bird ' s-Eye Scope. В панели инструментов осциллографа, чтобы отобразить Представление Мировых координат сценария, нажимают World Coordinates. В этом представлении окружен автомобиль, оборудованный датчиком. Чтобы отобразить легенду для Представления Координат Транспортного средства, нажмите Legend.

Bird ' s-Eye Scope показывает результаты cочетания датчиков. Это показывает, как радар и датчики видения обнаруживают транспортные средства в их зонах охвата. Это также показывает дорожки, обеспеченные блоком Multi-Object Tracker. Желтая дорожка показывает самый важный объект (MIO), который является самой близкой дорожкой перед автомобилем, оборудованным датчиком в его маршруте. Идеальные маркировки маршрута также показывают наряду с искусственно обнаруженными левыми и правыми контурами маршрута (отображенные красным).

Симулируйте модель в конец сценария.

sim('LaneFollowingTestBenchExample')
   Assuming no disturbance added to measured output channel #3.
-->Assuming output disturbance added to measured output channel #2 is integrated white noise.
   Assuming no disturbance added to measured output channel #1.
-->Assuming output disturbance added to measured output channel #4 is integrated white noise.
-->The "Model.Noise" property of the "mpc" object is empty. Assuming white noise on each measured output channel.

Постройте эффективность контроллера.

plotLFResults(logsout,time_gap,default_spacing)

Первый рисунок показывает следующие результаты эффективности управления интервалом.

  • Скоростной график показывает, что автомобиль, оборудованный датчиком обеспечивает скоростной контроль от 0 до 11 секунд, переключается на разрядку управления с 11 до 16 секунд, затем переключается назад на скоростное управление.

  • Расстояние между двумя автомобильными графиками показывает, что фактическое расстояние между ведущим транспортным средством и автомобилем, оборудованным датчиком всегда больше безопасного расстояния.

  • Ускоряющий график показывает, что ускорение для автомобиля, оборудованного датчиком является гладким.

  • График состояния Collision показывает, что никакое столкновение между ведущим транспортным средством и автомобилем, оборудованным датчиком не обнаруживается, таким образом запуски автомобиля, оборудованного датчиком в безопасном режиме.

Второй рисунок показывает следующие боковые результаты эффективности управления.

  • Боковой график отклонения показывает, что расстояние до средней линии маршрута в 0,2 м.

  • Относительный угловой график рыскания показывает, что угловая погрешность рыскания относительно средней линии маршрута в 0,03 рад (меньше чем 2 градуса).

  • Держащийся угловой график показывает, что держащийся угол для автомобиля, оборудованного датчиком является гладким.

Исследуйте маршрут после контроллера

Маршрут После Подсистемы контроллера содержит три основных части: 1) Оценочный Центр Маршрута, 2) Отслеживающий и Cочетание датчиков 3) Контроллер MPC

open_system('LaneFollowingTestBenchExample/Lane Following Controller')

Оценочная подсистема Центра Маршрута выводит данные о датчике маршрута контроллеру MPC. Предварительно просмотренное искривление обеспечивает среднюю линию искривления маршрута перед автомобилем, оборудованным датчиком. В этом примере автомобиль, оборудованный датчиком может смотреть вперед в течение 3 секунд, который является продуктом горизонта предсказания и шага расчета контроллера. Диспетчер использует предварительно просмотренную информацию для вычисления руководящего угла автомобиля, оборудованного датчиком, который улучшает контроллер MPC производительность. Боковое отклонение измеряет расстояние между автомобилем, оборудованным датчиком и средней линией маршрута. Относительный угол рыскания измеряет угловое различие в рыскании между автомобилем, оборудованным датчиком и дорогой. ISO 8855 с блоком SAE J670E в подсистеме преобразует координаты от Обнаружений Маршрута, которые используют ISO 8855 Контроллеру MPC, который использует SAE J670E.

Видение процессов подсистемы Отслеживания и Cочетания датчиков и радарные обнаружения, прибывающие из подсистемы Транспортного средства и Среды и, генерируют всестороннее изображение ситуации среды вокруг автомобиля, оборудованного датчиком. Кроме того, это обеспечивает маршрут после контроллера с оценкой самого близкого транспортного средства в маршруте перед автомобилем, оборудованным датчиком.

Цели для блока MPC Controller (Model Predictive Control Toolbox) к:

  • Обеспечьте скорость набора драйверов и помешайте безопасному расстоянию ведущее транспортное средство. Эта цель достигается путем управления продольным ускорением.

  • Сохраните автомобиль, оборудованный датчиком посреди маршрута; это, уменьшают боковое отклонение$E_{lateral}$ и относительный угол рыскания$E_{yaw}$, путем управления держащимся углом.

  • Замедлите автомобиль, оборудованный датчиком, когда дорога будет соблазнительна. Чтобы достигнуть этой цели, у контроллера MPC есть большие веса штрафа на боковом отклонении, чем на продольной скорости.

Контроллер MPC спроектирован в блоке Path Following Control (PFC) System на основе вводимых параметров маски, и спроектированным Контроллером MPC является адаптивный MPC, который обновляет модель транспортного средства во время выполнения. Маршрут после контроллера вычисляет продольное ускорение и держащийся угол для автомобиля, оборудованного датчиком на основе следующих входных параметров:

  • Скорость набора драйверов

  • Автомобиль, оборудованный датчиком продольная скорость

  • Предварительно просмотренное искривление (выведенный из Обнаружений Маршрута)

  • Боковое отклонение (выведенный из Обнаружений Маршрута)

  • Относительный угол рыскания (выведенный из Обнаружений Маршрута)

  • Относительное расстояние между ведущим транспортным средством и автомобилем, оборудованным датчиком (от системы Отслеживания и Cочетания датчиков)

  • Относительная скорость между ведущим транспортным средством и автомобилем, оборудованным датчиком (от системы Отслеживания и Cочетания датчиков)

Рассматривая физические ограничения автомобиля, оборудованного датчиком, держащийся угол ограничивается быть в [-0.26,0.26] рад, и продольное ускорение ограничивается быть в [-3,2] м/с^2.

Исследуйте транспортное средство и среду

Подсистема Транспортного средства и Среды включает симуляцию с обратной связью маршрута после контроллера.

open_system('LaneFollowingTestBenchExample/Vehicle and Environment')

Системные блоки Задержки моделируют задержку в системе между входами и выходами модели. Задержка может быть вызвана задержкой датчика или коммуникационной задержкой. В этом примере задержка аппроксимирована на$T_s = 0.1$ секунды шага расчета.

Подсистема Динамики аппарата моделирует динамику аппарата с помощью блока Bicycle Model - Force Input из Vehicle Dynamics Blockset™. Движущие силы низшего уровня моделируются линейной системой первого порядка с постоянной времени$\tau = 0.5$ секунд.

SAE J670E к подсистеме ISO 8855 преобразует координаты от Динамики аппарата, который использует SAE J670E Читателю Сценария, который использует ISO 8855.

Блок Scenario Reader считывает данные о положениях агента из переменной сценария базового рабочего пространства. Блок преобразует положения агента от мировых координат сценария в координаты автомобиля, оборудованного датчиком. Положения агента передаются потоком на шине, сгенерированной блоком. Блок Scenario Reader также генерирует идеальные левые и правые контуры маршрута на основе положения транспортного средства относительно сценария, используемого в helperLFSetUp.

Блок Vision Detection Generator берет идеальные контуры маршрута из блока Scenario Reader. Генератор обнаружения моделирует поле зрения монокулярной камеры и определяет угол рыскания, искривление, производную искривления и допустимую длину каждого дорожного контура, составляя любые другие препятствия. Блок Driving Radar Data Generator генерирует кластеризируемые обнаружения от достоверных данных, существующих в области радара на основе эффективной площади рассеивания, заданной в сценарии.

Запустите контроллер для нескольких сценариев тестирования

Этот пример использует несколько сценариев тестирования на основе стандартов ISO и реальных сценариев. Чтобы проверить эффективность контроллера, можно протестировать контроллер на несколько сценариев и настроить параметры контроллера, если эффективность не является удовлетворительной. Сделать так:

  1. Выберите сценарий путем изменения входа имени сценария в helperLFSetUp.

  2. Сконфигурируйте параметры симуляции путем выполнения helperLFSetUp.

  3. Симулируйте модель с выбранным сценарием.

  4. Оцените эффективность контроллера с помощью plotLFResults

  5. Настройте параметры контроллера, если эффективность не является удовлетворительной.

Можно автоматизировать верификацию и валидацию контроллера, использующего Simulink Test™.

Сгенерируйте код для алгоритма управления

LFRefMdl поддержки модели, генерирующие код С с помощью программного обеспечения Embedded Coder®. Чтобы проверять, есть ли у вас доступ к Embedded Coder, запуску:

hasEmbeddedCoderLicense = license('checkout','RTW_Embedded_Coder')

Можно сгенерировать функцию C для модели и исследовать отчет генерации кода путем выполнения:

if hasEmbeddedCoderLicense
  rtwbuild('LFRefMdl')
end

Можно проверить, что скомпилированный код С ведет себя, как ожидается использование программного обеспечения в цикле (SIL) симуляция. Симулировать LFRefMdl модель, на которую ссылаются, в режиме SIL, используйте:

if hasEmbeddedCoderLicense
  set_param('LaneFollowingTestBenchExample/Lane Following Controller',...
            'SimulationMode','Software-in-the-loop (SIL)')
end

Когда вы запускаете LaneFollowingTestBenchExample модель, код сгенерирован, скомпилирован и выполнен для LFRefMdl модель, которая позволяет вам протестировать поведение скомпилированного кода посредством симуляции.

Заключения

В этом примере показано, как реализовать интегрированный маршрут после контроллера на кривой дороге с cочетанием датчиков и обнаружением маршрута, протестируйте его в Simulink с помощью синтетических данных, сгенерированных с помощью программного обеспечения Automated Driving Toolbox, разбейте на компоненты его, и автоматически сгенерируйте код для него.

close all
bdclose all

Смотрите также

Приложения

Блоки

Похожие темы