1. 项目概述:LQR算法在车辆LKA系统中的应用
在自动驾驶技术快速发展的今天,车道保持辅助系统(LKA)已成为现代车辆不可或缺的安全功能。作为一名长期从事车辆控制算法开发的工程师,我想分享一个基于线性二次型调节器(LQR)的二自由度车辆LKA算法实现方案。这个方案通过Carsim和Simulink联合仿真,能够有效模拟车辆在多种工况下的车道保持性能。
LQR控制算法因其优秀的稳定性和鲁棒性,特别适合用于车辆横向控制。与传统的PID控制相比,LQR能够综合考虑多个状态变量的优化,通过精心设计的权重矩阵实现对车辆横向运动的精确控制。在实际工程应用中,我们通常需要先在仿真环境中验证算法效果,这正是Carsim和Simulink联合仿真的价值所在。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 二自由度车辆模型建立
2.1 车辆动力学基础
要理解LKA算法,首先需要建立合适的车辆动力学模型。二自由度车辆模型是分析车辆横向运动最常用的简化模型,它保留了车辆侧向运动和横摆运动这两个对车道保持最重要的自由度。
想象一下你的车在高速公路上行驶:当方向盘转动时,车辆不仅会改变前进方向(横摆运动),还会产生侧向位移(侧向运动)。这两个运动相互耦合,共同决定了车辆的行驶轨迹。在建模时,我们主要关注以下关键状态变量:
- 质心侧偏角β:车辆速度方向与车身轴线之间的夹角
- 横摆角速度ω_r:车辆绕垂直轴的旋转角速度
- 前轮转角δ_f:前轮相对于车身的角度
- 车速v:车辆前进速度
2.2 状态方程推导
基于牛顿力学原理,我们可以建立车辆侧向力和横摆力矩的平衡方程。假设小角度近似且忽略一些次要因素,得到如下状态空间表达式:
[
\begin{bmatrix}
\dot{\beta} \
\dot{\omega}_r
\end
\begin{bmatrix}
a_{11} & a_{12} \
a_{21} & a_{22}
\end{bmatrix}
\begin{bmatrix}
\beta \
\omega_r
\end{bmatrix}
+
\begin{bmatrix}
b_{1} \
b_{2}
\end{bmatrix}
\delta_f
]
其中各系数与车辆参数的关系为:
[
a_{11} = -\frac{C_f + C_r}{mv}, \quad a_{12} = -1 + \frac{C_r l_r - C_f l_f}{mv^2}
]
[
a_{21} = \frac{C_r l_r - C_f l_f}{I_z}, \quad a_{22} = -\frac{C_f l_f^2 + C_r l_r^2}{I_z v}
]
[
b_{1} = \frac{C_f}{mv}, \quad b_{2} = \frac{C_f l_f}{I_z}
]
这里:
- m:车辆质量(kg)
- l_f、l_r:前后轴到质心的距离(m)
- C_f、C_r:前后轮胎侧偏刚度(N/rad)
- I_z:车辆绕z轴的转动惯量(kg·m²)
- v:车速(m/s)
2.3 参数计算实例
让我们通过一个具体例子来说明如何计算这些系数。假设我们有一辆参数如下的车辆:
matlab复制m = 1500;
