1 题目描述
线性二次型调节器(LQR)是一种经典的最优控制方法,用于解决线性动态系统在无限时域上的状态调节问题。给定一个线性定常系统
x˙(t)=Ax(t)+Bu(t)(1-1) \dot{x}(t)=Ax(t)+{B}u(t) \tag{1-1} x˙(t)=Ax(t)+Bu(t)(1-1)
其中x(t)x(t)x(t)是状态向量,u(t)u(t)u(t)是控制输入向量,AAA和BBB是系统矩阵。目标是最小化无限时域上的二次型代价函数
J=∫0∞(x(t)⊤Qx(t)+u(t)⊤Ru(t))dt(1-2) J=\int^{\infty}_{0}(x(t)^\top Qx(t)+u(t)^\top Ru(t))dt \tag{1-2} J=∫0∞(x(t)⊤Qx(t)+u(t)⊤Ru(t))dt(1-2)
其中QQQ是半正定状态权重矩阵,RRR是正定控制权重矩阵。问题要求找到最优控制律u∗(t)=−Kx(t)u^*(t)=-Kx(t)u∗(t)=−Kx(t)使得代价JJJ最小。这个过程涉及求解代数黎卡提方程(Algebraic Riccati Equation,ARE)以获得最优范阔增益矩阵K。下面详细推导LQR的求解步骤,并解释黎卡提方程的来源与求解方法。
2 解题过程
2.1 步骤一:问题形式化
考虑连续时间线性系统:
x˙(t)=Ax(t)+Bu(t),x(0)=x0(2-1) \dot{x}(t)=Ax(t)+Bu(t),x(0)=x_0 \tag{2-1} x˙(t)=Ax(t)+Bu(t),x(0)=x0(2-1)
代价函数为:
J=∫0∞((x(t)⊤Qx(t)+u(t)⊤Ru(t))dt(2-2) J=\int^{\infty}_{0}((x(t)^\top Qx(t)+u(t)^\top Ru(t))dt \tag{2-2} J=∫0∞((x(t)⊤Qx(t)+u(t)⊤Ru(t))dt(2-2)
目标:找到控制输入u(t)u(t)u(t)的函数形式,以最小化JJJ。由于系统是线性的、代价是二次的,且时域无限,最优控制律是状态的线性反馈,即u∗(t)=−Kx(t)u^*(t)=-Kx(t)u∗(t)=−Kx(t),其中KKK是常数增益矩阵。
2.2 步骤二:哈密顿-雅克比-贝尔曼(HJB)方程推导
对于无限时域问题,我们使用动态规划方法。定义值函数V(x)V(x)V(x)为从初始状态xxx出发的最小代价:
V(x)=minu(⋅)∫0∞(x(τ)⊤Qx(τ)+u(τ)⊤Ru(τ))dτ(2-3) V(x)=\min_{u(\cdot)}\int^{\infty}_{0}(x(\tau)^\top Qx(\tau)+u(\tau)^\top Ru(\tau))d\tau \tag{2-3} V(x)=u(⋅)min∫0∞(x(τ)⊤Qx(τ)+u(τ)⊤Ru(τ))dτ(2-3)
补充:这个值函数的意思是当代价函数取最小时所得到的u(⋅)u(\cdot)u(⋅)带入代价函数所得到的代价函数的值,请注意,这里的u(⋅)u(\cdot)u(⋅)指的是一段完整的控制序列,注意和后续的uuu进行区分。
动态规划思想:如果系统总代价确定,即系统稳定,则总代价=当前一小段代价+剩余代价(这个式子不管系统是不是最优都成立,只要稳定即可)
取一个很小的时间段dtdtdt,那么从当前状态xxx出发的最优代价可以写为:
V(x)=minu∫0dt(x⊤Qx+u⊤Ru)dτ+V(x+dx)(2-4) V(x)=\min_u\left\\int_0\^{dt}(x\^\\top Qx+u\^\\top Ru)d\\tau+V(x+dx)\\right \tag{2-4} V(x)=umin∫0dt(x⊤Qx+u⊤Ru)dτ+V(x+dx)(2-4)
注意这里的uuu表示的是0,dt0,dt0,dt这个小时间段内的小控制序列
其中dx=x˙dt=(Ax+Bu)dtdx=\dot{x}dt=(Ax+Bu)dtdx=x˙dt=(Ax+Bu)dt,由于dtdtdt很小,因此有:
∫0dt(x⊤Qx+u⊤Ru)dτ≈(x⊤Qx+u⊤Ru)dt(2-5) \int_0^{dt}(x^\top Qx+u^\top Ru)d\tau\approx (x^\top Qx+u^\top Ru)dt \tag{2-5} ∫0dt(x⊤Qx+u⊤Ru)dτ≈(x⊤Qx+u⊤Ru)dt(2-5)
对V(x+dx)V(x+dx)V(x+dx)进行一阶泰勒展开可得:
V(x+dx)=V(x)+∂V∂x⊤dx(2-6) V(x+dx)=V(x)+\frac{\partial V}{\partial x}^\top dx \tag{2-6} V(x+dx)=V(x)+∂x∂V⊤dx(2-6)
其中∂V∂x⊤\frac{\partial V}{\partial x}^\top∂x∂V⊤为VVV对xxx的梯度,则有:
V(x)=minu(x⊤Qx+u⊤Ru)dt+V(x)+∂V∂x⊤(Ax+Bu)dt(2-7) V(x)=\min_u(x\^\\top Qx+u\^\\top Ru)dt+V(x)+\\frac{\\partial V}{\\partial x}\^\\top(Ax+Bu)dt \tag{2-7} V(x)=umin(x⊤Qx+u⊤Ru)dt+V(x)+∂x∂V⊤(Ax+Bu)dt(2-7)
注意此时的uuu表示为在当前时刻施加的瞬时控制输入了,u(⋅)u(\cdot)u(⋅)里的后续控制序列被V(x)V(x)V(x)吸收了
上式进一步化简可得:
minu(x⊤Qx+u⊤Ru)+∂V∂x⊤(Ax+Bu)=0(2-8) \min_u(x\^\\top Qx+u\^\\top Ru)+\\frac{\\partial V}{\\partial x}\^\\top(Ax+Bu)=0 \tag{2-8} umin(x⊤Qx+u⊤Ru)+∂x∂V⊤(Ax+Bu)=0(2-8)
这个式子就是无限时域的HJB方程。
由于V˙=∂V∂x⊤x˙=∂V∂x⊤(Ax+Bu)\dot{V}=\frac{\partial V}{\partial x}^\top \dot{x}=\frac{\partial V}{\partial x}^\top(Ax+Bu)V˙=∂x∂V⊤x˙=∂x∂V⊤(Ax+Bu),因此上式还可以表示为:
minu(x⊤Qx+u⊤Ru+V˙)=0(2-9) \min_u(x^\top Qx+u^\top Ru+\dot{V})=0 \tag{2-9} umin(x⊤Qx+u⊤Ru+V˙)=0(2-9)
这个式子的含义是,在最优控制作用下,系统一边运行一边消耗代价,但是剩余总代价V(x)V(x)V(x)也在下降。最优时,这两者正好满足平衡关系。
意味着:**系统运行一段时间以后,虽然已经花掉了一部分代价,但未来还需要花的最优代价也相应减少了,后续没事每时每刻总代价都保持不变,即为"最优"。
2.3 步骤三:求解最优控制输入
对HJB方程中的uuu求最小化。令括号内的表达式为H(x,u)H(x,u)H(x,u),即:
H(x,u)=(x⊤Qx+u⊤Ru)+∂V∂x⊤(Ax+Bu)(2-10) H(x,u)=(x^\top Qx+u^\top Ru)+\frac{\partial V}{\partial x}^\top(Ax+Bu) \tag{2-10} H(x,u)=(x⊤Qx+u⊤Ru)+∂x∂V⊤(Ax+Bu)(2-10)
对uuu求导并设其为0,则有:
∂H∂u=2Ru+B⊤∂V∂x=0(2-11) \frac{\partial H}{\partial u}=2Ru+ B^\top \frac{\partial V}{\partial x} = 0 \tag{2-11} ∂u∂H=2Ru+B⊤∂x∂V=0(2-11)
注意此时的∂V∂x⊤\frac{\partial V}{\partial x}^\top∂x∂V⊤中不含有uuu,它是一个常数,因为V(x)V(x)V(x)中含有的是一个认为已经优化完成的u(⋅)u(\cdot)u(⋅)的常值,且注意看VVV是一个只关于xxx的函数,而目前式子里对uuu求导的这个uuu是当前瞬时的控制序列,因此不包含在V(x)V(x)V(x)里
因此最优控制为:
u∗=−12R−1B⊤∂V∂x(2-12) u^*=-\frac{1}{2}R^{-1}B^\top\frac{\partial V}{\partial x} \tag{2-12} u∗=−21R−1B⊤∂x∂V(2-12)
2.4 步骤四:猜测值函数形式并代入
2.4.1 值函数应该是什么样子的?
由于系统是线性定常数系统,其解为:
x(t)=eAtx0+∫0∞eA(t−τ)Bu(τ)dτ(2-13) x(t)=e^{At}x_0+\int_0^\infty e^{A(t−τ)}Bu(τ)dτ \tag{2-13} x(t)=eAtx0+∫0∞eA(t−τ)Bu(τ)dτ(2-13)
因此假如系统的初始值和最优控制都被放大α\alphaα倍,则系统的状态也会被放大为α\alphaα倍,因此值函数变为:
Vα(x)=α2V(x)=minu(⋅)∫0∞(αx(τ)⊤Qαx(τ)+αu(τ)⊤Rαu(τ))dτ(2-14) V_\alpha(x)=\alpha^2 V(x)=\min_{u(\cdot)}\int^{\infty}_{0}(\alpha x(\tau)^\top Q\alpha x(\tau)+\alpha u(\tau)^\top R\alpha u(\tau))d\tau \tag{2-14} Vα(x)=α2V(x)=u(⋅)min∫0∞(αx(τ)⊤Qαx(τ)+αu(τ)⊤Rαu(τ))dτ(2-14)
因此当系统的状态与输入都变为原来的α\alphaα倍时,值函数变为原来的α2\alpha^2α2倍,因此我们得到结论:线性系统的LQR的值函数具有二阶齐次性
而前面提到值函数是一个关于x的函数,因此我们使用类似待定系数法 定义值函数为V(x)=x⊤PxV(x)=x^\top P xV(x)=x⊤Px,待定系数即为PPP
在这里补充一个知识点,任何一个矩阵PPP都可以定义为P=P+P⊤2+P−P⊤2=Ps+PaP=\frac{P+P^\top}{2}+\frac{P-P^\top}{2}=P_s+P_aP=2P+P⊤+2P−P⊤=Ps+Pa,这里PsP_sPs和PaP_aPa分别表示对称矩阵和反对称矩阵,他们分别存在性质:Ps=Ps⊤P_s=P_s^\topPs=Ps⊤和Pa=−Pa⊤P_a=-P_a^\topPa=−Pa⊤
我们的值函数要求V(x)=x⊤Px=0V(x)=x^\top P x=0V(x)=x⊤Px=0,对任意的xxx均成立,则有:
x⊤Psx+x⊤Pax=0(2-15) x^\top P_s x+x^\top P_a x=0 \tag{2-15} x⊤Psx+x⊤Pax=0(2-15)
我们令标量s=x⊤Paxs=x^\top P_a xs=x⊤Pax,而对于反对称矩阵而言,由于Pa=−Pa⊤P_a=-P_a^\topPa=−Pa⊤,因此则有s=s⊤=x⊤Pa⊤x=−x⊤Pax=−ss=s^\top=x^\top P_a^\top x=-x^\top P_a x=-ss=s⊤=x⊤Pa⊤x=−x⊤Pax=−s,而由于等号左右两边分别是两个标量即,这表明sss恒等于0,因此如果PPP是一个任意矩阵,其中的反对称部分其实对V(x)V(x)V(x)没有任何影响因为其构建的二次型恒等于0,所以不如我们就直接取对称部分,因此我们不再选择一个任意的PPP而是直接让PPP就是一个对称矩阵,即P=P⊤P=P^\topP=P⊤
2.4.2 代入猜测的值函数至HJB方程
由于值函数为V(x)=x⊤PxV(x)=x^\top P xV(x)=x⊤Px,有∂V∂x=2Px\frac{\partial V}{\partial x} = 2Px∂x∂V=2Px, 因此最优控制即为:
u∗=−12R−1B⊤2Px=−R−1B⊤Px=−K∗x(2-16) u^*=-\frac{1}{2}R^{-1}B^\top 2Px=-R^{-1}B^\top Px=-K^*x \tag{2-16} u∗=−21R−1B⊤2Px=−R−1B⊤Px=−K∗x(2-16)
我们可以得到最优反馈增益为:
K∗=R−1B⊤P(2-17) K^*=R^{-1}B^\top P \tag{2-17} K∗=R−1B⊤P(2-17)
代入HJB方程,可得到:
(x⊤Qx+(−R−1B⊤Px)⊤R(−R−1B⊤Px))+2x⊤P⊤(Ax+B(−R−1B⊤Px))=0(2-18) (x^\top Qx+(-R^{-1}B^\top Px)^\top R(-R^{-1}B^\top Px))+2x^\top P^\top(Ax+B(-R^{-1}B^\top Px))=0 \tag{2-18} (x⊤Qx+(−R−1B⊤Px)⊤R(−R−1B⊤Px))+2x⊤P⊤(Ax+B(−R−1B⊤Px))=0(2-18)
化简可得:
x⊤Qx+2x⊤P⊤Ax−x⊤P⊤BR−1B⊤Px=0(2-19) x^\top Qx+2x^\top P^\top A x-x^\top P^\top BR^{-1}B^\top Px=0 \tag{2-19} x⊤Qx+2x⊤P⊤Ax−x⊤P⊤BR−1B⊤Px=0(2-19)
由于P=P⊤P=P^\topP=P⊤,上式变为:
x⊤Qx+2x⊤PAx−x⊤PBR−1B⊤Px=0(2-20) x^\top Qx+2x^\top P A x-x^\top P BR^{-1}B^\top Px=0 \tag{2-20} x⊤Qx+2x⊤PAx−x⊤PBR−1B⊤Px=0(2-20)
看中间项s=2x⊤PAxs=2x^\top P A xs=2x⊤PAx,由于sss是标量,因此则有s⊤=ss^\top =ss⊤=s,有x⊤A⊤P⊤x=x⊤A⊤Px=x⊤PAxx^\top A^\top P^\top x=x^\top A^\top P x=x^\top P A xx⊤A⊤P⊤x=x⊤A⊤Px=x⊤PAx
因此上式可以变为:
x⊤Qx+x⊤A⊤Px+x⊤PAx−x⊤PBR−1B⊤Px=0(2-21) x^\top Qx+x^\top A^\top P x+x^\top P A x-x^\top P BR^{-1}B^\top Px=0 \tag{2-21} x⊤Qx+x⊤A⊤Px+x⊤PAx−x⊤PBR−1B⊤Px=0(2-21)
化简为:
Q+A⊤P+PA−PBR−1B⊤P=0(2-22) Q+ A^\top P + P A - P BR^{-1}B^\top P=0 \tag{2-22} Q+A⊤P+PA−PBR−1B⊤P=0(2-22)
这就是最后得到的连续时间无限时域LQR的代数黎卡提方程(ARE),求出PPP,然后求出K∗K^*K∗,最后得到最优反馈输入u∗u^*u∗
2.4.3 补充:为什么不直接使用x⊤Qx+2x⊤PAx−x⊤PBR−1B⊤Px=0x^\top Qx+2x^\top P A x-x^\top P BR^{-1}B^\top Px=0x⊤Qx+2x⊤PAx−x⊤PBR−1B⊤Px=0得到的Q+2PA−PBR−1B⊤P=0Q+2 PA - PBR^{-1}B^\top P=0Q+2PA−PBR−1B⊤P=0?
在这个式子中:
Q+2PA−PBR−1B⊤P=0(2-23) Q+2 PA - PBR^{-1}B^\top P=0 \tag{2-23} Q+2PA−PBR−1B⊤P=0(2-23)
QQQ为对称矩阵,PBR−1B⊤PPBR^{-1}B^\top PPBR−1B⊤P为对称矩阵,因此要想让这个方程有解,需要令2PA2PA2PA也为对称矩阵,这显然是一个非常强的约束,不仅对PPP有要求,对AAA也有要求,这意味着LQR可能对某些LTI系统控不住,这显然是不合理的,原因在于我们在最后一步去掉x⊤x^\topx⊤和xxx的过程中,引入了一个错误条件。
实际的方程是:
x⊤Qx+2x⊤PAx−x⊤PBR−1B⊤Px=0(2-24) x^\top Qx+2x^\top P A x-x^\top P BR^{-1}B^\top Px=0 \tag{2-24} x⊤Qx+2x⊤PAx−x⊤PBR−1B⊤Px=0(2-24)
而我们在2.4.1节提到,二次型的权重矩阵只有对称部分会对二次型的构建产生作用,非对称部分是恒等于0的,因此对于2x⊤PAx2x^\top P A x2x⊤PAx来说,干脆我们人为也去掉非对称部分不就行了,只用其对称部分,因此有:
2x⊤PAx=x⊤(2PA+2(PA)⊤2)=x⊤(PA+A⊤P)x(2-25) 2x^\top P A x=x^\top(\frac{2PA+2(PA)^\top}{2})=x^\top(PA+A^\top P)x \tag{2-25} 2x⊤PAx=x⊤(22PA+2(PA)⊤)=x⊤(PA+A⊤P)x(2-25)
此时得到的黎卡提方程:
A⊤P+PA−PBR−1B⊤P+Q=0(2-26) A^\top P + P A - P BR^{-1}B^\top P+Q=0 \tag{2-26} A⊤P+PA−PBR−1B⊤P+Q=0(2-26)
其中A⊤P+PAA^\top P + P AA⊤P+PA恒为对称矩阵,因此只要求PPP对称即可,AAA矩阵可以任意了。
3 闭环稳定性
将最优反馈代入到状态空间方程:
x˙=Ax+B(−R−1B⊤Px)=(A−BR−1B⊤P)x(3-1) \dot{x}=Ax+B(-R^{-1}B^\top Px)=(A-BR^{-1}B^\top P)x \tag{3-1} x˙=Ax+B(−R−1B⊤Px)=(A−BR−1B⊤P)x(3-1)
可以证明,若(A,B)(A,B)(A,B)可稳,且(A,Q1/2)(A,Q^{1/2})(A,Q1/2)可检,则(A−BR−1B⊤P)(A-BR^{-1}B^\top P)(A−BR−1B⊤P)是Hurwitz的(所有特征值实部为负),保证系统稳定。
证明:待补充
4 求解黎卡提方程
如何通过不用直接解ARE,而是反复求解Lyapunov方程来逼近ARE解。
这套方法一般叫:
Kleenman iteration/Newton-Kleinman iteration/Ploicy iteration
4.1 lynapunov方程
无限时域的HJB方程为:
minu(x⊤Qx+u⊤Ru+V˙)=0(4-1) \min_u(x^\top Qx+u^\top Ru+\dot{V})=0 \tag{4-1}umin(x⊤Qx+u⊤Ru+V˙)=0(4-1)
请注意,这个式子的含义为当取得最优的uuu后,HJB的值函数x⊤Qx+u⊤Ru+V˙=0x^\top Qx+u^\top Ru+\dot{V}=0x⊤Qx+u⊤Ru+V˙=0
那么,如果已知的uuu不是最优的呢?
我们先假设一个随机的反馈矩阵猜测值KKK,那么闭环系统变为:
x˙=(A−BK)x(4-2) \dot{x}=(A-BK)x \tag{4-2} x˙=(A−BK)x(4-2)
此时控制输入固定为:u=−Kxu=-Kxu=−Kx。
此时这个固定反馈KKK对应的代价函数为:
JK=∫0∞x⊤(Q+K⊤RK)xdt(4-3) J_K=\int^{\infty}_{0}x^\top(Q+K^\top RK)xdt \tag{4-3} JK=∫0∞x⊤(Q+K⊤RK)xdt(4-3)
如果闭环矩阵:AK=A−BKA_K=A-BKAK=A−BK是赫尔维茨稳定的,即施加了这个控制u后系统是稳定的,那么该代价可以写作:(因为稳定的情况下代价才是有限的)
JK=x0⊤PKx0(4-4) J_K=x_0^\top P_K x_0 \tag{4-4} JK=x0⊤PKx0(4-4)
此时我们求解一下此时的HJB方程:
x⊤Qx+u⊤Ru+V˙=x⊤(Q+K⊤RK)x+2x⊤Pk(A−BK)x=x⊤(Q+K⊤RK)x+x⊤2Pk(A−BK)+2(A−BK)⊤Pk2x=x⊤(A−BK)⊤PK+PK(A−BK)+Q+K⊤RKx(4-5) \begin{aligned} x^\top Qx+u^\top Ru+\dot{V}&=x^\top(Q+K^\top RK)x+2x^\top P_k(A-BK)x\\ &=x^\top(Q+K^\top RK)x+x^\top \frac{2P_k(A-BK)+2(A-BK)^\top P_k}{2}x\\ &=x^\top \left(A-BK)\^\\top P_K+P_K(A-BK)+Q+K\^\\top R K\\right x \end{aligned} \tag{4-5} x⊤Qx+u⊤Ru+V˙=x⊤(Q+K⊤RK)x+2x⊤Pk(A−BK)x=x⊤(Q+K⊤RK)x+x⊤22Pk(A−BK)+2(A−BK)⊤Pkx=x⊤(A−BK)⊤PK+PK(A−BK)+Q+K⊤RKx(4-5)
其中PKP_KPK满足Lyapunov方程(为什么? ):
(A−BK)⊤PK+PK(A−BK)+Q+K⊤RK=0(4-6) (A-BK)^\top P_K+P_K(A-BK)+Q+K^\top R K = 0 \tag{4-6} (A−BK)⊤PK+PK(A−BK)+Q+K⊤RK=0(4-6)
也就是说:当固定KKK后求PPP是一个线性李雅普诺夫方程;更新KKK后,继续求新的PPP
4.1.1 LQR 的Lyapunov迭代算法
设初始反馈K0K_0K0已经使得系统闭环稳定,则:
①:策略评估,解Lyapunov方程:
给定当前反馈:KkK_kKk,构造闭环矩阵Ak=A−BKkA_k=A-BK_kAk=A−BKk
解lyapunov方程:
Ak⊤Pk+1+Pk+1Ak+Q+Kk⊤RKk=0(4-7) A_k^\top P_{k+1}+P_{k+1}A_k+Q+K_k^\top R K_k = 0 \tag{4-7} Ak⊤Pk+1+Pk+1Ak+Q+Kk⊤RKk=0(4-7)
这一步的含义是计算当前反馈控制律u=−Kkxu=-K_kxu=−Kkx对应的代价矩阵Pk+1P_{k+1}Pk+1
②:改进策略,更新反馈增益
用新得到Pk+1P_{k+1}Pk+1更新反馈:
Kk+1=R−1B⊤Pk+1(4-8) K_{k+1}=R^{-1}B^\top P_{k+1} \tag{4-8} Kk+1=R−1B⊤Pk+1(4-8)
然后继续下一轮。
③:重复这一过程直到Kk+1≈KkK_{k+1}\approx K_kKk+1≈Kk或者Pk+1≈PkP_{k+1}\approx P_kPk+1≈Pk,迭代停止,最终得到:
P∞=PK∞=R−1B⊤P(4-9) \begin{aligned} P_{\infty}&=P\\ K_{\infty}&=R^{-1}B^\top P \end{aligned} \tag{4-9} P∞K∞=P=R−1B⊤P(4-9)
4.1.2 理解为什么这种做法可以解ARE?(重要)
这本质就是牛顿迭代法的矩阵形式
普通牛顿法对xix_ixi的更新是:
xi+1=xi−f(xi)f′(xi)(4-10) x_{i+1}=x_i-\frac{f(x_i)}{f'(x_i)} \tag{4-10} xi+1=xi−f′(xi)f(xi)(4-10)
更本质的写,是求增量Δxi\Delta x_iΔxi:
f′(xi)Δxi=−f(xi)(4-11) f'(x_i)\Delta x_i=-f(x_i) \tag{4-11} f′(xi)Δxi=−f(xi)(4-11)
然后xi+1=xi+Δxix_{i+1}=x_i+\Delta x_ixi+1=xi+Δxi
对于黎卡提方程R(P)=A⊤P+PA−PBR−1B⊤P+Q\mathcal{R}(P)=A^\top P + P A - P BR^{-1}B^\top P+QR(P)=A⊤P+PA−PBR−1B⊤P+Q,未知量是PPP,所以牛顿法应该写作:
R′(Pi)ΔPi=−R(Pi)(4-12) \mathcal{R}'(P_i)\\Delta P_i=-\mathcal{R}(P_i) \tag{4-12} R′(Pi)ΔPi=−R(Pi)(4-12)
其中Pi+1=Pi+ΔPiP_{i+1}=P_i+\Delta P_iPi+1=Pi+ΔPi
等号左边是求R(P)\mathcal{R}(P)R(P)的全微分,令S=BR−1B⊤S=BR^{-1}B^\topS=BR−1B⊤
DR(P)=A⊤D(P)+D(P)A−D(PSP)=A⊤D(P)+D(P)A−D(P)SP−PD(SP)=A⊤D(P)+D(P)A−D(P)SP−PSD(P)=−R(Pi)(4-13) \begin{aligned} D\left\\mathcal{R}(P)\\right &=A^\top D(P) + D(P) A - D(P S P)\\ &=A^\top D(P) + D(P) A - D(P)SP-PD(SP)\\ &=A^\top D(P) + D(P) A - D(P)SP-PSD(P)\\ &=-\mathcal{R}(P_i) \end{aligned} \tag{4-13} DR(P)=A⊤D(P)+D(P)A−D(PSP)=A⊤D(P)+D(P)A−D(P)SP−PD(SP)=A⊤D(P)+D(P)A−D(P)SP−PSD(P)=−R(Pi)(4-13)
左右打开:
A⊤(Pi+1−Pi)+(Pi+1−Pi)A−(Pi+1−Pi)SP−PS(Pi+1−Pi)=−A⊤Pi−PiA+PiSPi−QA⊤Pi+1+Pi+1A−Pi+1SPi−PiSPi+1+PiSPi+Q=0(A⊤−PiS)Pi+1+Pi+1(A−SPi)+PiSPi+Q=0(4-14) \begin{aligned} &A^\top (P_{i+1}-P_i)+(P_{i+1}-P_i)A-(P_{i+1}-P_i)SP-PS(P_{i+1}-P_i)=-A^\top P_i - P_i A + P_i S P_i-Q\\ &A^\top P_{i+1}+P_{i+1}A-P_{i+1}SP_i-P_iSP_{i+1}+P_iSP_i+Q=0\\ &(A^\top-P_{i}S)P_{i+1}+P_{i+1}(A-SP_i)+P_iSP_i+Q=0 \end{aligned} \tag{4-14} A⊤(Pi+1−Pi)+(Pi+1−Pi)A−(Pi+1−Pi)SP−PS(Pi+1−Pi)=−A⊤Pi−PiA+PiSPi−QA⊤Pi+1+Pi+1A−Pi+1SPi−PiSPi+1+PiSPi+Q=0(A⊤−PiS)Pi+1+Pi+1(A−SPi)+PiSPi+Q=0(4-14)
令Ki=R−1B⊤PiK_i=R^{-1}B^\top P_iKi=R−1B⊤Pi可得:
(A−BKi)⊤Pi+1+Pi+1(A−BKi)+Ki⊤RKi+Q=0(4-15) (A-BK_i)^\top P_{i+1}+P_{i+1}(A-BK_i)+K_i^\top RK_i+Q=0 \tag{4-15} (A−BKi)⊤Pi+1+Pi+1(A−BKi)+Ki⊤RKi+Q=0(4-15)
继而推导出\[#4.1.1 LQR 的Lyapunov迭代算法]
4.2 解释
一句话解释:用一个估计的策略,去寻找一个在当前估计策略下更好的策略,进而用更好的策略更新旧策略,直到策略达到最优
整个过程是:用当前策略的值函数,寻找相对于当前值函数更优的策略;再重新评价策略;反复迭代
首先通过一个让系统收敛的K0K_0K0,唯一对应一个P0P_0P0,这是因为只要系统收敛,系统的总代价就是有限的,一定可以找到一个P0P_0P0,因为(x⊤Qx+u⊤Ru+V˙)=0(x^\top Qx+u^\top Ru+\dot{V})=0(x⊤Qx+u⊤Ru+V˙)=0这个式子对所有使得系统收敛的uuu都成立,不只局限于最优的uuu。
而下一步是通过P0P_0P0求出一个合适的u1u_1u1或者说K1K_1K1,依据的理论就是,根据当前策略的代价评价P0P_0P0,求出让值函数更优(即∂H0∂u=0\frac{\partial H_0}{\partial u}=0∂u∂H0=0)的新策略u1u1u1,而新策略又产生了新的值函数估计,反复迭代,直至最优,严格来说是通过最小化当前值函数下的H,得到一个使总代价不增的新策略
证明:
假设有一个初始的P0P_0P0,其通过∂H0∂u=0\frac{\partial H_0}{\partial u}=0∂u∂H0=0得到一个新的HHH,则有:
H0(x,u1)≤H0(x,u0)=0(4-16) H_0(x,u_1)\le H_0(x,u_0)=0 \tag{4-16} H0(x,u1)≤H0(x,u0)=0(4-16)
即H0(x,u1)≤0H_0(x,u_1)\le 0H0(x,u1)≤0,新策略为u1=−K1xu_1=-K_1xu1=−K1x
展开上式,可得:
H0(x,u1)=x⊤Qx+x⊤K1⊤RK1x+∂V0⊤∂x(A−BK1)x(4-17) H_0(x,u_1)=x^\top Q x+x^\top K_1^\top RK_1x+\frac{\partial V_0^\top}{\partial x}(A-BK_1)x \tag{4-17} H0(x,u1)=x⊤Qx+x⊤K1⊤RK1x+∂x∂V0⊤(A−BK1)x(4-17)
而沿着新策略K1K_1K1的闭环轨迹,有:
x˙=(A−BK1)x(4-18) \dot{x}=(A-BK_1)x \tag{4-18} x˙=(A−BK1)x(4-18)
所以:
ddtV0(x(t))=∂V0⊤∂x(A−BK1)x(4-19) \frac{d}{dt}V_0(x(t))=\frac{\partial V_0^\top}{\partial x}(A-BK_1)x \tag{4-19} dtdV0(x(t))=∂x∂V0⊤(A−BK1)x(4-19)
这里是因为确实是由V0(x)V_0(x)V0(x)确实是由旧策略 V0V_0V0 得到的值函数,但它本身只是一个关于状态xxx的函数。一旦你把它拿来沿某条轨迹求时间导数,导数里面的x˙\dot{x}x˙必须使用这条轨迹实际满足的动力学。
于是:
H0(x,u1)=x⊤Qx+x⊤K1⊤RK1x+V0˙(x)≤0(4-20) H_0(x,u_1)=x^\top Q x+x^\top K_1^\top RK_1x+\dot{V_0}(x)\le 0 \tag{4-20} H0(x,u1)=x⊤Qx+x⊤K1⊤RK1x+V0˙(x)≤0(4-20)
移项:
x⊤Qx+x⊤K1⊤RK1x≤−V0˙(x)(4-21) x^\top Q x+x^\top K_1^\top RK_1x\le -\dot{V_0}(x) \tag{4-21} x⊤Qx+x⊤K1⊤RK1x≤−V0˙(x)(4-21)
对新策略K1K_1K1的轨迹x1(t)x_1(t)x1(t)从0到TTT积分:
∫0Tx1⊤Qx+x1⊤K1⊤RK1x1≤−∫0TV0˙(x1(T))(4-22) \int^{T}{0}\leftx_1\^\\top Qx+x\^\\top_1 K_1\^\\top RK_1x_1\\right\le -\int^{T}{0}\dot{V_0}(x_1(T)) \tag{4-22} ∫0Tx1⊤Qx+x1⊤K1⊤RK1x1≤−∫0TV0˙(x1(T))(4-22)
右边积分为:
−∫0TV0˙(x1(T))=V0(x0)−V0(x1(T))(4-23) -\int^{T}_{0}\dot{V_0}(x_1(T))=V_0(x_0)-V_0(x_1(T)) \tag{4-23} −∫0TV0˙(x1(T))=V0(x0)−V0(x1(T))(4-23)
所以
∫0Tx1⊤Qx+x1⊤K1⊤RK1x1≤V0(x0)−V0(x1(T))(4-24) \int^{T}_{0}\leftx_1\^\\top Qx+x\^\\top_1 K_1\^\\top RK_1x_1\\right \le V_0(x_0)-V_0(x_1(T)) \tag{4-24} ∫0Tx1⊤Qx+x1⊤K1⊤RK1x1≤V0(x0)−V0(x1(T))(4-24)
由于V0(x1(T))>0V_0(x_1(T))>0V0(x1(T))>0,所以:
∫0Tx1⊤Qx+x1⊤K1⊤RK1x1≤V0(x0)(4-25) \int^{T}_{0}\leftx_1\^\\top Qx+x\^\\top_1 K_1\^\\top RK_1x_1\\right \le V_0(x_0) \tag{4-25} ∫0Tx1⊤Qx+x1⊤K1⊤RK1x1≤V0(x0)(4-25)
当T→∞T\rightarrow\inftyT→∞时候,上式就变为:
JK1(x0)≤JK0(x0)(4-26) J_{K_1}(x_0)\le J_{K_0}(x_0) \tag{4-26} JK1(x0)≤JK0(x0)(4-26)
证毕。