最优控制理论 四、线性二次型最优控制和LQR

在前面两节最优控制理论 二、哈密尔顿函数法,我们利用Hamilton函数法讨论了终端等式约束的非线性控制系统的最优控制,它所解决的是
x ˙ = f [ x ( t ) , u ( t ) , t ] ; x ( t o ) = x 0 t o t t f min u ( t ) J = φ [ x ( t f ) , t f ] + t o t f L [ x ( t ) , u ( t ) , t ] d t ψ ( x ( t f ) , t f ) = 0 \dot\mathbf {x}=f[\mathbf x(t), \mathbf u(t), t] ; \quad \mathbf x\left(t_{o}\right)=\mathbf x_0\quad t_{o} \leq t \leq t_{f}\\ \min_{u(t)}J=\varphi\left[\mathbf x\left(t_{f}\right), t_{f}\right]+\int_{t_{o}}^{t_{f}} L[\mathbf x(t), \mathbf u(t), t] \text d t\\ \psi(\mathbf x(t_f),t_f)=0

这样的问题。
我们下面来讨论,更特殊一些的,连续线性系统、线性反馈、二次型性能指标、无约束问题的最优控制。事实上,前面两章的方法由于解析解不易推导及BVP问题难以直接求解,所以基本只能用来进行离线的轨迹规划;而LQR方法简单到调用一个命令就可以给出反馈增益矩阵,能在工程应用中实现实时在线控制。

线性时变系统的二次型最优控制

对于这样一个性能指标为二次型函数的线性时变系统:
x ˙ = A ( t ) x + B ( t ) u , x ( 0 ) = x 0 0 0 t t f min u ( t ) J = 1 2 x T ( t f ) S f x ( t f ) + 1 2 0 t f ( x T Q ( t ) x + u T R ( t ) u ) d t (问题1) \dot{\mathbf{x}}=A(t)\mathbf{x}+B(t)\mathbf{u}, \quad \mathbf{x}(0)=\mathbf{x}_{0}\neq0\quad 0 \leq t \leq t_{f}\tag {问题1}\\ \min_{\mathbf u(t)}J=\frac{1}{2} \mathbf{x}^{\mathrm T}(t_f) \mathbf{S}_f\mathbf{x}(t_f) +\frac{1}{2} \int_{0}^{t_f}\left(\mathbf{x}^{\mathrm T} \mathbf{Q}(t) \mathbf{x}+\mathbf{u}^{\mathrm T} \mathbf{R}(t) \mathbf{u}\right) \text d t

其中 x 0 , t f \mathbf x_0,t_f 给定, x R n , u ( t ) R m , S = S T 0 , Q = Q T 0 , R = R T 0 \mathbf x\in\Reals^n,\mathbf u(t)\in\Reals^m,S=S^{\mathrm T}\succcurlyeq0, Q=Q^{\mathrm T}\succcurlyeq0,R=R^{\mathrm T}\succ0 ,(正定对称矩阵)状态方程中的 A ( t ) , B ( t ) A(t),B(t) 、以及性能指标中的 Q ( t ) , R ( t ) Q(t),R(t) 均为时变矩阵。
终端控制器问题(LQ Terminal Controller)的要求是,求出一个控制器使得从不为0的初始状态,经过一段时间后转移到接近零状态 x ( t f ) 0 0 \mathbf x(t_f)\approx 0\neq0 。显然若终端状态彻底为0,则性能指标就没有存在第一项的必要了。

Riccati方程

问题的一阶必要条件按照Hamilton函数法建立问题描述:

  • 构建Hamiltonian
    H = 1 2 ( x T Q x + u T R u ) + λ T ( A x + B u ) H=\frac{1}{2}\left(\mathbf{x}^{\mathrm T} \mathbf{Q} \mathbf{x}+\mathbf{u}^{\mathrm T}\mathbf{R} \mathbf{u}\right)+\lambda^{\mathrm T}(\mathbf{A} \mathbf{x}+\mathbf{B} \mathbf{u})
  • Euler方程
    x ˙ = A x + B u λ ˙ = H x = Q x A T λ \dot{\mathbf{x}}=A\mathbf{x}+B\mathbf{u}\\ \dot{\lambda}=-H_{\mathrm{x}}=-\mathbf{Q} \mathbf{x}-\mathbf{A}^{\mathrm T} \boldsymbol{\lambda}
  • 控制方程
    H u = R u + B T λ = 0       u = R 1 B T λ \frac{\partial H}{\partial \mathbf u}=\mathbf{R} \mathbf{u}+\mathbf{B}^{\mathrm{T}} \lambda=\mathbf{0} \quad \implies \mathbf{u}=-\mathbf{R}^{-1} \mathbf{B}^{\mathrm{T}} \lambda
  • 边界条件
    x ( 0 ) = x 0 λ ( t f ) = φ x T       λ ( t f ) = S f x ( t f ) \mathbf{x}(0)=\mathbf{x}_{0}\\ \lambda(t_f)=\frac{\partial \varphi}{\partial \mathbf x^{\mathrm T}}\implies \lambda(t_f)=S_f\mathbf x(t_f)

