3. 车辆运动学与动力学基础:从模型到实战

各位同学,欢迎来到第三章。这一章,我们得把车怎么动这件事彻底搞清楚。

说实话,很多做LKA的工程师,代码写得飞起,但一遇到极限工况就翻车。为什么?因为对车辆本身的运动规律理解不够深。我个人习惯,在讲任何控制算法之前,先把“车”这个被控对象的脾气摸透。

今天我们就来啃三块硬骨头:自行车模型阿克曼转向横向动力学微分方程。最后再聊聊两个关键参数——质心侧偏角和横摆角速度。

3.1 自行车模型(Bicycle Model)

你想想看,一辆四轮车,四个轮子各有各的转向和受力,分析起来多复杂?

所以工程师们想了个聪明的办法——简化。把左右两个前轮合并成一个虚拟前轮,左右后轮合并成一个虚拟后轮。这就是自行车模型。

核心假设:

  • 忽略车辆的侧倾和俯仰
  • 左右车轮的转向角一致
  • 轮胎侧偏特性呈线性
  • 纵向速度恒定(或变化缓慢)

我在项目中遇到过,有些同事直接用自行车模型做高速变道控制,结果实车测试时车辆甩尾了。为什么?因为高速时轮胎侧偏特性进入非线性区,模型失效了。所以记住:自行车模型适用于侧向加速度 ≤ 0.4g 的场景

自行车模型的运动学方程其实很简单:

// 车辆运动学方程(自行车模型)
// 状态量: [x, y, ψ] 位置和航向角
// 控制量: [v, δ] 速度和前轮转角

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

// 其中 L 为轴距

嗯,这里要注意:这个模型假设轮胎没有侧偏角,只适用于低速(通常 < 5 m/s)。高速时,必须用动力学模型。

3.2 阿克曼转向几何

你有没有想过,为什么车辆转弯时,内侧车轮和外侧车轮的转角不一样?

这就是阿克曼转向几何要解决的问题。它的核心思想是:所有车轮的转向中心必须交于一点,这样才能保证车轮纯滚动,没有滑动。

阿克曼转向公式:

cot(δo) - cot(δi) = T / L

其中:

  • δo:外侧车轮转角
  • δi:内侧车轮转角
  • T:轮距
  • L:轴距

我曾经在标定转向系统时,发现车辆在低速大转角时轮胎磨损异常严重。查了半天,原来是阿克曼率没调好。说白了,就是内外轮转角关系不对,轮胎在“硬磨”地面。

实际量产车中,阿克曼率通常在 60% - 80% 之间,不会做到100%。为什么?因为高速时我们需要一点“不足转向”特性,让车辆更稳定。

工况 阿克曼率 效果
低速泊车 接近100% 转弯半径小,灵活
高速变道 60%-70% 不足转向,稳定性好
赛道驾驶 50%-60% 过度转向,响应快

3.3 车辆横向动力学微分方程

好了,现在我们进入重头戏。横向动力学,说白了就是研究车辆怎么“横着走”的。

车辆横向运动有两个自由度:侧向位移横摆运动。对应的微分方程如下:

// 二自由度车辆横向动力学模型
// 状态量: [v_y, ω] 侧向速度和横摆角速度
// 输入: δ 前轮转角

m * (dv_y/dt + v_x * ω) = F_yf + F_yr
I_z * dω/dt = a * F_yf - b * F_yr

// 轮胎侧偏力(线性区)
F_yf = -C_f * α_f
F_yr = -C_r * α_r

// 侧偏角
α_f = δ - (v_y + a * ω) / v_x
α_r = -(v_y - b * ω) / v_x

其中:

  • m:整车质量
  • I_z:横摆转动惯量
  • a, b:质心到前后轴的距离
  • C_f, C_r:前后轮侧偏刚度
  • v_x:纵向速度

重要提醒:

这个模型只在轮胎侧偏角 < 5° 时有效。超过这个范围,轮胎进入非线性区,侧偏力不再与侧偏角成正比。我见过有人直接用这个模型做极限工况控制,结果仿真和实车完全对不上。

3.4 关键参数:质心侧偏角与横摆角速度

这两个参数,是衡量车辆横向稳定性的“体温计”和“心率”。

3.4.1 质心侧偏角(β)

质心侧偏角,就是车辆实际运动方向和车头指向之间的夹角。说白了,就是车在“横着滑”的程度。

公式很简单:

β = arctan(v_y / v_x) ≈ v_y / v_x  (小角度近似)

我个人习惯,在LKA系统中,把质心侧偏角控制在 ±2° 以内。超过这个范围,乘客就会感觉“车在飘”。

我曾经调试过一个项目,车辆在高速弯道中总是偏离车道中心。查了半天,发现是质心侧偏角估计不准。后来加了IMU和GPS融合,才把这个问题解决。

3.4.2 横摆角速度(ω)

横摆角速度,就是车辆绕垂直轴旋转的角速度。单位是 rad/s 或 °/s。

在稳态转弯时,横摆角速度和方向盘转角有一个近似线性关系:

ω_ss = v_x * δ / (L * (1 + K * v_x²))

// 其中 K 为稳定性因数
K = m * (b * C_r - a * C_f) / (L² * C_f * C_r)

实战经验:

  • K > 0:不足转向(稳定,家用车)
  • K = 0:中性转向(理想,难实现)
  • K < 0:过度转向(危险,赛车调校)

嗯,这里要记住:量产车的LKA系统,一定要设计成不足转向特性。为什么?因为安全第一。过度转向的车,普通驾驶员根本救不回来。

3.5 本章小结

这一章的内容,是后续所有控制算法的基础。我建议你:

  1. 把自行车模型的推导手写一遍
  2. 用Simulink搭一个二自由度模型,跑几个工况看看
  3. 找实车数据,对比模型输出和真实响应的差异

下一章,我们会基于这些模型,开始设计LKA的控制器。到时候你会发现,今天打下的基础,会帮你省下大量调试时间。

记住:模型越准,控制越稳。别急着写代码,先把车搞懂。


公众号:蓝海资料掘金营,微信deep3321