1.前言
线性二次调节(Linear Quadratic Regulator,LQR)是一种经典的现代控制理论方法,用于构造线性系统的最优控制器,它的目标是在控制系统的动态过程中,尽可能减少误差和能耗。LQR 的目标是通过最优控制输入,使系统状态最小化某一代价函数(即性能指标),以实现最佳控制。
2.应用场景
LQR 广泛用于工业控制、自动驾驶、航天器姿态控制、无人机控制等场景,特别是那些需要平衡控制精度和能量消耗的系统。
3.系统方程
对于一个系统,假设设计状态反馈控制器 ,将控制输入带入系统方程中,则可以得到:
......................................................................................................(1)
由于让系统稳定的条件是矩阵特征值的实部全为负的,其实设计一个控制律使系统稳定并不难,我们可以随便找几个具有负实部的特征值,从而得到系统的特征方程,然后利用待定系数,从而得到K值,利用这种方法,我们其实可以得到好多控制量。但是,如果我们想得到一个好的或者最优的控制量,那怎么办呢?
这里,就引出了代价函数的定义:
....................................................................................................(2)
其中,Q 和 R 是两个对角参数矩阵,分别决定了状态向量 x 和输入向量 u 的重要性。显然,J是一个二次型函数,这也是LQR中“Q”的由来
4. 代价函数的意义
考虑一个双变量系统,即, 则控制器设计为
假设, , 则 代价函数可以写成:
...............................................................................................(3)
如果令,则状态变量在代价函数的占比最大,的收敛速度较快;反之,,则说明的占比最大,如果想要使代价函数最小,则控制量需要最小,这也就意味着更加节省能量。
接下来,就是如何来确定。
5.LQR控制器的设计
将控制律 代入(2),可得代价函数:
...............................................................................................(4)
定义一个常量对称矩阵,且矩阵满足:
.........................................................................................(5)
由式(4)和(5)可得:
...............................(6)
所以,由(6)可知,代价函数的大小只与系统的初始状态和P有关,若想使代价函数最小,也就是使P最小。那么就转换成为求P的最小值。
将式子(5)进行展开,可得:
........................................................................(7)
将式(1)代入,可得:
.....................................................(8)
化简可得:
........................................................................(9)
将代入,若要式(9)成立,那么则有
.....................................................(10)
在这里,我们取
..........................................................................................................................(11)
注意,关于这里K的取值,由于时间关系,本人也没去研究,后续如果有时间再进行补充。(在网上也看到部分关于K的推导过程,但是本人感觉有待商榷,所以就没有借鉴)
然后将(11)代入(10)中,最后可得:
................................................................................(12)
上式被称为连续时间Algebraic Riccati Equation (ARE)或者Riccati方程。ARE是一个矩阵二次方程,对于给定的(A,B,Q,R)可以解出辅助矩阵P。之后,优化反馈控制器的K就可通过式(11)得出。
6.LQR总结
(1)根据系统的状态空间模型,确定A,B,C,D;
(2)设计参数矩阵Q,R;
(3)根据式(12)Riccati方程计算出辅助矩阵P;
(4)根据式(11)计算出K,根据 设计出控制器。
标签:控制,函数,系统,控制算法,矩阵,LQR,之二,代价 From: https://blog.csdn.net/weixin_40046251/article/details/143787169