该文档用以总结离散LQR的基本原理,反馈控制率的求解和一些拓展(时变系统,跟踪命题等)。主要参考的是Stanford的课程EE363: Linear Dynamical Systems的部分课件。
目录
1 有限时域离散LQR的基本原理
这里我们首先考虑一个离散的线性系统:
LQR的目标就在于,找到一组控制序列 u0,u1,... 能够使得:
- x0,x1,... 尽量小,即将状态调节到零点;
- u0,u1,... 尽量小,即控制器付出较小的努力;
然而,这两个目标往往是冲突的,因为较大的控制作用 u 能更快地将状态调节到零点。因此LQR就是根据需要设计出一组控制率来实现上面两个目标的权衡。
为此,我们定义如下的二次代价函数(quadratic cost function):
代价函数中的三项分别用来衡量状态偏差,输入偏差以及最终状态偏差。
Q
和
因此,LQR的问题就是,找到一组序列:
ulqr0,...,ulqrN−1
来最小化代价函数
J(U)
。
通常
Q
和
于是,代价函数就可以变形为:
2 基于动态规划(Dynamic Programming)的求解
LQR命题也可以通过最小二乘(least-squares)的方法求解,但这里我们只讨论基于动态规划的求解方法。
这里我们首先定义一个价值函数(value function)
Vt:Rn→R
即,
Vt(z)
给出的是从
t
时刻的状态
我们可以证明
Vt
是二次型,即
Vt(z)=zTPtz
,其中
Pt=PTt≥0
。
首先,我们可以知道,当
t=N
时有:
现在我们假设 Vt+1(z) 已知,根据动态规划(DP)的原理,有:
- zTQz+wTRw 是从当前时刻的代价值
- Vt+1(A+Bwz) 是从下一时刻到 N 时刻的代价值。
因此这就是一个典型的动态规划问题。
因为当前状态
假设
Vt+1(z)=zTPt+1z,Pt+1=PTt+1≥0
,我们可以证明
Vt
具有同样的形式。
将
Vt+1(z)=zTPt+1z
代入上面
Vt(z)
的表达式,即有:
对于这样一个无约束的凸优化命题令其导数等于0即可以得到最优解。导数等于0得到的等式为:
因此,当前时刻的最优控制率为:
将上面的结果代入 Vt(x) 的表达式,即
其中, Pt=Q+ATPt+1A−ATPt+1B(R+BTPt+1)−1BTPt+1A
容易证明 Pt=PTt≥0
因此,LQR的求解过程可以总结如下:
- set PN:=Qf
- for
t=N,...,1,
Pt−1:=Q+ATPtA−ATPtB(R+BTPt)−1BTPtA
- for t=0,...,.N−1 , define Kt:=−(R+BTPt+1B)−1BTPt+1A
- for t=0,...,.N−1 , ulqrt=Ktxt
从上面的推导我们可以看出,LQR中,最优控制率是状态的线性反馈。
当
t
远小于
因此,当时刻 t 距时域终点
3 一些拓展
针对时变系统
我们可以定义对应的时变代价函数
可以看到,终点时刻的加权阵 Qf 并没有发生变化,因此前面根据DP推导得到的LQR的架构可以直接拓展到时变系统。显然,前面提到的稳态情况下的常值反馈在时变系统中将不复存在。
针对跟踪命题,代价函数可以写成
(简要起见这里舍去了终端状态的代价)
其中, x¯τ 和 u¯τ 分别是状态和输入要跟踪的轨迹。
通过一些附加的推导,前面DP推导的结果也可以运用在这样的跟踪命题中。
Ref.
Stanford, EE363: Linear Dynamical Systems
本文详细介绍了离散线性二次调节器(LQR)的基本原理,通过动态规划方法求解控制序列,并探讨了其在时变系统和跟踪命题中的拓展应用。核心内容包括二次代价函数的定义,动态规划解题步骤,以及LQR控制器的设计和优化过程。
3662





