LQR控制器,先设定成本函数,再由工程师设定加权,利用数学算法来找到使成本函数最小化的设定值。成本函数一般会定义为主要量测量(例如飞行高度或是制程温度)和理想值的偏差的和。算法会设法调整参数,让这些不希望出现的偏差降到最小。而控制量的大小本身也会包括在成本函数中。
线性二次最优控制LQR控制实验
线性二次最优控制理论分析
线性二次最优控制\(LQR\)基本原理为,对于线性时不变系统,由系统方程: \[ \dot x(t)=A(t)x(t)+B(t)u(t) \\ y(t)=C(t)x(t)+D(t)u(t) \\ x(t_0)=x_0 \] 确定下列最佳控制向量的矩阵\(K\): \[ u(t)=-K(t)x(t) \] 使得性能指标达到最小值,即: \[ J=\frac{1}{2}x^T(t_f)Px(t_f)+\frac{1}{2}\int_{t_0}^{t_f}[x^T(t)Q(t)x(t)+u^T(t)R(t)u(t)]dt \] 式中:
- \(Q\):正定(或正半定)厄米特或实对称阵
- \(R\):为正定厄米特或实对称阵
终端时间有限时连续系统的状态调节器问题,要求寻找最优控制\(u(t)\),使\(J\)最小。这里\(u(t)\)无约束。\(P\)、\(Q(t)\)为对称半正定阵,\(R(t)\)为对称正定阵。终端时间\(t_f\)为有限值。
因\(u(t)\)无约束,故等同于用经典变分法求解。取哈密顿函数为: \[ H=\frac{1}{2}[x(t)^TQ(t)x(t)+u^T(t)R(t)u(t)]+\lambda^T(t)[A(t)x(t)+B(t)u(t)] \] 最优解的必要条件如下:
- 协态方程为:
\[ \dot \lambda=-\frac{\partial H}{\partial x}=-[Q(t)x(t)+A^T(t)\lambda(t)] \]
- 控制方程为:
\[ \frac{\partial H}{\partial u}=R(t)u(t)+B^T(t)\lambda(t)=0 \\ u=-R^{-1}(t)B^T(t)\lambda(t) \]
因\(R(t)\)正定,故\(R^{-1}(t)\)存在,由上式可确定最优控制\(u(t)\)。为寻求最优反馈控制律还需把\(u(t)\)与状态\(x(t)\)联系起来。
- 横截条件为:
\[ \lambda(t_f)=\frac{\partial\phi}{\partial x(t_f)}=\frac{\partial}{\partial x(t_f)}[\frac{1}{2}x^T(t_f)Px(t_f)]=Px(t_f) \]
再一次遇到了两点边值问题(已知\(x(t_0)\)和\(\lambda(t_f)\)),如前所述,一般要试凑\(\lambda(t_0)\)再积分协态方程使\(\lambda(t_f)\)满足要求。
但这里处理的是线性微分方程,可找到更简单的解法。从可见,协态\(\lambda(t)\)和状态\(x(t)\)在终端\(t_f\)时刻成线性关系。记\(\lambda(t)=K(t)x(t)\)。
将线性关系代入横截条件方程得: \[ [\dot K(t)+K(t)A(t)-K(t)B(t)R^{-1}(t)B^T(t)K(t)+A^T(t)K(t)+Q(t)]x(t)=0 \] 上式对任意\(x(t)\)都应成立,故方括号内的项应为零,这就得出: \[ \dot K(t)=-K(t)A(t)-A^T(t)K(t)+K(t)B(t)R^{-1}(t)B^T(t)K(t)-Q(t) \] 再根据线性关系: \[ \lambda(t)=K(t)x(t) \\ \dot x(t)=A(t)x(t)-B(t)R^{-1}(t)B^T(t)K(t)x(t)\\ \dot\lambda(t)=\dot K(t)x(t)+K(t)\dot x(t)=-Q(t)x(t)-A^T(t)K(t)x(t)\\ K(t_f)=P \] 得到K满足含上述终值条件的如下\(Riccati\)方程: \[ \dot K(t)=-K(t)-A^T(t)K(t)+K(t)B(t)R^{-1}(t)B^T(t)K(t)-Q(t) \] 上式是\(K(t)\)的非线性矩阵微分方程,称为黎卡提(\(Riccati\))矩阵微分方程。一般来说得不出\(K(t)\)的解析表达式,但可用计算机程序算出\(K(t)\)的数值解。为了求解,要知道它的边界条件\(K(t_f)=P\)。
因此可从\(t_f\)到\(t_0\)逆时间积分黎卡提微分方程,求出\(K(t)\)。可构成最优反馈控制: \[ u(t)=-R^{-1}(t)B^T(t)K(t)X(t)=-G(t)x(t) \] 其中,\(G(t)=R^{-1}(t)B^T(t)K(t)\),又称为最优反馈增益矩阵。
即使系统是定常的,即系统矩阵\(A\),输入矩阵\(B\)为常数阵,加权阵\(R\)和\(Q\)也是常数阵,但\(K(t)\)仍为时变阵。
这从\(K(t)\)是黎卡提微分方程的解可看出。\(K(t)\)时变时,反馈控制增益也时变,在实现时总是不太方便。
对线性定常系统,若终端时间\(t_f\rightarrow\infty\),且系统满足一些附加条件时,\(K(t)\)将变为常数阵\(K\)。
线性定常系统: \[ \dot x(t)=Ax(t)+Bu(t) \] \(x\)为\(n\)维,\(u\)为\(m\)维,系统是可控的或至少是可稳的(可稳指不可控的状态是渐近稳定的)。性能指标为: \[ J=\frac{1}{2}\int_{0}^{\infty}[x(t)^TQx(t)+u(t)^TRu(t)]dt \] 其中\(u(t)\)不受约束,\(Q\)和\(R\)为常数对称正定阵。或者可将对\(Q\)的要求改为对称半正定,\((A,Q_1)\)可观测,或至少可检测(可检测指不可观测的状态是渐近稳定的),\(Q_1\)是\(Q\)的矩阵平方根。
已经证明了:使\(J\)为极小的最优控制是存在和唯一的,且可表示为: \[ u(t)=-R^{-1}B^TKx(t)=-Gx(t) \]
LQR控制参数调节及仿真
前面已经得到了直线一级倒立摆系统的系统状态方程: \[ \begin{bmatrix} \dot x \\ \ddot x \\ \dot\phi \\ \ddot\phi \\ \end{bmatrix} = \begin{bmatrix} 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1\\ 0 & 0 & 29.4 & 0\\ \end{bmatrix} \begin{bmatrix} x \\ \dot x \\ \phi \\ \dot\phi \\ \end{bmatrix} + \begin{bmatrix} 0 \\ 1 \\ 0 \\ 3 \\ \end{bmatrix} u \]
\[ y= \begin{bmatrix} x \\ \phi \end{bmatrix} = \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 \end{bmatrix} \begin{bmatrix} x \\ \dot x \\ \phi \\ \dot\phi \\ \end{bmatrix} \]
假设全状态反馈可以实现(四个状态量都可测),找出确定反馈控制规律的向量\(K\)。在\(MATLAB\)中得到最优控制器对应的\(K\)。\(LQR\)函数允许你选择两个参数——\(R\)和\(Q\),这两个参数用来平衡输入量和状态量的权重。最简单的情况是假设\(R=1\),\(Q=C^′C\)。当然,也可以通过改变\(Q\)矩阵中的非零元素来调节控制器以得到期望的响应。
取: \[ Q= \begin{bmatrix} 1000 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 \\ 0 & 0 & 200 & 0 \\ 0 & 0 & 0 & 0 \end{bmatrix} , R=1 \] 其中,\(Q_{1,1}\)代表小车位置的权重,而\(Q_{3,3}\)是摆杆角度的权重。使用\(Matlab\)语句如下:
1 | A=[0 1 0 0; |
得到控制矩阵: \[ K= \begin{bmatrix} -31.6228 & -20.1507 & 72.7181 & 13.1552 \end{bmatrix} \]