北理工:自动控制实验实验报告汇总.doc
《北理工:自动控制实验实验报告汇总.doc》由会员分享,可在线阅读,更多相关《北理工:自动控制实验实验报告汇总.doc(33页珍藏版)》请在冰点文库上搜索。
控制理论基础实验(基于MATLAB)
控制理论基础实验
班级:
05611001
学号:
1120101327
姓名:
付予
实验时间:
周五下午7、8节
指导教师:
范哲意
实验一:
控制系统的模型建立
一、实验目的
1.掌握利用MATLAB建立控制系统模型的方法。
2.掌握系统的各种模型表述及相互之间的转换关系。
3.学习和掌握系统模型连接的等效变换。
二、实验原理
1.系统模型的MATLAB描述
1)传递函数(TF)模型
2)零极点增益(ZPK)模型
3)状态空间(SS)模型
4)三种模型之间的转换
2.系统模型的连接
在实际应用中,整个控制系统是由多个单一的模型组合而成,基本的组合方式有串联连接、并联连接和反馈连接。
三、实验内容
1.已知控制系统的传递函数如下
试用MATLAB建立系统的传递函数模型、零极点增益模型及系统的状态空间方程模型,并绘制系统零极点图。
实验代码:
8
>>num=[2,18,40];
>>den=[1,5,8,6];
>>gtf=tf(num,den)
>>gzpk=zpk(gtf)
>>gss=ss(gtf)
>>pzmap(gzpk)
>>gridon
实验结果:
传递函数模型:
gtf=
2s^2+18s+40
---------------------
s^3+5s^2+8s+6
零极点增益模型:
gzpk=
2(s+5)(s+4)
--------------------
(s+3)(s^2+2s+2)
状态空间方程模型:
gss=
a=
x1x2x3
x1-5-2-1.5
x2400
x3010
b=
u1
x14
x20
x30
c=
x1x2x3
y10.51.1252.5
d=
u1
y10
零极点图形:
2.已知控制系统的状态空间方程如下
试用MATLAB建立系统的传递函数模型、零极点增益模型及系统的状态空间方程模型,并绘制系统零极点图。
实验代码:
>>A=[0100;0010;0001;-1-2-3-4];
>>B=[0;0;0;1];
>>C=[10200];
>>D=[0]
>>Gss=ss(A,B,C,D)
>>Gtf=tf(Gss)
>>Gzpk=zpk(Gss)
>>pzmap(Gzpk)
>>gridon
实验结果:
系统状态空间方程:
a=
x1x2x3x4
x10100
x20010
x30001
x4-1-2-3-4
b=
u1
x10
x20
x30
x41
c=
x1x2x3x4
y110200
d=
u1
y10
传递函数模型:
2s+10
-----------------------------
s^4+4s^3+3s^2+2s+1
零极点增益模型:
Zero/pole/gain:
2(s+5)
---------------------------------------------
(s+3.234)(s+0.6724)(s^2+0.0936s+0.4599)
零极点图:
3.已知三个系统的传递函数分别为
试用MATLAB求上述三个系统串联后的总传递函数。
实验代码:
>>num1=[2,6,5];
>>den1=[1,4,5,2];
>>num2=[1,4,1];
>>den2=[1,9,8,0];
>>z=[-3,-7];
>>p=[-1,-4,-6];
>>k=5;
>>g1=tf(num1,den1);
>>g2=tf(num2,den2);
>>g3=zpk(z,p,k);
>>g=g1*g2*g3
实验结果:
总传递函数:
g=
10s^6+170s^5+1065s^4+3150s^3+4580s^2+2980s+525
-------------------------------------------------------------------------------------
s^9+24s^8+226s^7+1084s^6+2905s^5+4516s^4+4044s^3+1936s^2+384s
4.已知如图E2-1所示的系统框图
试用MATLAB求该系统的闭环传递函数。
编写程序代码:
>>num1=[1];
>>den1=[1,1];
>>num2=[1];
>>den2=[0.5,1];
>>num3=[3];
>>den3=[1,0];
>>num4=[1];
>>den4=[0.5,1];
>>g1=tf(num1,den1);
>>g2=tf(num2,den2);
>>g3=tf(num3,den3);
>>g4=tf(num4,den4);
>>g=feedback((g1+g2)*g3,g4)
实验结果:
2.25s^2+7.5s+6
---------------------------------------
0.25s^4+1.25s^3+2s^2+5.5s+6
5.已知如图E2-2所示的系统框图
试用MATLAB求该系统的闭环传递函数。
实验代码:
>>num1=[10];
>>den1=[1,1];
>>num2=[2];
>>den2=[1,1,0];
>>num3=[1,3];
>>den3=[1,2];
>>num4=[5,0];
>>den4=[1,6,8];
>>g1=tf(num1,den1);
>>g2=tf(num2,den2);
>>g3=tf(num3,den3);
>>g4=tf(num4,den4);
>>t1=feedback(g2,g3,1);
>>t=feedback(g1*t1,g4)
控制理论基础实验(基于MATLAB)
实验结果:
t=
20s^3+160s^2+400s+320
----------------------------------------------------
s^6+10s^5+35s^4+44s^3+82s^2+116s–48
四、实验总结及感想
1.掌握用三种传函模型来表示一个G(s),分别为:
传递函数(TF)模型、零极点增益(ZPK)模型、状态空间(SS)模型,以及三种模型之间的相互转化。
2.三种模型应以传函形式选择最优模型。
实验2控制系统的暂态特性分析
一、实验目的
1.学习和掌握利用MATLAB进行系统时域响应求解和仿真的方法。
2.考察二阶系统的时间响应,研究二阶系统参数对系统暂态特性的影响。
二、实验原理
1.系统的暂态性能指标
控制系统的暂态性能指标常以一组时域量值的形式给出,这些指标通常由系统的单位阶
跃响应定义出来,这些指标分别为:
(1)延迟时间:
响应曲线首次到达稳态值的50%所需的时间。
(2)上升时间:
响应曲线从稳态值的10%上升到90%所需要的时间长,对于欠阻尼
系统,通常指响应曲线首次到达稳态值所需的时间。
(3)峰值时间:
响应曲线第一次到达最大值的时间。
(4)调整时间:
响应曲线开始进入并保持在允许的误差(±2%或±5%)范围内所
需要的时间。
(5)超调量σ:
响应曲线的最大值和稳态值之差,通常用百分比表示
其中y(t)为响应曲线。
在MATLAB中求取单位阶跃响应的函数为step,其使用方法如下
step(sys)在默认的时间范围内绘出系统响应的时域波形
step(sys,T)绘出系统在0–T范围内响应的时域波形
step(sys,ts:
tp:
te)绘出系统在ts–te范围内,以tp为时间间隔取样的响应波形
[y,t]=step(…)该调用格式不绘出响应波形,而是返回响应的数值向量及其对应的时间
向量。
系统的暂态性能指标可以根据上述定义,在响应曲线上用鼠标读取关键点或通过搜索曲
线对应的数值向量中关键点来确定。
2.LTIView工具
在MATLAB中提供了线性是不变系统仿真的工具LTIViewer,可以方便地观察系统的
响应曲线和性能指标。
在命令窗口中键入ltiview即可启动LTIViewer。
这里简要介绍LTI
Viewer工具(如图2-1所示)的使用方法。
图2-1LTIViewer工具运行界面
1)【File】菜单
Import选项:
可以从Workspace或MAT文件中导入系统模型。
Export选项:
将当前窗口中的对象模型保存到Workspace或文件中。
Toolboxpreferences选项:
属性设置功能,可以设置控制系统中得各种属性值。
PageSetup选项:
页面设置功能,可以对打印输出和显示页面进行设置。
2)【Edit】菜单
PlotConfiguration选项:
对显示窗口及显示内容进行配置。
LineStyle选项:
线型设置功能,可以对输出响应曲线的线型进行设置。
ViewerPreferences选项:
对当前窗口的坐标、颜色、字体、响应曲线的特性参数等属性
进行设置。
3)右键菜单
在运行界面上点击鼠标右键,将会弹出一个弹出式菜单,菜单上个选项的功能分别为:
PlotTypes:
选择绘制的系统曲线类型,可选的类型有单位阶跃响应、单位冲击响应、
波特图、奈奎斯特图、零极点图等。
System:
选择需要仿真的系统。
Characteristic:
系统的性能指标选项。
Grid:
显示和关闭网格。
Normalize:
正常显示模式。
FullView:
满界面显示模式。
Properties:
性能编辑器选项,可以设置画面的标题、坐标标志、坐标范围、线型、颜色、
性能指标等。
三、实验内容
1.已知单位负反馈系统前向通道的传递函数为
试用MATLAB绘制系统的单位阶跃响应曲线。
实验代码及结果如下:
mum=[120]
mum=
120
den=[1280];
G1=tf(mum,den)
Transferfunction:
s^2+2s
--------------
s^2+2s+80
step(G1,10)
step(G1,8)
实验图形:
分析:
系统单位阶跃响应是跟据系统闭环传递函数绘制的,因此要根据开环传递函数(前向通路)及反馈类型找到系统闭环传递函数,再绘制阶跃响应曲线。
由响应曲线可以看出,二阶单位负反馈系统单位阶跃响应的稳态值为1,系统震荡逐渐衰减。
2.已知二阶系统
(1)=0.6,=5,试用MATLAB绘制系统单位阶跃响应曲线,并求取系统的暂态性能指标。
v=5;
e=0.6;
t=[0:
0.1:
10];
num=[v^2];
den=[1,2*e*v,v^2];
G=tf(num,den);
step(G,8)
图像如下:
Tp=0.785s
σ=9.48%
Td=0.272s
Tr=0.554s
Ts=1.19s
(2)=1,ζ从0变化到2,求此系统的单位阶跃响应。
实验代码:
w=1;
s=[0,0.1,0.2,0.5,1.0,1.5,2.0];
t=[0:
0.1:
15];
num=[w^2];
holdon
fori=1:
length(s)
den=[1,2*s(i)*w,w^2]
sys=tf(num,den);
step(sys,t)
end
holdoff
gridon
gtext('s=0');gtext('s=0.1');gtext('s=0.2');gtext('s=0.5');gtext('s=1.0');gtext('s=1.5');gtext('s=2.0');
实验图形:
分析:
从上图可知,随着ζ从0增加到2,频响逐步减弱,在ζ=0时候,是无阻尼振荡,表现为等幅振荡,不稳定;随着ζ增大,进入欠阻尼状态,振荡减小。
ζ=1的时候为临界阻尼振荡,>1的时候是过阻尼状态,可以看到,此时已经没有振荡产生。
再观察过渡时间ts,可以发现在0.4<ζ<0.8的时候,ts很短,同时振荡也不严重,满足稳定性,所以我们在控制工程中一般希望二阶系统工作在这个区间内。
(3)ζ=0.5,从0变化到1(≠0),求此系统的单位阶跃响应。
实验代码:
w=[0.1,0.25,0.5,0.75,1.0];
t=[0:
0.1:
40];
holdon
fori=1:
length(w)
num=[w(i)^2]
den=[1,2*s*w(i),w(i)^2]
sys=tf(num,den);
step(sys,t)
end
holdoff
gridon
gtext('w=0.1');gtext('w=0.25');gtext('w=0.5');gtext('w=0.75');gtext('w=1.0')
实验结果:
4.观察上述实验结果,分析这两个特征参数对系统暂态特性的影响。
答:
根据上述实验数据可以看出,阻尼比ζ的增大使得上升时间tr峰值时间tp逐渐增加,超调量降低,峰值降低,震荡逐渐减小。
调整时间ts减小,即进入稳态的时间变短。
表明阻尼比的增大使得系统的快速性和稳定性都有所增强。
的增大使得调整时间ts,上升时间tr,峰值时间tp都减小,而超调量,峰值等指标不变,表明的增大使得系统的快速性增强,但并没有增强系统的稳定性。
四、实验总结与感想
1.通过MATLAB可以很直观对系统动态指标进行分析,十分方便。
2.更加深入的理解五个动态指标,以及阻尼比ζ和对这5个指标的影响。
3.深化系统的开环、闭环区别。
实验3根轨迹分析
一、实验目的
1.学习和掌握利用MATLAB绘制根轨迹图的方法。
2.学习和掌握利用系统根轨迹图分析系统的性能。
二、实验原理
1.根轨迹分析的MATLAB实现
根轨迹是指系统某一参数变化时,闭环特征根在s平面上运动的轨迹。
在MATLAB中,提供了用于根轨迹分析的专门函数。
1)rlocus函数
2)rlocfind函数
3)sgrid函数
2.Rltool工具
三、实验内容
1.已知系统开环传递函数为
(1)使用MATLAB绘制系统的根轨迹图。
实验代码:
den=[-1,-3,-12]
num=[-5];
h=[1];
G=zpk(num,den,h);
sys=feedback(G,1);
rlocus(sys)
实验结果:
(2)计算两条分支进入右半平面和两条分支复数极点出发在实轴相交处的K值。
实验结果:
由图可知:
k=2.38 p1=-2.12 p2=-11.8
(3)以区间[-20,-1]之间的值替代零点的位置,重新绘制根轨迹图,观察其对根轨迹图的影响。
实验代码:
a=-40:
1:
-5;
h=[1];
holdon;
fori=1:
length(a);
num=[-5];
den=[-1,3,a(i)];
G=zpk(num,den,h);
sys=feedback(G,1);
rlocus(sys)
end
实验结果:
结果分析:
随着极点的变化,根轨迹的形状一直在改变,但是一直是始于开环极点,终于开环零点或无穷远处,并且开环极点数目不变,根轨迹的分指数也不变。
2.已知系统开环传递函数为
(1)使用MATLAB绘制系统的根轨迹图。
实验代码:
num=[-8];
den=[0,-2,-4+4*j,-4-4*j];
h=[1];
G=zpk(num,den,h);
sys=feedback(G,1);
rlocus(sys)
实验结果:
(2)计算两条分支进入右半平面和两条分支复数极点出发在实轴相交处的K值。
实验结果:
由图可知:
k1=52 k2=2.07x10^3
(3)以区间[-20,-1]之间的值替代零点的位置,重新绘制根轨迹图,观察其对根轨迹图的影响。
实验代码:
a=-20:
5:
-1;
h=[1]
holdon;
fori=1:
length(a)
num=[a(i)];
den=[0,-2,-4+4*j,-4-4*j];
G=zpk(num,den,h);
sys=feedback(G,1);
rlocus(sys);
end
实验结果:
(3)已知单位负反馈系统的开环传递函数为
(1)使用MATLAB绘制系统的根轨迹图。
实验代码:
num=[1];
den=[1450];
G=tf(num,den);
sys=feedback(G,1);
rlocus(sys)
实验结果:
(2)分析使系统稳定的K值范围和使系统无超调的K值范围,并通过观察系统的单位阶跃响应曲线加以验证。
实验代码:
33
den=[1450];
a=20:
10:
100;
holdon;
fori=1:
length(a);
num1=[a(i)];
G1=tf(num1,den);
sys1=feedback(G1,1);
step(sys1)
end
b=1:
2:
20;
holdon;
fori=1:
length(b)
num=[b(i)];
G2=tf(num,den);
sys2=feedback(G2,1);
step(sys2)
end
c=0.1:
0.1:
1;
holdon;
fori=1:
length(c);
num3=[c(i)];
G3=tf(num3,den);
sys3=feedback(G3,1);
step(sys3)
end
实验结果:
K>19,系统不稳定
K>1,系统有超调
K<1,系统无超调
四、实验感想:
1.本次实验可以通过两种方法完成,一种是利用MATLAB函数对所要求的指标进行设置并求取,另一种是可以通过Rltool工具进行直接调整求取。
Rtool工具可以直接设置零极点,并且可以通过抓取点确定需要的指标,这些都大大的减小了编写代码的麻烦过程。
2.本次实验研究了根轨迹的绘制方法,可以看到对根轨迹的主要影响就是开环系统的零极点,零极点的不同改变根轨迹的特性,并可以通过根轨迹判断稳定的临界值,在设计中很意义。
实验四:
系统的频率特性分析
一、实验目的
1.学习和掌握利用MATLAB绘制系统Nyquist图和Bode图的方法。
2.学习和掌握利用系统的频率特性分析系统的性能。
二、实验原理
系统的频率特性是一种图解方法,分析运用系统的开环频率特性曲线,分析闭环系统的性能,如系统的稳态性能、暂态性能常用的频率特性曲线有Nyquist图和Bode图。
在MATLAB中,提供了绘制Nyquist图和Bode图的专门函数。
margin函数可以用于从频率响应数据中计算出幅度裕度、相位裕度及其对应的角频率。
三、实验内容
1.已知系统开环传递函数为
绘制系统的Nyquist图,并讨论其稳定性。
实验代码:
p=[-1,-2,-5];
z=[];
k=1000;
g=zpk(z,p,k)
实验结果:
结果分析:
系统逆时针包围(-1,j0)0圈,顺时针包围2圈,而开环无正实部极点即P=0,所以不满足稳定判据,闭环不稳定。
2.已知系统的开环传递函数为
(1)绘制系统的零极点图,根据零极点分布判断系统的稳定性。
实验代码:
num=[25/16,5/4,1];
den=[1];
g1=tf(num,den);
z=[];
p=[0,0,-0.3,-15,-40];
k=10;
g2=zpk(z,p,k)*180;
g=g2*g1;
pzmap(g)
gridon
bode(g)
margin(g)
实验结果:
结果分析:
可以看到系统有一对虚轴上的极点,所以处于临界稳定状态。
(2)绘制系统Bode图,求出幅度裕度和相位裕度,判断闭环系统的稳定性。
实验结果:
由图可知:
相位裕度60.7
幅值裕度为:
-18.4dB,
3.已知系统的开环传递函数为
分别判断当开环放大系数K=5和K=20时闭环系统的稳定性,并求出幅度裕度和相位裕度。
实验代码:
z=[];
p=[0,-1,-10];
k=5;%第二次时改为20
g=zpk(z,p,k);
bode(g);
margin(g);
实验结果:
K=5:
由图可知:
相位裕度:
13.6度
幅值裕度:
6.85db
闭环稳定
K=20:
相位裕度:
-9.66度
幅值裕度:
-5.19db
闭环不稳定
四、实验总结与感想
1.实际中闭环函数往往不好求得,但是只要通过系统的开环传递函数的耐奎