下面的所有讨论都是以线性连续定常系统为前提。
一、能控性的定义
一个线性定常连续系统:
x
˙
=
A
X
+
B
u
\pmb {\dot{x}}=\pmb{AX}+\pmb{Bu}
x˙=AX+Bu
如果存在一个分段连续的输入
u
(
t
)
\pmb u(t)
u(t),能在有限时间区间
[
t
0
,
t
f
]
[t_0,t_f]
[t0,tf]内,使系统由某一初始状态
x
(
t
0
)
\pmb x(t_0)
x(t0),转移到指定的任一终端状态
x
(
t
f
)
\pmb x(t_f)
x(tf),则称此状态空间是能控的。如果系统的所有状态变量都能控,则称此系统是完全能控的。
简单的说,能控性就是看一个系统的输入能否影响系统的内部状态。
二、能控性判据
这里列出了四个较为常见的能控性判据的结论,结论证明的篇幅较长先不说明。
1.格拉姆矩阵判据
[结论] 连续时间线性时不变系统为完全能控的充分必要条件是,存在时刻
t
1
t_1
t1>0,使如下定义的格拉姆矩阵
W
e
[
0
,
t
1
]
:
=
∫
0
t
1
e
−
A
t
B
B
T
e
−
A
T
t
d
t
W_e[0,t_1]:=\int_{0}^{t_1}e^{-At}BB^Te^{-A^Tt}dt
We[0,t1]:=∫0t1e−AtBBTe−ATtdt为非奇异。
该判据具有理论意义,工程上并不会使用格拉姆矩阵判据。
2.秩判据
秩判据是利用格拉姆矩阵判据所推导出来的。
[结论] 对n维连续时间线性时不变系统,构造能控性判别矩阵:
Q
c
=
[
B
A
B
.
.
.
A
n
−
1
B
]
\pmb Q_c=\begin{bmatrix}B&AB&...&A^{n-1}B\end{bmatrix}
Qc=[BAB...An−1B]那么系统完全能控的充分必要条件为
r
a
n
k
(
Q
c
)
=
r
a
n
k
(
[
B
A
B
.
.
.
A
n
−
1
B
]
)
=
n
rank(\pmb Q_c)=rank(\begin{bmatrix}B&AB&...&A^{n-1}B\end{bmatrix})=n
rank(Qc)=rank([BAB...An−1B])=n
3.PBH判据
[结论] 对n维连续时间线性时不变系统完全能控的充分必要条件为
r
a
n
k
(
s
I
−
A
,
B
)
=
n
,
rank(s\pmb I-A,B)=n,
rank(sI−A,B)=n,或
r
a
n
k
(
λ
i
I
−
A
,
B
)
=
n
,
i
=
1
,
2
,
.
.
.
,
n
rank(\lambda _i\pmb I-A,B)=n,i=1,2,...,n
rank(λiI−A,B)=n,i=1,2,...,n
其中
λ
i
\lambda _i
λi为系统特征值。
4.约当规范形判据
由于约当规范形判据的结论比较抽象,在这里结合例子来说明约旦规范形判据的用法。
使用约旦规范形判据前需要将系统矩阵化为对角矩阵或约当矩阵。
【对角标准型判据】 当系统矩阵的特征值两两互异(系统矩阵可以化为对角矩阵)时,直接观察矩阵
B
ˉ
\bar B
Bˉ中有没有全零行向量,若没有则说明系统是完全能控的。
例1 一个连续时间线性时不变系统,设其约当规范形状态方程为
[
x
˙
1
x
˙
2
x
˙
3
]
=
[
−
7
0
0
0
−
2
0
0
0
1
]
[
x
1
x
2
x
3
]
+
[
0
2
4
0
0
1
]
[
u
1
u
2
]
\begin{bmatrix} \dot{x}_1\\ \dot{x}_2 \\ \dot x_3\end{bmatrix}=\begin{bmatrix} -7&0&0\\0&-2&0\\0&0&1 \end{bmatrix}\begin{bmatrix} x_1\\ x_2 \\ x_3\end{bmatrix}+\begin{bmatrix} 0&2\\4&0\\0&1\end{bmatrix}\begin{bmatrix} u_1\\u_2 \end{bmatrix}
x˙1x˙2x˙3
=
−7000−20001
x1x2x3
+
040201
[u1u2]
直接观察矩阵 B ˉ \bar B Bˉ,因为矩阵 B ˉ \bar B Bˉ不包含全零行向量,因此系统完全能控。
例2 一个连续时间线性时不变系统,设其约当规范形状态方程为 [ x ˙ 1 x ˙ 2 x ˙ 3 ] = [ − 7 0 0 0 − 2 0 0 0 1 ] [ x 1 x 2 x 3 ] + [ 0 2 0 0 0 1 ] [ u 1 u 2 ] \begin{bmatrix} \dot{x}_1\\ \dot{x}_2 \\ \dot x_3\end{bmatrix}=\begin{bmatrix} -7&0&0\\0&-2&0\\0&0&1 \end{bmatrix}\begin{bmatrix} x_1\\ x_2 \\ x_3\end{bmatrix}+\begin{bmatrix} 0&2\\0&0\\0&1\end{bmatrix}\begin{bmatrix} u_1\\u_2 \end{bmatrix} x˙1x˙2x˙3 = −7000−20001 x1x2x3 + 000201 [u1u2]
同样直接观察矩阵 B ˉ \bar B Bˉ,可以看到矩阵 B ˉ \bar B Bˉ的第二行是全零行向量,因此系统不完全能控。
【一般约旦标准型判据】 当系统矩阵的特征值为重根时或不能化为对角矩阵时,这时将其化为约当规范形: x ^ ˙ = A ^ x ^ + B ^ u \dot{\hat{x}}=\hat{A}\hat{x}+\hat{B}u x^˙=A^x^+B^u其中 A ^ = [ J 1 J 2 . . . J l ] n × n , B ^ = [ B ^ 1 B ^ 2 . . . B ^ l ] n × p \hat{A}=\begin{bmatrix} J_1& & & \\ & J_2 & & \\ & &...& \\ & & &J_l\end{bmatrix}_{n\times n},\hat{B}=\begin{bmatrix} \hat{B}_1\\ \hat{B}_2 \\ ...\\\hat{B}_l\end{bmatrix}_{n\times p} A^= J1J2...Jl n×n,B^= B^1B^2...B^l n×p
由
B
^
i
k
(
k
=
1
,
2
,
.
.
.
a
)
\hat B_{ik}(k=1,2,...a)
B^ik(k=1,2,...a)最后一行所组成的矩阵满足
则系统完全能观。
例3 一个连续时间线性时不变系统,设其约当规范形状态方程为
x
^
˙
=
[
−
2
1
0
−
2
−
2
−
2
3
1
0
3
3
]
x
^
+
[
0
0
0
1
0
0
0
4
0
0
0
7
0
0
0
1
1
0
0
4
1
]
\dot{\hat{x}}=\begin{bmatrix}-2&1& & \\ 0& -2& & \\ & &-2& \\ &&&-2\\&&&&3&1\\&&&&0&3\\&&&&&&3\end{bmatrix}\hat x+\begin{bmatrix}0&0&0\\1&0&0\\0&4&0\\0&0&7\\0&0&0\\1&1&0\\0&4&1\end{bmatrix}
x^˙=
−201−2−2−230133
x^+
010001000400140007001
解: 由题可得,找出特征值-2对应的矩阵
B
^
σ
1
\hat B_{\sigma 1}
B^σ1和特征值为3对应的矩阵
B
^
σ
2
\hat B_{\sigma 2}
B^σ2,如下
B
^
σ
1
=
[
1
0
0
0
4
0
0
0
7
]
,
B
^
σ
2
=
[
1
1
0
0
4
1
]
\hat B_{\sigma 1}=\begin{bmatrix}1&0&0\\0&4&0\\0&0&7 \end{bmatrix},\hat B_{\sigma 2}=\begin{bmatrix}1&1&0\\0&4&1\end{bmatrix}
B^σ1=
100040007
,B^σ2=[101401]
因为
r
a
n
k
(
B
^
σ
1
)
=
3
,
r
a
n
k
(
B
^
σ
2
)
=
2
rank(\hat B_{\sigma 1})=3,rank(\hat B_{\sigma 2})=2
rank(B^σ1)=3,rank(B^σ2)=2
B
^
σ
1
\hat B_{\sigma 1}
B^σ1和
B
^
σ
2
\hat B_{\sigma 2}
B^σ2都满秩,因此系统完全能控。
例4 一个连续时间线性时不变系统,设其约当规范形状态方程为
x
^
˙
=
[
−
2
1
0
−
2
−
2
−
2
3
1
0
3
3
]
x
^
+
[
0
0
0
1
0
0
0
4
0
0
0
7
0
1
1
0
0
0
0
4
1
]
\dot{\hat{x}}=\begin{bmatrix}-2&1& & \\ 0& -2& & \\ & &-2& \\ &&&-2\\&&&&3&1\\&&&&0&3\\&&&&&&3\end{bmatrix}\hat x+\begin{bmatrix}0&0&0\\1&0&0\\0&4&0\\0&0&7\\0&1&1\\0&0&0\\0&4&1\end{bmatrix}
x^˙=
−201−2−2−230133
x^+
010000000401040007101
解: 由题可得,找出特征值-2对应的矩阵
B
^
σ
1
\hat B_{\sigma 1}
B^σ1和特征值为3对应的矩阵
B
^
σ
2
\hat B_{\sigma 2}
B^σ2,如下
B
^
σ
1
=
[
1
0
0
0
4
0
0
0
7
]
,
B
^
σ
2
=
[
0
0
0
0
4
1
]
\hat B_{\sigma 1}=\begin{bmatrix}1&0&0\\0&4&0\\0&0&7 \end{bmatrix},\hat B_{\sigma 2}=\begin{bmatrix}0&0&0\\0&4&1\end{bmatrix}
B^σ1=
100040007
,B^σ2=[000401]
因为
r
a
n
k
(
B
^
σ
1
)
=
3
,
r
a
n
k
(
B
^
σ
2
)
=
1
<
2
rank(\hat B_{\sigma 1})=3,rank(\hat B_{\sigma 2})=1<2
rank(B^σ1)=3,rank(B^σ2)=1<2
B
^
σ
2
\hat B_{\sigma 2}
B^σ2不满秩,因此系统不完全能控。
三、MATLAB仿真
在MATLAB中提供了求解系统能控性矩阵 Q c Q_c Qc的函数(秩判据):ctrb(A,B)。对于单输入单输出系统可以直接根据det(ctrb(A,B))是否为零来判断系统的能控性,或利用rank(ctrb(A,B))求出能控性矩阵 Q c Q_c Qc的秩来判断系统的能控性。对于多输入多输出系统可以用det(ctrb(A,B)*ctrb(A,B)‘)是否为零来判断系统的能控性,或利用rank(ctrb(A,B)*ctrb(A,B)’)求出能控性矩阵 Q c Q_c Qc的秩来判断系统的能控性。
例1 已知线性定常系统的状态空间模型为 [ x ˙ 1 x ˙ 2 ] = [ 0 1 − 1 − 2 ] [ x 1 x 2 ] + [ 1 0 1 1 ] [ u 1 u 2 ] [ y 1 y 2 y 3 ] = [ 3 1 1 2 − 2 − 1 ] [ x 1 x 2 ] + [ 1 0 0 0 0 1 ] [ u 1 u 2 ] \begin{bmatrix} \dot{x}_1\\ \dot{x}_2 \end{bmatrix}=\begin{bmatrix} 0 & 1\\ -1 & -2 \end{bmatrix}\begin{bmatrix} x_1\\ x_2 \end{bmatrix}+\begin{bmatrix} 1 & 0\\ 1 & 1 \end{bmatrix}\begin{bmatrix} u_1\\ u_2 \end{bmatrix} \\\begin{bmatrix}y_1\\ y_2 \\ y_3 \end{bmatrix}=\begin{bmatrix} 3 & 1\\ 1 & 2 \\ -2 & -1\end{bmatrix}\begin{bmatrix} x_1\\ x_2 \end{bmatrix}+\begin{bmatrix} 1 & 0\\ 0 & 0 \\ 0 & 1\end{bmatrix}\begin{bmatrix} u_1\\ u_2 \end{bmatrix} [x˙1x˙2]=[0−11−2][x1x2]+[1101][u1u2] y1y2y3 = 31−212−1 [x1x2]+ 100001 [u1u2]求解程序如下
clear all;
A=[0 1;-1 -2];
B=[1 0;1 1];
n=size(B,1);
Qc=ctrb(A,B);
if rank(Qc)==n%判断能控性矩阵Qc是否列满秩
fprintf('系统完全能控\n')
else fprintf('系统不完全能控\n')
end
运行结果:
Qc =
1 0 1 1
1 1 -3 -2
系统完全能控
总结
利用matlab判断系统的能控性一般是利用秩判据。