纵向控制基础:车辆纵向动力学模型、驱动与制动原理、控制目标定义
各位同学,大家好。我是你们这节课程的主讲人。咱们今天聊的,是自动驾驶里最基础、也最绕不开的一块——纵向控制。
说白了,纵向控制就是管好车怎么“走”和怎么“停”。你想想看,不管是ACC自适应巡航,还是AEB紧急刹车,最终都要落到油门和刹车上。我做了这么多年车辆控制,见过太多因为纵向控制没做好,导致乘坐体验像“开碰碰车”的案例。所以,这一章咱们把地基打牢。
1. 车辆纵向动力学模型
要控制车,首先得知道车在纵向上受哪些力。我个人习惯把模型简化成“一维质点模型”,虽然简单,但够用。
车辆在纵向上的受力,主要包含这几个部分:
- 驱动力:来自发动机/电机,通过轮胎传递到地面。
- 制动力:来自刹车系统,与运动方向相反。
- 阻力:包括空气阻力、滚动阻力、坡道阻力。
根据牛顿第二定律,我们可以写出最基本的纵向动力学方程:
m * a = F_drive - F_brake - F_resistance
其中:
m是车辆质量a是纵向加速度F_drive是驱动力F_brake是制动力F_resistance是总阻力
嗯,这里要注意。总阻力 F_resistance 可不是一个常数。它包含:
| 阻力类型 | 计算公式 | 说明 |
|---|---|---|
| 空气阻力 | 0.5 * ρ * Cd * A * v² | 与速度平方成正比,高速时影响巨大 |
| 滚动阻力 | Cr * m * g | 与轮胎和路面有关,基本恒定 |
| 坡道阻力 | m * g * sin(θ) | θ为坡度角,上坡为正,下坡为负 |
我在项目中遇到过一个问题:某次在山区测试,车辆在下长坡时速度一直控制不住。后来排查发现,是坡道阻力估算不准,导致前馈补偿不够。所以,坡道阻力的实时估计,是纵向控制里一个很关键的环节。
2. 驱动与制动原理
知道了受力,接下来就是怎么执行。驱动和制动,是两个完全不同的物理过程。
2.1 驱动原理
驱动靠的是发动机或电机输出扭矩,经过变速箱、传动轴,最终到车轮上。这里有一个核心概念:扭矩-转速特性。
对于传统燃油车,发动机有一个“万有特性曲线”。低转速时扭矩小,高转速时扭矩也小,中间有个峰值。对于电动车,电机在低转速时就能输出峰值扭矩,特性完全不同。
我个人习惯把驱动控制简化为一个“扭矩请求”模型:
T_wheel = T_engine * i_gear * η_trans
其中:
T_wheel是轮端扭矩T_engine是发动机/电机输出扭矩i_gear是当前档位传动比η_trans是传动效率
你想想看,如果变速箱在换挡,传动比突然变化,轮端扭矩就会产生一个跳变。这就是为什么有些车换挡时会有“闯动感”。
2.2 制动原理
制动相对简单一些。传统液压制动系统,通过制动主缸产生压力,推动卡钳夹紧刹车盘。现在很多车还有再生制动,也就是电机反拖发电,同时产生制动力。
这里有一个避坑指南:我曾经在标定制动系统时,发现再生制动和液压制动的切换很难做到平滑。如果处理不好,驾驶员会感觉刹车“一脚深一脚浅”。
制动力的计算可以表示为:
F_brake = (P_bmc * A_caliper * μ_pad * R_rotor) / R_wheel
其中:
P_bmc是制动主缸压力A_caliper是卡钳活塞面积μ_pad是刹车片摩擦系数R_rotor是刹车盘有效半径R_wheel是车轮半径
3. 控制目标定义
模型有了,执行器原理也清楚了。那控制目标到底是什么?
纵向控制的核心目标,说白了就两个:跟得上 和 停得稳。
具体来说,可以分解为以下几个指标:
- 速度跟踪精度:实际车速与目标车速的误差。一般要求稳态误差小于 ±1 km/h。
- 加速度控制:加速度的响应速度和超调量。急加速或急减速都会让乘客不舒服。
- jerk(加加速度):加速度的变化率。这是衡量乘坐舒适性的关键指标。我建议把 jerk 控制在 2 m/s³ 以内。
- 停车精度:在AEB或自动泊车场景下,车辆最终停止位置与目标位置的偏差。通常要求小于 ±10 cm。
核心观点: 纵向控制不是单纯的“速度闭环”,而是“位置-速度-加速度”三环联动。最内环是加速度环,中间是速度环,最外环是位置环。
我举个例子。在ACC跟车场景中,如果前车突然减速,你的控制器需要:
- 先通过位置环判断距离是否过近
- 再通过速度环计算需要减多少速
- 最后通过加速度环输出具体的制动压力
这三个环的带宽要匹配好。内环(加速度环)要快,外环(位置环)可以慢一些。否则系统容易振荡。
好了,这一章的内容就到这里。纵向控制是自动驾驶的基础,也是最能体现工程师功底的地方。希望大家能把这些原理吃透。
可可精品资料库