В этом примере показано, как использовать блок Adaptive Cruise Control System в Simulink ®, и показаны цели управления и ограничения этого блока.
Добавьте файловую папку примера в путь MATLAB ®.
addpath(fullfile(matlabroot,'examples','mpc','main'));
Транспортное средство (ego car), оборудованное адаптивным круиз-контролем (ACC), имеет датчик, такой как радар, который измеряет расстояние до предыдущего транспортного средства в той же полосе (свинцовый автомобиль). Датчик также измеряет относительную скорость свинцового вагона,. Система ACC работает в следующих двух режимах:
Регулирование скорости: эго автомобиль перемещается на заданной водителем скорости.
Регулирование интервалов: Эго автомобиль поддерживает безопасное расстояние от свинцового автомобиля.
Система ACC решает, какой режим использовать на основе радиолокационных измерений в реальном времени. Для примера, если ведущая машина слишком близка, система ACC переключается с регулировки скорости на регулирование интервала. Точно так же, если ведущая машина находится дальше, система ACC переключается с управления интервалом на регулирование скорости. Другими словами, система ACC заставляет эго-автомобиль перемещаться с заданной водителем скоростью, пока он поддерживает безопасное расстояние.
Для определения режима работы системы ACC используются следующие правила:
Если, то активен режим регулировки скорости. Цель управления состоит в том, чтобы отслеживать заданную драйвером скорость,.
Если, то режим управления интервалом активен. Цель управления состоит в том, чтобы соблюдать безопасное расстояние,.
Динамика для свинцового автомобиля и эго-автомобиля моделируется в Simulink. Откройте модель Simulink.
mdl = 'mpcACCsystem';
open_system(mdl)
Чтобы приблизить реалистичное движущее окружение, ускорение головного автомобиля изменяется в соответствии с синусоидой во время симуляции. Блок Adaptive Cruise Control System выводит сигнал управления ускорением для эго-автомобиля.
Задайте шаг расчета, Ts
, и длительность симуляции, T
, в секундах.
Ts = 0.1; T = 80;
Для автомобиля , оборудованного датчиком и ведущего автомобиля динамика между ускорением и скоростью моделируются как:
который аппроксимирует динамику корпуса дросселя и инерцию транспортного средства.
Задайте линейную модель для ego car.
G_ego = tf(1,[0.5,1,0]);
Укажите начальное положение и скорость для двух транспортных средств.
x0_lead = 50; % initial position for lead car (m) v0_lead = 25; % initial velocity for lead car (m/s) x0_ego = 10; % initial position for ego car (m) v0_ego = 20; % initial velocity for ego car (m/s)
Система ACC моделируется с помощью блока Adaptive Cruise Control System Block в Simulink. Входные входы системного блока ACC:
Заданная драйвером скорость
Временной разрыв
Скорость эго-автомобиля
Относительное расстояние до головного вагона (от радара)
Относительная скорость для головного вагона (с радара)
Выходом для системы ACC является ускорение ego-автомобиля.
Безопасное расстояние между головным автомобилем и ego-автомобилем является функцией скорости ego-автомобиля,:
где - интервал по умолчанию остановки и временной разрыв между транспортными средствами. Задайте значения для, в метрах и, в секундах.
t_gap = 1.4; D_default = 10;
Задайте заданную драйвером скорость в м/с.
v_set = 30;
Учитывая физические ограничения динамики аппарата, ускорение ограничено областью значений значений [-3,2]
(м/с ^ 2).
amin_ego = -3; amax_ego = 2;
В данном примере параметры по умолчанию блока Adaptive Cruise Control System соответствуют параметрам симуляции. Если ваши параметры симуляции отличаются от значений по умолчанию, то обновляйте параметры блоков соответственно.
Запустите симуляцию.
sim(mdl)
-->Converting model to discrete time. -->Assuming output disturbance added to measured output channel #2 is integrated white noise. Assuming no disturbance added to measured output channel #1. -->The "Model.Noise" property of the "mpc" object is empty. Assuming white noise on each measured output channel.
Постройте график результата симуляции.
mpcACCplot(logsout,D_default,t_gap,v_set)
В первые 3 секунды, чтобы достичь установленной водителем скорости, эго-автомобиль разгоняется на полном дросселе.
От 3 до 13 секунд головная машина разгоняется медленно. В результате, чтобы сохранить безопасную дистанцию до головной машины, эго-машина разгоняется с более медленной скоростью.
От 13 до 25 секунд эго-автомобиль поддерживает заданную водителем скорость, как показано на графике Velocity. Однако, когда головная машина уменьшает скорость, ошибка интервала начинает приближаться к 0 через 20 секунд.
С 25 до 45 секунд головная машина замедляется и затем снова разгоняется. Эго-автомобиль поддерживает безопасное расстояние от головного автомобиля, регулируя его скорость, как показано на графиках расстояния.
От 45 до 56 секунд ошибка интервала выше 0
. Поэтому ego-автомобиль снова достигает заданной водителем скорости.
От 56 до 76 секунд повторяют последовательность замедление/ускорение от 25 до 45 секунд интервала.
На протяжении всей симуляции контроллер гарантирует, что фактическое расстояние между двумя транспортными средствами больше установленного безопасного расстояния. Когда фактическое расстояние достаточно велико, контроллер гарантирует, что автомобиль , оборудованный датчиком следит за заданной драйвером скоростью.
Удалите пример файла папки из пути MATLAB и закройте модель Simulink.
rmpath(fullfile(matlabroot,'examples','mpc','main')); bdclose(mdl)