ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

LQR算法在自动驾驶横向控制中的应用与实践

LQR算法在自动驾驶横向控制中的应用与实践 1. 项目概述在车辆动力学控制领域横向控制一直是自动驾驶系统的核心难题。这个基于CarSim/Simulink联合仿真的横向LQR控制器项目完美展现了如何将经典控制理论应用于实际车辆控制场景。我在开发车道保持系统时发现相比传统的PID控制LQR算法在应对复杂道路曲率变化时展现出显著优势。2. 核心算法原理2.1 车辆动力学建模建立准确的二自由度自行车模型是设计控制器的第一步。这个简化模型保留了横向运动和横摆运动两个核心自由度m(v̇y vxφ̇) Fyf Fyr Izφ̈ lfFyf - lrFyr其中关键参数包括m整车质量(kg)Iz绕z轴转动惯量(kg·m²)lf/lr前后轴到质心距离(m)vx纵向速度(m/s)2.2 轮胎力线性化处理在小角度假设下轮胎侧偏力可线性化为Fyf -Cfαf Fyr -Crαr其中侧偏角计算为αf ≈ δ - (vy lfφ̇)/vx αr ≈ -(vy - lrφ̇)/vx2.3 状态空间方程构建选取状态变量x[vy φ̇ y φ]ᵀ控制输入uδ得到状态空间方程ẋ Ax Bu y Cx其中系统矩阵A和控制矩阵B的具体形式需要根据车辆参数计算确定。3. LQR控制器设计3.1 代价函数设计LQR的核心是设计二次型代价函数J ∫(xᵀQx uᵀRu)dt其中Q矩阵状态权重通常对角元素取[1, 0.1, 10, 1]R矩阵控制权重典型值0.13.2 Riccati方程求解通过求解代数Riccati方程得到最优反馈增益矩阵KAᵀP PA - PBR⁻¹BᵀP Q 0 K R⁻¹BᵀP3.3 前馈补偿设计为消除稳态误差需增加前馈控制量δ_ff (C(-ABF)⁻¹B)⁻¹r其中r为期望路径曲率。4. Simulink实现细节4.1 联合仿真架构搭建CarSim-Simulink联合仿真环境的关键步骤配置CarSim S-Function接口建立车辆参数映射表设计数据同步机制设置仿真步长(建议0.01s)4.2 LQR模块实现在Simulink中构建LQR控制器的要点function [delta] LQR_Controller(y, phi, vy, phi_dot) persistent K; if isempty(K) [K,~,~] lqr(A,B,Q,R); end x [vy; phi_dot; y; phi]; delta -K*x; end4.3 接口处理特别注意信号单位的统一角度转换CarSim输出为deg需转为rad坐标系匹配确保CarSim和Simulink坐标系一致延迟补偿添加20ms延迟补偿模块5. 参数调试经验5.1 Q矩阵调参技巧通过试错法调整Q矩阵的经验值场景vy权重φ̇权重y权重φ权重高速直道0.50.0550.5低速弯道1.00.1101.0换道场景2.00.2202.05.2 常见问题排查调试过程中遇到的典型问题及解决方案系统发散检查车辆参数准确性特别是轮胎侧偏刚度稳态误差增加前馈补偿或调整Q矩阵中y权重高频振荡适当增大R值或添加低通滤波器响应迟滞检查仿真步长是否过小(建议≥0.005s)6. 性能优化策略6.1 速度自适应调节实现Q矩阵随速度自适应变化Q(1,1) 1/(0.5 0.01*vx); % vy权重 Q(3,3) 10 0.1*vx; % y权重6.2 多目标权重分配针对不同控制目标设计权重策略路径跟踪精度增大y和φ权重乘坐舒适性减小φ̇权重执行器保护增大R值6.3 抗干扰增强添加扰动观测器补偿设计降阶观测器估计侧向风扰在控制量中叠加补偿项限幅处理避免过补偿7. 实测效果对比在CarSim中设置双移线工况测试对比不同控制方法指标PID控制LQR控制提升幅度最大横向误差(m)0.350.1265.7%RMS误差(m)0.180.0666.7%转向角变化率(deg/s)15.28.742.8%计算耗时(ms)0.120.25-108%虽然LQR计算量稍大但控制品质显著提升。实际部署时可通过代码优化将单步计算控制在5ms内。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进