在稳定性分析中,我们会经常使用李雅普诺夫稳定性分析方法进行分析。并且在稳定性分析当中经常会出现两个方程,如下:
(1)
A
T
P
+
P
A
=
−
Q
A^{T}P+PA=-Q
ATP+PA=−Q
(2)
A
T
P
+
P
A
−
P
B
R
−
1
B
T
P
+
Q
=
0
A^{T}P+PA-PBR^{-1}B^{T}P+Q=0
ATP+PA−PBR−1BTP+Q=0
其中第二个方程又称为黎卡提(Riccati)方程,在一般的线性系统当中经常会使用它来证明系统的渐近稳定。
由于经常会用到上述两个方程的求解,并且每次都会忘记怎么求,故以此博客来记录一下,免得以后遇到的时候再去查资料。
取如下几个矩阵:
A
=
[
0
1
−
1
0
]
A=\begin{bmatrix}0 & 1\\ -1 & 0\\ \end{bmatrix}
A=[0−110],
B
=
[
0
1
]
B=\begin{bmatrix}0 \\ 1\end{bmatrix}
B=[01],
Q
=
[
0
1
1
0
]
Q=\begin{bmatrix}0 & 1\\ 1 & 0\\ \end{bmatrix}
Q=[0110],
R
=
0.5
R=0.5
R=0.5
求解
A
T
P
+
P
A
=
−
Q
A^{T}P+PA=-Q
ATP+PA=−Q中的P,命令格式为P = lyap(A', Q)
代码如下:
A = [0 1; -1 0];
Q = [0 1; 1 0];
R = 0.5;
P = lyap(A',Q)
# 输出结果
P =
0 0
0 1
求解
A
T
P
+
P
A
−
P
B
R
−
1
B
T
P
+
Q
=
0
A^{T}P+PA-PBR^{-1}B^{T}P+Q=0
ATP+PA−PBR−1BTP+Q=0中的P,命令格式为[P,l,g] = care(A, B, Q, R)
代码如下:
A = [0 1; -1 0];
B = [0; 1];
Q = [0 1; 1 0];
R = 0.5;
[P,l,g] = care(A, B, Q, R)
# 输出结果
P =
-1.0000 0.0000
0.0000 0.0000
l =
-0.0000 + 1.0000i
-0.0000 - 1.0000i
g =
1.0e-07 *
0.0000 0.2584