LQR控制算法及代码实践

本文探讨了如何利用状态反馈控制器设计使线性系统的特征值满足稳定性条件,并介绍了代价函数J在控制效果优化中的作用。通过调整Q和R矩阵,可以控制状态收敛速度和输入大小。在车辆动力学模型中,应用LQR控制算法确定最优状态反馈矩阵K,以实现最佳控制效果。此外,结合前馈控制量,可以进一步优化系统的动态响应。最后,前轮转角的控制量是状态反馈控制量与前馈控制量的组合,经过限幅后输出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景

假设有一个线性系统能用状态向量的形式表示成:
在这里插入图片描述
在这里插入图片描述
设计一个状态反馈控制器:
u = − K x u=−Kx u=Kx
则此时状态方程可以写为:
在这里插入图片描述
由于让系统稳定的条件是矩阵Acl的特征值的实部均为负数,因此我们可以手动选择几个满足上述条件的特征值,然后反解出K,从而得到控制器。
那么问题来了,我们该如何选择特征值,才能让控制器的控制效果最好呢?现在我们定义一种代价函数:
在这里插入图片描述
其中,Q和R是两个对角参数矩阵,Q为半正定矩阵, R为正定矩阵。分别决定了状态向量 x 和输入向量 u 的重要性。显然,J是一个二次型函数,这也是LQR中“Q”的由来。
我们希望的是在满足系统稳定的前提下,通过设计合适的K,让代价函数J最小。
下面我们来分析代价函数的意义。

代价函数的意义

参考这一篇文章:
链接: link
概括来说就是:调节Q的大小可以控制系统状态收敛的快慢;调节R的大小可以控制让系统达到稳态所需输入的大小;

Apollo2.0 LQR控制算法解读

车辆动力学模型的推导可以看这篇:
链接: link

  1. 当推导出车辆动力学模型后,选取横向偏差、横向偏差变化率,横摆角角度偏差,横摆角角度偏差变化率作为状态量建立状态空间方程:
    在这里插入图片描述
  2. 建立目标函数:
    在这里插入图片描述
  3. 其中Q为状态权重系数,R为控制量权重系数。当上述目标函数最小时就得到最优的状态反馈矩阵K,此时的K可以保证求出最佳控制量,即最佳前轮转角。

在这里插入图片描述4. 上图表示求出最佳转角之后,只能保证(A-BK)x那部分达到稳态,所以还需要增加一个前馈控制量,试另一部分趋近于0.在这里插入图片描述
4. 这个前馈控制量试可以通过纵向车速Vx和道路的半径R计算得到
5. 最终的前轮转角的控制量为最优状态反馈控制量与前馈控制前轮转角之和。计算的出前轮转角经过上下限的限幅后进行输出。
参考链接: link
link

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值