1. 项目背景与核心价值
轨迹跟踪控制在自动驾驶和高级驾驶辅助系统(ADAS)中扮演着关键角色。传统PID控制器在简单工况下表现尚可,但在复杂动态环境中往往力不从心。MPC(模型预测控制)因其优秀的多变量处理能力和约束处理能力,正逐渐成为车辆控制领域的主流方案。
这个项目最吸引我的地方在于它采用了横向+纵向的双MPC架构,同时创新性地结合了双PID控制器进行联合仿真。这种混合架构既保留了MPC的前瞻优化特性,又通过PID提升了实时响应能力。在实际道路测试中,我们经常遇到MPC计算延迟导致的控制滞后问题,而这种混合方案可能正是解决这一痛点的有效途径。
2. 系统架构设计解析
2.1 整体控制框架
系统采用分层控制架构:
- 上层:MPC轨迹规划层
- 横向MPC:负责方向盘转角控制
- 纵向MPC:负责加速度/制动控制
- 下层:PID执行层
- 横向PID:辅助转向微调
- 纵向PID:辅助速度跟踪
这种架构的优势在于:
- MPC可以基于车辆动力学模型进行多步预测优化
- PID可以快速响应瞬时误差
- 两者结合既保证了全局最优性,又提升了局部响应速度
2.2 车辆动力学模型选择
在MPC设计中,选择合适的车辆模型至关重要。经过多次实测对比,我们最终采用了改进的自行车模型:
ẋ = v * cos(θ + β) ẏ = v * sin(θ + β) θ̇ = v * cos(β) / L * tan(δ) v̇ = a β = arctan(lr * tan(δ) / L)其中:
- (x,y):车辆质心位置
- θ:航向角
- v:车速
- δ:前轮转角
- a:加速度
- L:轴距
- lr:质心到后轴距离
这个模型在保证计算效率的同时,足够精确地描述了车辆横向动力学特性。
3. MPC控制器设计与实现
3.1 横向MPC设计
横向控制的目标是最小化以下代价函数:
J = ∑(y_err² + θ_err² + δ_rate²) + ρ*ε约束条件包括:
- 转向角限制:|δ| ≤ δ_max
- 转向速率限制:|Δδ| ≤ Δδ_max
- 松弛变量ε ≥ 0
实现时需要注意:
- 预测时域N选择:一般8-15步,太长会增加计算负担
- 采样时间Ts选择:0.1-0.2s为宜
- Q/R矩阵调节:需要路试反复调整
提示:横向MPC对模型精度非常敏感,建议先进行充分的模型参数辨识。
3.2 纵向MPC设计
纵向控制代价函数:
J = ∑(v_err² + a_err² + jerk²)关键约束:
- 加速度限制:a_min ≤ a ≤ a_max
- 加加速度限制:|Δa| ≤ j_max
实际实现中的经验技巧:
- 在跟车场景下,需要增加相对距离约束
- 坡道工况下要考虑重力分量补偿
- 建议采用分段线性化处理非线性轮胎力
4. PID控制器设计与参数整定
4.1 横向PID设计
横向PID主要负责:
- 消除MPC的稳态误差
- 抑制高频扰动
参数整定建议:
- 先关闭MPC,单独调PID
- 在低速(20km/h)下初步确定参数
- 逐步提高速度微调
- 最后与MPC联调
典型参数范围:
- Kp: 0.3-1.2
- Ki: 0.01-0.05
- Kd: 0.05-0.2
4.2 纵向PID设计
纵向PID需要处理:
- 速度跟踪误差
- 加速度平滑过渡
特殊处理技巧:
- 采用变参数PID,根据速度区间调整参数
- 加入抗积分饱和逻辑
- 对制动和驱动分别设置参数
5. 联合仿真实现细节
5.1 CarSim-Simulink联合仿真配置
CarSim配置:
- 选择合适车辆模型(建议Sedan)
- 设置接口频率(通常100Hz)
- 配置输出信号(包括状态量和轮胎力)
Simulink配置:
- 固定步长求解器(0.01s)
- 合理设置通信延迟(通常0.02-0.05s)
- 信号单位统一转换
5.2 仿真场景设计
建议测试场景:
- 双移线测试(评估横向控制)
- 加速-制动测试(评估纵向控制)
- 综合S弯+速度变化测试
- 加入扰动的前车跟随测试
注意:一定要在仿真中加入执行器延迟和传感器噪声,否则结果会过于理想化。
6. 实测问题与解决方案
6.1 典型问题排查表
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| 车辆摆动发散 | Q矩阵权重不当 | 增加航向角误差权重 |
| 转向响应迟钝 | 预测时域过长 | 减少N或降低MPC频率 |
| 速度跟踪滞后 | 纵向模型不准 | 重新辨识动力系统参数 |
| 联合控制振荡 | MPC-PID耦合过紧 | 增加PID输出滤波 |
6.2 计算性能优化技巧
代码级优化:
- 使用QP求解器的热启动功能
- 将不变矩阵预先计算
- 采用定点数运算
算法级优化:
- 减少优化变量维度
- 使用显式MPC近似
- 采用事件触发机制
系统级优化:
- 分配计算资源优先级
- 关键线程绑定CPU核心
- 优化内存访问模式
7. 进阶改进方向
在实际项目中,我们还尝试了以下增强方案:
- 参数自适应MPC:根据路面附着系数在线调整模型参数
- 学习型PID:使用RL自动整定PID参数
- 多速率控制:MPC(10Hz)+PID(100Hz)混合运行
- 故障容错设计:传感器失效时的降级控制策略
特别值得一提的是,我们在量产项目中发现,加入简单的纵向-横向解耦补偿项,可以显著改善复合工况下的控制性能。具体做法是在横向MPC中考虑纵向加速度对轮胎侧偏刚度的影响,补偿项计算公式为:
ΔFy = (Cα * Fz) * (1 - k * |ax|/μg)其中:
- Cα:轮胎侧偏刚度
- Fz:轮胎垂直载荷
- ax:纵向加速度
- μ:路面摩擦系数
- g:重力加速度
- k:经验系数(约0.3-0.5)
这个看似简单的改进,在实际测试中将高速弯道跟踪误差降低了约15%。