4、自行车模型(Bicycle Model):模型假设、自由度分析、状态方程推导
各位同学,咱们今天聊聊自行车模型。说实话,这玩意儿在车辆控制里太常用了。我刚开始做控制那会儿,总觉得模型越复杂越好,结果调参调到怀疑人生。后来才明白——简单,才是工程的真谛。
自行车模型,说白了就是把四轮车简化成两轮车。你想想看,前轮和后轮各一个,像不像自行车?嗯,名字就是这么来的。
4.1 模型假设
做简化,就得有取舍。自行车模型做了这么几条假设:
- 忽略车辆的侧倾和俯仰——只考虑平面运动
- 左右车轮合并——前轴两个轮子看作一个,后轴同理
- 轮胎侧偏特性线性化——侧偏角不大时,侧向力与侧偏角成正比
- 纵向速度恒定——或者变化缓慢,可以忽略纵向动力学
- 小角度假设——前轮转角、质心侧偏角都较小
核心思想:把复杂的四轮车辆,简化为一个「前轮转向、后轮驱动」的两轮模型。控制上够用,计算上轻快。
我记得有一次做车道保持项目,用七自由度模型跑仿真,一帧要算好几毫秒。换成自行车模型后,直接降到微秒级。效果呢?差别不大。从那以后我就记住了——别用大炮打蚊子。
4.2 自由度分析
咱们来看看自行车模型有几个自由度。
车辆在水平面内运动,无非就是三个自由度:
- 纵向位移——沿车身方向的前后移动
- 横向位移——垂直于车身方向的左右移动
- 横摆角——绕垂直轴的旋转
等等,你可能会问:那侧倾呢?俯仰呢?
嗯,前面假设里说了,这些都被忽略了。所以自行车模型是3自由度模型。但实际控制中,我们通常只关心横向和横摆两个自由度,纵向速度当作已知输入。
我的经验:做横向控制时,把纵向速度当成时变参数来处理,效果比固定值好得多。我曾经踩过这个坑——固定速度调好的参数,一变车速就抖得不行。
4.3 状态方程推导
好,重头戏来了。咱们一步步推导状态方程。
先定义几个关键变量:
| 符号 | 含义 | 单位 |
|---|---|---|
| vx | 纵向速度 | m/s |
| vy | 横向速度 | m/s |
| ψ | 横摆角 | rad |
| r | 横摆角速度 | rad/s |
| δ | 前轮转角 | rad |
| αf, αr | 前后轮侧偏角 | rad |
| Cf, Cr | 前后轮侧偏刚度 | N/rad |
| lf, lr | 质心到前后轴距离 | m |
| m | 整车质量 | kg |
| Iz | 横摆转动惯量 | kg·m² |
首先,轮胎侧偏角怎么算?
前轮侧偏角:
α_f = δ - (v_y + l_f * r) / v_x
后轮侧偏角:
α_r = - (v_y - l_r * r) / v_x
这里有个细节——前轮转角δ是输入,后轮转角假设为0(前轮转向)。
然后,轮胎侧向力:
F_yf = C_f * α_f
F_yr = C_r * α_r
嗯,线性化处理。侧偏角大了就不准了,但一般控制场景下够用。
接下来,车辆动力学方程:
横向运动:
m * (v̇_y + v_x * r) = F_yf + F_yr
横摆运动:
I_z * ṙ = l_f * F_yf - l_r * F_yr
把轮胎力代入,整理一下:
m * v̇_y = -m * v_x * r + C_f * (δ - (v_y + l_f * r) / v_x) + C_r * (- (v_y - l_r * r) / v_x)
I_z * ṙ = l_f * C_f * (δ - (v_y + l_f * r) / v_x) - l_r * C_r * (- (v_y - l_r * r) / v_x)
写成矩阵形式,就是标准的状态方程:
[ v̇_y ] [ -(C_f + C_r)/(m*v_x) -(C_f*l_f - C_r*l_r)/(m*v_x) - v_x ] [ v_y ] [ C_f/m ]
[ ] = [ ] [ ] + [ ] * δ
[ ṙ ] [ -(C_f*l_f - C_r*l_r)/(I_z*v_x) -(C_f*l_f² + C_r*l_r²)/(I_z*v_x) ] [ r ] [ C_f*l_f/I_z ]
状态变量:x = [vy, r]T
控制输入:u = δ
注意:这个模型里vx是时变参数,不是状态变量。
避坑指南:我曾经在高速工况下直接用这个模型,结果控制效果很差。后来发现——高速时轮胎侧偏特性进入非线性区,线性模型失效了。解决办法?要么加前馈补偿,要么用增益调度。别死磕一个模型参数。
4.4 模型的应用场景
自行车模型虽然简单,但应用范围很广:
- 车道保持辅助(LKA)——经典中的经典
- 自适应巡航(ACC)——配合纵向控制使用
- 路径跟踪控制——MPC、LQR都能用
- 稳定性控制(ESC)——作为参考模型
我个人习惯是:先用自行车模型做快速原型验证,再根据实际效果决定要不要加复杂度。很多时候,你会发现——够了,真的够了。
一个小技巧:做仿真时,把自行车模型和七自由度模型做个对比。如果偏差在可接受范围内,大胆用自行车模型。我做过对比,在侧向加速度小于0.4g时,两者误差不超过5%。
好了,这一节就到这里。自行车模型是车辆控制的基础,一定要吃透。下一节咱们聊聊如何用这个模型设计LQR控制器——那才是真正好玩的地方。