假设协态变量始终和状态变量成线性关系
λ ( t ) = S ( t ) x ( t ) (1) \lambda(t)=S(t)x(t)\tag 1

其中 S ( t ) S(t) 未知。这个假设的合理性可以考虑Hamilton系统状态转移矩阵的线性性:
[ x ( t f ) λ ( t f ) ] = Φ ( t f ; t ) [ x ( t ) λ ( t ) ] = [ Φ 11 Φ 12 Φ 21 Φ 22 ] [ x ( t ) λ ( t ) ] \begin{bmatrix}x(t_f)\\ \lambda(t_f)\end{bmatrix}= \Phi(t_f;t) \begin{bmatrix}x(t)\\\lambda(t)\end{bmatrix}= \begin{bmatrix}\Phi_{11}\quad \Phi_{12}\\ \Phi_{21}\quad \Phi_{22}\end{bmatrix} \begin{bmatrix}x(t)\\\lambda(t)\end{bmatrix}\\

Φ 21 x + Φ 22 λ = λ ( t f ) = S f x ( t f ) = S f [ Φ 11 x + Φ 12 λ ] λ ( t ) = [ Φ 22 S f Φ 12 ] 1 [ S f Φ 11 Φ 21 ] x ( t ) S ( t ) x ( t ) \Phi_{21}x+\Phi_{22}\lambda= \textcolor{blue}{\lambda(t_f)=S_f\mathbf x(t_f)} =S_f[\Phi_{11}x+\Phi_{12}\lambda]\\ \Downarrow\\ \lambda(t)=[\Phi_{22}-S_f\Phi_{12}]^{-1}[S_f\Phi_{11}-\Phi_{21}]\mathbf x(t)\equiv S(t)\mathbf x(t)

由上述假设,可得到最优的控制器是反馈控制器,且它的形式为
u ( t ) = R 1 B T S ( t ) x ( t ) = K ( t ) x ( t ) (2) u^*(t)=-R^{-1}B^{\mathrm T}S(t)\mathbf x(t)=-K(t)\mathbf x(t)\tag 2
式中的 K ( t ) K(t) 为未知的反馈增益矩阵。把控制代入状态方程和协态变量,构成两点边值问题为
x ˙ = A x B R 1 B T S ( t ) x = ( A B R 1 B T S ( t ) ) x λ ˙ = S ˙ x + S ( t ) x ˙ = S ˙ ( t ) x + S ( t ) ( A B R 1 B T S ( t ) ) x = Q x A T S ( t ) x (3) \begin{aligned} \dot{\mathbf{x}}&=A \mathbf{x}-B R^{-1} B^{\mathrm T} S(t) \mathbf{x}=\quad \left(A-B R^{-1} B^{\mathrm T} S(t)\right) \mathbf{x} \\ \dot{\lambda}&=\dot{ S} \mathbf{x}+ S(t) \dot{\mathbf{x}}=\quad \dot{ S} (t)\mathbf{x}+ S(t)\left(A-B R^{-1} B^{\mathrm T} S(t)\right) \mathbf{x}\\&=-Q \mathbf{x}-A^{\mathrm T} S(t) \mathbf{x} \end{aligned}\quad\tag 3

将最优控制 ( 3 ) (3) 代入状态方程,即可得到闭环系统的动态方程:

[ x ˙ λ ˙ ] = [ A B R 1 B T Q A T ] [ x λ ] (3*) \begin{bmatrix} \dot{\mathbf{x}} \\ \dot{\lambda} \end{bmatrix}=\begin{bmatrix} A &-{B R}^{-1} B^{\mathrm T} \\ -Q & -A^{\mathrm T} \end{bmatrix}\begin{bmatrix} \mathbf{x} \\ \lambda \end{bmatrix}\tag {3*}

