第二章 运动学基础:位置、速度、加速度的关系
各位工程师,大家好。欢迎来到《纵向控制速度约束全解析》的第二讲。
这一章,我们聊点最基础的东西——运动学。你可能会想:“这玩意儿我初中就学过,还用讲?” 嗯,我当年也这么想。直到我在项目里调一个纵向控制器,发现车怎么都刹不住,最后查出来是加速度积分算位置时,采样周期搞错了。所以,别小看这些基础公式,它们是整个控制系统的地基。
2.1 三个核心物理量:位置、速度、加速度
我们先明确一下这三个量的定义。说白了,它们描述的是“物体怎么动”这件事。
- 位置 (Position, s):物体在空间中的坐标。在纵向控制里,通常指沿着道路的里程,单位是米(m)。
- 速度 (Velocity, v):位置随时间的变化率。也就是物体移动的快慢和方向,单位是米/秒(m/s)。
- 加速度 (Acceleration, a):速度随时间的变化率。它描述了速度变化的快慢,单位是米/秒²(m/s²)。
我个人习惯把这三个量想象成一条链:加速度决定速度怎么变,速度决定位置怎么变。你想想看,踩油门(正加速度),速度增加,车就跑得更远。就是这么个逻辑。
核心关系:
速度是位置的一阶导数:v = ds/dt
加速度是速度的一阶导数:a = dv/dt
加速度是位置的二阶导数:a = d²s/dt²
2.2 运动学方程:匀加速直线运动
在自动驾驶的纵向控制中,我们最常处理的是匀加速直线运动。为什么?因为大多数控制周期(比如10ms、20ms)内,我们可以近似认为加速度是恒定的。这给计算带来了极大的便利。
假设初始时刻 t=0,初始位置为 s₀,初始速度为 v₀,加速度 a 为常数。那么经过时间 t 后:
| 物理量 | 公式 | 说明 |
|---|---|---|
| 速度 | v(t) = v₀ + a·t | 速度随时间线性变化 |
| 位置 | s(t) = s₀ + v₀·t + ½·a·t² | 位置随时间二次变化 |
| 速度-位移关系 | v² = v₀² + 2·a·(s - s₀) | 不依赖时间,非常实用 |
这三个公式,我建议你刻在脑子里。尤其是第三个——速度-位移关系式。我在做紧急制动距离计算时,几乎天天用它。举个例子,假设车速 20m/s,最大制动减速度 -5m/s²,那么从踩刹车到停车的距离是多少?直接用公式:0 = 20² + 2*(-5)*Δs,算出来 Δs = 40米。嗯,这就是你的安全跟车距离底线。
我的小技巧:
在实际代码中,我很少直接用二次方程算位置。因为浮点数运算有误差,时间一长位置会漂。我更喜欢用“增量法”:每个控制周期,用当前速度和加速度更新位置。虽然理论等价,但数值稳定性好得多。
2.3 从连续到离散:控制周期里的运动学
理论公式是连续的,但我们的控制器是离散的。每个控制周期(比如 20ms),我们都要计算一次。这里有个坑,我曾经踩过。
假设控制周期为 Δt,当前时刻的位置为 s_k,速度为 v_k,加速度为 a_k。那么下一个时刻:
// 错误的做法:直接用连续公式
s_{k+1} = s_k + v_k * Δt + 0.5 * a_k * Δt²
v_{k+1} = v_k + a_k * Δt
// 我个人推荐的做法:先更新速度,再用平均速度更新位置
v_{k+1} = v_k + a_k * Δt
s_{k+1} = s_k + (v_k + v_{k+1}) / 2 * Δt
为什么推荐第二种?因为第一种假设加速度在整个 Δt 内恒定,但实际加速度可能变化。第二种用了梯形积分,精度更高。说白了,就是更接近真实物理过程。
避坑指南:
我曾经在一个项目中,直接用连续公式做位置积分。结果跑了10分钟后,位置误差累积到了好几米。后来改成梯形法,误差降到了厘米级。记住:离散化不是简单的公式代入,要考虑数值积分方法。
2.4 运动学约束:速度与加速度的极限
在自动驾驶中,车辆的运动不是自由的。它受限于物理极限和舒适性要求。这些约束,最终都会体现在运动学方程里。
- 速度约束:v_min ≤ v ≤ v_max。v_min 通常是0(不能倒车),v_max 是道路限速或车辆极速。
- 加速度约束:a_min ≤ a ≤ a_max。a_min 是最大制动减速度(比如 -5m/s²),a_max 是最大加速能力(比如 3m/s²)。
- 加加速度约束 (Jerk):j_min ≤ j ≤ j_max。加加速度是加速度的变化率,它直接影响乘坐舒适性。我一般把 jerk 限制在 ±2 m/s³ 以内。
你想想看,如果只约束速度和加速度,那控制器可能会让加速度瞬间从0跳到最大值。乘客会感觉被踹了一脚。所以,加加速度约束也很重要。
2.5 知识体系总览
为了让你更直观地理解这一章的内容,我画了一张图。它展示了位置、速度、加速度、加加速度之间的微分/积分关系,以及它们在实际控制中的角色。
这张图把这一章的核心逻辑串起来了。从加加速度到位置,每向上积分一次,物理意义就变得更直观。而每一层,都有对应的约束需要满足。
好了,这一章就到这里。运动学是纵向控制的基础,看似简单,但细节决定成败。下一章我们会聊动力学的部分,到时候这些公式会派上大用场。
本章要点回顾:
- 位置、速度、加速度是纵向控制的三个核心量,它们通过微分/积分关联。
- 匀加速运动学方程是基础,但离散化时要注意数值积分方法。
- 速度、加速度、加加速度都有物理或舒适性约束,控制器必须考虑。
- 推荐使用梯形法更新位置,精度更高,误差更小。