1. 自动驾驶横纵向控制方案设计
在自动驾驶车辆控制系统中,横向和纵向控制是两个最核心的子系统。纵向控制负责车辆的速度和加速度调节,而横向控制则负责车辆的转向和轨迹跟踪。我采用的方案是纵向PID+横向MPC的组合,这种架构在工业界有广泛应用,比如百度Apollo就采用了类似的设计。
1.1 系统架构设计
整个控制系统采用模块化设计,主要包含以下几个关键模块:
- 轨迹规划模块:生成五次多项式形式的参考轨迹
- 纵向控制模块:双环PID控制器
- 横向控制模块:基于模型预测控制(MPC)
- 车辆模型:二自由度车辆动力学模型
- 执行器接口:油门/刹车和方向盘控制
这种架构的优势在于:
- PID控制器简单可靠,适合处理纵向控制这类相对线性的问题
- MPC能够处理多变量、有约束的控制问题,非常适合横向控制
- 模块化设计便于调试和性能优化
1.2 车辆动力学模型
控制系统的基础是二自由度车辆动力学模型,也称为自行车模型。这个模型虽然简化,但能很好地反映车辆的基本动力学特性。
模型的状态方程可以表示为:
code复制ẋ = v*cos(ψ + β)
ẏ = v*sin(ψ + β)
ψ̇ = v/l_r * sin(β)
β = arctan(l_r/(l_f + l_r) * tan(δ_f))
其中:
- (x,y)是车辆质心位置
- ψ是车辆航向角
- β是质心侧偏角
- v是车速
- l_f和l_r分别是前后轴到质心的距离
- δ_f是前轮转角
这个模型在Simulink中实现时,我特别注意了以下几点:
- 车速v接近零时的数值稳定性问题
- 模型参数的准确性,特别是轮胎侧偏刚度
- 采样时间的选择,要与控制器频率匹配
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 纵向PID控制器实现
纵向控制采用双环PID结构,外环控制速度,内环控制加速度。这种结构能够很好地处理车辆纵向动力学的非线性特性。
2.1 双环PID设计
外环PID控制器:
- 输入:速度误差(目标速度-实际速度)
- 输出:目标加速度
- 参数整定:Kp=0.6, Ki=0.1, Kd=0.02
内环PID控制器:
- 输入:加速度误差(目标加速度-实际加速度)
- 输出:油门/刹车指令
- 参数整定:Kp=0.
