自动控制理论实验报告.docx
《自动控制理论实验报告.docx》由会员分享,可在线阅读,更多相关《自动控制理论实验报告.docx(35页珍藏版)》请在冰点文库上搜索。
自动控制理论实验报告
(2013-2014学年第二学期)
实验课程名称:
自动控制原理B
专业:
铁道信号
实验一时域分析
一、实验目的:
1、掌握一阶系统和二阶系统的非周期信号响应。
2、理解二阶系统的无阻尼、欠阻尼、临界阻尼和过阻尼响应。
3、掌握分析系统的稳定性、瞬态过程和稳态误差。
4、理解高阶系统的主导极点对系统特性的影响。
5、理解系统的零点对系统动态特性的影响。
二、实验设备
PC机及MATLAB平台
三、实验原理及方法
1、系统的单位阶跃响应
用下列指令step(num,den)或step(num,den,t),就可求取系统的单位阶跃响应。
前者指令中虽没有时间t的出现,但时间矢量会自动生成;后者指令中的t是由用户确定的时间。
响应曲线图的x轴和y轴坐标也是自动标注的。
例如:
已知一系统的闭环传递函数为
,试求该系统的单位阶跃响应。
解:
num=[16];
den=[1416];
step(num,den);
gridon;
xlabel(’t’);ylabel(’c(t)’);
title(’Unit-StepResponseofG(s)=16/s^2+4s+16’);
若step指令等号左端含有变量时,即[y,x,t]=step(num,den,t)。
使用该命令时,屏幕上不显示该系统的输出响应曲线。
若要获得系统的响应曲线,则需加上plot绘图指令。
对上例:
num=[16];
den=[1416];
t=0:
0.1:
10;
[y,x,t]=step(num,den,t);
plot(t,y);
gridon;
xlabel('t');ylabel('c(t)');
title('Unit-StepResponseofG(s)=16/s^2+4s+16');
例:
二阶系统闭环传递函数的标准形式为
,令
为一定值,则系统的瞬态响应只与参变量
有关。
试分析
分别为0、0.3、0.5、0.7、1时系统的单位阶跃响应。
%matlab程序
t=0:
0.1:
12;num=[1];[y1,x,t]=step(num,den1,t);
Zeta1=0;den1=[12*Zeta11];[y2,x,t]=step(num,den2,t);
Zeta2=0.3;den2=[12*Zeta21];[y3,x,t]=step(num,den3,t);
Zeta3=0.5;den3=[12*Zeta31];[y4,x,t]=step(num,den4,t);
Zeta4=0.7;den4=[12*Zeta41];[y5,x,t]=step(num,den5,t);
Zeta5=2;den5=[12*Zeta51];plot(t,y1,t,y2,t,y3,t,y4,t,y5);
gridon;
2、判别系统的稳定性
利用Matlab求根指令roots(den),可方便地判定系统的稳定性。
例:
已知某系统闭环特征方程式为
,试判别系统稳定性。
%matlab程序
den=[13224];
roots(den)
运行结果
ans=-4.0000
0.5000+2.3979i
0.5000-2.3979i
显然该系统不稳定。
3、系统的单位斜坡响应和单位脉冲响应
impulse(G)%绘制系统的脉冲响应
用下列指令step(num,den)或step(num,den,t),就可求取系统的单位阶跃响应。
前者指令中虽没有时间t的出现,但时间矢量会自动生成;后者指令中的t是由用户确定的时间。
响应曲线图的x轴和y轴坐标也是自动标注的。
例如:
已知一系统的闭环传递函数为
,试求该系统的单位脉冲阶跃响应。
解:
num=[16];
den=[1416];
impulse(num,den);
gridon;
xlabel('t');ylabel('c(t)');
title('Unit-impulseResponseofG(s)=16/s^2+4s+16');
对应更一般输入的响应也可以得到。
命令为lsim,其命令格式为:
y=lsim(num,den,u,t);
输入信号为矢量u。
输入信号u的行数决定了计算的输出点数。
对于单输入系统,u是一个列矢量。
对于多输入系统,u的列数等于输入变量数。
例如:
计算斜坡响应,t为输入矢量。
ramp=t;y=lsim(num,den,ramp,t);
例如:
已知一系统的闭环传递函数为
,试求该系统的单位斜坡响应。
num=[16];
den=[1416];
t=[0:
0.1:
10]';ramp=t;
y=lsim(num,den,ramp,t);
plot(t,y)
四、实验内容:
1、系统的闭环传递函数为:
,分别调节K、T,仿真系统的阶跃响应,得出不同的系统参数对系统性能的影响。
解:
对K和T参数去不同的值。
则有:
当K=16,T=4时,
num=[16];
den=[41];
t=0:
0.1:
10;
[y,x,t]=step(num,den,t);
plot(t,y);
gridon;
xlabel('t');ylabel('c(t)');
title('Unit-StepResponseofG(s)=16/4s+1');
当K=10,T=3时,
num=[10];
den=[31];
t=0:
0.1:
10;
[y,x,t]=step(num,den,t);
plot(t,y);
gridon;
xlabel('t');ylabel('c(t)');
title('Unit-StepResponseofG(s)=10/3s+1');
当K=5,T=2时,
num=[5];
den=[21];
t=0:
0.1:
10;
[y,x,t]=step(num,den,t);
plot(t,y);
gridon;
xlabel('t');ylabel('c(t)');
title('Unit-StepResponseofG(s)=5/2s+1');
当K=3,T=1时,
num=[3];
den=[11];
t=0:
0.1:
10;
[y,x,t]=step(num,den,t);
plot(t,y);
gridon;
xlabel('t');ylabel('c(t)');
title('Unit-StepResponseofG(s)=3/s+1');
总结:
由图像可知,随着参数K和T的减小,系统的性能越来越稳定。
2、单位负反馈系统的开环传递函数为:
,求闭环系统的单位阶跃响应,标出系统的ts、tp、tr,并计算最大超调量和稳态误差。
解:
num=[1];
den=[128];
t=0:
0.1:
10;
[y,x,t]=step(num,den,t);
plot(t,y);
gridon;
xlabel('t');ylabel('c(t)');
title('Unit-StepResponseofG(s)=1/s^2+2s+8');
3、给定典型二阶系统的自然频率ωn=8,仿真当ζ=0,0.2,0.4,,0.6,0.8,1.0,1.5,2.0时的单位阶跃响应,并得出参数变化时对系统性能的影响。
解:
t=0:
0.1:
16;num=[1];
Zeta1=0;den1=[12*Zeta11];
Zeta2=0.2;den2=[12*Zeta21];
Zeta3=0.4;den3=[12*Zeta31];
Zeta4=0.6;den4=[12*Zeta41];
Zeta5=0.8;den5=[12*Zeta51];
Zeta6=1.0;den6=[12*Zeta61];
Zeta7=1.5;den7=[12*Zeta71];
Zeta8=2.0;den8=[12*Zeta81];
[y1,x,t]=step(num,den1,t);
[y2,x,t]=step(num,den2,t);
[y3,x,t]=step(num,den3,t);
[y4,x,t]=step(num,den4,t);
[y5,x,t]=step(num,den5,t);
[y6,x,t]=step(num,den6,t);
[y7,x,t]=step(num,den7,t);
[y8,x,t]=step(num,den8,t);
plot(t,y1,t,y2,t,y3,t,y4,t,y5,t,y6,t,y7,t,y8);
gridon;
总结:
由图可知,随着ζ的增大,系统的性能越来越稳定。
4、开环系统的传递函数为
,求其单位阶跃响应,并比较与开环系统:
的差别,得出相应的结论。
解:
分别求两个开环传递函数的单位阶跃响应,得:
num=[1];
den=[15205];
t=0:
0.1:
10;
[y,x,t]=step(num,den,t);
plot(t,y);
gridon;
xlabel('t');ylabel('c(t)');
title('Unit-StepResponse
ofG(s)=1/s^3+5s^2+205s');
um=[1];
den=[15100];
t=0:
0.1:
10;
[y,x,t]=step(num,den,t);
plot(t,y);
gridon;
xlabel('t');ylabel('c(t)');
title('Unit-StepResponseof
G(s)=1/s^2+5s+100');
5、判断系统的闭环传递函数如下,判断其稳定性:
(1)
(2)
解:
要判断系统的稳定性,我们可以求系统在输入斜坡信号的时候阶跃响应。
clearall
num=[172424];
den=[110355024];
t=[0:
0.1:
50]';ramp=t;
y=lsim(num,den,ramp,t);
plot(t,y);
结论:
系统稳定。
num=[172424];
den=[123456789];
t=[0:
0.1:
10]';ramp=t;
y=lsim(num,den,ramp,t);
plott,y);
结论:
系统不稳定。
实验二频域分析
一、实验目的
1、熟练绘制系统的Nyquist和Bode图。
2、熟练掌握频域法分析系统。
二、实验设备
PC机及MATLAB平台
三、实验原理及方法
1、绘制Bode图
绘制bode图的指令为
bode(num,den)
该指令表示在同一幅图中,分上、下两部分生成幅频特性和相频特性曲线。
虽未明确给出频率的取值范围,但Matlab在频率响应范围内能自动选取频率值绘图。
若要具体给出频率的范围,可调用指令logspace(a,b,n)和bode(num,den,w)来绘制bode图。
其中logspace(a,b,n)是产生频率响应自变量w的采样点,即在十进制数10a和10b之间产生n个十进制对数分度的等距离点,采样点n的具体值由用户确定。
例:
已知一单位反馈控制系统的开环传递函数为
,试绘制该传递函数对应的bode图。
解:
先将传递函数改写为如下形式:
,然后使用bode(num,den)指令。
程序如下:
num=[110];den=[0.510];
w=logspace(-2,3,100);
bode(num,den,w);
gridon;
title(‘bodediagramofG(s)=10(1+0.1s)/s(1+0.5s)’);
若需要指定幅值和相角的取值范围,则需要调用如下的指令:
[mag,phase,w]=bode(num,den,w)
该指令等号左方的变量mag和phase试表示频率响应的幅值和相角,这些幅值和相角均由所选频率点的频率值计算后得出。
由于幅值的单位不是dB,需增加一条指令:
magdB=20*lg10(mag)
上述两条指令在应用时,还需加上如下两条指令,才能在屏幕上显示完整的bode图。
Subplot(211)semilgx(w,20*lg10(mag));
Subplot(212)semilgx(w,phase);
例:
已知系统的开环传递函数为
,要求
在
间作出该系统的bode图。
程序如下:
num=[630];den=[1161000];
w=logspace(-2,3,100);
[mag,phase,w]=bode(num,den,w);
subplot(211);
semilogx(w,20*log10(mag));
gridon;
xlabel('w/s^-1');ylabel('L(w)/dB');
title('bodediagramofG(s)=30(1+0.2s)/s[s^2+16s+100)');
subplot(212);
semilogx(w,phase);
xlabel('w/s^-1');ylabel('Φ/。
');
gridon;
2、绘制Nyquist曲线
根据系统的开环传递函数,应用如下的Matlab指令:
nyquist(num,den)
就能在屏幕上显示出所要绘制的Nyquist曲线。
例:
已知一系统的开环传递函数为
,试用Matlab绘制该系统的Nyquist曲线。
程序如下:
num=[1];
den=[11.81.81];
nyquist(num,den);
v=[-11.5-1.51.5];axis(v);
gridon;
title('NyquistofG(s)=1/s^3+1.8s^2+1.8s+1)');
当需要指定频率
时,可用指令nyquist(num,den,w)。
的单位为s-1,系统的频率响应值就是在指定频率点上计算获得。
Nyqusit指令还有两种等号左端含有变量的形式
[Re,Im]=nyquist(num,den,w)
[Re,Im,w]=nyquist(num,den)
试用以上两条指令时,需增加plot(Re,Im)指令。
例:
已知某系统开环传递函数为
,试用Matlab绘制该系统的Nyquist曲线。
程序如下:
num=[2.5];
den=[0.010.2510];
w1=0.1:
0.1:
10;
w2=10:
2:
100;
w3=100:
5:
1000;
w=[w1w2w3];
[Re,Im]=nyquist(num,den,w);
plot(Re(:
:
),Im(:
:
),Re(:
:
),-Im(:
:
));
v=[-21-33];axis(v);
gridon;
title('NyquistofG(s)=2.5/s(0.2s+1)(0.05s+1)');
xlabel('Re');ylabel('Im');
如果只需要画出
由
变化的nyqusit曲线,则只要把plot指令修改为:
plot(Re(:
:
),Im(:
:
))
3、用Matlab求系统的相位裕量和增益裕量
相位裕量和增益裕量时衡量系统相对稳定性的两个重要指标,应用Matlab如下指令即可求出。
[gm,pm,wcg,wcp]=margin(mag,phase,w)
该指令等号右方为幅值(不是以dB为单位)、相角和频率,由bode或nyquist指令得到。
等号左方为待求的增益裕量gm(不是以dB为单位)、相位裕量pm(以角度为单位)、相位为
的频率wcg和幅值为1(或0dB)处的频率wcp。
gm和pm也可用下列指令求取:
margin(mag,phase,w)
此指令中虽未标出待求参数,但它能生成带有裕量标记(垂直线)的bode图,并在命令窗口给出相应的相位裕量和增益裕量以及它们对应的频率值。
例:
已知某系统开环传递函数为
,试用Matlab绘制该系统的Bode图,并在命令窗口给出相应的增益裕量和相位裕量。
程序如下:
h1=tf([2.5],[10]);
h2=tf([1],[0.21]);
h3=tf([1],[0.051]);
h=h1*h2*h3;
[num,den]=tfdata(h);
[mag,phase,w]=bode(num,den);
subplot(211);
semilogx(w,20*log10(mag));
gridon;
xlabel('w/s^-1');ylabel('L(w)/dB');
title('bodediagramofG(s)=2.5/s(0.2s+1)(0.05s+1)');
subplot(212);
semilogx(w,phase);
xlabel('w/s^-1');ylabel('Φ/。
');
gridon;
[gm,pm,wcg,wcp]=margin(mag,phase,w)
gm=10
pm=59.1337
wcg=10
wcp=2.2603
四、实验内容
1、已知单位负反馈系统的开环传递函数为
(1)绘制开环对数幅频特性曲线,判断系统稳定性并求增益裕量以及相位裕量;
(2)求当输入为1(t),t,t2时系统的稳态误差。
解:
1)绘制开环对数幅频特性曲线,程序如下:
num=[24000144000216000];den=[13032090260600400000];
w=logspace(-2,3,100);
bode(num,den,w);
gridon;
title(‘bodediagramofG(s)=24000(s+3)^2/s(s+1)(s+2)(s+100)(s+200)’);
判断系统稳定性,程序如下:
numG=[24000144000216000];%输入传递函数分子多项式
denG=[13032090260600400000];%输入传递函数分母多项式
G=tf(numG,denG);%创建G(s)为TF对象
pzmap(G);%绘制TF对象的极、零点图
求增益裕量以及相位裕量,程序如下:
h1=tf([24000],[10]);
h2=tf([13],[11]);
h3=tf([13],[12]);
h4=tf([1],[1100]);
h5=tf([1],[1200]);
h=h1*h2*h3*h4*h5;
[num,den]=tfdata(h);
[mag,phase,w]=bode(num,den);
subplot(211);
semilogx(w,20*log10(mag));
gridon;
xlabel('w/s^-1');ylabel('L(w)/dB');
title('bodediagramofG(s)=24000(s+3)^2/s(s+1)(s+2)(s+100)(s+200)');
subplot(212);
semilogx(w,phase);
xlabel('w/s^-1');ylabel('Φ/。
');
gridon;
[gm,pm,wcg,wcp]=margin(mag,phase,w)
求当输入为1(t),t,t2时系统的稳态误差。
a、单位脉冲程序如下:
num=[24000,144000,216000];
den=[1,303,20902,84600,184000,216000];
impulse(num,den);
gridon;
xlabel('t');ylabel('c(t)');
title('单位脉冲响应');
b、斜坡响应程序如下:
num=[24000,144000,216000];
den=[1,303,20902,84600,184000,216000];
t=[0:
0.1:
10]';ramp=t;
y=lsim(num,den,ramp,t);
plot(t,abs(y-ramp));
title('斜坡输入,稳态误差');
gridon;
c、输入t^2响应,程序如下:
num=[24000,144000,216000];
den=[1,303,20902,84600,184000,216000];
t=[0:
0.1:
10]';ramp=t.^2;
y=lsim(num,den,ramp,t);
plot(t,abs(y-ramp));
title('二次输入,稳态误差');
gridon;
2、典型二阶系统
绘制
=6时ξ取不同值时的Bode图。
解:
绘制
=6时ξ取不同值时的Bode图,程序如下:
zeta=0
num=[36];
den=[12*zeta36];
holdon
bode(num,den)
%蓝色
zeta=0.5
num=[36];
den=[12*zeta36];
holdon
bode(num,den)
%深绿色
zeta=1
num=[36];
den=[12*zeta36];
holdon
bode(num,den)
%红色
zeta=2
num=[36];
den=[12*zeta36];
holdon
bode(num,den)
%浅绿
3、单位负反馈系统开环传递函数为
,当k=1、3、5、.....15时,系统的奈氏曲线形状如何变化,分析k对系统的稳定性有什么影响。
当k=1、3、5、.....15时,系统的奈氏曲线形状如何变化,程序如下:
forn=1:
8
k=2*n-1;
num=k;
den=[1581];
nyquist(num,den);
holdon;
gridon;
title('NyquistofG(s)=K/((3s+1)(5s+1)');
end
4、已知单位负反馈系统开环传递函数为
求系统的幅值裕度、相位裕度、和相应的交界频率,并判断稳定性。
求增益裕量以及相位裕量,程序如下:
h1=tf([64],[10]);
h2=tf([12],[10.5]);
h3=tf([1],[16.4256.1]);
h=h1*h