1. 智能车运动控制中的MPC算法核心原理
在智能驾驶领域,模型预测控制(MPC)已经成为运动控制的核心算法之一。与传统的PID控制不同,MPC最大的特点是能够基于当前状态预测未来一段时间内的系统行为,并通过优化求解得到最优控制序列。这种"先思考后行动"的特性,使其特别适合处理具有时延、约束和多目标优化的车辆控制问题。
1.1 车辆运动学建模基础
车辆运动学模型是MPC控制的基础。常用的自行车模型(Bicycle Model)将四轮车辆简化为前后两轮,这种简化在低速场景(通常低于30km/h)下具有足够的精度。模型的状态空间表示为:
code复制states = [x; y; ψ; v] % X坐标,Y坐标,航向角,车速
controls = [δ; a] % 前轮转角,加速度
其连续时间动力学方程可以表示为:
code复制ẋ = v * cos(ψ)
ẏ = v * sin(ψ)
ψ̇ = v * tan(δ)/L
v̇ = a
其中L为轴距。这个模型看似简单,但在实际应用中需要注意几个关键点:
- 前轮转角δ存在物理限制,通常乘用车不超过±30度
- 车速v为正值表示前进,负值表示倒车
- 当车速接近零时,tan(δ)/L项会出现奇异值,需要特殊处理
提示:在停车场自动泊车等低速场景中,运动学模型已经足够精确。但当车速超过30km/h时,必须考虑轮胎侧偏等动力学效应,否则会导致明显的路径跟踪误差。
1.2 模型离散化方法对比
由于MPC需要在数字控制器上实现,必须将连续时间模型转换为离散时间形式。常用的离散化方法包括:
-
前向欧拉法:
code复制x(k+1) = x(k) + f(x(k),u(k)) * dt计算简单但精度较低,需要较小的时间步长
-
零阶保持法:
code复制x(k+1) = e^(A*dt)x(k) + A^(-1)(e^(A*dt)-I)B*u(k)精度高但计算复杂,需要矩阵指数运算
-
双线性变换(Tustin):
code复制x(k+1) = (I - A*dt/2)^(-1)(I + A*dt/2)x(k) + (I - A*dt/2)^(-1)B*dt/2*u(k)
