1. 课程导论与坐标系基础
各位同学,欢迎来到《车辆动力学建模与卡尔曼滤波应用》的第一章。
我是这门课的主讲。在汽车电子和底盘控制领域摸爬滚打了十几年,我越来越觉得,动力学建模和状态估计是区分“调参工程师”和“系统工程师”的分水岭。今天咱们先把地基打牢。
1.1 车辆动力学建模的意义
说白了,我们为什么要建模型?
因为车不会告诉你它下一秒要干什么。ESP、ABS、主动悬架,这些系统要提前判断车辆状态。没有模型,控制器就是瞎子。
核心观点: 模型是控制器的“先验知识”。它告诉系统“正常情况下车会怎么动”,这样当实际运动和模型预测不一致时,我们才能知道——哦,路面滑了,或者轮胎要失去抓地力了。
我举个例子。2015年我做某个国产SUV的ESP标定时,发现车辆在低附着系数路面(比如冰雪路面)上总是介入太晚。后来排查原因,就是模型里用的轮胎侧偏刚度是干沥青路面的标定值。你看,模型不准,控制效果直接打折。
车辆动力学模型主要解决三个问题:
- 预测:给定方向盘转角、油门、制动,车接下来会怎么走?
- 分析:车辆的稳态响应是推头还是甩尾?横摆角速度增益是多少?
- 估计:当传感器信号有噪声或丢失时,如何用模型“补”出真实状态?
嗯,这里要注意,模型不是越复杂越好。做工程不是发论文,计算实时性和参数可辨识性往往比精度更重要。我个人习惯,先从最简单的自行车模型入手,再根据需要逐步增加自由度。
1.2 卡尔曼滤波在车辆状态估计中的作用
好,模型有了,但模型算出来的东西准吗?
不一定。模型有误差,传感器有噪声。怎么办?把两者结合起来——这就是卡尔曼滤波干的事。
卡尔曼滤波的核心思想,我总结成一句话:用模型做“预测”,用传感器做“修正”。
个人经验: 我在做分布式驱动电动汽车的纵向车速估计时,遇到过一个问题:轮速传感器在低附着路面会打滑,GPS在隧道里没信号。单独用任何一个都不靠谱。后来用卡尔曼滤波把轮速、加速度计、GPS融合起来,车速估计精度从±5 km/h 提升到了 ±0.3 km/h。这就是融合的力量。
卡尔曼滤波在车辆上的典型应用场景:
| 应用场景 | 估计状态 | 常用传感器 |
|---|---|---|
| 纵向车速估计 | 车速、加速度 | 轮速、IMU、GPS |
| 质心侧偏角估计 | 侧偏角、横摆角速度 | IMU、方向盘转角、轮速 |
| 轮胎-路面附着系数估计 | μ、轮胎力 | IMU、轮速、驱动力矩 |
| 车辆位置与姿态 | 位置、航向角 | GPS、IMU、轮速 |
你想想看,如果没有卡尔曼滤波,我们只能用传感器原始信号。那信号里混着噪声、偏差、甚至丢包,直接拿去做控制,后果可想而知。
1.3 常用坐标系定义
做动力学建模,第一件事就是定坐标系。坐标系乱了,后面全白干。我见过太多新手在这个坑里栽跟头。
我们主要用三种坐标系:
1.3.1 惯性坐标系(大地坐标系)
固定在地面上,不随车辆运动而改变。通常用 XI-YI-ZI 表示。
- XI:通常指向正北或车辆初始行驶方向
- YI:垂直于XI,指向右侧
- ZI:垂直地面向上(右手定则)
这个坐标系用来描述车辆的绝对位置和航向。GPS给出的经纬度,最终都要转换到这个系里。
1.3.2 车辆坐标系
固连在车辆质心上,随车一起运动。用 xv-yv-zv 表示。
- xv:沿车辆纵轴,指向车头
- yv:垂直于纵轴,指向驾驶员右侧
- zv:垂直向上
IMU(惯性测量单元)输出的加速度和角速度,默认就是在车辆坐标系下的。这也是我们做状态估计时最常用的坐标系。
1.3.3 轮胎坐标系
固连在每个轮胎的接地点上。用 xt-yt-zt 表示。
- xt:轮胎滚动方向(向前)
- yt:轮胎侧向(向左或向右,SAE和ISO标准有差异)
- zt:垂直地面向上
避坑指南: 我曾经在做一个轮胎力估算项目时,把SAE标准和ISO标准的轮胎坐标系搞混了。SAE标准里y轴指向右侧,ISO标准里y轴指向左侧。结果侧向力的符号全反了,仿真结果看起来像车在“漂移”但实际上模型是错的。花了两天排查,最后发现是坐标系定义不一致。所以,开工前一定要确认你用的是哪个标准。
1.4 坐标变换矩阵推导
坐标系定义好了,接下来就是怎么从一个系变到另一个系。这就要用到坐标变换矩阵。
最常见的变换是从车辆坐标系到惯性坐标系。假设车辆航向角为 ψ(绕z轴旋转),那么变换矩阵为:
R(ψ) = | cos(ψ) -sin(ψ) 0 |
| sin(ψ) cos(ψ) 0 |
| 0 0 1 |
举个例子,车辆坐标系下的速度 [u, v, 0]T(u是纵向速度,v是侧向速度),转换到惯性系:
| Ẋ_I | | cos(ψ) -sin(ψ) 0 | | u |
| Ẏ_I | = | sin(ψ) cos(ψ) 0 | * | v |
| 0 | | 0 0 1 | | 0 |
展开就是:
- ẊI = u * cos(ψ) - v * sin(ψ)
- ẎI = u * sin(ψ) + v * cos(ψ)
这个公式在车辆运动学模型里会反复出现。我建议你手推一遍,不要死记硬背。
小技巧: 推导坐标变换矩阵时,记住一个原则——“新坐标 = 旋转矩阵 × 旧坐标”。旋转矩阵的每一列,就是旧坐标系的基向量在新坐标系下的投影。想清楚这个几何意义,你永远不会搞错符号。
另外,从惯性系到车辆系的变换,就是上面矩阵的转置(因为旋转矩阵是正交矩阵):
R(ψ)^T = | cos(ψ) sin(ψ) 0 |
| -sin(ψ) cos(ψ) 0 |
| 0 0 1 |
至于轮胎坐标系到车辆坐标系的变换,多了一个前轮转角 δ。对于前轮转向的车辆,左前轮和右前轮的变换矩阵略有不同,但核心思想是一样的——绕z轴旋转一个角度 δ。
1.5 本章知识体系总览
说了这么多,咱们用一张图把本章的核心逻辑串起来。
这张图把本章的脉络理清楚了。从左到右:我们先理解为什么要建模,然后搞清楚在哪个坐标系里建模,最后掌握怎么在不同坐标系之间切换。这三块搞定了,后面章节的动力学方程推导和卡尔曼滤波设计,你才能跟得上。