线性系统结构分析与分解及标准型.docx
《线性系统结构分析与分解及标准型.docx》由会员分享,可在线阅读,更多相关《线性系统结构分析与分解及标准型.docx(16页珍藏版)》请在冰豆网上搜索。
![线性系统结构分析与分解及标准型.docx](https://file1.bdocx.com/fileroot1/2023-1/8/b0d0811a-544a-47d4-acef-20e036b36798/b0d0811a-544a-47d4-acef-20e036b367981.gif)
线性系统结构分析与分解及标准型
姓名:
学号:
指导老师:
学院:
电气工程学院专业:
自动化
实验内容:
线性系统结构分析与分解及标准型
【实验目的】
掌握线性系统状态空间标准型、解及其模型转换。
【实验设备与软件】
MATLAB数值分析软件
【实验原理】
1、标准型变换、矩阵Jordan型变换、特征值相关命令格式;
2、状态模型的相似变换命令格式;
3、线性定常系统的可控制与可观性及结构分解;
4、定常线性系统的标准型转换方法。
【实验内容、方法、过程与分析】
1已知线性系统
(1)判断其状态可控性、可观性和传递函数的关系,并加以说明分析。
(2)对系统分别按能控性、能观性分解以及能控能关性分解。
实验程序:
(1)>>A=[-6-0.6250.75;800;020];B=[1;0;0];C=[1-0.250.0625];
>>Qc=ctrb(A,B)
Qc=
1-631
08-48
0016
>>Rc=rank(Qc)
Rc=
3
>>Co=ctrb(A,B);
>>m=size(C,1);
>>Qyc=[C*Co,1];
>>Tm=rank(Qyc)
Tm=
1
>>m=size(C,1)
m=
1
>>Qo=obsv(A,C)
Qo=
1.0000-0.25000.0625
-8.0000-0.50000.7500
44.00006.5000-6.0000
>>Ro=rank(Qo)
Ro=
2
由程序中的结果可知,该系统是是状态完全可控的,系统输出是完全可控的,系统的不是状态完全可观的。
(2)>>[Abar,BbarCbar,T,K]=ctrbf(A,B,C)
Abar=
02.00000
008.0000
0.7500-0.6250-6.0000
Bbar=
0
0
1
Cbar=
0.0625-0.25001.0000
T=
001
010
100
K=
111
>>A1=T*A*T'
A1=
02.00000
008.0000
0.7500-0.6250-6.0000
由程序中的A1=Abar可知,可控性分解是正确的。
>>[Abar,BbarCbar,T,K]=obsvf(A,B,C)
Abar=
1.0000-2.27722.7134
0.00000.3407-5.5238
0.00002.6251-7.3407
Bbar=
0.0558
-0.2432
0.9684
Cbar=
-0.00000.00001.0327
T=
0.05580.44650.8930
-0.2432-0.86140.4459
0.9684-0.24210.0605
K=
110
>>A1=T*A*T'
A1=
1.0000-2.27722.7134
0.00000.3407-5.5238
0.00002.6251-7.3407
由程序中的A1=Abar可知,可观性分解是正确的。
2、在MATLAB中建立并运行如下的.m代码,回答下面问题。
num=[123];
den=conv([1625],[11235]);
G=tf(num,den)
Gs=ss(G)
[VJ]=jordan(Gs.a)
Gss=ss2ss(Gs,inv(V))
Gsm=canon(Gs,'model')
Gsf=canon(Gs,'companion')
(1)给出无分号的运行结果,并比较几个状态方程。
>>num=[123];
>>den=conv([1625],[11235]);
>>G=tf(num,den)
Transferfunction:
s^2+2s+3
------------------------------------
s^4+18s^3+132s^2+510s+875
>>Gs=ss(G)
a=
x1x2x3x4
x1-18-8.25-3.984-3.418
x216000
x30800
x40020
b=
u1
x10.25
x20
x30
x40
c=
x1x2x3x4
y100.250.06250.04688
d=
u1
y10
Continuous-timemodel.
>>[VJ]=jordan(Gs.a)
V=
-0.4883-1.33980.4570+0.1719i0.4570-0.1719i
1.56253.0625-0.4375-1.5000i-0.4375+1.5000i
-2.5000-3.5000-1.5000+2.0000i-1.5000-2.0000i
1.00001.00001.00001.0000
J=
-5.0000000
0-7.000000
00-3.0000+4.0000i0
000-3.0000-4.0000i
>>Gss=ss2ss(Gs,inv(V))
a=
x1x2x3x4
x1-5+8.4e-015i-1.07e-014+8.55e-015i1.9e-014+8.38e-015i2.19e-014+1.19e-014i
x2-3.55e-015-4.3e-015i-7-4.43e-015i-5.7e-015-6.06e-015i-4.07e-015+1.57e-016i
x34.97e-016-3.55e-015i1.81e-015-3.55e-015i-3+4i4.44e-016-4.22e-015i
x43.91e-016-1.78e-015i4.41e-015-1.78e-015i-4.88e-015-3.11e-015i-3-4i
b=
u1
x11.6+2.22e-016i
x2-1-1.67e-016i
x3-0.3+0.1i
x4-0.3-0.1i
c=
x1x2x3x4
y10.281+1.25e-016i0.594+1.94e-016i-0.156-0.25i-0.156+0.25i
d=
u1
y10
Continuous-timemodel.
>>Gsm=canon(Gs,'model')
a=
x1x2x3x4
x1-3400
x2-4-300
x300-70
x4000-5
b=
u1
x10.9492
x2-0.1931
x34.942
x45.042
c=
x1x2x3x4
y10.16990.09054-0.12010.08925
d=
u1
y10
Continuous-timemodel.
>>Gsf=canon(Gs,'companion')
a=
x1x2x3x4
x1000-875
x2100-510
x3010-132
x4001-18
b=
u1
x11
x20
x30
x40
c=
x1x2x3x4
y101-16159
d=
u1
y10
Continuous-timemodel.
(2)当系统的
得到的特征多项式的解无重根时,则cannon得到的是对角型系统。
例:
输入语句A=[010;001;-6-11-6];eig[A]可以求出A阵的特征值为-1、-2、-3。
因此
输入以下语句
A=[010;001;-6-11-6];B=[0;0;1];Q=[111;-1-2-3;149];P=inv(Q);
A1=P*A*Q
B1=P*B
得如下结果
A1=
-1.00000.0000-0.0000
0.0000-2.00000.0000
-0.0000-0.0000-3.0000
B1=
0.5000
-1.0000
0.5000
变换后的方程为:
(3)将原理中给出的能控标准型与能观标准型转换代码写成子函数的形式,并通过你写的子函数将.m文件中给出的模型变换成能控标准
、
型和能观标准
、
型,并从结果说明能控与能观标准型之间的关系。
>>num=[123];
den=conv([1625],[11235]);
>>[A,B,C,D]=tf2ss(num,den)
A=
-18-132-510-875
1000
0100
0010
B=
1
0
0
0
C=
0123
D=
0
>>Rc=rank(Qc)
Rc=
3
>>Qc=ctrb(A,B);
Qo=obsv(A,C);
>>Rc=rank(Qc)
Rc=
4
>>Ro=rank(Qo)
Ro=
4
由此可知系统是完全能控能观的系统。
能控标准
型:
Gs=ss(A,B,C,D);
T=ctrb(Gs.a,Gs.b);
Abar=inv(T)*A*T;Bbar=inv(T)*B;Cbar=C*T;Dbar=D;
>>Gss=ss(Abar,Bbar,Cbar,Dbar)
a=
x1x2x3x4
x1000-875
x2100-510
x3010-132
x4001-18
b=
u1
x11
x20
x30
x40
c=
x1x2x3x4
y101-16159
d=
u1
y10
Continuous-timemodel.
能控标准
型:
>>Gs=ss(A,B,C,D);
>>Tt=ctrb(Gs.a,Gs.b);Ttt=fliplr(Tt);
>>cp=poly(Gs.a);
>>n=length(Gs.a);
>>Tea=eye(n)
Tea=
1000
0100
0010
0001
>>fori=2:
n
forj=1:
(n-1)
ifi>j
Tea(i,j)=cp(i-(j-1));
end
end
end
>>T=Ttt*Tea;
>>Abar=inv(T)*A*T;Bbar=inv(T)*B;Cbar=C*T;Dbar=D;
>>Gss=ss(Abar,Bbar,Cbar,Dbar)
a=
x1x2x3x4
x12.842e-014100
x2-5.684e-014010
x3-4.547e-013001
x4-875-510-132-18
b=
u1
x10
x20
x30
x41
c=
x1x2x3x4
y13210
d=
u1
y10
Continuous-timemodel.
能观标准
型:
>>num=[123];
den=conv([1625],[11235]);
[A,B,C,D]=tf2ss(num,den)
A=
-18-132-510-875
1000
0100
0010
B=
1
0
0
0
C=
0123
D=
0
>>Gs=ss(A,B,C,D);
Tinv=obsv(Gs.a,Gs.c);T=inv(Tinv);
Abar=inv(T)*A*T;Bbar=inv(T)*B;Cbar=C*T;Dbar=D;
>>Gss=ss(Abar,Bbar,Cbar,Dbar)
a=
x1x2x3x4
x1-1.162e-0141-4.572e-016-3.177e-017
x21.421e-0138.527e-01418.882e-016
x3-2.274e-012-6.821e-013-1.421e-0131
x4-875-510-132-18
b=
u1
x15.551e-017
x21
x3-16
x4159
c=
x1x2x3x4
y11-3.331e-016-5.551e-017-3.469e-018
d=
u1
y10
Continuous-timemodel.
能观标准
型:
num=[123];
den=conv([1625],[11235]);G=tf(num,den);
[A,B,C,D]=tf2ss(num,den);
Gs=ss(A,B,C,D);
Tt=obsv(Gs.a,Gs.c);Ttt=flipud(Tt);
cp=poly(Gs.a);
n=length(Gs.a);
Tea=eye(n);
fori=2:
n
forj=1:
(n-1)
ifi>j
Tea(i,j)=cp(i-(j-1));
end
end
end
Tea=Tea';T=Ttt*Tea;
Abar=inv(T)*A*T;Bbar=inv(T)*B;Cbar=C*T;Dbar=D;
Gss=ss(Abar,Bbar,Cbar,Dbar)
a=
x1x2x3x4
x1-36-588-5772-4.912e+004
x216.821e-0131.637e-0111590
x31.688e-01414.32e-012-192
x402.998e-015118
b=
u1
x1-2.233
x20.256
x3-0.02221
x40.001101
c=
x1x2x3x4
y1-14-374-4542-3.307e+004
d=
u1
y10
Continuous-timemodel.
理论上能控标准
型与能观标准
型是对偶的,能控标准
型与能观标准
是对偶的。
【实验总结】
这次实验的内容比较多和复杂,需要耐心的分析题目的要求,并思考如何使用matlab来完成本次实验的要求,有些过程需要在网上查找一些资料才能完成。
在本次实验中,我学会了在matlab中进行线性系统状态空间标准型、解及其模型的转换。