第三章 动力学基础:车辆纵向动力学模型,驱动力与阻力

各位工程师,咱们今天聊聊车辆纵向动力学。说白了,就是研究车怎么往前跑、怎么停下来。

我刚开始做纵向控制时,总觉得这东西太理论了。直到有一次,我负责的ACC项目在高速上出现了明显的跟车抖动——嗯,就是那种前车减速、我这边反应慢半拍的感觉。排查到最后,问题就出在动力学模型上——我把滚动阻力系数设成了一个固定值,没考虑路面变化。

所以,这一章咱们把基础打牢。

3.1 纵向动力学方程

车辆纵向运动,核心就一个方程:

m * a = F_drive - F_resistance

其中:

  • m — 整车质量(kg)
  • a — 纵向加速度(m/s²)
  • F_drive — 驱动力(N)
  • F_resistance — 总阻力(N)

你想想看,这个方程其实就一句话:车能跑多快,取决于发动机给了多少力,路上又消耗了多少力。

关键点:纵向控制的核心,就是精确计算这个“F_drive - F_resistance”的差值。差值大了,车就窜;差值小了,车就肉。

3.2 驱动力从哪来?

驱动力不是凭空产生的。它经过了一条完整的传递链:

  1. 发动机/电机输出扭矩 T_e(Nm)
  2. 经过变速箱,扭矩放大 i_g 倍
  3. 经过主减速器,再放大 i_0 倍
  4. 最终传到驱动轮上,产生驱动力

公式长这样:

F_drive = (T_e * i_g * i_0 * η_t) / r_w

参数说明:

符号 含义 典型值
T_e 发动机扭矩 100-400 Nm
i_g 变速箱传动比 1挡≈4.0,5挡≈0.8
i_0 主减速器传动比 3.0-5.0
η_t 传动效率 0.85-0.95
r_w 车轮滚动半径 0.3-0.4 m

我的经验:实际项目中,传动效率 η_t 千万别取固定值。我见过有人一直用0.9,结果低温环境下实际效率掉到0.75,控制精度直接崩了。建议做个效率查表,至少区分冷车和热车状态。

3.3 阻力有哪些?

阻力是纵向控制的“敌人”。主要有四个:

3.3.1 滚动阻力 F_roll

轮胎和地面摩擦产生的阻力。公式很简单:

F_roll = f * m * g * cos(θ)
  • f — 滚动阻力系数(0.01-0.03)
  • θ — 道路坡度角

我曾经在一条新修的柏油路上标定参数,f取0.015,跑起来很准。结果换到粗糙的混凝土路面,同样的车,同样的速度,阻力大了将近20%。所以,路面类型对滚动阻力影响很大。

3.3.2 空气阻力 F_aero

速度越快,空气阻力越大。而且是平方关系:

F_aero = 0.5 * ρ * Cd * A * v²
  • ρ — 空气密度(1.2 kg/m³)
  • Cd — 风阻系数(0.25-0.40)
  • A — 迎风面积(2.0-2.8 m²)
  • v — 车速(m/s)

注意了,车速翻倍,空气阻力变成4倍。这就是为什么高速巡航时,能耗会急剧上升。

3.3.3 坡度阻力 F_grade

上坡时重力沿坡道的分力:

F_grade = m * g * sin(θ)

这个力在平路上是0,但在10%的坡道上,能占到总阻力的40%以上。我调试过一台重卡,满载40吨,在6%的坡道上,坡度阻力直接超过10000N——这时候发动机要是扭矩不够,车就真的爬不动了。

3.3.4 加速阻力 F_accel

这个不是真正的“阻力”,而是惯性力:

F_accel = δ * m * a
  • δ — 旋转质量换算系数(1.05-1.40)

δ考虑了飞轮、传动轴、车轮等旋转部件的惯性。挡位越低,δ越大。1挡时δ可能到1.4,5挡时可能只有1.05。

避坑指南:我曾经在标定中忽略了δ的变化,直接用固定值1.1。结果在低挡位急加速时,模型预测的加速度比实际大了8%。后来查出来,就是旋转质量换算系数没处理好。记住:δ不是常数,它随挡位变化。

3.4 总阻力与平衡点

把四个阻力加起来:

F_resistance = F_roll + F_aero + F_grade + F_accel

当驱动力等于总阻力时,车辆匀速行驶。这个点叫平衡点。

我习惯用一张图来理解这个关系:

车辆纵向动力学 — 驱动力与阻力平衡图 车速 v (km/h) 0 30 60 90 120 力 F (N) 0 2000 4000 6000 F_roll F_aero F_grade F_total F_drive ★ 平衡点 滚动阻力 空气阻力 坡度阻力 总阻力 驱动力

从图上能看出几个规律:

  • 低速时,滚动阻力和坡度阻力占主导
  • 高速时,空气阻力成为老大
  • 驱动力曲线和总阻力曲线的交点,就是最高车速

3.5 实际项目中的应用

在纵向控制算法里,我们通常把动力学模型简化成两种形式:

模型类型 适用场景 精度 计算量
完整动力学模型 标定、仿真、高精度控制 高 大
简化逆模型 实时控制、嵌入式部署 中等 小

我个人习惯的做法是:标定时用完整模型,上线后用简化模型。简化模型通常只保留空气阻力和滚动阻力,坡度阻力通过IMU实时估计,加速阻力用加速度反馈补偿。

一个小技巧:如果你在做ACC或者AEB,建议在模型中显式加入坡度项。哪怕只是简单的查表,也能显著提升坡道上的控制表现。我见过太多项目,平路上跑得挺好,一上坡就露馅——就是因为没考虑坡度阻力。

好了,这一章的内容就到这。动力学模型是纵向控制的根基,你把它吃透了,后面的速度规划、PID调参、MPC设计,都会顺手很多。

可可精品资料库