这个TPBVP问题的未知变量数2n,初始状态提供n个边界条件,终端时刻 λ ( t f ) = S x ( t f ) \lambda(t_f)=S\mathbf x(t_f) 提供n个横截条件。
公式 ( 3 ) (3) S ( t ) S(t) 是一个与时间相关的函数矩阵,它在终端时刻的值就是性能指标中我们设定的值。考虑公式 ( 3 ) (3) 最后一个等式关系,可以求解出 S ( t ) S(t)
S ˙ ( t ) = A T S + S A S B R 1 B T S + Q , S ( t f ) = S f (4) -\dot{S}(t)=A^{\mathrm T} S+S A-S B R^{-1} B^{\mathrm T} S+Q, \quad S(t_f)=S_f\tag 4
这个公式 ( 4 ) (4) 称为矩阵黎卡提Riccati方程,可以证明 S ( t ) S(t) 是半正定对称矩阵。已知 S ( t f ) S(t_f) ,按照时间逆向积分,可以得到 S ( t ) S(t) ,最终得到 S ( t 0 ) S(t_0) ;然后考虑到 λ ( t 0 ) = S ( t 0 ) x 0 \lambda(t_0)=S(t_0)\mathbf x_0 可以得到问题 ( 3 ) (3*) 的初值,然后再正向积分一次即可得到所有的结果。

非对角阵的性能指标

如果遇到下面这种形式的性能指标
J = 1 2 x T ( t f ) S f x ( t f ) + 1 2 0 t f ( x T Q x + u T R u + 2 x T N u ) d t = 1 2 x T ( t f ) S f x ( t f ) + 1 2 t 0 t f [ X U ] T [ Q N N T R ] [ X U ] d t (问题1*) J=\frac{1}{2} \mathbf{x}^{\mathrm T}(t_f) \mathbf{S}_f \mathbf{x}(t_f)+ \frac 1 2\int_{0}^{t_f}\left(x^{T} Q x+u^{T} R u+2 x^{T} N u\right) \text d t\\ =\frac{1}{2} \mathbf{x}^{\mathrm T}(t_f) \mathbf{S}_f\mathbf{x}(t_f)+ \frac{1}{2} \int_{t_{0}}^{t_{f}}\begin{bmatrix} X \\U \end{bmatrix}^{\mathrm{T}}\begin{bmatrix} Q & N \\ N^{\mathrm{T}} & R \end{bmatrix} \begin{bmatrix}X \\U \end{bmatrix} \mathrm{d} t\tag{问题1*}

其中 Q 0 , R 0  且  Q N R 1 N T 0 Q \succcurlyeq 0, R\succ0 \text { 且 } Q-N R^{-1} N^{\mathrm T}\succcurlyeq0 ,这个情况可以通过配方法转换成对角阵的形式[2]:

[ X U ] T [ Q N N T R ] [ X U ] = X T Q X + 2 X T N U + U T R U = X T Q X + U T R U + X T N U + U T N T X + X T N R 1 N T X X T N R 1 N T X = X T ( Q N R 1 N T ) X + ( U + R 1 N T X ) T R ( U + R 1 N T X ) \begin{aligned} &\begin{bmatrix} X \\U \end{bmatrix}^{\mathrm{T}}\begin{bmatrix} Q & N \\ N^{\mathrm{T}} & R \end{bmatrix} \begin{bmatrix}X \\U \end{bmatrix}\\ &=X^{\mathrm{T}} Q X+2 X^{\mathrm{T}} N U+U^{\mathrm{T}} R U \\&=X^{\mathrm{T}} Q X+U^{\mathrm{T}} R U+X^{\mathrm{T}} N U+U^{\mathrm{T}} N^{\mathrm{T}} X +X^{\mathrm{T}} N R^{-1} N^{\mathrm{T}} X-X^{\mathrm{T}} N R^{-1} N^{\mathrm{T}} X \\&=X^{\mathrm{T}}\left(Q-N R^{-1} N^{\mathrm{T}}\right) X+\left(U+R^{-1} N^{\mathrm{T}} X\right)^{\mathrm{T}} R\left(U+R^{-1} N^{\mathrm{T}} X\right) \end{aligned}

