2. 车辆运动学模型:自行车模型推导,前轮转角与横摆角速度的关系
好,我们进入第二个核心内容。
说实话,很多做车道保持的朋友,一上来就调PID参数,结果车在路上画龙。为什么?因为你不理解车是怎么动的。你想想看,你连控制对象都不了解,怎么控得好?
我个人习惯,做任何控制算法之前,先把模型搞清楚。哪怕是个简化模型,也比瞎调强。今天我们就来推导最经典的自行车模型,搞明白前轮转角和横摆角速度到底什么关系。
2.1 为什么要用自行车模型?
真实车辆有四个轮子,转向系统复杂得很。但在车道保持这种场景下,我们关心的是车辆的整体运动趋势,而不是每个轮子的受力细节。
自行车模型的核心思想很简单:把左右两个前轮合并成一个虚拟前轮,左右两个后轮合并成一个虚拟后轮。这样一来,四轮车就变成了两轮车。嗯,就像你骑的自行车一样。
适用条件:
- 车速不太低(一般 > 5 km/h)
- 侧向加速度不大(一般 < 0.4g)
- 轮胎侧偏特性在线性区
我在项目中遇到过,低速泊车场景下自行车模型误差很大,那时候得用更复杂的运动学模型。但车道保持场景,车速通常30km/h以上,自行车模型完全够用。
2.2 模型推导:从几何关系说起
我们先画个图(脑子里想一下):
- 车辆质心在C点
- 前轮到质心的距离叫L_f,后轮到质心的距离叫L_r
- 轴距 L = L_f + L_r
- 前轮转角为 δ(就是我们控制的方向盘转角折算到车轮的转角)
- 车辆横摆角速度为 ω(也就是车头转动的快慢)
- 车速为 v,质心侧偏角为 β
好,关键来了。在自行车模型中,我们假设:
- 车辆是刚体,不会变形
- 轮胎只发生侧偏,没有纵向滑移
- 忽略空气动力学(车速不高时影响不大)
根据几何关系,前轮的速度方向必须沿着前轮指向的方向。后轮也一样。由此可以推导出:
tan(δ) = (L_f + L_r) * ω / v
这个公式看着简单,但它是整个车道保持控制的基础。我当年第一次看到这个公式时,觉得太简单了,结果在实车上吃了大亏——因为忽略了质心侧偏角β。
避坑指南:
我曾经在高速测试时,直接用这个公式算前轮转角,结果车在弯道里一直偏外。后来才发现,质心侧偏角β在高速大弯道时不能忽略。正确的公式应该是:
tan(δ) = (L_f + L_r) * ω / v + β
嗯,这个β就是质心速度方向与车身纵轴的夹角。低速时可以近似为0,但高速时必须考虑。
2.3 前轮转角与横摆角速度的关系
从上面公式反解出横摆角速度ω:
ω = v * tan(δ) / L
其中 L = L_f + L_r,就是轴距。
这个关系太重要了。它告诉我们:
- 横摆角速度与车速成正比——车速越快,同样的转角产生的横摆角速度越大
- 横摆角速度与轴距成反比——轴距越长,同样的转角产生的横摆角速度越小
- 横摆角速度与前轮转角是非线性关系(tan函数)
你想想看,为什么大卡车转弯那么费劲?就是因为轴距L大,同样的转角产生的横摆角速度小。反过来,卡丁车轴距短,稍微打点方向就转过去了。
2.4 线性化处理
在实际控制中,我们经常需要把模型线性化。当δ比较小时(一般 < 10°),tan(δ) ≈ δ。于是:
ω ≈ v * δ / L
这个线性化后的模型,就是PID控制和LQR控制的基础。但要注意:
我的经验:
在车道保持中,前轮转角通常不会超过5°,所以线性化误差可以接受。但如果你做的是自动泊车或者急转弯避障,千万别用线性化模型,否则控制效果会一塌糊涂。
我曾经在一个项目中,同事直接用线性模型做急转弯控制,结果车直接冲出了车道。后来换成非线性模型,问题就解决了。
2.5 状态空间表达
为了后续的LQR控制,我们需要把模型写成状态空间形式。选择状态变量:
- 横向偏差 e_y(车辆质心到参考车道中心线的距离)
- 航向偏差 e_ψ(车辆实际航向与参考航向的差值)
那么状态方程为:
d/dt [e_y] = [0 v] [e_y] + [0 ] δ
[e_ψ] [0 0] [e_ψ] [v/L]
这个形式看着简单,但它是后续设计LQR控制器的基础。我建议你把这张表记下来:
| 参数 | 符号 | 典型值(乘用车) | 单位 |
|---|---|---|---|
| 轴距 | L | 2.5 - 3.0 | m |
| 前轮到质心距离 | L_f | 1.0 - 1.5 | m |
| 后轮到质心距离 | L_r | 1.0 - 1.5 | m |
| 最大前轮转角 | δ_max | 30 - 40 | deg |
| 典型车道保持车速 | v | 30 - 120 | km/h |
2.6 小结与思考
好了,我们来捋一捋今天的内容:
- 自行车模型把四轮车简化为两轮车,适用于车道保持场景
- 核心公式:ω = v * tan(δ) / L,这是前轮转角与横摆角速度的关系
- 小转角时可以线性化:ω ≈ v * δ / L
- 状态空间模型为LQR控制做好了准备
最后留个思考题:如果车辆在冰雪路面上行驶,轮胎侧偏特性进入非线性区,自行车模型还适用吗?如果不适用,你会怎么改进?
这个问题我当年在实车测试时遇到过,答案我们下一章再聊。
下一章预告:
我们将基于这个自行车模型,分别设计PID控制器和LQR控制器,并在仿真环境中对比它们的表现。你会看到,同样的模型,不同的控制策略,效果天差地别。