前言

群就是一种集合加上一种运算的代数结构,把集合记作 AA ,运算记作 \cdot ,那么群就可以记作 G=(A,)G=(A,\cdot) ,一个群满足如下性质

  • 封闭性: a,bA,abA\forall a,b\in A,a\cdot b\in A
  • 结合律: a,b,cA,(ab)c=a(bc)\forall a,b,c\in A,(a\cdot b)\cdot c=a\cdot(b\cdot c)
  • 单位元 eeeA,bA,eb=be=b\exist e\in A,\forall b\in A,e\cdot b=b\cdot e=b
  • 逆元: aA,a1A,aa1=a1a=e\forall a\in A,\exist a^{-1}\in A,a\cdot a^{-1}=a^{-1}\cdot a=e

群结构保证了在群上的运算具有良好的性质

李群

李群是同时具有光滑流形结构和群结构的数学对象,李群就是具有连续性质的群,群运算 (a,b)ab(a,b)\rightarrow a\cdot baa1a\rightarrow a^{-1} 都是光滑映射

李群在控制理论中的作用

  • 机器人的姿态表示 SO(3),SE(3)SO(3),SE(3)
  • 系统对称性分析
  • 非线性控制系统设计

李代数

李代数是配备了一个被称为李括号的双线性运算的向量空间。李代数是一个向量空间 gg 配上一个二元运算符 [,][\cdot,\cdot]g×ggg\times g\rightarrow g ,李代数有如下性质

  • 双线性性

    [aX+bY,Z]=a[X,Z]+b[Y,Z][Z,aX+bY]=a[Z,X]+b[Z,Y][aX+bY,Z]=a[X,Z]+b[Y,Z]\\ [Z,aX+bY]=a[Z,X]+b[Z,Y]

  • 反对称性

    [X,Y]=[Y,X][X,Y]=-[Y,X]

  • Jacobi 恒等式

    [X,[Y,Z]]+[Y,[Z,X]]+[Z,[X,Y]]=0[X,[Y,Z]]+[Y,[Z,X]]+[Z,[X,Y]]=0

每个李群 GG 对应一个李代数 gg

  • gg 是李群在单位元处的切空间
  • 李括号运算反映了李群中元素的交换性质

Hamiltonian 辛矩阵

数学中,辛矩阵是指存在一个 2n×2n2n\times 2n 的矩阵 M,使之满足

MTΩM=ΩM^T\Omega M=\Omega

其中 MTM^T 为 M 的转置矩阵,而辛矩阵 Ω\Omega 是一个固定的可逆斜对称矩阵,这类矩阵在适当的变化后皆能表为

Ω=[0II0]\Omega=\begin{bmatrix}0&I\\-I&0\end{bmatrix}

或者

Ω=[0110...0110]\Omega=\begin{bmatrix}0&1\\-1&0\\&&...\\&&&0&1\\&&&-1&0\\\end{bmatrix}

两者的差异仅在于基的排列,其中 IIn×nn\times n 的单位矩阵,此外 detΩ=1\det\Omega=1 并且 Ω1=Ω\Omega ^{-1}=-\Omega

性质

  1. ΩT=Ω=Ω1\Omega^T=-\Omega=\Omega^{-1}
  2. ΩTΩ=ΩΩT=I\Omega^T\Omega=\Omega\Omega^T=I
  3. ΩΩ=I\Omega\Omega=-I
  4. detΩ=1\det\Omega=1

代数Riccati方程

黎卡提方程是最简单的一类非线性方程。例如

y=P(x)y2+Q(x)y+R(x)y' = P(x)y^2+Q(x)y+R(x)

是最优控制的非线性方程,和连续性时间或者是离散时间下无限时间的最优控制有关。

标准的Raccati方程分为两种:

  1. 连续时间代数Riccati方程(CARE):

    ATP+PAPBR1BTP+Q=0A^TP+PA-PBR^{-1}B^TP+Q=0

  2. 离散时间代数Riccati方程(DARE):

    P=ATPA(ATPB)(R+BTPB)1(BTPA)+QP=A^TPA-(A^TPB)(R+B^TPB)^{-1}(B^TPA)+Q