{ Q ~ = Q Q 1 R 1 N T U ~ = U + R 1 N T X (5) \left\{\begin{array}{l} \tilde{Q}=Q-Q_{1} R^{-1} N^{\mathrm{T}} \\ \tilde{U}=U+R^{-1} N^{\mathrm{T}} X \end{array}\right.\tag 5

可把原系统化成新的形式
x ˙ = A x + B ( u ~ R 1 N T x ) = ( A B R 1 N T ) x + B u ~ \dot x=Ax+B(\tilde u-R^{-1} N^{\mathrm{T}} x) =(A-BR^{-1} N^{\mathrm{T}} )x+B\tilde u

这个新系统可以套用前面所述的方法, ( 1 ) (问题1*) 等价于求解 ( 1 ) (问题1)
J = 1 2 x T ( t f ) S f x ( t f ) + 1 2 0 t f ( x T Q ~ x + u ~ T R u ~ ) d t J=\frac{1}{2} \mathbf{x}^{\mathrm T}(t_f) \mathbf{S}_f \mathbf{x}(t_f)+ \frac 1 2\int_{0}^{t_f}\left(x^{T} \tilde Q x+\tilde u^{T} R \tilde u\right) \text d t
总结
把非线性系统在标称状态附近线性化,就可得到线性时变系统。在这个意义上,上面讨论的问题很宽泛。此外,问题还在于只能采用数值计算方法,要计算 x ( t ) , λ ( t ) , S ( t 0 ) \mathbf x(t),\lambda(t),S(t_0) ,以及反馈控制采用的是时变增益 K ( t ) K(t) 。在工程上使用更多的是线性定常系统、无穷时域的相关问题。也就是我们下面要讨论的LQR问题。

t f = t_f=\infty 的线性二次型调节器

线性系统(定常或时变)、二次型指标的状态调节器问题一般称为线性二次型调节器(Linear Quadratic Regulator,LQR),其任务通常为

  • 有限时间内,把状态调节到接近0
  • 无穷时域,使状态在干扰下保持在0附近,以上两种都是状态调节器问题
  • 无穷时域,使状态保持在参考轨迹 x r e f ( t ) x_{ref}(t) 附近,等价于使跟踪误差 δ x = x x r e f \delta x=x-x_{ref} 维持在0附近,也就是状态跟踪器问题
  • 输出调节器和输出跟踪器问题,都是增加了一项观测方程 y = C x \mathbf y=C\mathbf x ,控制的对象是 y ( t ) y(t)

无限时域、线性定常系统的LQR问题是 ( 问题 1 ) (\text{问题}1) 的特殊形式,其中时变矩阵为常值矩阵 A ( t ) = A , B ( t ) = B , Q ( t ) = Q , R ( t ) = R A(t)=A,B(t)=B,Q(t)=Q,R(t)=R ,且 S f = 0 S_f=0 ,即
x ˙ = A x + B u , x ( 0 ) = x 0 0 t < min u ( t ) = K x ( t ) J = 1 2 t 0 [ x ( t ) T Q x ( t ) + u ( t ) T R u ( t ) ] d t (问题2) \dot{\mathbf{x}}=A\mathbf{x}+B\mathbf{u}, \quad \mathbf{x}(0)=\mathbf{x}_{0}\quad 0 \leq t \lt\infty\\ \min_{u(t)=-Kx(t)}J=\frac{1}{2} \int_{t_{0}}^{\infty}\left[x(t)^{\mathrm T} Q x(t)+u(t)^{\mathrm T} R u(t)\right] \text d t\tag{问题2}

采用线性反馈控制器. 控制回路如下图:
反馈控制器

要满足线性反馈,即 u ( t ) = K x ( t ) \mathbf u^*(t)=-K\mathbf x(t) ,考虑最优控制 u ( t ) = R 1 B T λ ( t ) \mathbf u^*(t)=-\mathbf{R}^{-1} \mathbf{B}^{\mathrm T}\lambda(t) ,可以导出协态变量与状态变量成线性关系: λ ( t ) = S x ( t ) \lambda(t)=S^*\mathbf x(t) ,即公式 ( 1 ) (1) 中的 S ( t ) = S       S ˙ ( t ) = 0 S(t)=S^*\implies\dot S(t)=0 。考虑到矩阵Riccati方程的终端条件 S ( t f ) = S f = 0 S(t_f)=S_f=0 ,可得稳态状态的Riccati方程:
0 = A T S + S A S B R 1 B T S + Q (6) 0=A^{\mathrm T} S+S A-S B R^{-1} B^{\mathrm T} S+Q\tag 6

方程 ( 6 ) (6) 中唯一需要求解的矩阵是 S = S T 0 S=S^\mathrm T\succcurlyeq0 。需要注意的是,虽然 lim t f S ( t f ) = 0 , S ˙ ( t ) = 0 \lim_{t_f\to\infty}S(t_f)=0,\dot S(t)=0 ,但似乎不能直接假设 S = 0 S=0 。对这个矩阵的求解方法,可以参考文献[3]中的描述。知道它,就可以得到我们所关心的增益矩阵K:
K = R 1 B T S (7) K=\mathbf{R}^{-1} \mathbf{B}^{\mathrm T}S\tag 7

此时闭环系统的状态方程为:
x ˙ = A x + B u = ( A B R 1 B T S ) x (8) \dot\mathbf x=A\mathbf x+B\mathbf u=(A-BR^{-1} B^{\mathrm T}S)\mathbf x\tag 8
调用MATLAB中的函数 [K,S,e]   =   LQR(A,B,Q,R,N) \texttt{[K,S,e] = LQR(A,B,Q,R,N)} ,我们的任务只有设置合适的权重 Q , R Q,R ,对于这一点,目前还只能靠经验。Q越大,相当于越强调状态迅速归零;对于轨迹跟踪控制,则跟踪误差越小。这种情况对控制的需求较大,控制带宽和饱和幅值较小的执行机构可能无法做出有效的响应。R越大,越强调最小能量消耗,即控制最少,此时状态误差可能在较大范围内抖动。这两者之间是一个协调关系。进一步的介绍可以参看知乎文章 - 21. LQR控制器— 线性二次型调节器 Linear Quadratic Regulator

渐近稳定性证明

由以下两个常用的定理:
定理1:闭环系统 x ˙ = A c x \dot\mathbf x=A_c\mathbf x 渐进稳定等价于对 Q = Q T 0 \forall Q=Q^{\mathrm T}\succ0 ,Lyapunov方程 A c T P + P A c = Q A_c^{\mathrm T}P+PA_c=-Q 存在唯一对称正定解 P P
定理2:闭环系统 A c A_c 渐进稳定的充分条件是:存在正定的Lyapunov函数 V ( x ) V(\mathbf x) ,沿闭环系统的状态方程满足 d V d t < 0 \frac{\mathrm d V}{\mathrm dt}<0

最优线性反馈的闭环系统满足公式 ( 8 ) (8) ,闭环状态矩阵 A c = A B R 1 B T S A_c=A-BR^{-1} B^{\mathrm T}S ,则Lyapunov方程要求解正定矩阵P:
A c T P + P A c 0 A_c^{\mathrm T}P+PA_c\prec0

把Riccati方程两边同时减去 2 S B R 1 B T S = 2 K T R K 2SBR^{-1}B^{\mathrm T}S=2K^{\mathrm T}RK ,可得
A T S + S A + Q = S B R 1 B T S ( A B R 1 B T S ) T S + S ( A B R 1 B T S ) = S B R 1 B T S Q A c T S + S A c < Q 0 \begin{aligned} A^{\mathrm T} S+S A+Q&=S B R^{-1} B^{\mathrm T} S\\ (A-BR^{-1} B^{\mathrm T}S)^{\mathrm T} S+S (A-BR^{-1} B^{\mathrm T}S)&=-S B R^{-1} B^{\mathrm T} S-Q\\ A_c^{\mathrm T}S+SA_c&<-Q\prec0 \end{aligned}

则闭环系统渐进稳定。

最优性证明

Riccati方程 ( 4 ) (4) ( 6 ) (6) 是按照最优控制的必要条件推导得到的,可以证明它是唯一的充分条件。证明这一点可以运用连续系统最优性的充要条件,即求解连续系统动态规划法的 Hamilton-Jacobi-Bellman \text {Hamilton-Jacobi-Bellman} 方程可以证明,请参考文献[3]。

参考文献

[1]. Wikipedia En不能用。。。Linear-quadratic regulator-The free Dictionary
[2]. 邢继祥. 最优控制应用基础. 第四章 线性系统二次型最优控制[M]. 科学出版社, 2003.
[3]. Bryson A E , Ho Y C ,Applied optimal control : optimization, estimation, and control. Ch.5 Linear system with quadratic criteria: linear feedback[J]. IEEE Transactions on Systems Man & Cybernetics, 1975
[4]. 知乎专栏 - 21. LQR控制器— 线性二次型调节器 Linear Quadratic Regulator
[5]. 知乎专栏 - 最优控制理论(七)LQR伺服跟踪控制器设计

猜你喜欢

转载自blog.csdn.net/NICAI001/article/details/107595477