В этом примере показано, как реализовать автономное экстренное торможение (AEB) с помощью алгоритма слияния датчиков с помощью автоматизированной панели инструментов вождения.
В этом примере выполняется следующее:
Интегрируйте контроллер AEB на базе Simulink ® и Stateflow ®, алгоритм слияния датчиков, динамику эго-транспортных средств, считыватель сценариев вождения, а также генераторы радиолокационного и визуального обнаружения.
Тестирование системы AEB в модели Simulink с замкнутым контуром с использованием ряда тестовых сценариев, созданных приложением Driving Script Designer
Настройте параметры генерации кода для моделирования ПО в цикле и автоматически создайте код C для алгоритма управления.
Автономное экстренное торможение (АЕБ) представляет собой усовершенствованную систему активной безопасности, которая помогает водителям избегать или смягчать столкновения с другими транспортными средствами или уязвимыми участниками дорожного движения. Системы АЕБ повышают безопасность за счет:
Предотвращение аварий путем раннего выявления критических ситуаций и предупреждения водителя.
Снижение тяжести неизбежных аварий за счет снижения скорости столкновения. В некоторых случаях системы АЕБ подготавливают транспортное средство и удерживающие системы к удару [1].
Европейская программа оценки новых автомобилей (Euro NCAP) включила город и межгородскую систему АЕБ в свой рейтинг безопасности от 2014 года. Euro NCAP продолжает пропагандировать системы АЕБ для защиты уязвимых участников дорожного движения, таких как пешеходы и велосипедисты.
Современные системы AEB в основном используют радары и датчики зрения для выявления потенциальных партнеров по столкновению перед эго-транспортным средством. Для точного, надежного и надежного обнаружения при минимизации ложных срабатываний часто требуется множество датчиков. Именно поэтому технология синтеза сенсоров играет важную роль для системы AEB.
Добавьте папку файла примера в путь поиска MATLAB ®. Затем откройте основную модель Simulink, используемую в этом примере.
addpath(genpath(fullfile(matlabroot,'examples','driving'))) open_system('AEBTestBenchExample')