在无限时间的最佳控制问题中,关注的是一些变数在相当时间之后的数值,因此需要在现在选定的控制变数的数值,让系统在之后的时间都在最佳的状态下运作,控制变数在任意时间下的最佳值可以使用 Riccati 方程的解以及状态变数当时的观测值求得,若观测变数及控制变数都不止一个,Riccati 方程就会是矩阵方程

其中 P 是未知数的 n×nn\times n 对称矩阵,A,B,Q 及 R 是已知实系数矩阵。一般而言此方程式有许多的解,不过若有存在稳定解的话,希望可以找到稳定解。

若代数 Riccati 方程存在稳定解,求解器一般会设法找到唯一的稳定解。稳定解的意思是指用此解控制相关的 LQR 系统,可以使闭回路的系统稳定。

连续时间代数Riccati方程(CARE)

针对连续时间代数的Riccati方程(CARE),控制规律为:

K=R1BTPK=R^{-1}B^TP

带入 Riccati 方程

ATP+PAPBK+Q=0A^TP+PA-PBK+Q=0

闭回路递移矩阵为:

ABK=ABR1BTPA-BK=A-BR^{-1}B^TP

稳定的充分必要条件是所有的特征值都有负的实部

离散时间代数Riccati方程(DARE)

针对离散时间代数的Riccati方程(DARE)

K=(R+BTPB)1BTPAK=-(R+B^TPB)^{-1}B^TPA

带入 Riccati 方程

P=ATPA+ATPBK+QP=A^TPA+A^TPBK+Q

闭回路递移矩阵为:

ABK=AB(R+BTPB)1BTPAA-BK=A-B(R+B^TPB)^{-1}B^TPA

稳定的充要条件是所有的特征值在复数平面的单位圆内

代数 Riccati 方程的解可以用 Riccati 方程的的迭代或是矩阵因式分解求得。离散时间问题的一种迭代方式是由有限时间问题下的动态 Riccati 方程,每一次迭代时,矩阵中的值都是从最终时间往前一段有限时间内的最佳解,若进行无限长的迭代。就会分敛到特定矩阵,是无限时间内的最佳解。

Riccati 迭代法求解

给定初始值 K0,P0K_0,P_0 使之满足上述 Riccati 方程,不断迭代,公式为

CARE:ATPk+PkAPkBKk+Q=0DARE:Pk=ATPkA+ATPkBKk+QKk=R1BTPk1CARE:A^TP_k+P_kA-P_kBK_k+Q=0\\DARE:P_k=A^TP_kA+A^TP_kBK_k+Q\\K_k=R^{-1}B^TP_{k-1}

KKPP 收敛时,得到最优控制策略,迭代一定次数,使得本次迭代的结果与上次的结果的差值在某个范围之内认为是收敛了,就是最终的解

Riccati 不变子空间法求解

首先构造 Hamiltonian 矩阵

CARE:H=[ABR1BTQAT]DARE:H=[A+BR1BT(A1)TQBR1BT(A1)T(A1)TQ(A1)T]CARE:H=\begin{bmatrix}A&-BR^{-1}B^T\\-Q&-A^T\end{bmatrix}\\ DARE:H=\begin{bmatrix}A+BR^{-1}B^T(A^{-1})^TQ&-BR^{-1}B^T(A^{-1})^T\\-(A^{-1})^TQ&(A^{-1})^T\end{bmatrix}

而 Hamiltonian 矩阵 HR2n×2nH\in R^{2n\times2n} 且满足 HTJH=JH^TJH=J ,其中 J=[0II0]J=\begin{bmatrix}0&I\\-I&0\end{bmatrix}

首先计算 Hamiltonian 矩阵的特征分解,此处选择 nn 个稳定的特征值,利用对应的特征向量组成矩阵

[v1v2]\begin{bmatrix}v_1\\v_2\end{bmatrix}

其中 v1,v2Cn×nv_1,v_2\in C^{n\times n} ,对于特征向量矩阵满足如下公式

H[v1v2]=[v1v2]ΛH\begin{bmatrix}v_1\\v_2\end{bmatrix}=\begin{bmatrix}v_1\\v_2\end{bmatrix}\Lambda

其中 Λ\Lambda 就是矩阵 HH 的特征值,其中包含 nn 个稳定特征值(即实部小于 0 的特征值),若 v1v_1 可逆,则稳态的 Riccati 方程的解为

P=v2v11P=v_2v_1^{-1}