1. 项目概述
在自动驾驶系统的开发过程中,轨迹跟踪是最基础也是最具挑战性的任务之一。作为一名从事车辆控制算法开发多年的工程师,我想分享一个基于135动力学模型的轨迹跟踪解决方案。这个方案结合了横向MPC和纵向MPC控制算法,通过Simulink和CarSim的联合仿真环境,实现了对五次多项式轨迹和圆形轨迹的高精度跟踪。
这个项目的核心价值在于:
- 采用135动力学模型平衡了计算复杂度和模型精度
- 横向MPC和纵向MPC的解耦设计提高了控制效率
- Simulink和CarSim的联合仿真验证了算法的实用性
- 包含两种典型轨迹(五次多项式和圆形)的实现案例
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 135动力学模型详解
2.1 模型结构与假设
135动力学模型是对车辆运动特性的简化表示,它基于以下关键假设:
- 忽略悬架动态,假设车辆为刚性体
- 轮胎力采用线性模型
- 忽略空气动力学影响
- 假设路面平整且摩擦系数恒定
模型的状态方程可以表示为:
code复制ẋ = v*cos(θ)
ẏ = v*sin(θ)
θ̇ = v*tan(δ)/L
v̇ = a
其中:
- (x,y)为车辆质心位置
- θ为航向角
- v为车速
- δ为前轮转角
- L为轴距
- a为加速度
2.2 模型参数辨识
在实际应用中,我们需要通过实验数据来辨识模型参数。关键步骤包括:
- 设计激励信号(阶跃、斜坡等)
- 采集车辆响应数据
- 使用最小二乘法等优化方法估计参数
- 验证模型精度
注意:模型参数的准确性直接影响控制效果,建议在多种工况下进行验证。
3. MPC控制器设计与实现
3.1 横向MPC设计
3.1.1 预测模型
横向MPC使用简化的自行车模型作为预测模型:
code复制x(k+1) = A*x(k) + B*u(k)
y(k) = C*x(k)
其中状态量x=[e, ė, Δψ, Δψ̇],控制量u=δ
3.1.2 成本函数设计
成本函数包含三个主要部分:
- 跟踪误差惩罚:Q*(e² + Δψ²)
- 控制量变化惩罚:R*Δδ²
- 终端代价:P*(e_N² + Δψ_N²)
3.1.3 约束处理
需要考虑的约束包括:
- 方向盘转角限制
- 转向速率限制
