4. 车辆动力学模型

各位同学,欢迎来到第四讲。今天我们要啃一块硬骨头——车辆动力学模型。说实话,很多做规划控制的同行,最后都栽在了动力学模型的理解上。我个人习惯把这一讲称为“从牛顿到阿克曼的桥梁”。你想想看,如果连车怎么动都描述不清楚,那规划出来的轨迹就是空中楼阁。

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

车辆所有的力,最终都要通过轮胎传递到地面。轮胎模型,说白了就是描述“轮胎能产生多大的力”。

我在项目中遇到过最头疼的问题,就是轮胎模型参数不准导致控制发散。嗯,这里要注意,轮胎模型不是越复杂越好,关键看你的应用场景。

4.1.1 魔术公式轮胎模型

目前工业界最常用的就是Pacejka的魔术公式。为什么叫魔术?因为它用一个公式就能拟合出轮胎在各种工况下的力特性。

# 魔术公式核心表达式
F_y = D * sin(C * arctan(B * α - E * (B * α - arctan(B * α))))

其中:

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

关键认知:轮胎侧向力在侧偏角较小时近似线性,超过5-8度后进入饱和区。这就是为什么控制算法要尽量让轮胎工作在线性区。

4.1.2 线性轮胎模型

对于大多数规划控制场景,我们使用简化后的线性模型:

F_yf = C_f * α_f    # 前轮侧向力
F_yr = C_r * α_r    # 后轮侧向力

其中C_f和C_r是前后轮的侧偏刚度。我曾经犯过一个错误,直接把前后轮侧偏刚度设成一样,结果仿真和实车对不上。实际上,后轮侧偏刚度通常比前轮大10%-20%。

4.2 质心侧偏角:车辆姿态的核心指标

质心侧偏角β,就是车辆实际运动方向和车头指向之间的夹角。说白了,就是车在“横着滑”的程度。

我的经验:β角超过10度,普通驾驶员就会感到恐慌。所以在规划轨迹时,我会把β角的约束设到8度以内。

质心侧偏角的计算公式:

β = arctan(v_y / v_x)

其中v_y是侧向速度,v_x是纵向速度。在高速时,v_x很大,β通常很小;但在低附着路面(比如雨天),v_y容易变大,β就会显著增加。

4.3 横摆角速度:车辆旋转的“转速表”

横摆角速度γ,描述的是车辆绕垂直轴旋转的快慢。单位是rad/s。你可以把它想象成车辆的“转速表”,只不过转的不是发动机,而是整个车身。

为什么横摆角速度这么重要?因为它是连接方向盘输入和车辆响应的关键桥梁。

# 稳态横摆角速度增益
γ_ss = (v_x / L) * δ_f / (1 + K * v_x²)

# 其中K是稳定性因子
K = (m * (C_r * l_r - C_f * l_f)) / (L² * C_f * C_r)

这里L是轴距,δ_f是前轮转角,m是整车质量,l_f和l_r是质心到前后轴的距离。

避坑指南:我曾经在高速场景下直接用稳态增益计算横摆角速度,结果发现车辆响应滞后严重。后来才意识到,横摆角速度的动态响应时间常数大约在0.1-0.3秒,必须考虑一阶滞后特性。

4.4 动力学方程推导:从牛顿第二定律开始

好了,现在我们把前面讲的轮胎力、质心侧偏角、横摆角速度串起来,推导完整的车辆动力学方程。

4.4.1 基本假设

  • 车辆在水平路面行驶,忽略垂向运动
  • 前轮转角较小(小于10度),cos(δ)≈1
  • 纵向速度v_x恒定或变化缓慢
  • 忽略空气阻力和滚动阻力

4.4.2 侧向运动方程

根据牛顿第二定律,车辆侧向的合力等于质量乘以侧向加速度:

m * (v_y_dot + v_x * γ) = F_yf * cos(δ) + F_yr

# 代入线性轮胎模型
m * (v_y_dot + v_x * γ) = C_f * α_f + C_r * α_r

这里v_y_dot是侧向加速度,v_x * γ是向心加速度项。很多初学者会漏掉这一项,导致模型在高动态工况下完全失效。

4.4.3 横摆运动方程

车辆绕质心的转动惯量乘以横摆角加速度,等于所有力矩之和:

I_z * γ_dot = l_f * F_yf * cos(δ) - l_r * F_yr

# 代入轮胎模型
I_z * γ_dot = l_f * C_f * α_f - l_r * C_r * α_r

其中I_z是车辆绕z轴的转动惯量。这个参数我建议不要用估算值,最好从整车参数表中获取,差10%就会影响控制精度。

4.4.4 轮胎侧偏角与状态量的关系

前轮和后轮的侧偏角可以用车辆状态量表示:

α_f = δ_f - (v_y + l_f * γ) / v_x
α_r = - (v_y - l_r * γ) / v_x

注意前轮侧偏角是前轮转角减去速度方向角,后轮没有转角输入。

4.4.5 完整的动力学状态方程

将上述方程整理成状态空间形式:

状态向量: x = [v_y, γ]ᵀ
输入向量: u = [δ_f]

v_y_dot = (C_f + C_r)/(m * v_x) * v_y + (l_f * C_f - l_r * C_r)/(m * v_x) * γ - v_x * γ + C_f/m * δ_f

γ_dot = (l_f * C_f - l_r * C_r)/(I_z * v_x) * v_y + (l_f² * C_f + l_r² * C_r)/(I_z * v_x) * γ + l_f * C_f/I_z * δ_f

核心结论:这个二自由度自行车模型虽然简单,但抓住了车辆横向运动的核心特性。我在实际项目中,80%的规划控制问题都用这个模型解决。只有在极限工况(比如漂移、紧急避障)才需要更复杂的模型。

4.5 知识体系结构图

下面这张图展示了本章的知识脉络,我建议你把它打印出来贴在工位上:

车辆动力学模型知识体系 轮胎模型 车辆运动状态 动力学方程 魔术公式 线性模型 质心侧偏角β 横摆角速度γ 侧向运动方程 B, C, D, E因子 侧偏刚度C_f, C_r v_y, v_x, β关系 稳态增益, 时间常数 m, I_z, l_f, l_r 二自由度自行车模型 状态方程: [v_y_dot, γ_dot]ᵀ = f(v_y, γ, δ_f)

4.6 模型验证与调试建议

推导完方程,怎么验证模型对不对?我分享几个实战经验:

  1. 稳态验证:给一个固定方向盘转角,看横摆角速度是否收敛到理论稳态值
  2. 阶跃响应:给一个阶跃方向盘输入,看响应时间常数是否在0.1-0.3秒范围内
  3. 双移线测试:这是ISO标准测试,能全面检验模型的动态特性

曾经踩过的坑:我在做模型验证时,发现仿真结果和实车数据总是对不上。查了两天才发现,原来是轮胎侧偏刚度参数用的是静态值,而实际轮胎在动态加载时侧偏刚度会变化。后来我改用随载荷变化的侧偏刚度模型,问题就解决了。

好了,这一讲的内容就到这里。车辆动力学模型是规划控制算法的基石,值得你花时间彻底搞懂。记住,模型不是越复杂越好,关键是要抓住主要矛盾,满足你的应用需求。