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 本章知识体系总览

说了这么多,咱们用一张图把本章的核心逻辑串起来。

第1章 知识体系框架 车辆动力学建模 卡尔曼滤波状态估计 建模意义 预测 · 分析 · 估计 模型是控制器的先验 坐标系定义 惯性系 · 车辆系 轮胎系 坐标变换矩阵 R(ψ) 旋转矩阵 车辆系 ↔ 惯性系 ⚠ 核心原则:坐标系定义先行 坐标系乱了,后面所有推导和代码都是错的

这张图把本章的脉络理清楚了。从左到右:我们先理解为什么要建模,然后搞清楚在哪个坐标系里建模,最后掌握怎么在不同坐标系之间切换。这三块搞定了,后面章节的动力学方程推导和卡尔曼滤波设计,你才能跟得上。