Хранение маршрута помогает системе Используя прогнозирующее управление модели

В этом примере показано, как использовать блок Lane Keeping Assist System в Simulink® и демонстрирует цели управления и ограничения этого блока.

Хранение маршрута помогает системе

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

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

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

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

mdl = 'mpcLKAsystem';
open_system(mdl)

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

Ts = 0.1;
T = 15;

Чтобы описать боковую динамику аппарата, этот пример использует модель велосипеда следующими параметрами.

  • m общая масса транспортного средства (kg).

  • Iz момент рыскания инерции транспортного средства (Kgm^2).

  • lf продольное расстояние с центра тяжести на передние шины (m).

  • lr продольное расстояние от центра тяжести до задних шин (m).

  • Cf образовывающая угол жесткость передних шин (N/rad).

  • Cr образовывающая угол жесткость задних шин (N/rad).

m = 1575;
Iz = 2875;
lf = 1.2;
lr = 1.6;
Cf = 19000;
Cr = 33000;

Можно представлять боковую динамику аппарата с помощью системы линейного независимого от времени (LTI) со следующим состоянием, ввести, и выходные переменные. Начальные условия для переменных состояния приняты, чтобы быть нулем.

  • Переменные состояния: Поперечная скорость$V_y$ и угловой уровень рыскания $r$

  • Входная переменная: Передний руководящий угол $\delta$

  • Выходные переменные: То же самое как переменные состояния

В этом примере продольная динамика аппарата разделяется от боковой динамики аппарата. Поэтому продольная скорость принята постоянным. На практике продольная скорость может варьироваться. Блок Lane Keeping Assist System использует адаптивный MPC, чтобы настроить модель боковой динамики соответственно.

% Specify the longitudinal velocity in m/s.
Vx = 15;

Задайте модель в пространстве состояний, G(s), из боковой динамики аппарата.

A = [-(2*Cf+2*Cr)/m/Vx, -Vx-(2*Cf*lf-2*Cr*lr)/m/Vx;...
     -(2*Cf*lf-2*Cr*lr)/Iz/Vx, -(2*Cf*lf^2+2*Cr*lr^2)/Iz/Vx];
B = [2*Cf/m, 2*Cf*lf/Iz]';
C = eye(2);
G = ss(A,B,C,0);

Динамика датчика и предварительное средство просмотра искривления

В этом примере блок Sensor Dynamics выводит боковое отклонение и относительный угол рыскания. Движущие силы для относительного угла рыскания$$\dot{e}_2 = r-V_x\rho$, где$\rho$ обозначает искривление. Движущие силы для бокового отклонения$\dot{e}_1 = V_x e_2+V_y$.

Блок Curvature Previewer выводит предварительно просмотренное искривление с предварительным временем одной секунды. Поэтому, учитывая шаг расчета$Ts = 0.1$, горизонт предсказания 10 шаги. Искривление, используемое в этом примере, вычисляется на основе траекторий для двойного маневра изменения маршрута.

Задайте горизонт предсказания и получите предварительно просмотренное искривление.

PredictionHorizon = 10;

time = 0:0.1:15;
md = getCurvature(Vx,time);

Настройка хранения маршрута помогает системному блоку

Система LKA моделируется в Simulink с помощью блока Lane Keeping Assist System. Входные параметры с системным блоком LKA:

  • Предварительно просмотренное искривление (от обнаружений маршрута)

  • Эго продольная скорость

  • Боковое отклонение (от обнаружений маршрута)

  • Относительный угол рыскания (от обнаружений маршрута)

Выход системы LKA является передним руководящим углом автомобиля эго. Рассматривая физические ограничения автомобиля эго, держащийся угол ограничивается к области значений [-0.5 0.5] rad/s.

u_min = -0.5;
u_max = 0.5;

В данном примере параметры по умолчанию блока Lane Keeping Assist System совпадают с параметрами симуляции. Если ваши параметры симуляции отличаются от значений по умолчанию, обновляют параметры блоков соответственно.

Анализ методом моделирования

Запустите модель.

sim(mdl)
   Assuming no disturbance added to measured output channel #1.
-->Assuming output disturbance added to measured output channel #2 is integrated white noise.
-->The "Model.Noise" property of the "mpc" object is empty. Assuming white noise on each measured output channel.

Постройте результаты симуляции.

mpcLKAplot(logsout)

Боковое отклонение и относительный угол рыскания оба сходятся, чтобы обнулить. Таким образом, автомобиль эго идет по дороге тесно на основе предварительно просмотренного искривления.

bdclose(mdl)

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

Блоки

Похожие темы