Этот пример показывает, как реализовать автономное экстренное торможение (AEB) с алгоритмом сплава датчика при помощи Automated Driving Toolbox.
В этом примере, вас:
Интегрируйте Simulink® и Stateflow® базирующийся контроллер AEB, алгоритм сплава датчика, динамика автомобиля, оборудованного датчиком, ведущее средство чтения сценария, и радар и генераторы обнаружения видения.
Протестируйте систему AEB в модели Simulink с обратной связью с помощью ряда сценариев тестирования, созданных приложением Driving Scenario Designer
Сконфигурируйте настройки генерации кода для программного обеспечения в симуляции цикла, и автоматически сгенерируйте код С для алгоритма управления.
Автономное экстренное торможение (AEB) является усовершенствованной активной системой безопасности, которая помогает драйверам избежать или смягчить столкновения с другими автомобилями или уязвимыми водителями. Системы AEB повышают уровень безопасности:
Предотвращение несчастных случаев путем идентификации критических ситуаций рано и предупреждения драйвера.
Сокращение серьезности неизбежных катастрофических отказов путем понижения скорости столкновения. В некоторых случаях системы AEB готовят автомобиль и системы сдержанности для влияния [1].
Европейская Новая Автомобильная Программа Оценки (Евро NCAP) включала город AEB и междугородную систему в ее оценке безопасности от 2 014. Евро NCAP продолжает продвигать системы AEB для защиты уязвимых водителей, таких как пешеходы и велосипедисты.
Сегодняшние системы AEB в основном используют радар и датчики видения, чтобы идентифицировать потенциальных партнеров по столкновению перед автомобилем, оборудованным датчиком. Несколько датчиков часто требуются для точных, надежных, и устойчивых обнаружений при минимизации ложных положительных сторон. Именно поэтому технология сплава датчика играет важную роль для системы AEB.
Добавьте папку в качестве примера в путь поиска файлов MATLAB®. Затем откройте основную модель Simulink, используемую в этом примере.
addpath(genpath(fullfile(matlabroot,'examples','driving'))) open_system('AEBTestBenchExample')
Модель состоит из двух основных подсистем:
AEB с Fusion Датчика, который содержит алгоритм сплава датчика и контроллер AEB.
Автомобиль и Среда, которая моделирует динамику автомобиля, оборудованного датчиком и среду. Это включает ведущее средство чтения сценария и радар и генераторы обнаружения видения. Эти блоки обеспечивают синтетические данные о датчике для объектов.
Чтобы построить синтетические обнаружения датчика, отслеживаемые объекты и наземные данные об истине, используют Видимый с большого расстояния Осциллограф. Видимый с большого расстояния Осциллограф является инструментом визуализации образцового уровня в Simulink, который может быть открыт с помощью меню, предоставленного на панели инструментов модели Simulink. После открытия осциллографа нажмите Find Signals, чтобы настроить сигналы. Панель Инструментальной панели отображает скорость автомобиля, оборудованного датчиком, ускорение и состояние контроллеров прямого предупреждения столкновения (FCW) и автономного экстренного торможения (AEB).
Откройте контроллер AEB с подсистемой Fusion Датчика.
open_system('AEBTestBenchExample/AEB with Sensor Fusion')
Эта подсистема содержит отслеживание и алгоритм сплава датчика и скорость и контроллеры AEB.
Видение процессов подсистемы Fusion Отслеживания и Датчика и радарные обнаружения, прибывающие из подсистемы Автомобиля и Среды и, генерируют положение и скорость дорожки самого важного объекта (MIO) относительно автомобиля, оборудованного датчиком.
Подсистема контроллера Скорости делает перемещение автомобиля, оборудованного датчиком в скорости набора драйвера при помощи контроллера пропорционального интеграла (PI).
Подсистема Робота Акселератора выпускает акселератор автомобиля, когда AEB активируется.
Подсистема контроллера AEB реализует прямое предупреждение столкновения (FCW) и алгоритм управления AEB на основе останавливающегося подхода вычисления времени.
Остановка времени относится ко времени от того, когда автомобиль, оборудованный датчиком сначала применяет свои тормоза с замедлением, к когда дело доходит до полной остановки. Остановка времени может быть получена следующим уравнением:
Система FCW предупреждает драйвер неизбежного столкновения с ведущим автомобилем. Драйвер, как ожидают, будет реагировать на предупреждение и применять тормоз со временем задержки.
Общее время прохождения автомобиля, оборудованного датчиком прежде, чем столкнуться с ведущим автомобилем может быть выражено:
Когда время к столкновению (TTC) ведущего автомобиля становится меньше, чем, предупреждение FCW активируется.
Если драйверу не удается нажать на тормоза вовремя, такой как из-за отвлекающих факторов, системных действий AEB независимо от драйвера, чтобы избежать или смягчить столкновение. Системы AEB обычно применяют расположенное каскадом торможение, которое состоит из многоступенчатого частичного торможения, сопровождаемого полным торможением [2].
Откройте Подсистему контроллера AEB.
open_system('AEBWithSensorFusionMdlRef/AEB Controller')
Контроллер AEB состоит из нескольких функциональных блоков:
TTCCalculation, который вычисляет TTC использование относительного расстояния и скорости ведущего автомобиля или самого важного объекта
StoppingTimeCalculation, который вычисляет останавливающиеся времена для FCW, сначала - и второе этапное частичное торможение (PB) и полное торможение (FB), соответственно
AEB_Logic, который является конечным автоматом, сравнивающим TTC с останавливающимися временами, чтобы определить FCW и активации AEB.
Откройте подсистему Автомобиля и Среды.
open_system('AEBTestBenchExample/Vehicle and Environment')
Подсистема Динамики аппарата моделирует динамику автомобиля, оборудованного датчиком с блоком Vehicle Body 3DOF Single Track от Vehicle Dynamics Blockset.
Драйвер, Регулирующий Подсистему модели, генерирует руководящий угол драйвера, чтобы сохранить автомобиль, оборудованный датчиком в его маршруте и идти по кривой дороге, заданной искривлением, K.
Подсистема Симуляции Агента и Датчика генерирует синтетические данные о датчике, требуемые для сплава датчика и отслеживания. Прямо после того, как модель 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;
Имя сценария является файлом сценария, созданным Driving Scenario Designer.
[scenario,egoCar,actor_Profiles] = ...
helperSessionToScenario(scenariosNames{scenarioNumber});
Файл сценария может быть преобразован в объект
с помощью скрипта drivingScenario
helperSessionToScenario
.
Блок Scenario Reader считывает данные о положениях агента из файла сценария. Блок преобразовывает положения агента от мировых координат сценария в координаты автомобиля, оборудованного датчиком. Положения агента передаются потоком на шине, сгенерированной блоком. Блок Vision Detection Generator и блок Radar Detection Generator синтезируют видение и радарные обнаружения для целевых агентов соответственно.
Европейский NCAP предлагает ряд тестовых протоколов, которые проверяют производительность систем AEB в сценариях уязвимых водителей (VRU) и задней части от автомобиля к автомобилю (CCR).
Евро NCAP AEB - Задняя часть От автомобиля к автомобилю тестирует протокол [3]
Евро NCAP AEB - Уязвимый тестовый протокол [4] Водителя
Automated Driving Toolbox предоставляет предварительно созданные ведущие сценарии согласно Евро тестовые протоколы NCAP для системы AEB. Можно рассмотреть предварительно созданные сценарии с помощью Driving Scenario Designer.
Модель AEB Simulink читает ведущий файл сценария и запускает симуляцию.
Моделируйте модель в течение 0,1 секунд.
sim('AEBTestBenchExample','StopTime','0.1'); % Simulate 0.1 seconds
Видимый с большого расстояния Осциллограф показывает наземные данные об истине автомобилей и дочернего пешехода. Это также показывает радарные обнаружения, обнаружения видения и объекты, прослеженные мультиобъектным средством отслеживания. Во времени симуляции 0,1 секунд видению и радарным датчикам не удается обнаружить дочернего пешехода, когда это затруднено автомобилями.
Моделируйте модель в течение 3,8 секунд.
sim('AEBTestBenchExample','StopTime','3.8'); % Simulate 3.8 seconds
Видимый с большого расстояния Осциллограф во времени симуляции 3,8 секунд показывает, что алгоритм сплава и отслеживания датчика обнаружил дочернего пешехода как самый важный объект и что система AEB нажала на тормоза, чтобы избежать столкновения.
Панель инструментальной панели, отображенная наряду с Видимым с большого расстояния Осциллографом, показала, что система AEB применила каскадный тормоз, и автомобиль, оборудованный датчиком остановился прямо перед столкновением. Цвет состояния AEB указывает на уровень активации AEB.
Серый - Никакой AEB не активируется.
Желтый - Первая стадия частичный тормоз активируется.
Оранжевый - Второй этап частичный тормоз активируется.
Красный - Полный тормоз активируется.
Завершите симуляцию полностью в конец, чтобы собрать результаты.
sim('AEBTestBenchExample'); % Simulate to end of scenario
Просмотрите результаты симуляции.
helperPlotAEBResults(logsout);
Первый график (TTC по сравнению с Останавливающимся Временем) показывает сравнение между временем к столкновению (TTC) и останавливающимися временами для FCW, первая стадия частичный тормоз, второй этап частичный тормоз и полный тормоз соответственно.
Второй график показывает, как конечный автомат AEB определяет активации для FCW, и AEB на основе сравнения следует из первого графика.
Третий график показывает скорость автомобиля, оборудованного датчиком.
Четвертый график показывает ускорение автомобиля, оборудованного датчиком.
Пятый график показывает прогресс между автомобилем, оборудованным датчиком и MIO.
За первые 2 секунды автомобиль, оборудованный датчиком убыстряется, чтобы достигнуть скорости набора. В 2,3 секунды алгоритм сплава датчика начинает обнаруживать дочернего пешехода. Сразу после обнаружения, FCW активируется.
В 2,4 секунды применяется первая стадия частичного тормоза, и автомобиль, оборудованный датчиком начинает замедляться. Второй этап частичного тормоза снова применяется в 2,5 секунды.
Когда автомобиль, оборудованный датчиком наконец останавливается в 3,9 секунды, прогресс между автомобилем, оборудованным датчиком и дочерним пешеходом составляет приблизительно 2,4 метра. Система AEB сделала полное предотвращение столкновения в этом сценарии.
Модель AEBWithSensorFusionMdlRef
сконфигурирована, чтобы поддержать генерирующийся код С с помощью программного обеспечения Embedded Coder®. Чтобы проверять, есть ли у вас доступ к Embedded Coder, выполнению:
hasEmbeddedCoderLicense = license('checkout','RTW_Embedded_Coder')
Можно сгенерировать функцию C для модели и исследовать отчет генерации кода путем выполнения:
if hasEmbeddedCoderLicense rtwbuild('AEBWithSensorFusionMdlRef') end
Можно проверить, что скомпилированный код С ведет себя, как ожидается использование программного обеспечения в цикле (SIL) симуляция. Чтобы моделировать ACCWithSensorFusionMdlRef
модель, на которую ссылаются, в режиме SIL, используйте:
if hasEmbeddedCoderLicense set_param('AEBTestBenchExample/AEB with Sensor Fusion',... 'SimulationMode','Software-in-the-loop (SIL)') end
Когда вы запускаете модель AEBTestBenchExample
, код сгенерирован, скомпилирован и выполнен для модели AEBWithSensorFusionMdlRef
. Это позволяет вам протестировать поведение скомпилированного кода посредством симуляции.
В этом примере вы реализовали систему AEB с моделью Simulink с обратной связью. Модель состояла из Simulink и Stateflow базирующийся контроллер AEB, алгоритм сплава датчика, динамика автомобиля, оборудованного датчиком, ведущее средство чтения сценария и радар и генераторы обнаружения видения.
Вы протестировали систему AEB с помощью ряда сценариев тестирования, созданных Driving Scenario Designer.
Можно теперь протестировать систему AEB с другим Евро сценарии тестирования NCAP для AEB. К ним можно получить доступ от Driving Scenario Designer.
Удалите папку в качестве примера из пути поиска файлов MATLAB.
rmpath(genpath(fullfile(matlabroot,'examples','driving')))
[1] Евро NCAP | европейская новая автомобильная программа оценки. Евро NCAP
[2] В. Хулсхоф, и др., "Автономные Результаты испытаний Экстренного торможения", 23-я Международная Техническая Конференция по Расширенной Безопасности Автомобилей (ESV), Бумага Номер 13-0168, 2013
[3] Евро Тестовый Протокол NCAP - системы AEB, ver. 2.0.1, ноябрь 2017.
[4] Евро Тестовый Протокол NCAP - системы AEB VRU, ver. 2.0.2, ноябрь 2017.