3. 车辆动力学模型:轮胎模型、侧偏角与侧向力、动力学微分方程

聊到轨迹优化,很多人第一反应就是“路径平滑”。但说实话,路径再平滑,车跑不起来也是白搭。真正让车辆平稳过弯的核心,在于你懂不懂轮胎在干什么。

我刚开始做自动驾驶那会儿,总觉得动力学模型是理论派的东西,直到有一次实车测试,车在弯道里直接推头冲了出去……嗯,从那以后,我再也不敢轻视轮胎模型了。

3.1 轮胎模型:车与地面的唯一纽带

车要转弯,靠的是轮胎和地面之间的摩擦力。这个力怎么算?最经典的就是 Pacejka 魔术公式。

说白了,魔术公式就是一个非线性函数,输入是轮胎的侧偏角,输出是侧向力。公式长这样:

F_y = D * sin(C * arctan(B * α - E * (B * α - arctan(B * α))))

其中:

  • B:刚度因子,决定曲线斜率
  • C:形状因子,决定曲线形状
  • D:峰值因子,决定最大侧向力
  • E:曲率因子,修正曲线弯曲程度
  • α:轮胎侧偏角

核心要点: 魔术公式在侧偏角小于 5° 时近似线性,超过 10° 后进入饱和区。轨迹优化时,尽量让轮胎工作在线性区,否则控制会变得非常困难。

我个人习惯在仿真中先用线性模型调试,等逻辑跑通了再换成魔术公式。这样能快速定位问题,避免被非线性特性带偏。

3.2 侧偏角与侧向力:转弯的物理本质

你想想看,方向盘打了,车为什么能转弯?因为轮胎产生了侧偏角。

侧偏角 α 的定义很简单:轮胎实际运动方向和轮胎朝向之间的夹角。公式:

α = arctan(v_y / v_x)

其中 v_y 是轮胎的侧向速度,v_x 是纵向速度。

侧向力 F_y 和侧偏角的关系,在小角度下可以近似为线性:

F_y = -C_α * α

C_α 就是轮胎的侧偏刚度,单位是 N/rad。这个值越大,同样的侧偏角能产生更大的侧向力,车就越“抓地”。

避坑指南: 我曾经在项目中遇到过,侧偏刚度取值不对,导致轨迹跟踪误差一直降不下去。后来发现,轮胎的侧偏刚度会随着垂直载荷变化,不是固定值。建议查一下轮胎的载荷-刚度曲线,别偷懒用常数。

为什么会这样?因为轮胎是橡胶做的,载荷越大,接地面积越大,侧偏刚度也会增加。但超过一定范围后,反而会下降。嗯,这里要注意。

3.3 动力学微分方程:把物理写成数学

有了轮胎力,接下来就是建立整车的动力学方程。我们常用的是 自行车模型,把前后轮各简化为一个轮子。

状态量一般选:

  • X, Y:车辆位置
  • ψ:航向角
  • v_x:纵向速度
  • v_y:侧向速度
  • ω:横摆角速度

微分方程如下:

m * (dv_x/dt - v_y * ω) = F_xf + F_xr
m * (dv_y/dt + v_x * ω) = F_yf + F_yr
I_z * dω/dt = l_f * F_yf - l_r * F_yr

其中:

  • m:整车质量
  • I_z:绕 z 轴的转动惯量
  • l_f, l_r:质心到前后轴的距离
  • F_xf, F_xr:前后轮纵向力
  • F_yf, F_yr:前后轮侧向力

注意: 这个模型假设车辆是刚体,不考虑悬架、侧倾等影响。在高速过弯或极限工况下,误差会变大。我建议在轨迹优化时,先跑仿真验证,再上实车。

你可能会问,这些方程怎么用?说白了,就是根据当前状态,算出下一时刻的状态。轨迹优化就是在这些方程约束下,找出一条既安全又舒适的路。

3.4 知识体系总览

下面这张图是我自己整理的,把本章的核心逻辑串起来了:

车辆动力学模型知识体系 轮胎模型 魔术公式 / 线性模型 侧偏角 α α = arctan(v_y / v_x) 侧向力 F_y F_y = -C_α * α 动力学微分方程 m·dv/dt = ΣF I_z·dω/dt = ΣM 轨迹优化输入

从图中可以看出,轮胎模型是基础,它决定了侧偏角和侧向力的关系。侧向力再输入到动力学方程中,最终输出给轨迹优化使用。每一步都环环相扣,缺一不可。

3.5 实战中的一点体会

我记得有一次做高速避障,轨迹优化出来的路径很平滑,但实车就是跑不出来。后来排查发现,是轮胎模型里的侧偏刚度设得太大了,导致控制器以为轮胎能提供更大的力,结果实际侧滑了。

所以我的建议是:模型参数一定要和实车标定对齐。别迷信仿真里的完美数据,实车上的轮胎磨损、胎压变化都会影响模型精度。

另外,如果你用的是线性轮胎模型,记得加一个侧偏角限幅。我一般设到 5° 左右,超过就截断。这样能避免优化器跑到非线性区,导致控制失效。

总结一下: 轮胎模型是基础,侧偏角是桥梁,动力学方程是核心。三者结合,才能让车辆平稳过弯。别怕方程复杂,多跑几次仿真,你就能找到感觉。

可可精品资料库