连续系统的LQR轨迹跟踪问题
背景
在前边的文章《连续系统的LQR推导》以及《连续系统的LQR变分法推导》中,我们已经推导出了连续系统的LQR控制器。不过在上述推导中,我们都假定控制目标是 0 0 0(这从其中代价函数的形式中就可以看出来)。但是在实际应用中,我们往往需要系统能够跟踪某个给定的轨迹。因此,本文将讨论连续系统的LQR轨迹跟踪问题。
问题描述
连续系统的LQR轨迹跟踪问题可以用如下方式描述:
给定一个连续系统:
x ˙ ( t ) = A x ( t ) + B u ( t ) (1) \begin{aligned} \dot{x}(t) = Ax(t) + Bu(t) \end{aligned} \tag{1} x˙(t)=Ax(t)+Bu(t)(1)
我们定义LQR轨迹跟踪问题的代价函数为:
J = 1 2 ( x ( t f ) − r ( t f ) ) T P f ( x ( t f ) − r ( t f ) ) + 1 2 ∫ t 0 t f ( ( x ( t ) − r ( t ) ) T Q ( x ( t ) − r ( t ) ) + u T ( t ) R u ( t ) ) d t (2) \begin{aligned} J &= \frac{1}{2}(x(t_f)-r(t_f))^TP_f(x(t_f)-r(t_f))\\ &+\frac{1}{2}\int_{t_0}^{t_f} \left( (x(t)-r(t))^TQ(x(t)-r(t)) + u^T(t)Ru(t) \right) dt \end{aligned} \tag{2} J=21(x(tf)−r(tf))TPf(x(tf)−r(tf))+21∫t0tf((x(t)−r(t))TQ(x(t)−r(t))+uT(t)Ru(t))dt(2)
其中 r ( t ) r(t) r(t) 是给定的轨迹, P f P_f Pf 是最终状态的权重矩阵, Q Q Q 是状态的权重矩阵, R R R 是控制的权重矩阵。
解决方案
根据前述文章中的结论,我们可以得到上述问题的哈密顿量(Hamiltonian):
H = 1 2 ( x ( t ) − r ( t ) ) T Q ( x ( t ) − r ( t ) ) + 1 2 u T R u + p T ( A x + B u ) = 1 2 x T Q x − x T Q r + 1 2 u T R u + p T ( A x + B u ) (3) \begin{aligned} \mathscr{H} &= \frac{1}{2}(x(t)-r(t))^TQ(x(t)-r(t)) + \frac{1}{2}u^TRu + p^T(Ax+Bu)\\ &= \frac{1}{2}x^TQx - x^TQr + \frac{1}{2}u^TRu + p^T(Ax+Bu) \end{aligned} \tag{3} H