Адаптивная система круиз-контроля Используя образцовое прогнозирующее управление

Этот пример показывает, как использовать блок Adaptive Cruise Control System в Simulink® и демонстрирует цели управления и ограничения этого блока.

Добавьте папку в качестве примера в путь MATLAB®.

addpath(fullfile(matlabroot,'examples','mpc','main'));

Адаптивная система круиз-контроля

Автомобиль (автомобиль эго) оборудованный адаптивным круиз-контролем (ACC) имеет датчик, такой как радар, который измеряет расстояние до предыдущего автомобиля в том же маршруте (ведущий автомобиль). Датчик также измеряет относительную скорость ведущего автомобиля. Система ACC действует в следующих двух режимах:

  • Регулировка скорости: автомобиль эго перемещается на скорости набора драйверов.

  • Разрядка управления: автомобиль эго поддерживает безопасное расстояние от ведущего автомобиля.

Система ACC решает который режим использовать на основе радарных измерений в реальном времени. Например, если ведущий автомобиль слишком близок, системные переключатели ACC от регулировки скорости до разрядки управления. Точно так же, если ведущий автомобиль еще дальше, системные переключатели ACC от разрядки управления к регулировке скорости. Другими словами, система ACC делает автомобильное перемещение эго на скорости набора драйверов, пока это поддерживает безопасное расстояние.

Следующие правила использованы, чтобы определить системный рабочий режим ACC:

  • Если, то режим регулировки скорости активен. Цель управления состоит в том, чтобы отследить скорость набора драйверов.

  • Если, то разрядка режима управления активна. Цель управления состоит в том, чтобы поддержать безопасное расстояние.

Модель Simulink для ведущего автомобиля автомобиля и эго

Движущие силы для ведущего автомобиля и автомобиля эго моделируются в Simulink. Откройте модель Simulink.

mdl = 'mpcACCsystem';
open_system(mdl)

Чтобы аппроксимировать реалистическую ведущую среду, ускорение ведущего автомобиля отличается согласно синусоиде во время симуляции. Блок Adaptive Cruise Control System выводит ускоряющий управляющий сигнал для автомобиля эго.

Задайте шаг расчета, Ts, и длительность симуляции, T, в секундах.

Ts = 0.1;
T = 80;

И для автомобиля, оборудованного датчиком и для ведущего автомобиля, движущие силы между ускорением и скоростью моделируются как:

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

Задайте линейную модель для автомобиля эго.

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 моделируется с помощью Адаптивного Системного Блока Круиз-контроля в Simulink. Входные параметры к системному блоку ACC:

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

  • Разрыв времени

  • Скорость автомобиля эго

  • Относительное расстояние до ведущего автомобиля (от радара)

  • Относительная скорость к ведущему автомобилю (от радара)

Вывод для системы ACC является ускорением автомобиля эго.

Безопасное расстояние между ведущим автомобилем и автомобилем эго является функцией автомобильной скорости эго:

где значение по умолчанию бездействия располагает с интервалами и является разрывом времени между автомобилями. Задайте значения для, в метрах, и, в секундах.

t_gap = 1.4;
D_default = 10;

Задайте скорость набора драйверов в m/s.

v_set = 30;

Рассматривая физические ограничения динамики аппарата, ускорение ограничивается к области значений [-3,2] (m/s^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 секунд автомобиль эго поддерживает скорость набора драйверов, как показано в Скоростном графике. Однако, когда ведущий автомобиль уменьшает скорость, ошибка интервала начинает приближаться 0 после 20 секунд.

С 25 до 45 секунд ведущий автомобиль замедляется и затем ускоряется снова. Автомобиль эго поддерживает безопасное расстояние от ведущего автомобиля путем корректировки его скорости, как показано на расстоянии графики.

С 45 до 56 секунд ошибка интервала выше 0. Поэтому автомобиль эго достигает скорости набора драйверов снова.

С 56 до 76 секунд повторяется последовательность замедления/ускорения от 25 - 45 вторых интервалов.

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

Удалите папку в качестве примера из пути MATLAB и близкую модель Simulink.

rmpath(fullfile(matlabroot,'examples','mpc','main'));
bdclose(mdl)

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

Блоки

Похожие темы