东华大学自控实验第一份实验报告.docx
《东华大学自控实验第一份实验报告.docx》由会员分享,可在线阅读,更多相关《东华大学自控实验第一份实验报告.docx(21页珍藏版)》请在冰豆网上搜索。
东华大学自控实验第一份实验报告
《自动控制原理实验》
实验报告
(一)
一、MATLAB中数学模型的表示
二、控制系统的时域分析
(瞬态响应和稳定性)
姓名:
刘克勤
学号:
110901112
班级:
自动化1104
指导老师:
石洪瑞
东华大学信息学院
MP2.1考虑两个多项式
,
使用MATLAB计算下列各式:
(a)
;
解:
>>p=[121];
>>q=[11];
>>n=conv(p,q)
运行结果如下:
n=
1331
(b)
解:
>>G=tf(q,p)
运行结果如下:
Transferfunction:
s+1
-------------
s^2+2s+1
MP2.2考虑MP2.2描述的反馈控制系统;
(a)利用series和feedback函数,计算闭环传递函数;
解:
Matlab程序如下:
>>num1=[12];den1=[1,3];sys1=tf(num1,den1);
>>num2=[1];den2=[11];sys2=tf(num2,den2);
>>sys3=series(sys1,sys2);
>>sys=feedback(sys3,[1])
运行结果如下:
Transferfunction:
s+2
-------------
s^2+5s+5
(b)用step函数求闭环系统单位阶跃响应,并验证输出终值为0.4。
FigureMP2.2Anegativefeedbackcontrolsystem.
解:
>>t=[0:
0.1:
10];
step(sys,t);
gridon
运行结果如下:
由单位阶跃响应曲线图可以看出输出终值为0.4。
MP2.6考虑MP2.6所示框图,
(a)用Matlab化简框图,计算系统的闭环传递函数;
(b)利用pzmap函数闭环传递函数的零-极点图;
(c)用roots函数计算闭环传递函数的零点和极点,并与(b)中结果比较。
FigureMP2.2Amultiple-loopfeedbackcontrolsystem.
(1)解:
Matlab程序如下:
>>num1=[1];den1=[11];sys1=tf(num1,den1);
num2=[1];den2=[102];sys2=tf(num2,den2);
num3=[42];den3=[121];sys3=tf(num3,den3);
sys4=series(sys1,sys2);
sys5=feedback(sys4,sys3,-1);
num6=[1];den6=[100];sys6=tf(num6,den6);
num7=[50];den7=[1];sys7=tf(num7,den7);
sys8=feedback(sys6,sys7,1);
sys9=series(sys5,sys8);
num10=[102];den10=[10014];sys10=tf(num10,den10);
sys11=feedback(sys9,sys10,-1);
num12=[4];den12=[1];sys12=tf(num12,den12);
F=series(sys11,sys12);
F
运行结果如下:
Transferfunction:
4s^5+8s^4+4s^3+56s^2+112s+56
----------------------------------------------------------------------------------------------------------------------
s^10+3s^9-45s^8-129s^7-198s^6-976s^5-2501s^4-3558s^3
-4841s^2-6996s-2798
(2)解:
Matlab程序如下:
>>num=[4845611256];den=[1345-129-198-976-2501-3558-4841-6996-2798];
>>[p,z]=pzmap(num,den);
>>pzmap(num,den);
>>z
z=
1.2051+2.0872i
1.2051-2.0872i
-2.4101
-1.0000
-1.0000
>>p
p=
-2.4585+7.0768i
-2.4585-7.0768i
4.0336
0.0423+1.9723i
0.0423-1.9723i
0.4946+1.5660i
0.4946-1.5660i
-1.3194+0.6279i
-1.3194-0.6279i
-0.5515
运行结果如下:
(3)解:
>>z=roots(num)
z=
1.2051+2.0872i
1.2051-2.0872i
-2.4101
-1.0000
-1.0000
>>p=roots(den)
p=
-2.4585+7.0768i
-2.4585-7.0768i
4.0336
0.0423+1.9723i
0.0423-1.9723i
0.4946+1.5660i
0.4946-1.5660i
-1.3194+0.6279i
-1.3194-0.6279i
-0.5515
以上roots函数计算闭环传递函数的零点和极点,并与(b)中结果比较,结果一致。
MP2.8某系统的传递函数为:
绘制系统的单位阶跃响应,参数Z=3,6和12。
解:
Matlab程序如下:
>>num1=[15/315];
num2=[15/615];
num3=[15/1215];
den=[1315];
sys1=tf(num1,den);
sys2=tf(num2,den);
sys3=tf(num3,den);
step(sys1,sys2,sys3);
gridon;
运行结果如下:
MP5.1考虑闭环传递函数
请用解析方法和MATLAB的impulse函数,分别计算系统的脉冲响应,并比较所得的结果。
解:
(1)解析方法:
=2[(s+1)-1/(s+2)];
>>t=[0:
0.01:
10];
y=2*exp(-t)-2*exp(-2*t);
plot(t,y);
gridon
运行结果如下:
(2)MATLAB的impulse函数方法:
>>t=[0:
0.1:
10];
num=[2];
den=[132];
impulse(num,den,t);
gridon;
title('unit-impulseResponseofG(s)=2/(s^2+3s+2)');
运行结果如下:
MP5.2某单位负反馈系统的开环传递函数为
当输入为斜坡信号
时,(利用lsim函数)计算闭环系统在
时间段的响应,并求出系统的稳态误差。
解:
>>num=[15];
den=[11000];
sys=tf(num,den);
t=[0:
0.1:
2];
u=t;
lsim(sys,u,t);
gridon;
运行结果如下:
求系统的稳态误差:
>>s=0;
Kv=(s+5)/(s^2+10*s);
Ess=1/Kv
运行结果如下:
Warning:
Dividebyzero.
Ess=
0
得系统的稳态误差为0。
MP5.3某2阶系统如图MP5.3所示,它的极点位置同瞬态响应之间存在着对应关系。
对控制系统的设计而言,掌握这种关系是非常重要的。
考虑如下4种情况;
(1)
;
(2)
;
(3)
(4)
;
图MP5.3简单的2阶系统
画出这4种情况下的系统的单位阶跃和脉冲响应曲线,求出系统单位阶跃响应的峰值时间
、调整时间
和超调量P.O.。
解:
(1)单位阶跃响应曲线:
Matlab程序如下:
t=[0:
0.1:
30];
x1=2;num1=[x1^2];
y1=0;den1=[1,2*y1*x1,x1^2];
sys1=tf(num1,den1);
subplot(2,2,1);
step(sys1,t);
gridon;
title('Wn=2,ξ=0');
x2=2;num2=[x2^2];
y2=0.1;den2=[1,2*y2*x2,x2^2];
sys2=tf(num2,den2);
subplot(2,2,2);
step(sys2,t);
gridon;
title('Wn=2,ξ=0.1');
x3=1;num3=[x3^2];
y3=0;den3=[1,2*y3*x3,x3^2];
sys3=tf(num3,den3);
subplot(2,2,3);
step(sys3,t);
gridon;
title('Wn=1,ξ=0');
x4=1;num4=[x4^2];
y4=0.2;den4=[1,2*y4*x4,x4^2];
sys4=tf(num4,den4);
subplot(2,2,4);
step(sys4,t);
gridon;
title('Wn=1,ξ=0.2');
运行结果如下:
(2)单位脉冲响应曲线:
Matlab程序如下:
t=[0:
0.1:
30];
x1=2;num1=[x1^2];
y1=0;den1=[1,2*y1*x1,x1^2];
sys1=tf(num1,den1);
subplot(2,2,1);
impulse(sys1,t);
gridon;
title('Wn=2,ξ=0');
x2=2;num2=[x2^2];
y2=0.1;den2=[1,2*y2*x2,x2^2];
sys2=tf(num2,den2);
subplot(2,2,2);
impulse(sys2,t);
gridon;
title('Wn=2,ξ=0.1');
x3=1;num3=[x3^2];
y3=0;den3=[1,2*y3*x3,x3^2];
sys3=tf(num3,den3);
subplot(2,2,3);
impulse(sys3,t);
gridon;
title('Wn=1,ξ=0');
x4=1;num4=[x4^2];
y4=0.2;den4=[1,2*y4*x4,x4^2];
sys4=tf(num4,den4);
subplot(2,2,4);
impulse(sys4,t);
gridon;
title('Wn=1,ξ=0.2');
运动结果如下:
(3)计算峰值时间Tp:
>>Tp1=pi/(x1*sqrt(1-y1^2));
>>Tp1
Tp1=
1.5708
>>Tp2=pi/(x2*sqrt(1-y2^2));
>>Tp2
Tp2=
1.5787
>>Tp3=pi/(x3*sqrt(1-y3^2));
>>Tp3
Tp3=
3.1416
>>Tp4=pi/(x4*sqrt(1-y4^2));
>>Tp4
Tp4=
3.2064
计算调节时间Ts(2%误差准则):
>>Ts1=4/(x1*y1);
Warning:
Dividebyzero.%表示调整时间Ts1无穷大。
>>Ts2=4/(x2*y2);
>>Ts2
Ts2=
20
>>Ts3=4/(x3*y3);
Warning:
Dividebyzero.%表示调整时间Ts3无穷大。
>>Ts4=4/(x4*y4);
>>Ts4
Ts4=
20
计算超调量P.O.:
>>PO1=100*exp(-y1*pi/sqrt(1-y1^2));
>>PO1
PO1=
100
>>PO2=100*exp(-y2*pi/sqrt(1-y2^2));
>>PO2
PO2=
72.9248
>>PO3=100*exp(-y3*pi/sqrt(1-y3^2));
>>PO3
PO3=
100
>>PO4=100*exp(-y4*pi/sqrt(1-y4^2));
>>PO4
PO4=
52.6621
MP5.4考虑图MP5.4所示的负反馈控制系统,
(a)用解析方法证明:
该闭环控制系统对单位阶跃响应的超调量约为50%;
(b)利用MALAB画出该闭环系统的单位阶跃响应曲线,由此估计系统的超调量,并与(a)的结果作比较。
.
图MP5.4负反馈控制系统
(a)解:
先求系统闭环传递函数:
>>num1=[21];den1=[10];sys1=tf(num1,den1);
num2=[1];den2=[12];sys2=tf(num2,den2);
sys3=series(sys1,sys2);
sys=feedback(sys3,[1])
Transferfunction:
21
--------------
s^2+2s+21
得Wn^2=21,用解析方法:
这里用L表示阻尼比。
>>Wn=sqrt(21);
L=1/Wn;
PO=100*exp(-L*pi/sqrt(1-L^2))
PO=
49.5355
由此得证:
该闭环控制系统对单位阶跃响应的超调量约为50%。
(b)解:
>>t=[0:
0.1:
10];
step(sys,t);
gridon
运行结果如下:
由上图闭环系统的单位阶跃响应曲线得系统的超调量P.O.=(1.5-1)/1=50%。
与(a)的计算结果近似相等。
MP5.5某单位负反馈系统的开环传递函数为
利用MATLAB画出系统的单位阶跃响应曲线,并由此确定系统的最大超调量
峰值时间
和调节时间
(2%准则),将它们标注在图中。
解:
>>num=[50];den=[1500];
sys1=tf(num,den);
sys=feedback(sys1,[1]);
t=[0:
0.1:
10];
step(sys,t);
gridon
运行结果如下:
由系统的单位阶跃响应曲线可得,最大超调量Mp=0,峰值时间:
Tp=7.5。
调整时间:
Ts=3.8(2%的误差准则)。