В этом примере показано, как реализовать автономное экстренное торможение (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.
Транспортное средство и Среда, которая моделирует динамику автомобиля, оборудованного датчиком и среду. Это включает ведущее средство чтения сценария и радар и генераторы обнаружения видения. Эти блоки обеспечивают синтетические данные о датчике для объектов.
Чтобы построить синтетические обнаружения датчика, отслеживаемые объекты и достоверные данные, используют Bird ' s-Eye Scope. Bird ' s-Eye Scope является инструментом визуализации уровня модели, который можно открыть из панели инструментов модели Simulink. На вкладке Simulation, рассматриваемых Результатах, нажимают Bird's-Eye Scope. После открытия осциллографа нажмите 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
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 по сравнению с Останавливающимся Временем) показывает сравнение между временем к столкновению (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.