В этом примере показано, как использовать блок Adaptive Cruise Control System в Simulink® и демонстрирует цели управления и ограничения этого блока.
Добавьте папку в качестве примера в путь MATLAB®.
addpath(fullfile(matlabroot,'examples','mpc','main'));
Транспортное средство (автомобиль эго) оборудованный адаптивным круиз-контролем (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;
И для автомобиля, оборудованного датчиком и для ведущего транспортного средства, движущие силы между ускорением и скоростью моделируются как:
который аппроксимирует динамику тела дросселя и инерции транспортного средства.
Задайте линейную модель для автомобиля эго.
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]
(м/с^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)