1. 项目概述
在自动驾驶系统开发中,车辆横向控制是确保行驶安全性和舒适性的关键技术。线性二次型调节器(LQR)作为一种经典的最优控制算法,因其良好的稳定性和鲁棒性,被广泛应用于自动驾驶车辆的横向控制系统中。本项目基于CarSim和Simulink联合仿真环境,实现了自动驾驶车辆的横向LQR控制算法。
CarSim作为专业的车辆动力学仿真软件,能够提供高精度的车辆模型和真实的道路环境;而Simulink则是算法开发和验证的强大工具平台。两者的联合使用,可以在算法开发早期阶段就对控制效果进行验证,大大缩短开发周期,降低实车测试的风险和成本。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 核心需求解析
2.1 自动驾驶横向控制的基本要求
自动驾驶车辆的横向控制主要解决三个核心问题:
- 路径跟踪精度:车辆应能准确跟踪规划的参考路径
- 行驶稳定性:在各种工况下保持车辆的稳定行驶
- 乘坐舒适性:控制过程中应避免剧烈的方向盘动作
2.2 LQR算法的适用性分析
LQR算法特别适合解决自动驾驶横向控制问题,主要因为:
- 可以明确量化控制目标(如跟踪误差、控制量大小)
- 能够处理多变量系统的控制问题
- 计算效率高,适合实时控制
- 通过权重矩阵调整可以方便地平衡不同控制目标
3. 系统建模与参数设置
3.1 车辆动力学模型
在CarSim中,我们选择B级轿车作为基础车型,其关键参数如下:
| 参数名称 | 数值 | 单位 |
|---|---|---|
| 整车质量 | 1500 | kg |
| 轴距 | 2.7 | m |
| 前轮侧偏刚度 | -60000 | N/rad |
| 后轮侧偏刚度 | -60000 | N/rad |
| 绕Z轴转动惯量 | 2500 | kg·m² |
3.2 横向控制状态空间模型
建立车辆横向动力学状态空间模型:
code复制ẋ = Ax + Bu
y = Cx + Du
其中状态变量x包括:
- 横向位置误差
- 横向速度误差
- 横摆角误差
- 横摆角速度误差
控制输入u为前轮转角。
3.3 LQR权重矩阵设计
LQR算法的核心是设计合适的Q和R权重矩阵:
matlab复制Q = diag([10, 1, 5, 1]); % 状态权重
R = 0.1; % 控制输入权重
权重的选择原则:
- 横向位置误差权重最大,确保路径跟踪精度
- 横摆角误差次之,保证车辆朝向正确
- 速度相关误差权重较小,避免过于激进的控制
- 控制输入权重适中,平衡响应速度和平顺性
4. Simulink模型搭建
4.1 联合仿真接口配置
CarSim与Simulink的联合仿真需要正确配置接口:
- 在CarSim中设置Solver为"External"
- 配置正确的采样时间(通常为0.01s)
- 设置输入输出变量映射关系
4.2 LQR控制器实现
在Simulink中搭建LQR控制器主要步骤:
- 从CarSim接口模块获取车辆状态
- 计算各项误差(与参考路径比较)
- 实现LQR控制律:u = -Kx
- 输出前轮转角到CarSim
关键模块包括:
- State-Space模块:实现系统动力学
- MATLAB Function模块:计算LQR增益
- Gain模块:实现控制律
4.3 参考路径生成
设计三种典型测试场景:
- 双移线测试(评估瞬态响应)
- 圆形路径(评估稳态性能)
- 复合弯道(评估综合性能)
路径生成采用三次样条插值,确保曲率连续。
5. 仿真结果与分析
5.1 双移线测试结果
| 指标 | 数值 | 单位 |
|---|---|---|
| 最大横向误差 | 0.12 | m |
| RMS横向误差 | 0.05 | m |
| 最大前轮转角 | 4.8 | deg |
| 转向角变化率 | 15.2 | deg/s |
5.2 圆形路径测试结果
在半径为50m的圆形路径上:
- 稳态横向误差<0.08m
- 横摆角误差<0.5°
- 车速可达60km/h保持稳定
5.3 性能优化建议
根据仿真结果,可进一步优化:
- 根据车速自适应调整Q矩阵权重
- 加入前馈补偿改善稳态误差
- 设计抗饱和机制防止执行器饱和
6. 常见问题与解决方案
6.1 联合仿真不稳定
可能原因及解决方法:
- 采样时间不匹配 → 检查并统一采样时间设置
- 接口变量单位不一致 → 验证单位转换关系
- 初始条件不协调 → 确保初始状态一致
6.2 LQR控制器发散
排查步骤:
- 验证系统矩阵(A,B)的可控性
- 检查权重矩阵的正定性
- 确认状态反馈增益计算正确
6.3 路径跟踪存在稳态误差
改进方案:
- 引入积分环节消除稳态误差
- 增加前馈控制项
- 重新调整Q矩阵中位置误差权重
7. 实际应用中的经验技巧
-
权重调整技巧:从对角线元素比例1:1:1:1开始,每次只调整一个权重,观察控制效果变化
-
实时调试方法:在Simulink中使用Dashboard模块创建调参面板,实时调整参数观察响应
-
模型简化建议:对于初步设计,可使用自行车模型;精细调参时再使用完整模型
-
执行器限制处理:在控制器输出端增加限幅模块,模拟真实转向系统的物理限制
-
多工况验证:除标准测试场景外,应增加低附着路面、侧风等干扰条件下的测试
在工程实践中,LQR控制器的性能很大程度上取决于权重矩阵的选择。我个人的经验是先用理论计算得到初步增益,然后通过大量仿真实验进行微调。特别是在不同车速下,可能需要设计多组权重来实现全车速范围内的最优控制。
