横向控制基础:车辆运动学模型、自行车模型、横向控制目标与评价指标

各位同学好,我是你们的老朋友。今天咱们正式开始横向控制的第一课。说实话,我见过太多工程师一上来就调PID参数,结果车在路上画龙。为什么?因为连最基本的模型都没搞明白。嗯,咱们先把地基打牢。

1.1 车辆运动学模型——车到底怎么动的?

先问大家一个问题:一辆车在低速行驶时,它的运动规律是什么?

说白了,就是四个字——几何约束。车轮不能侧滑,前轮只能转个角度,后轮方向固定。这就是运动学模型的核心假设。

我个人的习惯是,先把这个模型画在纸上。你看,车辆的位置用 (x, y, θ) 三个量描述:

  • x, y:后轴中心点的坐标
  • θ:车身朝向(航向角)
  • δ:前轮转角
  • v:后轴中心的速度

那么运动学方程长这样:

dx/dt = v * cos(θ)
dy/dt = v * sin(θ)
dθ/dt = v * tan(δ) / L

其中 L 是轴距。这个公式我在项目里用了无数次,每次调参前都会先拿它算一遍理论轨迹。

核心要点:运动学模型只适用于低速(通常 < 10 m/s),因为高速时轮胎会打滑,运动学假设就不成立了。我在早期一个泊车项目里吃过这个亏——低速倒库没问题,一上到15km/h就偏得离谱。

1.2 自行车模型——把四轮简化成两轮

你可能会问:四轮车为什么要用自行车模型?

原因很简单:减少复杂度。四轮车的左右轮转角其实不一样(阿克曼转向),但如果我们只关心车辆的整体运动趋势,把左右轮合并成一个虚拟前轮,完全够用。

自行车模型的假设:

  • 忽略车辆的侧倾和俯仰
  • 轮胎的侧偏特性是线性的(小角度假设)
  • 前后轴各用一个轮子代表

我记得有一次做高速车道保持,用运动学模型怎么调都震荡。后来换成自行车模型,把轮胎侧偏刚度加进去,问题一下就解决了。你想想看,高速时轮胎是有侧偏角的,运动学模型根本描述不了这个现象。

自行车模型的动力学方程稍微复杂一点:

m * v * (dβ/dt + r) = F_yf + F_yr
I_z * dr/dt = a * F_yf - b * F_yr

其中 β 是质心侧偏角,r 是横摆角速度,F_yf 和 F_yr 是前后轮的侧向力。这些侧向力跟轮胎侧偏刚度 C_f、C_r 直接相关。

我的经验:实际项目中,我通常低速用运动学模型(泊车、园区低速巡航),高速用自行车模型(高速车道保持、换道)。分界线大概在 36 km/h(10 m/s)左右。

1.3 横向控制目标——我们要控什么?

横向控制的目标,说白了就两件事:

  1. 路径跟踪:让车沿着规划好的路径走
  2. 稳定性:车不能晃,不能失控

具体来说,我们关注三个量:

  • 横向偏差:车到目标路径的垂直距离
  • 航向偏差:车身朝向与路径切线方向的夹角
  • 曲率偏差:路径的弯曲程度与车辆转向能力的匹配度

我曾经在一个项目中,只盯着横向偏差调参数,结果航向偏差越来越大,最后车直接冲出车道。嗯,这里要注意:三个偏差要同时看,不能只看一个。

1.4 评价指标——怎么才算调好了?

没有评价指标,调优就是瞎调。我一般用这几个指标:

指标 定义 典型要求
最大横向偏差 整个过程中最大的偏离距离 < 0.2 m(车道保持)
均方根横向偏差 偏差的RMS值,反映整体精度 < 0.1 m
最大横摆角速度 车辆旋转的快慢,反映舒适性 < 0.3 rad/s
收敛时间 从偏差出现到恢复的时间 < 2 s

避坑指南:我曾经在一个项目中,只追求最大横向偏差小,结果把增益调得特别大。车确实贴线很近,但方向盘一直在抖,乘客晕车投诉不断。后来加了横摆角速度的约束,才平衡了精度和舒适性。

知识体系总览

下面这张图是我自己总结的横向控制知识框架,你可以把它当作整个课程的地图:

横向控制知识体系 车辆运动学模型 自行车模型 控制目标与指标 几何约束 低速假设 阿克曼转向 轮胎侧偏特性 横摆动力学 线性化假设 横向偏差 航向偏差 曲率偏差 低速泊车 / 园区巡航 高速车道保持 / 换道 精度 & 舒适性平衡 评价指标:最大偏差 / RMS偏差 / 横摆角速度 / 收敛时间

这张图把整个横向控制的知识脉络串起来了。从底层的运动学模型和自行车模型,到具体的控制目标,再到实际应用场景和评价指标。你每次调参遇到问题,都可以回到这张图上,看看是哪个环节出了偏差。

总结一下今天的内容:

  • 运动学模型适合低速,自行车模型适合高速——选对模型是第一步
  • 横向控制要同时盯住横向偏差、航向偏差、曲率偏差三个量
  • 评价指标不能只看精度,舒适性(横摆角速度)同样重要

好了,这一章就到这里。记住我的一句话:模型是控制的上限,算法只是逼近这个上限的手段。模型没选对,后面调得再好也白搭。

可可精品资料库