LQR控制基本原理(包括Riccati方程具体推导过程)

全状态反馈控制系统

\left\{\begin{matrix} \dot{x}=Ax+Bu\\ y=Cx+Du \end{matrix}\right.

状态反馈控制器     

 u=-kx=-[k_{1},k_{2},\cdots]\begin{bmatrix} x_{1}\\ x_{2}\\ \vdots \end{bmatrix}

\dot{x}=Ax-Bkx=(A-Bk)x=A_{cl}x

通过选择K,可以改变A_{cl}的特征值,进而控制系统表现。

LQR控制器

最优控制,其本质就是让系统以某种最小的代价来让系统运行,当这个代价被定义为二次泛函,且系统是线性的话,那么这个问题就称为线性二次问题,设计的控制器(即问题的解)可以称为LQR(Linear Quadratic Regulator)线性二次调节器。

1、连续时间

代价函数

J=\int_{0}^{\infty }(x^{T}Qx+u^{T}Ru)dt,Q=Q^T,R=R^T,Q\geqslant 0,R\geqslant 0

一般来说,Q阵和R阵为单位对角阵,对角阵上的元素对应着不同状态量和控制量的权重大小,越大说明我们设计时对于该量的重视程度越大,即希望这个量在变化过程中保持较小的值,换种说法就是对于该量的“惩罚”越大。积分号说明从开始控制起到最终无限时间代价函数值的累积,因为是二次的,所以代价始终大于0,最终趋于0,我们的设计目标就是得到一系列的控制序列使代价累积的最小。

具体推导过程

u=-kx代入代价函数J,有

J=\int_{0}^{\infty }x^{T}(Q+K^{T}RK)xdt

假设存在一个常量矩阵P使得

\frac{\mathrm{d} }{\mathrm{d} t}(x^TPx)=-x^{T}(Q+K^{T}RK)x

将上式左侧微分展开

\frac{\mathrm{d} }{\mathrm{d} t}(x^TPx)=\dot{x}^TPx+x^TP\dot{x}=-x^{T}(Q+K^{T}RK)x

代入控制量\dot{x}=(A-BK)x可以整理得到

A^TP+PA+Q-K^TB^TP-PBK+K^TRK=0

观察上面的等式,A,B,Q,R,P都是常值矩阵,唯一可变的是K阵,所以问题转换为找到一个K使得代价函数最小,一种思路是如果我们可以把含有K的部分转换成类似(M+N)^T(M+N)的结构,那么要使代价最小,只需使M+N=0,那么K便可以求出。

R=T^TT代入上式中,可以得到

A^TP+PA+Q-K^TB^TP-PBK+K^TT^TTK=0

-K^TB^TP-PBK+K^TT^TTK用待定系数法化成目标形式M^TM+M^TN+N^TM+N^TN,可得

M=-(T^{-1})^TB^TP,N=TK

-K^TB^TP-PBK+K^TT^TTK=(M+N)^T(M+N)-PBR^{-1}B^TP

令​​​​​​​TK-(T^{-1})^TB^TP=0解出

K=R^{-1}B^TP

代入Riccati方程中化简后得

A^TP+PA-PBR^{-1}B^TP+Q=0

设计步骤

  • 选择Q、R参数矩阵
  • 求解Riccati方程A^TP+PA-PBR^{-1}B^TP+Q=0得到矩阵P
  • 计算增益K=R^{-1}B^TP得到反馈控制量u=-kx

2、离散时间

离散系统

x(K+1)=Ax(k)+Bu(k)

代价函数

J=\sum_{k=1}^{N}(x^TQx+u^TRu)

设计步骤

  • 确定迭代范围N
  • 设置迭代初始值P_{N}=Q
  • t=N,\cdots ,1从后向前循环迭代求解离散时间的代数RIccati方程

​​​​​​​​​​​​​​P_{t-1}=Q+A^TP_{t}A-A^TP_{t}B(R+B^TP_{t+1}B)^{-1}B^TP_{t}A​​​​​​​ 

  •  t=0,\cdots ,N​​​​循环计算反馈系数K_{t}=(R+B^TP_{t+1}B)^{-1}B^TP_{t+1}A并得到控制量

u_{t}=-K_{t}x_{t}​​​​​​​ 

 参考资料:LQR最优控制方法小结 - 知乎

【控制理论】离散及连续的LQR控制算法原理推导_CHH3213的博客-CSDN博客_lqr控制

【Advanced控制理论】8_LQR 控制器_状态空间系统Matlab/Simulink建模分析_哔哩哔哩_bilibili

  • 22
    点赞
  • 167
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
离散LQR(线性二次调节)控制器是一种广泛应用于控制系统的优化控制方法。它通过在系统状态空间中定义一个成本函数,并最小化这个成本函数来设计控制器,以实现系统的性能优化。 离散LQR控制器的设计过程包含以下几个步骤: 1. 系统建模:首先,需要根据实际的控制系统确定系统的数学模型,并将其转换为状态空间表示。一般来说,这个模型可以使用差分方程或差分方程组来描述。 2. 定义成本函数:然后,需要定义一个成本函数,用来评估系统的性能。成本函数可以包括系统状态、控制输入或者其他相关指标。一般来说,成本函数是由系统性能指标和权重矩阵构成的二次型函数。 3. 计算最优控制器:通过解决离散时不变的Riccati方程,可以得到最优的状态反馈增益矩阵。这个增益矩阵可以将系统状态与控制输入相联系,以实现对系统的最优控制。 4. 性能评估:通过模拟系统的行为,可以评估控制器的性能。这可以通过计算成本函数的值来实现,从而比较不同控制器的优劣。 离散LQR控制器的优点是:它能够优化系统的性能,使得系统的稳定性、响应速度和鲁棒性都能得到改善。此外,离散LQR控制器的设计方法相对简单,容易实现和调整。 然而,离散LQR控制器也存在一些限制。首先,它要求系统的模型是线性的,并且能够被准确地表示为状态空间方程。其次,离散LQR控制器也对系统的测量精度和噪声等因素比较敏感。 总之,离散LQR控制器是一种基于状态反馈的优化控制方法,适用于线性离散系统。它可以通过最小化成本函数,设计出最优的控制器,从而提高系统的性能。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值