1. 项目概述:LQR横向控制的核心逻辑
凌晨三点的屏幕前,咖啡杯已经见底,但蛇形轨迹图还在倔强地扭动。这就是车辆横向控制的魅力所在——让两吨重的金属盒子乖乖沿着预定轨迹行驶,远比教新手倒车入库更具挑战性。这次我们采用LQR(线性二次调节器)作为控制核心,在MATLAB-Carsim联合仿真环境中实现车辆横向控制。
LQR控制器的本质是一个精明的成本会计,它在控制效果(路径跟踪精度)和能耗(方向盘动作幅度)之间寻找最优平衡点。具体到我们的项目中:
- 输入:前轮转角(方向盘指令)
- 输出:横向误差(e)与航向误差(Δψ)
- 控制目标:最小化误差的同时避免过度转向
关键提示:二自由度车辆模型虽然简化了物理现实,但包含了横向控制和横摆运动这两个核心自由度,足以支撑基础控制算法开发。实际工程中,建议先在此模型验证算法有效性,再升级到更复杂的模型。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 车辆动力学建模解析
2.1 二自由度模型构建
我们采用的"自行车模型"将四轮车辆简化为前后各一个等效车轮,这种简化在车速恒定且转向角度较小时具有足够精度。模型考虑了两个核心运动:
- 横向运动:描述车辆质心相对于道路中心的偏移
- 横摆运动:反映车辆绕垂直轴的旋转
状态空间模型的关键参数如下表所示:
| 参数 | 符号 | 示例值 | 物理意义 |
|---|---|---|---|
| 质量 | m | 1573 kg | 整车质量 |
| 横摆转动惯量 | Iz | 2873 kg·m² | 抵抗偏转的惯性 |
| 前轴距 | lf | 1.1 m | 前轮到质心距离 |
| 后轴距 | lr | 1.65 m | 后轮到质心距离 |
| 前轮侧偏刚度 | Caf | 80000 N/rad | 前轮抗侧滑能力 |
| 后轮侧偏刚度 | Car | 80000 N/rad | 后轮抗侧滑能力 |
| 纵向速度 | Vx | 20 m/s | 前进速度 |
2.2 状态空间方程推导
状态变量选择为:
code复制x = [e; ė; Δψ; Δψ']
其中:
e - 横向误差
ė - 横向误差变化率
Δψ - 航向误差
Δψ' - 航向误差变化率
状态矩阵A和控制矩阵B的构建代码如下:
matlab复制A = [0,
