1、线性二次型最优控制 LQ Optimal Control
我们不必现在深度研究最优控制的求极值技巧(极大值原理,古典变分法与动态规划)。除去求最优控制的技巧,优化控制技术的逻辑很简单:给一个系统,给一个性能函数(performance index, 也叫cost function),求出一个控制序列,使得系统稳定并且性能函数取到极值。至于是取极小值还是极大值,这个取决于求解的问题和性能函数的定义。所以我们来聊聊这个常见的LQR是怎么回事。
Linear Quadratic Regulator, a.k.a, LQR, 是线性二次型调节器的缩写。要说这个LQR,就先得从LQ Optimal Control开始说起。我们研究一个线性时变系统:
(1)
定义一个时域连续性能泛函:
(2)
,是控制起始与终止时间,求一个最优控制时序 使得(1)稳定且(2)取极值,这个问题就是一个LQ Optimal Control Problem.
我们现在就让(2)取极小值吧,考察一下(2)的各项含义:
:是状态向量,也可以是误差状态向量( e(t)=x(t)−x0(t) ), Q 是权重矩阵。由于 我们允许 Q 的特征值为非负, ,即Q 是semi positive definite 的,我们总有 非负。衡量了误差 x(t) 的大小。使用系统状态向量时,可以认为 x(t) 是与0向量之间的误差。当 J 最小时,这一项也会要求尽量小。 Q 一般是对角矩阵,对角线上的元素取大于等于0的常值或者时变量,满足最优时误差向量 x(t) 能够尽可能小。当 x(t) 是实数时,我们很明显有 ,其非负性和误差大小的衡量作用是很明显的。
: u(t) 是控制输入, R 和 Q 一样也是权重矩阵。因为我们要求最优控制的所有时序不全为0,那么任何情况下只要输入不为0,作为衡量控制消耗项就应该永远大于0,所以有 L2>0 ,根据定义R>0 即positive definite,是一个正定矩阵. L2 衡量了control effort,也就是控制所付出的代价。
: 这一项强调了终端误差,当 J 最小化时,我们就会同时要求 L3 在一定程度上也减小。
在对角线上的每个元素的大小,表示了 x(t) 的各元素在极小化时的权重,该数越大,期望状态分量误差就越小。一个简单地例子,对于一个3维系统:,那么第三个状态在极小化中更受到重视,极小化结果应当使得此状态分量误差更小,依次向上递减。从实际的效果来看,大权重的 Q 矩阵能让是状态收敛更快[1,p299],我们下面有解释。所以这也是 Q 半正定的原因了,因为我们可以让某些元素取0,对某些状态不作要求。矩阵 R,Q1 都是同理。
LQ optimal control 是一个finite horizon optimal problem(有限时域优化问题),因为积分的上限是一个有限值,控制任务希望控制器能够在有限时间内把状态转到到零点或者某一个平衡点,保证泛函取极值。在这里就是希望能够在不消耗过多能量的情况下把状态误差保持到最小。这样的控制器也叫 Finite Horizon LQR.
有限时域LQR的求解过程我们这里不追究了。我们说一下最后解得结果:
, (3)
其中 P(t) 是Riccati matrix differential equation的解,是一个real symmetric positive definite matrix,这里不深究了。重要的是,我们发现(3)构成了一个线性状态反馈,只不过反馈增益矩阵是时变的。Finite Horizon LQR的求解比较繁琐,主要是求解 P(t) 并不容易。
2. 无限时域LQR Infinite Horizon LQR
由于(2)中的积分上限是有限的,最终 P(t) 总是一个时变值,导致(3)中的增益矩阵也是时变的。我们后来发现,当 tf→∞ 时, P(t) 能够接近一个常值 P 。由此启发,我们现在可以对一个线性定常系统:
(4)
寻求最优控制使得性能函数:
(5)
取得极值。其中 L3 项因为在无穷远处系统状态渐进稳定而必为0,因此可以省略。此时原来 P(t) 所在的矩阵微分方程变成了Algebraic Riccati Equation(ARE) :
(6)
我们有了新的解:
, (7)
此时控制仍然是一个线性状态反馈,而且反馈增益矩阵还是一个常值矩阵。
采用(5)作为优化性能函数,(7)作为控制律的控制器就是我们常常说的那个无限时域LQR,后来传来传去变成大名鼎鼎、如雷贯耳的“LQR控制器”了。实际上“R”就是Regulator的意思,所以LQR控制器,LQR control的说法其实都有点不太准确。不过无所谓了,盛名在外,不拘小节。