在前面两节最优控制理论 二、哈密尔顿函数法,我们利用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 x˙=f[x(t),u(t),t];x(to)=x0to≤t≤tfu(t)minJ=φ[x(tf),tf]+∫totfL[x(t),u(t),t]dtψ(x(tf),tf)=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˙=A(t)x+B(t)u,x(0)=x0=00≤t≤tfu(t)minJ=21xT(tf)Sfx(tf)+21∫0tf(xTQ(t)x+uTR(t)u)dt(问题1)
其中 x 0 , t f \mathbf x_0,t_f x0,tf给定, 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 x∈Rn,u(t)∈Rm,S=ST≽0,Q=QT≽0,R=RT≻0,(正定对称矩阵)状态方程中的 A ( t ) , B ( t ) A(t),B(t) A(t),B(t)、以及性能指标中的 Q ( t ) , R ( 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 x(tf)≈0=0。显然若终端状态彻底为0,则性能指标就没有存在第一项的必要了。
问题的一阶必要条件按照Hamilton函数法建立问题描述:
假设协态变量始终和状态变量成线性关系
λ ( t ) = S ( t ) x ( t ) (1) \lambda(t)=S(t)x(t)\tag 1 λ(t)=S(t)x(t)(1)
其中 S ( t ) 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}\\ [x(tf)λ(tf)]=Φ(tf;t)[x(t)λ(t)]=[Φ11Φ12Φ21Φ22][x(t)λ(t)]
Φ 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) Φ21x+Φ22λ=λ(tf)=Sfx(tf)=Sf[Φ11x+Φ12λ]⇓λ(t)=[Φ22−SfΦ12]−1[SfΦ11−Φ21]x(t)≡S(t)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 u∗(t)=−R−1BTS(t)x(t)=−K(t)x(t)(2)
式中的 K ( t ) 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 x˙λ˙=Ax−BR−1BTS(t)x=(A−BR−1BTS(t))x=S˙x+S(t)x˙=S˙(t)x+S(t)(A−BR−1BTS(t))x=−Qx−ATS(t)x(3)
将最优控制 ( 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*} [x˙λ˙]=[A−Q−BR−1BT−AT][xλ](3*)
这个TPBVP问题的未知变量数2n,初始状态提供n个边界条件,终端时刻 λ ( t f ) = S x ( t f ) \lambda(t_f)=S\mathbf x(t_f) λ(tf)=Sx(tf)提供n个横截条件。
公式 ( 3 ) (3) (3)中 S ( t ) S(t) S(t)是一个与时间相关的函数矩阵,它在终端时刻的值就是性能指标中我们设定的值。考虑公式 ( 3 ) (3) (3)最后一个等式关系,可以求解出 S ( t ) 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 −S˙(t)=ATS+SA−SBR−1BTS+Q,S(tf)=Sf(4)
这个公式 ( 4 ) (4) (4)称为矩阵黎卡提Riccati方程,可以证明 S ( t ) S(t) S(t)是半正定对称矩阵。已知 S ( t f ) S(t_f) S(tf),按照时间逆向积分,可以得到 S ( t ) S(t) S(t),最终得到 S ( t 0 ) S(t_0) S(t0);然后考虑到 λ ( t 0 ) = S ( t 0 ) x 0 \lambda(t_0)=S(t_0)\mathbf x_0 λ(t0)=S(t0)x0可以得到问题 ( 3 ∗ ) (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*} J=21xT(tf)Sfx(tf)+21∫0tf(xTQx+uTRu+2xTNu)dt=21xT(tf)Sfx(tf)+21∫t0tf[XU]T[QNTNR][XU]dt(问题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 Q≽0,R≻0 且 Q−NR−1NT≽0,这个情况可以通过配方法转换成对角阵的形式[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} [XU]T[QNTNR][XU]=XTQX+2XTNU+UTRU=XTQX+UTRU+XTNU+UTNTX+XTNR−1NTX−XTNR−1NTX=XT(Q−NR−1NT)X+(U+R−1NTX)TR(U+R−1NTX)
令 { 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 { Q~=Q−Q1R−1NTU~=U+R−1NTX(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 x˙=Ax+B(u~−R−1NTx)=(A−BR−1NT)x+Bu~
这个新系统可以套用前面所述的方法, ( 问 题 1 ∗ ) (问题1*) (问题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 J=21xT(tf)Sfx(tf)+21∫0tf(xTQ~x+u~TRu~)dt
总结
把非线性系统在标称状态附近线性化,就可得到线性时变系统。在这个意义上,上面讨论的问题很宽泛。此外,问题还在于只能采用数值计算方法,要计算 x ( t ) , λ ( t ) , S ( t 0 ) \mathbf x(t),\lambda(t),S(t_0) x(t),λ(t),S(t0),以及反馈控制采用的是时变增益 K ( t ) K(t) K(t)。在工程上使用更多的是线性定常系统、无穷时域的相关问题。也就是我们下面要讨论的LQR问题。
线性系统(定常或时变)、二次型指标的状态调节器问题一般称为线性二次型调节器(Linear Quadratic Regulator,LQR),其任务通常为
无限时域、线性定常系统的LQR问题是 ( 问题 1 ) (\text{问题}1) (问题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 A(t)=A,B(t)=B,Q(t)=Q,R(t)=R,且 S f = 0 S_f=0 Sf=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} x˙=Ax+Bu,x(0)=x00≤t<∞u(t)=−Kx(t)minJ=21∫t0∞[x(t)TQx(t)+u(t)TRu(t)]dt(问题2)
要满足线性反馈,即 u ∗ ( t ) = − K x ( t ) \mathbf u^*(t)=-K\mathbf x(t) u∗(t)=−Kx(t),考虑最优控制 u ∗ ( t ) = − R − 1 B T λ ( t ) \mathbf u^*(t)=-\mathbf{R}^{-1} \mathbf{B}^{\mathrm T}\lambda(t) u∗(t)=−R−1BTλ(t),可以导出协态变量与状态变量成线性关系: λ ( t ) = S ∗ x ( t ) \lambda(t)=S^*\mathbf x(t) λ(t)=S∗x(t),即公式 ( 1 ) (1) (1)中的 S ( t ) = S ∗ ⟹ S ˙ ( t ) = 0 S(t)=S^*\implies\dot S(t)=0 S(t)=S∗⟹S˙(t)=0。考虑到矩阵Riccati方程的终端条件 S ( t f ) = S f = 0 S(t_f)=S_f=0 S(tf)=Sf=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 0=ATS+SA−SBR−1BTS+Q(6)
方程 ( 6 ) (6) (6)中唯一需要求解的矩阵是 S = S T ≽ 0 S=S^\mathrm T\succcurlyeq0 S=ST≽0。需要注意的是,虽然 lim t f → ∞ S ( t f ) = 0 , S ˙ ( t ) = 0 \lim_{t_f\to\infty}S(t_f)=0,\dot S(t)=0 limtf→∞S(tf)=0,S˙(t)=0,但似乎不能直接假设 S = 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 K=R−1BTS(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 x˙=Ax+Bu=(A−BR−1BTS)x(8)
调用MATLAB中的函数 [K,S,e] = LQR(A,B,Q,R,N) \texttt{[K,S,e] = LQR(A,B,Q,R,N)} [K,S,e] = LQR(A,B,Q,R,N),我们的任务只有设置合适的权重 Q , R Q,R Q,R,对于这一点,目前还只能靠经验。Q越大,相当于越强调状态迅速归零;对于轨迹跟踪控制,则跟踪误差越小。这种情况对控制的需求较大,控制带宽和饱和幅值较小的执行机构可能无法做出有效的响应。R越大,越强调最小能量消耗,即控制最少,此时状态误差可能在较大范围内抖动。这两者之间是一个协调关系。进一步的介绍可以参看知乎文章 - 21. LQR控制器— 线性二次型调节器 Linear Quadratic Regulator。
由以下两个常用的定理:
定理1:闭环系统 x ˙ = A c x \dot\mathbf x=A_c\mathbf x x˙=Acx渐进稳定等价于对 ∀ Q = Q T ≻ 0 \forall Q=Q^{\mathrm T}\succ0 ∀Q=QT≻0,Lyapunov方程 A c T P + P A c = − Q A_c^{\mathrm T}P+PA_c=-Q AcTP+PAc=−Q存在唯一对称正定解 P P P。
定理2:闭环系统 A c A_c Ac渐进稳定的充分条件是:存在正定的Lyapunov函数 V ( x ) V(\mathbf x) V(x),沿闭环系统的状态方程满足 d V d t < 0 \frac{\mathrm d V}{\mathrm dt}<0 dtdV<0。
最优线性反馈的闭环系统满足公式 ( 8 ) (8) (8),闭环状态矩阵 A c = A − B R − 1 B T S A_c=A-BR^{-1} B^{\mathrm T}S Ac=A−BR−1BTS,则Lyapunov方程要求解正定矩阵P:
A c T P + P A c ≺ 0 A_c^{\mathrm T}P+PA_c\prec0 AcTP+PAc≺0
把Riccati方程两边同时减去 2 S B R − 1 B T S = 2 K T R K 2SBR^{-1}B^{\mathrm T}S=2K^{\mathrm T}RK 2SBR−1BTS=2KTRK,可得
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} ATS+SA+Q(A−BR−1BTS)TS+S(A−BR−1BTS)AcTS+SAc=SBR−1BTS=−SBR−1BTS−Q<−Q≺0
则闭环系统渐进稳定。
Riccati方程 ( 4 ) (4) (4)和 ( 6 ) (6) (6)是按照最优控制的必要条件推导得到的,可以证明它是唯一的充分条件。证明这一点可以运用连续系统最优性的充要条件,即求解连续系统动态规划法的 Hamilton-Jacobi-Bellman \text {Hamilton-Jacobi-Bellman} 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伺服跟踪控制器设计