Этот пример показывает, как использовать блок Lane Keeping Assist System в Simulink® и демонстрирует цели управления и ограничения этого блока.
Добавьте папку для примера к пути MATLAB®
addpath(fullfile(matlabroot,'examples','mpc','main'));
Автомобиль (автомобиль эго) оборудованный системой хранения маршрута помогает (LKA) имеет датчик, такой как камера, которая измеряет боковое отклонение и относительный угол отклонения от курса между средней линией маршрута и автомобилем эго. Датчик также измеряет текущее искривление маршрута и производную искривления. В зависимости от длины кривой, которую может просмотреть датчик, искривление перед автомобилем эго может быть вычислено от текущего искривления и производной искривления.
Система LKA сохраняет автомобиль эго, перемещающийся вдоль средней линии маршрутов на дороге путем корректировки переднего руководящего угла автомобиля эго. Цель для удерживающего контроль маршрута состоит в том, чтобы управлять и боковым отклонением и относительным углом отклонения от курса близко к нулю.
Движущие силы для автомобиля эго моделируются в Simulink. Откройте модель Simulink.
mdl = 'mpcLKAsystem';
open_system(mdl)
Задайте шаг расчета, Ts
, и длительность симуляции, T
, в секундах.
Ts = 0.1; T = 15;
Чтобы описать боковую динамику аппарата, этот пример использует модель велосипеда со следующими параметрами:
m
является общей массой автомобиля (kg).
Iz
является моментом отклонения от курса инерции автомобиля (mNs^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) со следующим состоянием, ввести, и выходные переменные. Начальные условия для переменных состояния приняты, чтобы быть нулем.
Переменные состояния: Боковая скорость и угловой уровень отклонения от курса
Входная переменная: Передний руководящий угол
Выходные переменные: То же самое как переменные состояния
В этом примере продольная динамика аппарата разделяется от боковой динамики аппарата. Поэтому продольная скорость принята, чтобы быть постоянной. На практике продольная скорость может отличаться. Блок 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 выводит боковое отклонение и относительный угол отклонения от курса. Движущие силы для относительного угла отклонения от курса, где обозначает искривление. Движущие силы для бокового отклонения.
Блок Curvature Previewer выводит предварительно просмотренное искривление с предварительным временем одной секунды. Поэтому, учитывая шаг расчета, горизонт прогноза шаги 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)
Боковое отклонение и относительный угол отклонения от курса оба сходятся, чтобы обнулить. Таким образом, автомобиль эго идет по дороге тесно на основе предварительно просмотренного искривления.
Удалите папку в качестве примера из пути MATLAB и близкую модель Simulink.
rmpath(fullfile(matlabroot,'examples','mpc','main')); bdclose(mdl)