3、车辆动力学模型:二自由度自行车模型推导、横摆角速度与质心侧偏角、状态空间方程建立
各位同学,今天我们来啃一块硬骨头——二自由度自行车模型。说实话,这个模型是我做横向控制时用得最多的工具,没有之一。你想想看,一个四轮车那么复杂,真要搞个十几自由度的模型,控制器还没设计好,项目周期就过去了。所以,我们得学会抓主要矛盾。
3.1 为什么是“自行车”模型?
先别笑,这名字听着挺接地气。其实说白了,就是把四轮车简化成前后两个轮子。我刚开始做项目时也觉得这太粗糙了,直到有一次在高速场景下做车道保持,发现用这个模型设计的控制器效果出奇的好。
简化假设如下:
- 忽略悬架运动:车身没有侧倾、俯仰、垂向跳动
- 忽略轮胎非线性:假设侧偏角小,轮胎力是线性的
- 纵向速度恒定:只关心横向和横摆运动
- 左右轮合并:前轴两个轮子等效成一个,后轴同理
嗯,这里要注意,这些假设不是随便拍的。我在实际项目中验证过,当侧向加速度小于0.4g时,这个模型的精度完全够用。超过这个值,轮胎就开始进入非线性区了,那是另一套玩法。
3.2 坐标系与运动学关系
我们先建立坐标系。车辆质心为原点,x轴指向车头,y轴指向左侧,z轴向上。这个坐标系是固结在车身上的,叫车辆坐标系。
车辆的运动状态可以用两个量描述:
- 横摆角速度 r:绕z轴的旋转角速度,单位 rad/s
- 质心侧偏角 β:速度方向与车头方向的夹角,单位 rad
为什么会引入质心侧偏角?我打个比方:你开车时方向盘打正,但车还在横着飘,这就是侧偏角在作怪。在横向控制中,这个量直接决定了你离车道中心有多远。
核心关系式:
前轮侧偏角:αf = δ - β - (lf · r) / vx
后轮侧偏角:αr = -β + (lr · r) / vx
其中 δ 是前轮转角,lf、lr 是质心到前后轴的距离,vx 是纵向速度。
3.3 动力学方程推导
现在我们来推方程。记住一个原则:牛顿第二定律 + 力矩平衡。我当年学的时候,老师总说“力是改变运动的原因”,这句话在车辆动力学里同样适用。
横向力平衡:
车辆在y方向受到的力来自前后轮胎的侧向力 Fyf 和 Fyr。根据牛顿第二定律:
m · ay = Fyf · cos(δ) + Fyr
由于 δ 很小,cos(δ) ≈ 1,所以:
m · (vẏ + vx · r) = Fyf + Fyr
这里 ay = vẏ + vx · r,是车辆质心处的侧向加速度,包含平移和旋转两部分。
横摆力矩平衡:
绕z轴的力矩来自前后轮胎力对质心的矩:
Iz · ṙ = lf · Fyf - lr · Fyr
注意符号:前轮力产生正力矩(让车左转),后轮力产生负力矩。
轮胎力模型:
在线性区,轮胎侧向力与侧偏角成正比:
Fyf = -Cf · αf
Fyr = -Cr · αr
Cf 和 Cr 是前后轮的侧偏刚度,负号表示力的方向与侧偏角相反。这个负号我当年纠结了很久,后来在实车测试中才真正理解——轮胎力总是试图把车“拉回”到滚动方向。
3.4 状态空间方程
好了,现在我们把所有东西拼起来。选择状态变量 x = [β, r]T,控制输入 u = δ。
把轮胎力公式代入动力学方程,经过整理(这一步我建议你亲手推一遍,很有帮助),得到:
β̇ = -(Cf + Cr)/(m · vx) · β + [-1 - (Cf · lf - Cr · lr)/(m · vx²)] · r + Cf/(m · vx) · δ
ṙ = -(Cf · lf - Cr · lr)/Iz · β - (Cf · lf² + Cr · lr²)/(Iz · vx) · r + (Cf · lf)/Iz · δ
写成矩阵形式:
[β̇] [a11 a12] [β] [b11]
[ṙ] = [a21 a22] [r] + [b21] · δ
其中:
| 参数 | 表达式 |
|---|---|
| a11 | -(Cf + Cr) / (m · vx) |
| a12 | -1 - (Cf · lf - Cr · lr) / (m · vx²) |
| a21 | -(Cf · lf - Cr · lr) / Iz |
| a22 | -(Cf · lf² + Cr · lr²) / (Iz · vx) |
| b11 | Cf / (m · vx) |
| b21 | Cf · lf / Iz |
个人经验:这个状态空间方程是横向控制器的“心脏”。我在做LQR控制器时,就是基于这个模型设计反馈增益的。但要注意,vx出现在分母上,低速时模型会变得敏感。我曾经在泊车场景下吃过亏,后来加了速度调度才解决。
3.5 知识体系总览
下面这张图是我自己总结的,把整个推导逻辑串起来了。你顺着箭头看,就能明白每个环节的来龙去脉。
避坑指南:我曾经在高速场景下直接用这个模型做MPC,结果控制效果很差。后来发现是忽略了轮胎力的饱和特性。记住,这个模型只适用于侧向加速度小于0.4g的场景。如果你要做极限工况,得引入非线性轮胎模型。
3.6 模型参数获取
有了模型,参数从哪来?我一般用三种方法:
- 理论计算:根据车辆几何尺寸和轮胎型号估算,精度一般
- 系统辨识:用实车数据拟合,精度高但费时
- 查表法:不同速度下标定不同的参数,工程上最常用
我个人推荐第三种。在量产项目中,我们通常会在不同车速下做阶跃响应测试,然后反推模型参数。这样得到的模型虽然不完美,但足够工程实用。
好了,这一节的内容就到这里。二自由度模型虽然简单,但它是横向控制的基石。你把它吃透了,后面学LQR、MPC都会轻松很多。