Модель состоит из двух основных подсистем:
AEB с Sensor Fusion, который содержит алгоритм слияния датчиков и контроллер AEB.
Транспортное средство и окружающая среда, которая моделирует динамику эго-транспортного средства и окружающую среду. Он включает в себя считыватель сценария движения и генераторы радиолокационного и визуального обнаружения. Эти блоки обеспечивают синтетические данные датчиков для объектов.
Для построения графиков обнаружения синтетических датчиков, отслеживаемых объектов и данных об истинности земли используйте Область действия «Птичий глаз». Область «Птичий глаз» - это инструмент визуализации на уровне модели, который можно открыть на панели инструментов модели Simulink. На вкладке Моделирование (Simulation) в разделе Результаты проверки (Review Results) щелкните Область действия птичьего глаза (Bird 's-Eye Scope). После открытия области щелкните Найти сигналы (Find Signals), чтобы настроить сигналы. Панель приборной панели отображает скорость эго-транспортного средства, ускорение и состояние автономных контроллеров экстренного торможения (AEB) и предупреждения о столкновении (FCW).
Откройте контроллер AEB с подсистемой Sensor Fusion.
open_system('AEBTestBenchExample/AEB with Sensor Fusion')

Эта подсистема содержит алгоритм слежения и слияния датчиков, а также контроллеры скорости и AEB.
Подсистема слежения и слияния датчиков обрабатывает сигналы наблюдения и радиолокационного обнаружения, поступающие из подсистемы транспортного средства и окружающей среды, и генерирует положение и скорость наиболее важной трассы объекта (MIO) относительно эго-транспортного средства.
Подсистема контроллера скорости обеспечивает движение эго-транспортного средства с заданной водителем скоростью с помощью пропорционального интегрального (PI) контроллера.
Подсистема Accelerator Robot освобождает ускоритель транспортного средства при активации AEB.
Подсистема контроллера AEB реализует предупреждение о прямом столкновении (FCW) и алгоритм управления AEB на основе подхода расчета времени остановки.
Время остановки - это время от момента, когда эго-транспортное средство впервые применяет тормоза с замедлением,
до момента полной остановки. Время остановки можно получить по следующему уравнению:

Система FCW предупреждает водителя о скором столкновении с ведущим транспортным средством. Ожидается, что водитель отреагирует на предупреждение и применит тормоз со временем задержки,.

Общее время движения эго-транспортного средства до столкновения с ведущим транспортным средством может быть выражено следующим образом:

Когда время до столкновения (TTC) ведущего транспортного средства становится меньше,
активируется предупреждение FCW.
Если водитель вовремя не применяет тормоза, например, из-за отвлекающих факторов, система AEB действует независимо от водителя, чтобы избежать или смягчить столкновение. Системы AEB обычно используют каскадное торможение, которое состоит из многоступенчатого частичного торможения с последующим полным торможением [2].

Откройте подсистему контроллера AEB.
open_system('AEBWithSensorFusionMdlRef/AEB Controller')

Контроллер AEB состоит из нескольких функциональных блоков:
TTCCalculation, которая рассчитывает TTC с использованием относительного расстояния и скорости ведущего транспортного средства или наиболее важного объекта
Расчет времени останова для FCW, частичного торможения первой и второй ступеней (PB) и полного торможения (FB) соответственно
AEB_Logic, который является конечным автоматом, сравнивающим TTC со временем остановки для определения активации FCW и AEB.
Откройте подсистему «Транспортное средство и окружающая среда».
open_system('AEBTestBenchExample/Vehicle and Environment')

Подсистема Vehicle Dynamics моделирует динамику ego-транспортного средства с помощью одноколейного блока Vehicle Dynamics Blockset 3DOF кузова транспортного средства (Vehicle Dynamics Blockset).
Подсистема модели рулевого управления водителя генерирует угол поворота рулевого управления водителя для удержания эго-транспортного средства на его полосе движения и следования по криволинейной дороге, определяемой кривизной, К.
Подсистема моделирования актера и сенсора генерирует синтетические данные сенсора, необходимые для отслеживания и слияния сенсора. Сразу после загрузки модели Simulink выполняется функция обратного вызова для создания среды моделирования с дорогой и несколькими движущимися по дороге субъектами.
Можно также запустить функцию обратного вызова, щелкнув Выполнить сценарий установки (Run Setup Script) в главной модели Simulink или введите в командной строке следующее:
helperAEBSetUp
Из списка можно указать номер сценария, соответствующий требуемому имени сценария.
% Create driving scenario scenariosNames = { % scenarioNumber 'AEB_CCRs_100overlap.mat',... % 1 'AEB_CCRm_100overlap.mat',... % 2 'AEB_CCRb_2_initialGap_12m_stop_inf.mat',... % 3 'AEB_CCRb_6_initialGap_40m_stop_inf.mat',... % 4 'AEB_PedestrianChild_Nearside_50width_overrun.mat'}; % 5
scenarioNumber = 5;
Имя сценария представляет собой файл сценария, созданный конструктором сценариев управления.
[scenario,egoCar,actor_Profiles] = ...
helperSessionToScenario(scenariosNames{scenarioNumber});
Файл сценария может быть преобразован в с использованием drivingScenariohelperSessionToScenario сценарий.
Блок чтения сценариев считывает данные актера из файла сценария. Блок преобразует позы актера из мировых координат сценария в координаты эго-транспортного средства. Позы актера передаются в потоковом режиме по шине, генерируемой блоком. Блок генератора обнаружения видения и блок генератора обнаружения радара синтезируют сигналы обнаружения видения и радара для целевых субъектов соответственно.
Euro NCAP предлагает серию протоколов испытаний, которые проверяют эффективность систем AEB в сценариях «автомобиль-автомобиль сзади» (CCR) и уязвимых участников дорожного движения (VRU).
Euro NCAP AEB - Протокол испытания автомобилей сзади [3]
Euro NCAP AEB - протокол тестирования уязвимых участников дорожного движения [4]
Automated Driving Toolbox предоставляет предварительно разработанные сценарии вождения в соответствии с протоколами тестирования Euro NCAP для системы AEB. Предварительно разработанные сценарии можно просмотреть с помощью конструктора сценариев управления.

Модель AEB Simulink считывает файл сценария управления и выполняет моделирование.
Моделирование модели в течение 0,1 секунды.

sim('AEBTestBenchExample','StopTime','0.1'); % Simulate 0.1 seconds
Bird 's-Eye Scope показывает наземные данные об истинности транспортных средств и ребенка-пешехода. Он также показывает радиолокационные детекторы, детекторы зрения и объекты, отслеживаемые многообъектным трекером. Во время моделирования в течение 0,1 секунды датчики обзора и радара не обнаруживают ребенка-пешехода, поскольку ему мешают транспортные средства.
Моделирование модели в течение 3,8 секунды.

sim('AEBTestBenchExample','StopTime','3.8'); % Simulate 3.8 seconds
Bird 's-Eye Scope в момент моделирования 3,8 секунды показывает, что алгоритм слияния и отслеживания датчиков обнаружил ребенка-пешехода как наиболее важный объект и что система AEB применила тормоза, чтобы избежать столкновения.

Панель приборной панели, отображаемая вместе с Bird 's-Eye Scope, показала, что система AEB применила каскадный тормоз и эго-транспортное средство остановилось прямо перед столкновением. Цвет состояния AEB указывает уровень активации AEB.
Серый - AEB не активирован.
Желтый - активизируется частичный тормоз первой ступени.
Оранжевый - включается частичный тормоз второй ступени.
Красный - включается полный тормоз.
Завершите моделирование до конца, чтобы получить результаты.

sim('AEBTestBenchExample'); % Simulate to end of scenario
Просмотр результатов моделирования.
helperPlotAEBResults(logsout);

Первый график (TTC vs. Stopping Time) показывает сравнение времени до столкновения (TTC) и времени остановки для FCW, частичного тормоза первой ступени, частичного тормоза второй ступени и полного тормоза соответственно.
На втором графике показано, как конечный автомат AEB определяет активации для FCW и AEB на основе результатов сравнения с первого графика.
На третьем графике показана скорость эго-транспортного средства.
На четвертом графике показано ускорение эго-транспортного средства.
На пятом графике показан прогресс между эго-транспортным средством и MIO.
В первые 2 секунды эго-транспортное средство ускоряется до заданной скорости. Через 2,3 секунды алгоритм слияния датчиков начинает обнаруживать ребенка-пешехода. Сразу после обнаружения FCW активируется.
Через 2,4 секунды применяется первый этап частичного торможения, и эго-транспортное средство начинает замедляться. Вторая ступень частичного торможения снова приводится в действие через 2,5 секунды.
Когда эго-транспортное средство, наконец, останавливается на 3,9 секунды, путь между эго-транспортным средством и ребенком-пешеходом составляет около 2,4 метра. В этом сценарии система AEB позволила полностью избежать столкновения.
AEBWithSensorFusionMdlRef модель настроена на поддержку генерации кода C с помощью программного обеспечения Embedded Coder ®. Чтобы проверить наличие доступа к встроенному кодеру, запустите:
hasEmbeddedCoderLicense = license('checkout','RTW_Embedded_Coder')
Можно создать функцию C для модели и изучить отчет о создании кода, выполнив следующие действия:
if hasEmbeddedCoderLicense slbuild('AEBWithSensorFusionMdlRef') end
Можно проверить, что скомпилированный код C ведет себя так, как ожидалось, с помощью моделирования программного обеспечения в цикле (SIL). Для моделирования ACCWithSensorFusionMdlRef ссылочная модель в режиме SIL, используйте:
if hasEmbeddedCoderLicense set_param('AEBTestBenchExample/AEB with Sensor Fusion',... 'SimulationMode','Software-in-the-loop (SIL)') end
При запуске AEBTestBenchExample модель, код генерируется, компилируется и выполняется для AEBWithSensorFusionMdlRef модель. Это позволяет проверить поведение скомпилированного кода с помощью моделирования.
В этом примере реализована система AEB с моделью Simulink с замкнутым контуром. Модель состояла из контроллера AEB на базе Simulink и Stateflow, алгоритма слияния датчиков, динамики эго-транспортных средств, считывателя сценариев вождения и генераторов обнаружения радаров и зрения.
Тестирование системы AEB выполняется с использованием ряда тестовых сценариев, созданных конструктором сценариев вождения.
Теперь можно протестировать систему AEB с другими тестовыми сценариями Euro NCAP для AEB. Доступ к ним можно получить из конструктора сценариев управления.
Удалите папку файла примера из пути поиска MATLAB.
rmpath(genpath(fullfile(matlabroot,'examples','driving')))
[1] Euro NCAP | Европейская программа оценки новых автомобилей. Euro NCAP
[2] W. Hulshof и др., «Результаты испытаний на автономное экстренное торможение», 23-я Международная техническая конференция по повышению безопасности транспортных средств (ESV), документ № 13-0168, 2013
[3] Протокол испытаний Euro NCAP - системы AEB, версия 2.0.1, ноябрь 2017 г.
[4] Протокол тестирования Euro NCAP - системы AEB VRU, версия 2.0.2, ноябрь 2017 г.