离散LQR:原理,求解与拓展

该文档用以总结离散LQR的基本原理,反馈控制率的求解和一些拓展(时变系统,跟踪命题等)。主要参考的是Stanford的课程EE363: Linear Dynamical Systems的部分课件。

目录


1 有限时域离散LQR的基本原理

这里我们首先考虑一个离散的线性系统:

xt+1=Axt+But,x0=xinit

LQR的目标就在于,找到一组控制序列u0,u1,... 能够使得:
  • x0,x1,... 尽量小,即将状态调节到零点;
  • u0,u1,... 尽量小,即控制器付出较小的努力;

然而,这两个目标往往是冲突的,因为较大的控制作用u 能更快地将状态调节到零点。因此LQR就是根据需要设计出一组控制率来实现上面两个目标的权衡。

为此,我们定义如下的二次代价函数(quadratic cost function):

J(U)=τ=0N1(xTτQxτ+uTτRuτ)+xTNQfxN
这里 U=(u0,u1,...,uN1) ,且
Q=QT0,Qf=QTf0,R=RT>0
分别被称为 state cost, final state cost, input cost 矩阵。

代价函数中的三项分别用来衡量状态偏差,输入偏差以及最终状态偏差。QR 用来确定状态和输入的相对权重。
因此,LQR的问题就是,找到一组序列:ulqr0,...,ulqrN1 来最小化代价函数 J(U)

通常 QR 的形式为:

R=ρI,Q=Qf=CTC
这里 CRp×n,ρR,ρ>0

于是,代价函数就可以变形为:

J(U)=τ=0Nyτ2+ρτ=0N1uτ2
这里 y=Cxρ 在这里给出了输出和输入的相对权重。

2 基于动态规划(Dynamic Programming)的求解

LQR命题也可以通过最小二乘(least-squares)的方法求解,但这里我们只讨论基于动态规划的求解方法。
这里我们首先定义一个价值函数(value function)Vt:RnR

Vt(z)=minut,...,uN1τ=tN1(xTτQxτ+uTτRuτ)+xTNQfxN
满足约束 xt=z,xτ+1=Axτ+Buτ,τ=t,...,N1

即,Vt(z) 给出的是从 t 时刻的状态 z 开始的LQR的代价函数。当 t=0 时,V0(x0) 就是原始的LQR代价函数。

我们可以证明 Vt 是二次型,即Vt(z)=zTPtz ,其中 Pt=PTt0
首先,我们可以知道,当 t=N 时有:

VN(z)=zTQfz
因此我们有 PN=Qf

现在我们假设Vt+1(z) 已知,根据动态规划(DP)的原理,有:

Vt(z)=minw(zTQz+wTRw+Vt+1(Az+Bw))
  • zTQz+wTRw 是从当前时刻的代价值
  • Vt+1(A+Bwz) 是从下一时刻到 N 时刻的代价值。

因此这就是一个典型的动态规划问题。

因为当前状态 z 与优化命题无关,因此上面的优化命题也可以改写为:

Vt(z)=zTQz+minw(wTRw+Vt+1(Az+Bw))
也就是说,当前时刻 t 的控制率 ut 取值应该如下:
ulqrt=argminw(wTRw+Vt+1(Az+Bw))

假设Vt+1(z)=zTPt+1z,Pt+1=PTt+10 ,我们可以证明Vt 具有同样的形式。
Vt+1(z)=zTPt+1z 代入上面Vt(z) 的表达式,即有:

Vt(z)=zTQz+minw(wTRw+(Az+Bw)TPt+1(Az+Bw))

对于这样一个无约束的凸优化命题令其导数等于0即可以得到最优解。导数等于0得到的等式为:
2wTR+2(Az+Bw)TPt+1B=0

因此,当前时刻的最优控制率为:
w=(R+BTPt+1B)1BTPt+1Az

将上面的结果代入Vt(x) 的表达式,即

Vt(z)=zTQz+wTRw+(Az+Bw)TPt+1(Az+Bw)=zT(Q+ATPt+1AATPt+1B(R+BTPt+1)1BTPt+1A)z=zTPtz

其中,Pt=Q+ATPt+1AATPt+1B(R+BTPt+1)1BTPt+1A

容易证明 Pt=PTt0

因此,LQR的求解过程可以总结如下:

  1. set PN:=Qf
  2. for t=N,...,1,
    Pt1:=Q+ATPtAATPtB(R+BTPt)1BTPtA
  3. for t=0,...,.N1 , define Kt:=(R+BTPt+1B)1BTPt+1A
  4. for t=0,...,.N1 , ulqrt=Ktxt

从上面的推导我们可以看出,LQR中,最优控制率是状态的线性反馈。

t 远小于 N 的时候,稳态的 Pss 可以近似收敛并满足下面的方程:

Pss=Q+ATPssAATPssB(R+BTPss)1BTPssA
这个方程被称为代数黎卡提方程(algebraic Riccati equation, ARE)。
因此,当时刻 t 距时域终点 N 较远时,LQR的控制率可以近似看作状态 x 的常数反馈,即
ut=Kssxt,Kss=(R+BTPssB)1BTPssA

3 一些拓展

针对时变系统

xt+1=Atxt+Btut

我们可以定义对应的时变代价函数
J=τ=0N1(xTτQτxτ+uTτRτuτ)+xTNQfxN

可以看到,终点时刻的加权阵 Qf 并没有发生变化,因此前面根据DP推导得到的LQR的架构可以直接拓展到时变系统。显然,前面提到的稳态情况下的常值反馈在时变系统中将不复存在。


针对跟踪命题,代价函数可以写成

J=τ=0N1(xτx¯τ)TQτ(xτx¯τ)+τ=0N1(uτu¯τ)TRτ(uτu¯τ)

(简要起见这里舍去了终端状态的代价)
其中,x¯τu¯τ 分别是状态和输入要跟踪的轨迹。
通过一些附加的推导,前面DP推导的结果也可以运用在这样的跟踪命题中。

Ref.
Stanford, EE363: Linear Dynamical Systems

发布了21 篇原创文章 · 获赞 79 · 访问量 15万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章