一、课程导论与预备知识
1.1 复杂弯道场景定义
先聊聊什么是「复杂弯道」。
你想想看,高速公路上那种大半径的缓弯,其实不算复杂。真正让人头疼的,是连续S弯、发卡弯、或者带坡度的急弯。我当年在测试场第一次跑发卡弯时,车辆直接冲出了车道线——嗯,那感觉记忆犹新。
复杂弯道有几个典型特征:
- 曲率变化剧烈:弯道半径从几百米突然降到几十米
- 道路宽度受限:有些山路窄到只比车宽多一点点
- 视线遮挡:入弯前根本看不到弯心
- 路面附着变化:弯道内侧可能有砂石或积水
核心认知:复杂弯道的本质是「车辆动力学极限」与「路径跟踪精度」之间的博弈。说白了,就是轮胎抓地力不够用了,你再怎么调控制参数也没用。
1.2 路径跟踪基础概念
路径跟踪,听起来高大上,其实就三件事:
- 横向控制:让车沿着期望路径走,别偏出去
- 纵向控制:该加速时加速,该减速时减速
- 耦合控制:横向和纵向一起调,这是难点
我见过很多新手,上来就调PID参数,结果弯道里要么转向不足推头,要么转向过度甩尾。为什么?因为他们忽略了纵向速度对横向稳定性的影响。
个人经验:我在做L4级泊车项目时,发现一个规律——弯道跟踪的误差,80%来自入弯前的速度规划。入弯速度没选好,后面怎么调都没用。
1.3 车辆运动学模型回顾
这里必须提一下自行车模型。虽然它简单,但90%的弯道控制问题都能用它解释清楚。
模型的核心假设:
- 忽略轮胎侧偏特性(低速时成立)
- 车辆简化为前后两个轮子
- 转向角直接作用于前轮
状态方程长这样:
// 自行车模型状态方程
x_dot = v * cos(θ)
y_dot = v * sin(θ)
θ_dot = v * tan(δ) / L
其中:
x, y:车辆位置θ:航向角δ:前轮转角L:轴距v:纵向速度
注意:这个模型在低速(< 30 km/h)时很准。但上了高速,轮胎侧偏不可忽略,必须用动力学模型。我曾经在高速弯道测试中直接用运动学模型,结果车辆横摆角速度完全跟不上——差点撞护栏。
1.4 课程目标与学习路径
这门课的目标很明确:
| 模块 | 目标 | 实战内容 |
|---|---|---|
| 基础篇 | 掌握运动学/动力学模型 | 搭建仿真环境 |
| 控制篇 | 实现纯跟踪、MPC、LQR | 弯道代码调试 |
| 进阶篇 | 处理极限工况 | 实车测试案例 |
我个人建议的学习路径:
- 先把自行车模型手推一遍,理解每个变量的物理意义
- 在仿真环境里跑纯跟踪算法,感受曲率变化对跟踪误差的影响
- 再上MPC,体会「预测」带来的性能提升
- 最后才是实车调试——这一步最考验耐心
避坑指南:我曾经花了两周时间调MPC的权重矩阵,结果发现是仿真里的道路曲率采样频率太低。所以,遇到问题先检查数据质量,别急着调参数。
知识体系框架
下面这张图,是我自己梳理的课程知识结构。你可以把它当作学习地图:
我的建议:别急着跳进代码里。先把这张图里的每个模块想清楚——它们之间是怎么连接的?为什么动力学模型要放在运动学模型后面?想通了,后面写代码就是水到渠成的事。