3、车辆运动学与动力学模型:自行车模型、阿克曼转向模型、轮胎模型与纵向/横向动力学
各位同学,今天我们来啃一块硬骨头——车辆模型。说实话,搞自动驾驶控制,模型就是你的“眼睛”和“手感”。模型建得准,控制才能稳。我当年刚入行时,总觉得模型是理论派的东西,直到有一次实车测试,车子在弯道里直接“画龙”,我才意识到——模型不对,一切白费。
3.1 自行车模型:最简单的“降维打击”
为什么叫自行车模型?你想想看,一辆四轮车,在低速转弯时,左右轮的转角其实差别不大。我们干脆把左右轮合并成一个虚拟的“前轮”和“后轮”。说白了,就是把四轮车简化成一辆自行车。
这个模型的核心假设有两个:
- 忽略侧偏角:轮胎完全沿着指向方向运动
- 低速工况:离心力小,轮胎不产生侧向滑移
数学表达其实很简洁:
// 自行车模型运动学方程
x_dot = v * cos(θ)
y_dot = v * sin(θ)
θ_dot = (v / L) * tan(δ)
其中L是轴距,δ是前轮转角。嗯,这里要注意——这个模型只适用于速度低于5m/s的场景。我在项目中遇到过有人拿它做高速路径跟踪,结果车辆直接失控。记住,自行车模型是“低速神器”,高速下必须用动力学模型。
- 泊车、园区低速自动驾驶
- 路径规划中的运动学约束
- 控制算法初期的快速验证
3.2 阿克曼转向模型:四轮转向的几何真相
阿克曼转向,说白了就是解决一个问题——四个轮子怎么转才能不“打架”?
你想想看,车辆转弯时,内侧轮和外侧轮走的圆弧半径不一样。如果左右轮转角一样,轮胎就会产生滑移,磨损加剧,操控性变差。阿克曼的解决方案是:让内侧轮转角比外侧轮大一点。
几何关系如下:
cot(δ_o) - cot(δ_i) = B / L
其中:
δ_o = 外侧轮转角
δ_i = 内侧轮转角
B = 轮距
L = 轴距
我曾经调试过一个线控转向系统,发现车辆在急转弯时总是有“推头”现象。查了半天,原来是阿克曼率没调对。理想阿克曼率是100%,但实际中为了兼顾高速稳定性,通常会降到60%-80%。
3.3 轮胎模型:车辆与地面的“握手协议”
轮胎模型,是车辆动力学里最玄学的东西。为什么?因为轮胎和地面的接触,涉及橡胶、温度、路面材质、胎压……变量太多了。
最经典的当属Pacejka魔术公式。名字很炫酷,其实就是一个非线性函数:
F_y = D * sin(C * arctan(B * α - E * (B * α - arctan(B * α))))
其中:
F_y = 侧向力
α = 侧偏角
B, C, D, E = 拟合参数
这个公式能描述轮胎从线性区到饱和区的完整特性。我刚开始做控制时,总觉得用线性模型就够了,直到有一次在湿滑路面上测试,车辆突然侧滑——线性模型完全没预测到。从那以后,我再也不敢忽视轮胎的非线性特性。
3.4 纵向动力学:加速与制动的那点事
纵向动力学,说白了就是研究车怎么加速、怎么减速。核心方程其实就一个牛顿第二定律:
m * a = F_drive - F_brake - F_roll - F_aero - F_grade
其中:
F_drive = 驱动力
F_brake = 制动力
F_roll = 滚动阻力
F_aero = 空气阻力
F_grade = 坡度阻力
这里有个坑——很多人会忽略坡度阻力。我记得有一次在重庆测试,车辆在坡道上起步总是溜车,查了半天才发现是坡度估计不准。后来我们加了一个IMU传感器,实时计算坡度角,问题才解决。
纵向控制的关键在于:
- 油门响应:从踩油门到产生驱动力,有100-200ms延迟
- 制动特性:制动压力与减速度不是线性关系
- 换挡冲击:自动变速箱换挡时会有动力中断
3.5 横向动力学:让车辆乖乖走线
横向动力学,研究的是车辆怎么转弯、怎么保持车道。核心模型是二自由度单轨模型:
m * v * (β_dot + r) = F_yf + F_yr
I_z * r_dot = a * F_yf - b * F_yr
其中:
β = 质心侧偏角
r = 横摆角速度
F_yf, F_yr = 前后轮侧向力
a, b = 质心到前后轴距离
这个模型虽然简单,但能描述车辆80%的横向动态特性。我建议初学者先把这个模型吃透,再去碰更复杂的七自由度、十四自由度模型。
| 指标 | 含义 | 典型值 |
|---|---|---|
| 横摆角速度增益 | 方向盘转角与横摆角速度的比值 | 0.2-0.4 rad/s per rad |
| 侧偏角刚度 | 轮胎抵抗侧偏的能力 | 50000-80000 N/rad |
| 不足转向梯度 | 车辆转向特性的量化指标 | 0.001-0.005 rad·s²/m |
最后说一句,模型永远只是近似。我做了这么多年,最大的体会就是:模型要“够用就好”,别追求过度复杂。一个能跑起来的简单模型,比一个永远调不通的复杂模型有用得多。