状态能控性判定
状态能控性判别矩阵 Qc=[ B AB ... A^(n-1)B ]
系统状态完全能控的充要条件是能控性判别矩阵Qc满秩。
ctrb()函数
作用:求能控性判别矩阵Qc
主要调用格式为:
Qc = ctrb(A,B)
Qc = ctrb(sys) %sys=ss(A,B,[],[]);
%能控性判定
clc,clear
A=[1 3 2; 0 2 0; 0 1 3];
B=[2 1; 1 1; -1 -1];
Qc = ctrb(A,B) %求能控性判别矩阵Qc
r=rank(Qc) %矩阵的秩
n=length(A)
if rank(Qc)==n
disp('完全能控')
else
disp('不完全能控')
end
Qc =
2 1 3 2 5 4
1 1 2 2 4 4
-1 -1 -2 -2 -4 -4
r =
2
n =
3
不完全能控
状态能观性判定
状态能观性判别矩阵 Qo=[ C; CA; ... ;CA^(n-1) ]
系统状态完全能观的充要条件是能观性判别矩阵Qo满秩。
obsv()函数
作用:求能观性判别矩阵Qo
主要调用格式为:
Qo = obsv(A,C)
Qo = obsv(sys) %sys=ss(A,[],C,[]);
%能观性判定
clc,clear
A=[2 0 3; -1 -2 0; 0 1 2];
C=[1 0 0; 0 1 0];
Qo = obsv(A,C) %求能观性判别矩阵Qc
r=rank(Qo) %矩阵的秩
n=length(A)
if rank(Qo)==n
disp('完全能观')
else
disp('不完全能观')
end
Qo =
1 0 0
0 1 0
2 0 3
-1 -2 0
4 3 12
0 4 -3
r =
3
n =
3
完全能观