Поддержание маршрута в вспомогательной системе, использующей прогнозирующее управление моделью

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

Вспомогательная система поддержания маршрута

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

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

Simulink модель для Ego Car

Динамика для ego-автомобиля моделируется в Simulink. Откройте модель Simulink.

mdl = 'mpcLKAsystem';
open_system(mdl)

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

Ts = 0.1;
T = 15;

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

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

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

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

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

  • 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$

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

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

PredictionHorizon = 10;

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

Строение системного блока Lane Keeping Assist

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

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

  • Продольная скорость Ego

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

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

Выходом системы LKA является угол наклона переднего руля эго-автомобиля. Учитывая физические ограничения эго-автомобиля, угол поворота ограничивается областью значений [-0,5,0,5] рад/с.

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)

См. также

Блоки

Похожие темы