现代控制理论实验报告.docx
《现代控制理论实验报告.docx》由会员分享,可在线阅读,更多相关《现代控制理论实验报告.docx(27页珍藏版)》请在冰点文库上搜索。
![现代控制理论实验报告.docx](https://file1.bingdoc.com/fileroot1/2023-8/13/2d97ab8a-6fc0-403c-8050-034db51e9e50/2d97ab8a-6fc0-403c-8050-034db51e9e501.gif)
现代控制理论实验报告
现代控制理论实验报告
专业班级
姓名
实验地点
实验日期
学号
实验成绩
实验一系统的传递函数阵和状态空间表达式的转换
1、实验目的
1.熟悉线性系统的数学模型、模型转换。
2.了解MATLAB中相应的函数
二、实验内容及步骤
1.给定系统的传递函数为
要求
(1)将其用Matlab表达;
(2)生成状态空间模型。
2.在Matlab中建立如下离散系统的传递函数模型
y(k+2)+5y(k+1)+6y(k)=u(k+2)+2u(k+1)+u(k)
3.在Matlab中建立如下传递函数阵的Matlab模型
4.给定系统的模型为
求
(1)将其用Matlab表达;
(2)生成状态空间模型。
5.给定系统的状态方程系数矩阵如下:
用Matlab将其以状态空间模型表示出来。
6.输入零极点函数模型,零点z=1,-2;极点p=-1,2,-3增益k=1;求相应的传递函数模型、状态空间模型。
三、实验结果及分析
1.num=[1836];den=[140.3391150];
>>G=tf(num,den)
Transferfunction:
18s+36
----------------------------
s^3+40.3s^2+391s+150
>>sys=ss(G)
a=
x1x2x3
x1-40.3-24.44-4.688
x21600
x3020
b=
u1
x12
x20
x30
c=
x1x2x3
y100.56250.5625
d=
u1
y10
Continuous-timemodel.
2.num=[121];den=[156];tf(num,den,0.1)
Transferfunction:
z^2+2z+1
-------------
z^2+5z+6
Samplingtime:
0.1
3.num={[121][15][23][6]};
den={[156][12][16116][27]};
>>tf(num,den)
Transferfunctionfrominput1tooutput:
s^2+2s+1
-------------
s^2+5s+6
Transferfunctionfrominput2tooutput:
s+5
-----
s+2
Transferfunctionfrominput3tooutput:
2s+3
----------------------
s^3+6s^2+11s+6
Transferfunctionfrominput4tooutput:
6
-------
2s+7
4.sys=zpk([-2],[-15-25-0.4],[18])
Zero/pole/gain:
18(s+2)
---------------------
(s+15)(s+25)(s+0.4)
z=-2;p=[-15;-25;-0.4];k=18;
>>[A,B,C,D]=zp2ss(z,p,k)
A=
-0.400000
1.6000-40.0000-19.3649
019.36490
B=
1
1
0
C=
000.9295
D=
0
5.A=[-40.4-138-160;100;010];B=[1;0;0];C=[018360];D=0;
>>sys=ss(A,B,C,D)
a=
x1x2x3
x1-40.4-138-160
x2100
x3010
b=
u1
x11
x20
x30
c=
x1x2x3
y1018360
d=
u1
y10
Continuous-timemodel.
6.z=[1;-2];p=[-1;2;-3];k=1;
>>[A,B,C,D]=zp2ss(z,p,k)
A=
2.000000
1.0000-4.0000-1.7321
01.73210
B=
1
0
0
C=
1.0000-3.0000-2.8868
D=
0
>>[num,den]=ss2tf(A,B,C,D)
num=
01.00001.0000-2.0000
den=
12-5-6
>>tf(num,den)
Transferfunction:
s^2+s-2
---------------------
s^3+2s^2-5s-6
四、实验总结
本次实验主要是熟悉利用matlab建立线性系统数学模型以及模型间的相应转换(如状态空间、传递函数模型等)、并了解matlab中相应函数的使用,如tf、ss、zp2ss、ss2tf等。
通过实验指导书的指导和编写相应程序,圆满完成本次实验任务,达到了实验的目的。
实验二状态空间标准形与控制系统的运动分析
1、实验目的
1.掌握线性系统的对角线标准形、约当标准形、能控标准形和能观测标准型的表示及相应变换阵的求解。
深入理解状态空间模型的相关理论。
2.掌握利用Matlab进行矩阵指数函数的数值计算和符号计算方法;对定常连续系统和定常离散系统的状态空间模型进行求解,分析其运动规律;对连续系统进行离散化。
二、实验内容及步骤
1.将实验一的第2题用对角标准型实现。
2.系统的动态方程如下:
1)求对角标准型实现,并写出实现变换的非奇异阵和变换关系。
2)求可控准型实现,并写出实现变换的非奇异阵和变换关系。
3.计算如下矩阵的特征值和广义特征向量。
4..将如下状态空间模型变换为约旦规范形。
5.将下列状态方程化为约当型,并写出实现变换的非奇异阵和变换关系。
6.在Matlab中计算矩阵A在t=0.3时的矩阵指数eAt的值。
7.计算系统在[0,10s]内,T=3s的单位方波输入的状态响应。
3、实验结果及分析
1.代码:
a1=5;a0=6;
b2=1;b1=2;b0=1;
c0=b2;
c1=b1-a1*c0;
c2=b0-a0*c0-a1*c1;
G=[01;-a0-a1];
H=[c1;c2];
C=[10];
D=[c0];
[Q,d]=eig(G);
P=inv(Q);
Gb=P*G*Q
Hb=P*H
Cb=C*Q
Db=D
运行结果:
Gb=
-2.00000.0000
-0.0000-3.0000
Hb=
2.2361
12.6491
Cb=
0.4472-0.3162
Db=
1
2.代码:
A=[010;001;-6-11-6];B=[1;0;0];C=[110];D=0;
[Q,D]=eig(A)
P=inv(Q)
%[con_ss,T]=canon(A,B,C,D,'modal')
%[con_ss1,T1]=canon(A,B,C,D,'companion')
A1=P*A*Q
B1=P*B
Q=
-0.57740.2182-0.1048
0.5774-0.43640.3145
-0.57740.8729-0.9435
D=
-1.000000
0-2.00000
00-3.0000
P=
-5.1962-4.3301-0.8660
-13.7477-18.3303-4.5826
-9.5394-14.3091-4.7697
A1=
-1.0000-0.00000.0000
0.0000-2.00000.0000
0.0000-0.0000-3.0000
B1=
-5.1962
-13.7477
-9.5394
A=[010;001;-6-11-6];B=[1;0;0];C=[110];D=0;
Qc=ctrb(A,B)
M=eig(A)
Q=Qc*[M
(2)M(3)1;M(3)10;100]
P=inv(Q)
Ab=P*A*Q,Bb=P*B,Cb=C*Q
Qc=
100
00-6
0-636
M=
-1.0000
-2.0000
-3.0000
Q=
-2.0000-3.00001.0000
-6.000000
54.0000-6.00000
P=
0.0000-0.1667-0.0000
0.0000-1.5000-0.1667
1.0000-4.8333-0.5000
Ab=
-9.00001.00000.0000
-40.0000-0.00001.0000
-144.00002.00003.0000
Bb=
0.0000
0.0000
1.0000
Cb=
-8.0000-3.00001.0000
3.代码:
A=[-4-3-6;102;111];
M=eig(A)
[V,J]=jordan(A)
M=
-1.0000+0.0000i
-1.0000-0.0000i
-1.0000
V=
-3-1-2
100
111
J=
-110
0-10
00-1
4.代码:
A=[010;001;-6-11-6];
B=[1;0;0];
C=[100];
[Q,J]=jordan(A);
P=inv(Q);
Ab=J
Bb=P*B
Cb=C*P
运行结果为:
Ab=
-300
0-20
00-1
Bb=
9.0000
-12.0000
3.0000
Cb=
9.000013.50004.5000
5.代码:
A=[3-11100;11-1-100;002011;0002-1-1;000011;000011];
B=[10;-11;21;0-1;02;10];
[Q,J]=jordan(A)
P=inv(Q)
Ab=J
Bb=P*B
运行结果:
Q=
2.00002.00001.0000000
2.000000000
001.000001.00000
0000-1.00000
0000.500000.5000
000-0.500000.5000
J=
210000
021000
002000
000000
000021
000002
P=
00.50000000
0.5000-0.5000-0.5000-0.500000
001.00001.000000
00001.0000-1.0000
000-1.000000
00001.00001.0000
Ab=
210000
021000
002000
000000
000021
000002
Bb=
-0.50000.5000
0-0.5000
2.00000
-1.00002.0000
01.0000
1.00002.0000
6.代码:
A=[01;-2-3];
symsst;
F=s*eye(length(A))-A;
Q=inv(F);
f=ilaplace(Q);
x=subs(f,'t',0.3)
运行结果:
x=
[2*exp(-3/10)-exp(-3/5),exp(-3/10)-exp(-3/5)]
[2*exp(-3/5)-2*exp(-3/10),2*exp(-3/5)-exp(-3/10)]
7.代码:
A=[01;-2-3];
B=[0;1];
C=[];
D=[];
x0=[1;2];
sys=ss(A,B,C,D);
[u,t]=gensig('square',3,10,0.1);
[y,t,x]=lsim(sys,u,t,x0);
plot(t,u,t,x)
运行结果:
四、实验总结
本次实验的主要目的是:
掌握线性系统的对角线标准形、约当标准形、能控标准形和能观测标准型的表示及相应变换阵的求解;掌握利用Matlab进行矩阵指数函数的数值计算和符号计算方法;对定常连续系统和定常离散系统的状态空间模型进行求解,分析其运动规律;对连续系统进行离散化。
通过实验编写程序实现了预期结果,并进一步巩固了上课时所学习的理论知识及变换方法。
实验三系统的能控性和能观性
1、实验目的
系统的能控性和能观性关系到系统的极点配置法设计,和最优控制。
通过本实验,掌握判断系统能控性能观性的条件和方法。
2、实验内容及步骤
1、检验系统的能控性和能观性。
2、判定离散系统的状态能控性。
3、用格拉姆矩阵判据判断下面系统的可控性和可观测性。
4、将下面系统化为可控标准型和可观测标准型。
三、实验结果及分析
1.程序如下:
A=[11;4-2];B=[1-1;1-1];C=[10;01];D=0;
Co=ctrb(A,B)
if(rank(Co)==length(A))
disp('系统完全能控');
else
disp('系统不能控');
end
N=obsv(A,C)
if(rank(N)==length(A))
disp('系统能观');
else
disp('系统不能观');i
end
运行结果:
Co=
1-12-2
1-12-2
系统不能控
N=
10
01
11
4-2
系统能观
2.程序如下:
G=[100;02-2;-110];H=[1;2;1];
Co=ctrb(G,H)
if(rank(Co)==length(G))
disp('系统完全能控');
else
disp('系统不能控');
end
运行结果:
Co=
111
222
111
系统不能控
3.程序如下:
A=[-1-2-3;0-11;10-1];
B=[2;0;1];
C=[110];
D=0;
sys=ss(A,B,C,D);
Wc=gram(sys,'c');
Wo=gram(sys,'o');
ifrank(Wc)==length(A)
disp('Thesystemiscontrollable')
else
disp('Thesystemisuncotrollable')
end
ifrank(Wo)==length(A)
disp('Thesystemisobservable')
else
disp('Thesystemisnotobservable')
end
4.程序如下:
能控标准型
A=[120;3-11;020];
B=[2;1;1];
C=[001];
D=0;
Qc=ctrb(A,B)symss;
sys=det(s*eye(3)-A);
if(rank(Qc)==3)
disp('Thesystemiscontrollable')
else
disp('Thesystemisuncontrollable')
End
运行结果:
sys=s^3-9*s+2
Thesystemiscontrollable
a0=2;a1=-9;a2=0;a3=1;
Q=Qc*[-901;010;100];
P=inv(Q)
Ab=P*A*Q
Bb=P*B
Cb=C*Q
Db=D
运行结果为:
P=
-0.125000.2500
-0.12500.2500-0.0000
0.6250-0.50000.2500
Ab=
01.00000
0.0000-0.00001.0000
-2.00009.00000.0000
Bb=
0
-0.0000
1.0000
Cb=
321
Db=
0
能观标准型
clearall
clc
A=[120;3-11;020];
B=[2;1;1];
C=[001];
D=0;
Qo=obsv(A,C)
symss;
sys=det(s*eye(3)-A)
if(rank(Qo)==3)
disp('Thesystemisobservable')
else
disp('Thesystemisnotobservable')
end
运行结果:
sys=s^3-9*s+2
Thesystemisobservable
a0=2;a1=-9;a2=0;a3=1;
P=[-901;010;100]*Qo
Q=inv(P);
Ab=P*A*Q
Bb=P*B
Cb=C*Q
Db=D
运行结果:
P=
6-2-7
020
001
Ab=
00-2.0000
1.0000-0.00009.0000
01.00000
Bb=
3
2
1
Cb=
001
Db=
0
四、实验总结
本次实验的主要目的是:
掌握系统的能控性和能观性关系到系统的极点配置法设计,和最优控制;掌握判断系统能控性能观性的条件和方法。
通过本次实验的编程训练,我进一步熟悉了能控性和能观性的判断思路,学习了极点配置方法,并加深了对最优控制的理解。
本次实验通过独立编程,完成了实验任务,巩固了已学的理论知识,强化了Matlab编程。
实验四李雅普诺夫(Lyapunov)判据实验
1、实验目的
现代控制系统分析和设计中,很多问题归结于李雅普诺夫(Lyapunov)方程求解,如稳定性的研究等。
通过实验掌握求解方法;判断系统的稳定性。
2、实验内容及步骤
1、在Matlab中判定如下系统的李雅普诺夫稳定性,并通过各阶主子式来判断定号性。
2、已知系统的方框图如下,选择正半定对称矩阵
求Lyapunov方程的解,试在Matlab中判定系统的稳定性。
3、系统状态空间模型如下,选取正定矩阵。
,求稳定性判别矩阵P,判断该系统的稳定性,并求该系统的传递函数矩阵。
三、实验结果及分析
1.程序如下:
A=[01;-1-1];Q=eye
(2);
p=lyap(A,Q)
if(p(1,1)&&det(p))
disp('xe=0是一致大范围渐进稳定的');
else
disp('系统不稳定');
end
运行结果
p=
1.5000-0.5000
-0.50001.0000
结论:
P11=1.5>0,|P|>0,即P是正定矩阵,故xe=0是一致大范围渐进稳定的。
2.程序如下:
Q=[000;000;001];
num1=[5];den1=[11];
num2=[1];den2=[12];
num3=[1];den3=[10];
[num12,den12]=series(num1,den1,num2,den2);
[num123,den123]=series(num12,den12,num3,den3);
[num,den]=cloop(num123,den123);
[A,B,C,D]=tf2ss(num,den);
p=lyap(A,Q)
if(p(1,1)&&det(p(1:
2,1:
2))&&det(p(1:
3,1:
3)))
disp('xe=0是一致大范围渐进稳定的');
else
disp('系统不稳定');
end
运行结果
p=
12.50000.0000-7.5000
0.00007.5000-0.5000
-7.5000-0.50004.7000
结论:
P11=1.5>0,
>0,|P|>0,即P是正定矩阵,故xe=0是一致大范围渐进稳定的。
3.程序如下:
A=[-3-8-2-4
1000
0100
0010];
B=[1000]';C=[0011];D=0;
Q=eye(4);
P=lyap(A,Q)
det1=P
(1)
det2=det(P([1:
2],[1:
2]))
det3=det(P([1:
3],[1:
3]))
det4=det(P)
symss;
g=C*inv(s*eye(4)-A)*B;
g=simple(g);g
结果:
P=
8.0000-0.5000-10.75000.5000
-0.500010.7500-0.5000-18.8750
-10.7500-0.500018.8750-0.5000
0.5000-18.8750-0.500034.9375
det1=
8.0000
det2=
85.7500
det3=
368.8594
det4=
350.2988
g=
(s+1)/(s^4+3*s^3+8*s^2+2*s+4)
结论:
P矩阵各主子式均为正值,即P为正定矩阵,故xe=0是一致大范围渐进稳定的。
传递函数:
四、