实验2.docx
《实验2.docx》由会员分享,可在线阅读,更多相关《实验2.docx(23页珍藏版)》请在冰点文库上搜索。
![实验2.docx](https://file1.bingdoc.com/fileroot1/2023-5/20/c12b687e-0717-4a58-8dae-ae1ac67a40d0/c12b687e-0717-4a58-8dae-ae1ac67a40d01.gif)
实验2
2、实验内容
(1)能控性、能观测性及系统实现
(a)了解以下命令的功能;自选对象模型,进行运算,并写出结果。
gram,ctrb,obsv,lyap,ctrbf,obsvf,minreal;
(b)已知连续系统的传递函数模型,
,当a分别取-1,0,1时,判别系统的能控性与能观测性;
(c)已知系统矩阵为
,
,
,判别系统的能控性与能观测性;
(d)求系统
的最小实现。
(2)稳定性
(a)代数法稳定性判据
已知单位反馈系统的开环传递函数为:
,试对系统闭环判别其稳定性
(b)根轨迹法判断系统稳定性
已知一个单位负反馈系统开环传递函数为
,试在系统的闭环根轨迹图上选择一点,求出该点的增益及其系统的闭环极点位置,并判断在该点系统闭环的稳定性。
(c)Bode图法判断系统稳定性
已知两个单位负反馈系统的开环传递函数分别为
用Bode图法判断系统闭环的稳定性。
(d)判断下列系统是否状态渐近稳定、是否BIBO稳定。
1)能控性、能观测性及系统实现
(a)了解以下命令的功能;自选对象模型,进行运算,并写出结果。
gram,ctrb,obsv,lyap,ctrbf,obsvf,minreal;
例题3.27gram(格拉姆矩阵判别能控性)
试验程序:
a=[010;001;-6-11-6];
b=[01;10;01];
c=[101;010];
d=0;
G=ss(a,b,c,d);
C=gram(G,'c')
NC=det(C)
ifNC~=0;disp('systemiscontrol')
elsedisp('systemisuncontrol')
end
O=gram(G,'o')
NO=det(O)
ifNO~=0;disp('systemisobserve')
elsedisp('systemisunobserve')
end
试验结果:
>>matlab_gram
C=
1.7000-0.5000-0.7000
-0.50000.7000-0.5000
-0.7000-0.50001.7000
NC=
0.4800
systemiscontrol
O=
1.21670.05000.0833
0.05001.22500.0500
0.08330.05000.0917
NO=
0.1253
systemisobserve
例题3.27ctrb(能控性)和obsv(能观测性)
试验程序:
a=[010;001;-6-11-6];
b=[01;10;01];
c=[101;010];
d=0;
n=length(a)
qc=ctrb(a,b)
nc=rank(qc)
ifn==nc,disp('systemiscontrollable')
elsedisp('sysisuncontrollable')
end
qo=obsv(a,c)
no=rank(qo)
ifn==no,disp('systemisobservable')
elsedisp('systemisunobservable')
end
试验结果:
matlab_ctrb_obsv
n=
3
qc=
011001
1001-11-12
01-11-126061
nc=
3
systemiscontrollable
qo=
101
010
-6-10-6
001
366026
-6-11-6
no=
3
systemisobservable
lyap试验结果(其中的矩阵A=[01;11],C必须为对称矩阵取C=eye(2,2)):
试验程序:
A=[01;11];
C=eye(2,2);
D=lyap(A,C)
试验结果:
matlab_lyap
D=
0.5000-0.5000
-0.5000-0.0000
例题3.24的ctrbf(能控性分解)和obsvf(能观测性分解)
试验程序:
a=[00-1;10-3;01-3];
b=[1;1;0];
c=[01-2];
d=0;
[Ac,Bc,Cc,Dc,Ec]=ctrbf(a,b,c)
[Ao,Bo,Co,Do,Eo]=obsvf(a,b,c)
试验结果:
matlab_ctrbf_obsvf
Ac=
-1.0000-0.00000.0000
2.1213-2.50000.8660
1.2247-2.59810.5000
Bc=
0
0
1.4142
Cc=
1.7321-1.22470.7071
Dc=
-0.57740.5774-0.5774
-0.40820.40820.8165
0.70710.70710
Ec=
110
Ao=
-1.00001.34163.8341
-0.0000-0.4000-0.7348
00.4899-1.6000
Bo=
1.2247
0.5477
0.4472
Co=
0-0.00002.2361
Do=
0.40820.81650.4082
0.9129-0.3651-0.1826
00.4472-0.8944
Eo=
110
例题3.26minreal(最小实现)
试验程序:
num={[46],[23];-2,-1};
den={[132],[132];[132],[132]};
G=tf(num,den);
GS=ss(G);
GM=minreal(GS);
AM=GM.a
BM=GM.b
CM=GM.c
DM=GM.d
试验结果:
matlab_minreal
2statesremoved.
AM=
-3.0800-1.5600
1.44000.0800
BM=
2.80001.4000
-0.4000-0.2000
CM=
1.70001.9000
-0.1000-0.7000
DM=
00
10
(b)已知连续系统的传递函数模型,
,当a分别取-1,0,1时,判别系统的能控性与能观测性
a=-1试验程序:
num=[1-1];
den=[1102718];
[A,B,C,D]=tf2ss(num,den)
n=length(A)
qc=ctrb(A,B)
nc=rank(qc)
ifn==nc,disp('systemiscontrollable')
elsedisp('systemisuncotraollable')
end
qo=obsv(A,C)
no=rank(qo)
ifn==no,disp('systemisobservable')
elsedisp('systemisunobservable')
end
试验结果:
a=-1的结果:
matlab_a1
A=
-10-27-18
100
010
B=
1
0
0
C=
01-1
D=
0
n=
3
qc=
1-1073
01-10
001
nc=
3
systemiscontrollable
qo=
01-1
1-10
-11-27-18
no=
3
systemisobservable
a=0的试验程序:
num=[10];
den=[1102718];
[A,B,C,D]=tf2ss(num,den)
n=length(A)
qc=ctrb(A,B)
nc=rank(qc)
ifn==nc,disp('systemiscontrollable')
elsedisp('systemisuncotraollable')
end
qo=obsv(A,C)
no=rank(qo)
ifn==no,disp('systemisobservable')
elsedisp('systemisunobservable')
end
a=0的试验结果:
matlab_a2
A=
-10-27-18
100
010
B=
1
0
0
C=
010
D=
0
n=
3
qc=
1-1073
01-10
001
nc=
3
systemiscontrollable
qo=
010
100
-10-27-18
no=
3
systemisobservable
a=1试验程序:
num=[11];
den=[1102718];
[A,B,C,D]=tf2ss(num,den)
n=length(A)
qc=ctrb(A,B)
nc=rank(qc)
ifn==nc,disp('systemiscontrollable')
elsedisp('systemisuncotraollable')
end
qo=obsv(A,C)
no=rank(qo)
ifn==no,disp('systemisobservable')
elsedisp('systemisunobservable')
end
a=1的试验结果:
matlab_a3
A=
-10-27-18
100
010
B=
1
0
0
C=
011
D=
0
n=
3
qc=
1-1073
01-10
001
nc=
3
systemiscontrollable
qo=
011
110
-9-27-18
no=
2
systemisunobservable
(c)已知系统矩阵为
,
,
,判别系统的能控性与能观测性
试验程序:
A=[6.666-10.6667-0.3333;101;012];
B=[0;1;1];
C=[102];
n=length(A)
qc=ctrb(A,B)
nc=rank(qc)
ifn==nc,disp('systemiscontrollable')
elsedisp('systemisuncontrollable')
end
qo=obsv(A,C)
no=rank(qo)
ifn==no,disp('systemisobservable')
elsedisp('systemisunobservable')
end
试验结果:
matlab_c
n=
3
qc=
0-11.0000-84.9926
1.00001.0000-8.0000
1.00003.00007.0000
nc=
3
systemiscontrollable
qo=
1.000002.0000
6.6660-8.66673.6667
35.7689-67.4375-3.5551
no=
3
systemisobservable
(d)求系统
的最小实现
试验程序:
num=[11];
den=[1102718];
G=tf(num,den);
GS=ss(G);
GM=minreal(GS);
AM=GM.a
BM=GM.b
CM=GM.c
DM=GM.d
试验结果:
matlab_d
1stateremoved.
AM=
-3.66360.1575
9.8425-5.3364
BM=
0.3522
-0.3522
CM=
0.25000.2500
DM=
0
2)稳定性
(a)代数法稳定性判据
已知单位反馈系统的开环传递函数为:
,试对系统闭环判别其稳定性
试验程序:
k=100;
z=[-2];
p=[0-1-20];
[A,B,C,D]=zp2ss(z,p,k);
[num,den]=ss2tf(A,B,C,D);
Q=num+den;
roots(Q)
试验结果:
>matlab_2_a
ans=
-12.8990
-5.0000
-3.1010
显然系统的所有特征根均为负值即全部在左半平面内,故系统是稳定的。
(b)根轨迹法判断系统稳定性
已知一个单位负反馈系统开环传递函数为
,试在系统的闭环根轨迹图上选择一点,求出该点的增益及其系统的闭环极点位置,并判断在该点系统闭环的稳定性
试验程序:
num=[13];
den=conv([10],conv([15],conv([16],[122])));
SYS=tf(num,den);
rlocus(SYS);
[k,p]=rlocfind(SYS)
title('ÌâËù¸øϵͳµÄ±Õ»·¸ù¹ì¼£Í¼');
试验结果:
matlab_2_b
Selectapointinthegraphicswindow
selected_point=
-2.9562-0.3106i
k=
292.7543
p=
-6.1124+2.1983i
-6.1124-2.1983i
0.9746+2.5865i
0.9746-2.5865i
-2.7244+0.0000i
(c)Bode图法判断系统稳定性
已知两个单位负反馈系统的开环传递函数分别为
用Bode图法判断系统闭环的稳定性
试验程序:
num=[2.7];
den=[1540];
[A,B,C,D]=margin(num,den)
G=tf(num,den);
Q=feedback(G,1,-1);
figure
(1);
bode(G);
grid;
figure
(2);
step(Q);
试验结果:
1)matlab_c1
A=
7.4074
B=
51.7321
C=
2.0000
D=
0.5783
可以看出,该系统的增益裕度A大于6DB,相角裕度在30~60之间,并且阶跃响应图稳定,故系统稳定。
2)试验程序:
num=[2.7];
den=[15-40];
[A,B,C,D]=margin(num,den)
G=tf(num,den);
Q=feedback(G,1,-1);
figure
(1);
bode(G);
grid;
figure
(2);
step(Q);
试验结果:
A=
Inf
B=
-58.0504
C=
NaN
D=
0.5346
Warning:
Theclosed-loopsystemisunstable.
Inwarningat25
InDynamicSystem.marginat65
Inmarginat100
Inmatlab_c2at3
分析易知道该系统不稳定。
d)判断下列系统是否状态渐近稳定、是否BIBO稳定。
试验程序:
A=[010;001;2500-5];
B=[0;0;10];
C=[-2550];
D=0;
[z,p,k]=ss2zp(A,B,C,D)
[p,D]=eig(A)
试验结果:
matlab_2_d
z=
5
p=
-5.0000+5.0000i
-5.0000-5.0000i
5.0000+0.0000i
k=
50
p=
-0.0000+0.0198i-0.0000-0.0198i-0.0392+0.0000i
-0.0990-0.0990i-0.0990+0.0990i-0.1960+0.0000i
0.9900+0.0000i0.9900+0.0000i-0.9798+0.0000i
D=
-5.0000+5.0000i0.0000+0.0000i0.0000+0.0000i
0.0000+0.0000i-5.0000-5.0000i0.0000+0.0000i
0.0000+0.0000i0.0000+0.0000i5.0000+0.0000i