MATLAB自动控制课程设计报告.docx
《MATLAB自动控制课程设计报告.docx》由会员分享,可在线阅读,更多相关《MATLAB自动控制课程设计报告.docx(22页珍藏版)》请在冰豆网上搜索。
MATLAB自动控制课程设计报告
一、实训目的:
了解matlab软件的基本特点和功能,熟悉其界面,菜单和工具条;掌握线性系统模型的计算机表示方法,变换以及模型间的相互转换。
了解控制系统工具箱的组成,特点及应用;掌握求线性定常连续系统输出响应的方法,运用连续系统时域响应函数(impulse,step,lsim),得到系统的时域响应曲线。
掌握使用MATLAB软件作出系统根轨迹;利用根轨迹图对控制系统进行分析;掌握使用MATLAB软件作出开环系统的波特图,奈奎斯图;观察控制系统的开环频率特性,对控制系统的开环频率特性进行分析。
掌握MATLAB软件中simulink工具箱的使用;熟悉simulink中的功能模块,学会使用simulink对系统进行建模;掌握simulink的仿真方法。
二、软件介绍:
MATLAB是Mathworks公司开发的一种集数值计算、符号计算和图形可视化三大基本功能于一体的功能强大、操作简单的优秀工程计算应用软件。
MATLAB不仅可以处理代数问题和数值分析问题,而且还具有强大的图形处理及仿真模拟等功能。
从而能够很好的帮助工程师及科学家解决实际的技术问题。
MATLAB是矩阵实验室(MatrixLaboratory)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。
MATLAB和Mathematica、Maple并称为三大数学软件。
它在数学类科技应用软件中在数值计算方面首屈一指。
MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连matlab开发工作界面接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
MATLAB最重要的特点是易于扩展。
它允许用户自行建立完成指定功能的扩展MATLAB函数(称为M文件),从而构成适合于其它领域的工具箱,大大扩展了MATLAB的应用范围。
目前,MATLAB已成为国际控制界最流行的软件,控制界很多学者将自己擅长的CAD方法用MATLAB加以实现,出现了大量的MATLAB配套工具箱,如控制系统工具箱(controlsystemstoolbox),系统识别工具箱(systemidentificationtoolbox),鲁棒控制工具箱(robustcontroltoolbox),信号处理工具箱(signalprocessingtoolbox)以及仿真环境SIMULINK等。
三、实训原理
在自动控制系统中,对于线性定常系统,可以用常系数线性激分方程加以描述。
当给定输入的时间函数时,通过解微分方程,可以得出系统的输出响应。
根据输出响应的数学表达式可以画出时间响应曲线,直观地反映出系统工作的动态过程。
通常采用传递函数这种与微分方程等价的数学模型。
1、数学模型的建立
(1)、由结构图求传递函数,主要的函数有:
parallel,series,feedback等
(2)、模型变换
主要函数有:
tf2ss,ss2tf,ss2zp,tf2zp,zp2ss,zp2tf可以完成传递函数与状态空间模型间的变换。
函数c2d,c2dt,c2dm,d2c,d2cm可进行连续系统与离散系统间的变换。
函数ctrbf,obsvf可对状态空间实现进行可控、可观测性分解。
函数minereal可完成传递函数的零、极相消及状态空间模型的最小实现。
2、时域响应
主要函数有:
roots,step,impulse,lsim,initial
3、根轨迹
主要函数有:
pzmap,rlocus,rlocfind,sgrid,zgrid。
4、频率法
主要函数有:
bode,nyquist,margin
当系统复杂连接时其等效的整体传递函数可用simulink来实现传递函数的求取。
四、实训内容
(1)、用matlab语言编制程序,实现以下系统:
1)、G(s)=
输入程序:
num=[524018];
den=[14622];
G=tf(num,den)
运行结果:
Transferfunction:
5s^3+24s^2+18
-----------------------------
s^4+4s^3+6s^2+2s+2
2)、G(s)=
输入程序:
n1=4*[12];
n2=[166];
n3=[166];
num=conv(n1,conv(n2,n3));
d1=[11];
d2=[11];
d3=[11];
d4=[1325];
den1=conv(d1,d2);
den2=conv(d3,d4);
den=conv((den1,den2),[10]);
h=tf(num,den)
运行结果:
Transferfunction:
4s^5+56s^4+288s^3+672s^2+720s+288
-----------------------------------------------------
s^7+6s^6+14s^5+21s^4+24s^3+17s^2+5s
(2)、两环节G1,G2串联,求等效的整体传递函数G(s)
G1(s)=
G2(s)=
输入程序:
num1=[2];
den1=[13];
sys1=tf(num1,den1);
num2=[7];
den2=[121];
sys2=tf(num2,den2);
G=sys1*sys2
运行结果:
Transferfunction:
14
---------------------
s^3+5s^2+7s+3
(3)、两环节G1,,G2并联,求等效的整体传递函数G(s)
G1(s)=
G2(s)=
输入程序:
num1=[2];
den1=[13];
sys1=tf(num1,den1);
num2=[7];
den2=[121];
sys2=tf(num2,den2);
G=sys1+sys2
运行结果:
Transferfunction:
2s^2+11s+23
---------------------
s^3+5s^2+7s+3
(4)、已知系统结构如图,求闭环传递函数。
其中的两环节G1,G2分别为G1(s)=
G2(s)=
输入程序:
num1=[3100];
den1=[1281];
sys1=tf(num1,den1);
num2=[2];
den2=[25];
sys2=tf(num2,den2);
G=feedback(sys1,sys2)
运行结果:
Transferfunction:
6s^2+215s+500
---------------------------
2s^3+9s^2+178s+605
(5)、已知某闭环系统的传递函数为G(s)=
求其单位阶跃响应曲线,单位脉冲响应曲线。
1)、单位阶跃响应
输入程序:
num=[1025];
den=[0.161.961025];
G=tf(num,den)
y=step(G);
plot(y);
figure
(1)
grid;
title('单位阶跃响应');
xlabel('时间')
ylabel('振幅')
运行结果:
图5.1.1系统的阶跃响应曲线
2)、单位脉冲响应
输入程序:
num=[1025];
den=[0.161.961025];
G=tf(num,den)
y=impulse(G);
figure
(2)
plot(y);
grid;
title('单位脉冲响应')
xlabel('时间')
ylabel('振幅')
运行结果:
图5.1.2系统的脉冲响应曲线
(6)、典型二阶系统的传递函数为
为自然频率,
为阻尼比,试绘制出当
=0.5,
分别取-2,0,2,4,6,8,10时该系统的单位阶跃响应曲线;分析阻尼比分别为-0.5,-1时系统的稳定性。
输入程序:
i=0;
t=0:
0.1:
10;
forwn=-2:
10
i=i+1;
zeta=[0.5];
num=[wn^2];den=[1,2*zeta*wn,wn^2];
sys=tf(num,den);
y(:
i)=step(sys,t);
end
plot(t,y(:
1),t,y(:
2),t,y(:
3),t,y(:
4),t,y(:
5),t,y(:
6),t,y(:
7));
grid
xlabel('time(s)')
ylabel('stepresponse')
运行结果:
图6.1.1系统的单位跃阶响应曲线
输入程序:
假设wn=10,
num=[100];zeta=[-0.5,-1];t=0:
0.1:
10;y=zeros(length(t),2);
fori=1:
2
den=[1,2*zeta(i)*10,100];
sys=tf(num,den);
y(:
i)=step(sys,t);
end
plot(t,y(:
1),t,y(:
2));
f=[1,2*zeta(i)*10,100];
p=roots(f)
运行结果为:
p=
10
10
所以系统稳定。
(7)、设有一高阶系统开环传递函数为
试绘制该系统的零极点图和闭环根轨迹图。
1)系统的零极点
输入程序:
num=[0.0160.2181.4369.359];
den=[0.060.2680.6356.271];
sys=tf(num,den);
Pzmap(sys)
[ZPK]=Pzmap(sys)
运行结果:
Z=
-10.4027
-1.6111+7.3235i
-1.6111-7.3235i
P=
-5.7710
0.6522+4.2054i
0.6522-4.2054i
K=
0.2667
图7.1.1系统的零极点图
2)系统的闭环根轨迹
输入程序:
num=[0.0160.2181.4369.359];
den=[0.060.2680.6356.271];
sys=tf(num,den);
rlocus(sys)
运行结果:
图7.1.2系统的闭环根轨迹图
(8)、单位反馈系统前向通道的传递函数为:
试绘制该系统的Bode图和Nyquist曲线,说明软件绘制曲线与手动绘制曲线的异同。
1)、绘制该系统的Bode图:
输入程序:
num=[281282];
den=[151010510];
sys=tf(num,den);
margin(sys)
运行结果:
图8.1.1系统的Bode图
2)、系统的Nyquist图
输入程序:
num=[281282];
den=[151010510];
sys=tf(num,den);
nyquist(sys)
运行结果:
图8.1.2系统Nyquist曲线
(9)、已知某控制系统的开环传递函数
=1.5,试绘制系统的开环频率特性曲线,并求出系统的幅值和相位裕量。
输入程序:
num=[3];
den=conv([20],conv([11],[12]));
sys=tf(num,den);
margin(sys)
step=(sys)
运行结果:
图9.1.1系统的开环频率特性曲线
输入程序:
[gm,pm,wcg,wcp]=margin(sys)
运行结果:
gm=4.0000%幅值裕量
pm=41.5340%相角裕量
wcg=1.4142%Nyquist曲线与负实轴交点处频率
wcp=0.6118%截止频率
(10)、在SIMULINK中建立系统,该系统阶跃输入时的连接示意图如下。
K为学生学号后三位。
绘制其单位阶跃响应曲线,分析其峰值时间,延迟时间,上升时间,调节时间及超调量。
其运行结果:
图10.1.1系统单位跃阶相应曲线
输入程序:
num1=[1];
den1=[10];
sys1=tf(num1,den1);
num2=[206];
den2=[19];
sys2=tf(num2,den2);
sys12=sys1*sys2;
G=feedback(sys12,1);
step(G)
grid;
运行结果:
图10.1.1单位阶跃响应曲线
分析其峰值时间
,延迟时间
,上升时间
,调节时间
及超调量
输入程序:
num=[206];
den=[19206];
[y,x,t]=step(num,den);
[peak,k]=max(y);
overshoot=(peak-1)*100
tp=t(k)
n=1;
whiley(n)<1
n=n+1;
end
tr=y(n)
m=length(t)
while((y(m)>0.98)&(y(m)<1.02))
m=m-1;
end
ts=t(m)
运行结果:
overshoot=
35.4167
tp=
0.2331
tr=
1.0634
m=
115
ts=
0.7730
(11)、给定系统如图26所示,试设计一个串联校正装置,使系统满足幅值裕量大于10分贝,相位裕量≥45o
设计串联校正装置:
输入程序:
G1=tf(100,[0.04,1,0]);
G2=tf(100*[0.025,1],conv([0.0410],[0.011]))
bode(G1);
hold
bode(G2,'--')
figure
G1_c=feedback(G1,1)
G2_c=feedback(G2,1)
step(G1_c)
hold
step(G2_c,'--')
运行结果:
图11.1.1校正前后系统的Bode图
图11.1.2校正前后系统的阶跃响应图
可以看出去校正装置是:
。
通过系统前后校正可以看出:
在这样的控制器下,校正后系统的相位裕量由
增加到48o,调节时间由0.28s减少到0.08s。
系统的性能有了明显的提高,满足了设计要求。
五、总结:
《自动控制理论》是一门理论性和实践性很强的专业基础课,我们通过计算机仿真,可以方便地研究系统性能,验证理论的正确性,加深对理论知识的理解。
我们通过电子模拟实验,学习和掌握系统模拟电路的构成和测试技术,进一步培养我们的实际动手能力和分析、研究问题的能力。
本次课程设计,对我们不仅是对前面所学知识的一种检验,而且是对自己能力的一种提升。
在设计过程中,我们通过到图书管借阅了大量的自动控制原理MATLAB实现的相关资料,自学的时候与同学、老师交流,一步一步的分析和研究,最终完成了课程设计。
在设计和分析过程中遇到不少问题,首先是因为对原先学过的知识有些遗忘,再次,MATLAB的初次见面也很陌生,不仅要复习自动控制原理的相关知识,还要学习MATLAB软件的使用。
通过这次课程设计,我巩固了自动控制原理所学的基本知识。
同时,最主要的是我对MATLAB软件有了初步的了解,在以后的学习中可以轻松的解决MATLAB相关方面的问题,也有助于自己的学习研究。
进一步深入理论知识,加强理论与实际的联系。
通过课程设计掌握自动控制原理的分析方法:
定性分析、弄清工作原理、建立数学模型、定量分析静、动态指标、校正设计。
其次,在这次课程设计中,我们运用了以前学过的专业知识,通过使用MATLAB仿真软件将理论知识与实践运用相结合。
这就是在这次课程设计中的又一个收获。
总之,不论做好设计,还是学习,最主要的就是我们的态度,“努力造就实力,态度决定高度”。
态度决定一切。
六、参考文献:
[1]程鹏.第二版自动控制原理北京:
高等教育出版社,2009,09
[2]黄忠霖.自动控制原理的MATLAB实现北京:
国防工业出版社,2006,10
[3]张德丰.MATLAB自动控制系统设计北京:
机械工业出版社,2010,01
[4].魏克新,王云亮,陈志敏等.MATLAB语言与自动控制系统设计(第2版)[M].北京:
机械工业出版社,2004.
[5].高强.智能控制系统的应用研究[J].控制与决策,2002.
[6].恒润科技.dSPACE产品手册[Z]2000.
[7].张若青,罗学科,王民控制工程基础及MATLAB实践[M].高等教育出版社2008.
[8].张铮,杨文平,石博强等MATLAB程序设计与实例应用[M].中国铁道出版社2003.
[9].张晓江,黄云志,自动控制系统计算机仿真[M].机械工业出版社2009.