4、自行车模型(Bicycle Model):模型假设、自由度分析、状态方程推导

各位同学,咱们今天聊聊自行车模型。说实话,这玩意儿在车辆控制里太常用了。我刚开始做控制那会儿,总觉得模型越复杂越好,结果调参调到怀疑人生。后来才明白——简单,才是工程的真谛

自行车模型,说白了就是把四轮车简化成两轮车。你想想看,前轮和后轮各一个,像不像自行车?嗯,名字就是这么来的。

4.1 模型假设

做简化,就得有取舍。自行车模型做了这么几条假设:

  • 忽略车辆的侧倾和俯仰——只考虑平面运动
  • 左右车轮合并——前轴两个轮子看作一个,后轴同理
  • 轮胎侧偏特性线性化——侧偏角不大时,侧向力与侧偏角成正比
  • 纵向速度恒定——或者变化缓慢,可以忽略纵向动力学
  • 小角度假设——前轮转角、质心侧偏角都较小

核心思想:把复杂的四轮车辆,简化为一个「前轮转向、后轮驱动」的两轮模型。控制上够用,计算上轻快。

我记得有一次做车道保持项目,用七自由度模型跑仿真,一帧要算好几毫秒。换成自行车模型后,直接降到微秒级。效果呢?差别不大。从那以后我就记住了——别用大炮打蚊子

4.2 自由度分析

咱们来看看自行车模型有几个自由度。

车辆在水平面内运动,无非就是三个自由度:

  1. 纵向位移——沿车身方向的前后移动
  2. 横向位移——垂直于车身方向的左右移动
  3. 横摆角——绕垂直轴的旋转

等等,你可能会问:那侧倾呢?俯仰呢?

嗯,前面假设里说了,这些都被忽略了。所以自行车模型是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控制器——那才是真正好玩的地方。