2. 车辆纵向动力学基础:车辆受力分析
各位同学,大家好。我是你们这门课的老朋友。今天咱们聊聊车辆纵向动力学的基础。说白了,就是搞清楚车是怎么往前跑的,又是什么在拖它的后腿。
我个人习惯,在开始任何控制算法设计之前,先把被控对象的“脾气”摸透。你想想看,连车受什么力都不清楚,怎么去设计一个靠谱的速度控制器?
2.1 车辆受力分析
一辆车在直道上跑,主要受四个方向的力。我把它分成“推车的”和“拽车的”。
2.1.1 驱动力
驱动力,就是让车往前走的力。它来自轮胎和地面的摩擦。
发动机输出扭矩,经过变速箱、传动轴,最后传到驱动轮上。轮胎给地面一个向后的力,地面就给轮胎一个向前的反作用力。这个反作用力,就是驱动力。
公式很简单:
F_t = (T_e * i_g * i_0 * η_t) / r
其中:
F_t:驱动力 (N)T_e:发动机扭矩 (Nm)i_g:变速箱传动比i_0:主减速器传动比η_t:传动系机械效率r:车轮滚动半径 (m)
注意:这个公式算出来的是理论驱动力。实际能用到多少,还得看轮胎和地面的附着系数。我在项目里就吃过这个亏,算出来动力很猛,结果一上冰雪路面,全打滑了。
2.1.2 行驶阻力
车一动,阻力就来了。主要有三种:
- 滚动阻力:轮胎变形、路面变形造成的。跟车重和路面系数有关。
- 空气阻力:速度越快,阻力越大。跟车速的平方成正比。
- 坡度阻力:上坡时,重力沿坡道的分力。
公式如下:
F_f = f * m * g * cos(θ) // 滚动阻力
F_w = 0.5 * ρ * C_d * A * v^2 // 空气阻力
F_i = m * g * sin(θ) // 坡度阻力
其中:
f:滚动阻力系数m:车辆质量 (kg)g:重力加速度 (9.8 m/s²)θ:道路坡度角 (rad)ρ:空气密度 (kg/m³)C_d:空气阻力系数A:车辆迎风面积 (m²)v:车速 (m/s)
核心观点:空气阻力是高速时的“大头”。车速翻倍,空气阻力变成四倍。这也是为什么电动车高速续航会打折扣的原因。
2.1.3 坡度阻力
这个单独拎出来说,是因为它太重要了。尤其是在山区或者地库场景。
我曾经在一个地下车库的坡道起步项目中,因为没准确估计坡度阻力,导致车辆后溜,差点撞到后面的车。嗯,从那以后,我对坡度估计就格外上心。
坡度阻力只跟车重和坡度角有关。坡度越大,需要的驱动力就越大。
2.2 纵向动力学方程
把上面的力都加起来,就得到了车辆纵向动力学方程。这是所有速度控制算法的“根”。
m * a = F_t - (F_f + F_w + F_i)
或者写成:
m * dv/dt = F_t - F_f - F_w - F_i
这个方程告诉我们:
- 加速度
a由驱动力和总阻力的差值决定。 - 差值大于0,加速;等于0,匀速;小于0,减速。
你想想看,控制车速,本质上就是控制这个差值。让差值按照我们期望的轨迹变化。
2.3 轮胎模型简介
轮胎是车和地面唯一的接触点。它的特性,直接决定了驱动力能不能“落地”。
这里我简单介绍两个最常用的模型:
2.3.1 魔术公式 (Magic Formula)
这是业内最常用的半经验模型。它用一个三角函数组合来拟合轮胎的受力特性。
F_x = D * sin(C * arctan(B * x - E * (B * x - arctan(B * x))))
其中:
F_x:纵向力x:滑移率B, C, D, E:拟合参数,跟轮胎、路面、垂直载荷有关
这个模型精度高,但参数多,计算量大。在实时控制中,我们通常会用查表法或者简化模型。
2.3.2 线性模型
在小滑移率范围内(比如小于5%),纵向力和滑移率近似成线性关系。
F_x = C_x * s
其中:
C_x:纵向刚度s:滑移率
这个模型简单,适合做控制器的初步设计。但要注意,一旦滑移率过大,轮胎进入非线性区,这个模型就失效了。
避坑指南:我曾经在开发一个紧急制动功能时,直接用了线性轮胎模型。结果在低附着路面上,模型预测的制动力远大于实际能提供的,导致ABS介入太晚,车辆差点失控。所以,做量产项目时,一定要考虑轮胎的非线性特性。
2.4 知识体系总览
下面这张图,把本章的核心逻辑串起来了。你可以把它当作一个“地图”,随时回来看看。
这张图很直观:驱动力和阻力是“输入”,轮胎模型是“约束”,动力学方程是“核心”,速度控制器是“输出”。搞懂了这些,后面的内容就好办了。
个人建议:刚开始学的时候,别急着去啃复杂的轮胎模型。先把动力学方程吃透,用线性模型做仿真。等对系统有了感觉,再慢慢加入非线性因素。这样循序渐进,效率最高。