自动控制理论.docx
《自动控制理论.docx》由会员分享,可在线阅读,更多相关《自动控制理论.docx(24页珍藏版)》请在冰豆网上搜索。
自动控制理论
一、设计目的
1.了解matlab软件的基本特点和功能,熟悉其界面、菜单和工具条;掌握线性系统模型的计算机表示方法、变换以及模型间的相互转换。
了解控制系统工具箱的组成、特点及应用;掌握求线性定常连续系统输出响应的方法,运用连续系统时域响应函数(impulse,step,lsim),得到系统的时域响应曲线。
2.掌握使用MATLAB软件作出系统根轨迹;利用根轨迹图对控制系统进行分析;掌握使用MATLAB软件作出开环系统的波特图,奈奎斯特图;观察控制系统的开环频率特性,对控制系统的开环频率特性进行分析;
3.掌握MATLAB软件中simulink工具箱的使用;熟悉simulink中的功能模块,学会使用simulink对系统进行建模;掌握simulink的仿真方法。
二、设计原理
被控对象模型的建立
1、在线性系统理论中,一般常用的描述系统的数学模型形式有:
(1)传递函数模型——有理多项式分式表达式
(2)传递函数模型——零极点增益表达式
状态空间模型(系统的内部模型)
这些模型之间都有着内在的联系,可以相互进行转换。
2、传递函数模型——有理多项式分式表达式
若已设系统的传递函数模型为
知系统的传递函数为:
(1)对线性定常系统,式中s的系数均为常数,且an不等于零。
(2)这时系统在MATLAB中可以方便地由分子和分母各项系数构成的两个向量唯一地确定,这两个向量常用num和den表示。
num=[bm,bm-1,…,b1,b0]
den=[an,an-1,…,a1,a0]
(3)注意:
它们都是按s的降幂进行排列的。
分子应为m项,分母应为n项,若有空缺项(系数为零的项),在相应的位置补零。
(4)然后写上传递函数模型建立函数:
sys=tf(num,den)。
这个传递函数便在MATLAB平台中被建立,并可以在屏幕上显示出来。
3、环节串联、并联、反馈连接时等效的整体传递函数的求取
(1)串联
在MATLAB中求取整体传递函数的功能,采用如下的语句或函数
来实现。
.
G=G1*G2
G=series(G1,G2)
[num,den]=series(num1,den1,num2,den2)
(2)并联
两环节G1(s)与G2(s)并联,则等效的整体传递函数为
G(s)=G1(s)+G2(s)
在MATLAB中求取整体传递函数的功能,采用如下的语句或函数来实现。
①G=G1+G2
②G=parallel
(G1,G2)
③[num,den]=parallel
(num1,den1,num2,den2)
(3)反馈:
feedback
在MATLAB中采用如下的语句或函数来求取闭环传递函数
①G=feedback(G1,G2,sign)
②[num,den]=feedback(num1,den1,num2,den2,sign)
G=cloop(G1,sign)
[numc,denc]=cloop(num,den,sign)
(这里,sign=1时采用正反馈;当sign=-1时采用负反馈;sign缺省时,默认为负反馈
三、简述MATLAB语言的特点及其主要功能
MATLAB具备高性能的数值计算和可视化的科学工程计算功能,支持解释性语言输入,编程实现简单,具有丰富的数学函数功能支持。
MATLAB允许与C、Fortran语言接口,其部件Simulink可以采用图形输入的方式来搭构所研究的系统。
包含丰富的工具包,在系统仿真、数字信号处理、图形图像分析、数理统计、通信及自动控制领域得到广泛的应用。
MATLAB具有以下几个特点:
1.MATLAB编程的过程就是在编辑、编译、连接以及执行和调试之间作瀑布型的循环。
Matlab语言与其它语言相比,较好地决了上述问题,把编辑、编译、连接和执行融为一体。
它能在同一画面上进行灵活操作快速排除输入程序中的书写错误、语法错误以至语意错误,从而加快了用户编写、修改和调试程序的速度,可以说在编程和调试过程中它是一种比VB还要简单的语言。
2.运算符丰富。
由于MATLAB是用C语言编写的,MATLAB提供了和C语言几乎一样多的运算符,灵活使用MATLAB的运算符将使程序变得极为简短。
3.高级但简单的程序环境,与其它语言编写的程序结合和输入输出格式化数据的能力;MATLAB既具有结构化的控制语句(如for循环,while循环,break语句和if语句),又有面向对象编程的特性。
4.程序限制不严格,程序设计自由度大。
例如,在MATLAB里,用户无需对矩阵预定义就可使用。
有大量事先定义的数学函数,并且有很强的用户自定义函数的能力;
5.程序的可移植性很好,基本上不做修改就可以在各种型号的计算机和操作系统上运行。
6.MATLAB的图形功能强大。
在FORTRAN和C语言里,绘图都很不容易,但在MATLAB
里,数据的可列绘图函数(命令),例如线性坐标、对数坐标,半对数坐标及极坐标,均只需调用不同的绘图函数(命令),在图上标出图题、XY轴标注,格(栅)绘制也只需调用相应的命令,简单易行。
另外,在调用绘图函数时调整自变量可绘出不变颜色的点、线、复线或多重线。
这种为科学研究着想的设计是通用的编程语言所不及的。
7.语言简洁紧凑,使用方便灵活,库函数极其丰富。
有高性能数值计算的高级算
法,特别适合矩阵代数领域;MATLAB程序书写形式自由,利用起丰富的库函数避开繁杂的子程序编程任务,压缩了一切不必要的编程工作。
由于库函数都由本领域的专家编写,用户不必担心函数的可靠性。
可以说,用MATLAB进行科技开发是站在专家的肩膀上。
8.功能强大的工具箱是MATLAB的另一特色。
MATLAB包含两个部分:
核心部分和各种可选的工具箱。
核心部分中有数百个核心内部函数。
其工具箱又分为两类:
功能性工具箱和学科性工具箱。
功能性工具箱主要用来扩充其符号计算功能,图示建模仿真功能,文字处理功能以及与硬件实时交互功能。
功能性工具箱用于多种学科。
而学科性工具箱是专业性比较强的,如(control、signalproceessing、commumnication)toolbox等。
这些工具箱都是由该领域内学术水平很高的专家编写的,所以用户无需编写自己学科视化非常简单。
它有一系范围内的基础程序,而直接进行高,精,尖的研究。
9.源程序的开放性。
开放性也许是MATLAB最受人们欢迎的特点。
除内部函数以外,所有MATLAB的核心文件和工具箱文件都是可读可改的源文件,用户可通过对源文件的修改以及加入自己的文件构成新的工具箱。
(二)基本功能
MATLAB是主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。
它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。
MATLAB和Mathematica、Maple并称为三大数学软件。
它在数学类科技应用软件中在数值计算方面首屈一指。
MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。
在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。
可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。
四、详细说明用MATLAB进行控制系统仿真时常用的方法和指令
axis控制轴刻度和风格的高层指令
clear清除内存变量和函数
conv多项式乘、卷积
disp显示数组
error显示出错信息并中断执行
exist检查变量或函数是否已定义
exit退出Matlab环境
exp指数函数
feedback反馈连接
for构成for环用
gamma函数
gammainc不完全函数
series串联连接
step阶跃响应指令
impulse脉冲响应指令
rlocus根轨迹曲线指令
pzmap零极点分布图指令
bode波德图指令
nyquist奈奎斯特指令
五、实训内容
1.用matlab语言编制程序,实现以下系统:
1)
解:
可以由下面的命令输入到MATLAB工作空间中去:
>>num=[524018];
den=[14622];
G=tf(num,den)
Transferfunction:
5s^3+24s^2+18
-----------------------------
s^4+4s^3+6s^2+2s+2
2)
解:
可以借助多项式乘法函数conv来描述传递函数,如下语句:
>>num=4*conv([1,2],conv([166],[166]));
den=conv([1,0],conv([1,1],conv([11],conv([11],[1325]))));
G=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
其中conv()函数(标准的MATLAB函数)用来计算两个向量的卷积,多项式乘法当然也可以用这个函数来计算。
该函数允许任意地多层嵌套,从而表示复杂的计算。
2.两环节G1、G2串联,求等效的整体传递函数G(s)
解:
可采用sys=series(sys1,sys2)或sys=sys1*sys2两种调用格式:
>>G1=tf([2],[13]);或>>G1=tf([2],[13]);
G2=tf([7],[121]);G2=tf([7],[121]);
G=G1*G2G=series(G1,G2)
Transferfunction:
14
---------------------
s^3+5s^2+7s+3
3.两环节G1、G2并联,求等效的整体传递函数G(s)
解:
可采用sys=parallel(sys1,sys2)或sys=sys1+sys2两种调用格式:
>>G1=tf([2],[13]);>>G1=tf([2],[13]);
G2=tf([7],[121]);G2=tf([7],[121]);
G=G1+G2G=parallel(G1,G2)
Transferfunction:
2s^2+11s+23
---------------------
s^3+5s^2+7s+3
4.已知系统结构如图,求闭环传递函数。
其中的两环节G1、G2分别为
解:
反馈函数调用格式:
G=feedback(G1,G2,sign)
其中变量sign用来表示正反馈或负反馈结构,若sign=-1表示负反馈系统的模型,若省略sign变量,则仍将表示负反馈结构。
G1和G2分别表示前向模型和反馈模型的LTI(线性时不变)对象。
负反馈G1=tf([3100],[1281]);
G2=tf([2],[25]);
G=feedback(G1,G2)
Transferfunction:
6s^2+215s+500
---------------------------
2s^3+9s^2+178s+605
正反馈G1=tf([3100],[1281]);
G2=tf([2],[25]);
G=feedback(G1,G2,1)
Transferfunction:
6s^2+215s+500
---------------------------
2s^3+9s^2+166s+205
5.已知某闭环系统的传递函数为
,求其单位阶跃响应曲线,单位脉冲响应曲线。
解:
sys=tf([1025],[0.161.961025]);
impulse(sys);
title('脉冲响应');
sys=tf([1025],[0.161.961025]);
G=tf([1025],[0.161.961025]);
step(G);
title('阶跃响应');
6.典型二阶系统的传递函数为,为自然频率,为阻尼比,试绘出当
=0.5,
分别取-2、0、2、4、6、8、10时该系统的单位阶跃响应曲线;分析阻尼比分别为–0.5、–1时系统的稳定性。
解:
(1)
分别取-2、0、2、4、6、8、10时该系统的单位阶跃响响应
>>w=0:
2:
10;
kosai=0.5;
figure
(1)
holdon
forWn=w
num=Wn^2;
den=[1,2*kosai*Wn,Wn^2];
step(num,den);
end
holdoff
gridon;
title('单位阶跃响应')
xlabel('时间')ylabel('振幅')
(2)求系统的单位阶跃响应
>>w=0:
2:
10;
kosai=-0.5;
figure
(1)
holdon
forWn=w
num=Wn^2;
den=[1,2*kosai*Wn,Wn^2];
step(num,den);
end
holdoff
gridon;
title('单位阶跃响应')
xlabel('时间')
ylabel('振幅')
(3)求系统的单位阶跃响应
>>w=0:
2:
10;
kosai=-1;
figure
(1)
holdon
forWn=w
num=Wn^2;
den=[1,2*kosai*Wn,Wn^2];
step(num,den);
end
holdoff
gridon;
title('单位阶跃响应')
xlabel('时间')
ylabel('振幅')
7.设有一高阶系统开环传递函数为
,试绘制该系统的零极点图和闭环根轨迹图。
解:
系统的零极点图:
>>num=[0.0160.2181.4369.359];
den=[0.060.2680.6356.271];
pzmap(num,den)
闭环根轨迹图
>>num=[0.0160.2181.4369.359];
den=[0.060.2680.6356.271];
rlocus(num,den)
8.单位反馈系统前向通道的传递函数为:
,试绘制该系统的Bode图和Nyquist曲线,说明软件绘制曲线与手动绘制曲线的异同。
解:
软件绘制曲线是用指令,手动绘制曲线是用渐进线,软件绘制用编程操作,比手动绘制更为方便简洁,易于维护。
系统的Bode图:
>>num=[281282];
den=[151010510];
bode(num,den)
grid
Nyquist曲线
>>num=[281282];
den=[151010510];
nyquist(num,den)
9.已知某控制系统的开环传递函数
,试绘制系统的开环频率特性曲线,并求出系统的幅值与相位裕量。
解:
>>num=1.5;
den1=conv([10],[11]);
den2=[12];
den=conv(den1,den2);
Go=tf(num,den);
w=logspace(0,4,50);
bode(Go,w)
%稳定裕量
margin(Go)
[Gm,Pm]=margin(Go)
Gm=
4.0000
Pm=
41.5340
开环频率特性曲线图:
10.在SIMULINK中建立系统,该系统阶跃输入时的连接示意图如下。
k为学生学号后三位。
绘制其单位阶跃响应曲线,分析其峰值时间tp、延迟时间td、上升时间tr、调节时间ts及超调量。
峰值时间tp、延迟时间td、上升时间tr、调节时间ts及超调量如下图
>>num=[336];
den=[19336];
G=tf(num,den);
grid;
step(G)
t=0:
0.1:
2.5;
[y,t]=step(G);
[Y,K]=max(y);
tp=t(K)
tp=
0.1753
>>C=dcgain(G);
percentovershoot=100*(Y-C)/C
percentovershoot=
45.2500
>>i=length(t);
while(y(i)>0.98*C&(y(i)<1.02*C))
i=i-1;
end
ts=t(i)
ts=
0.7669
*11.给定系统如下图所示,试设计一个串联校正装置,使幅值裕度大于h>10分贝、相位裕度γ≥45º
解:
为了满足上述要求,我们试探地采用超前校正装置Gc(s),使系统变为如下图的结构。
校正后系统
首先用下面地MATLAB语句得出原系统的幅值裕量与相位裕量。
>>G=tf(100,[0.04,1,0]);
[Gw,Pw,Wcg,Wcp]=margin(G)
Gw=Pw=
Inf28.0243
Wcg=Wcp=
Inf46.9701
可以看出,这个系统有无穷大的幅值裕量,并且其相位裕量
=28o,幅值穿越频率Wcp=47rad/sec。
引入一个串联超前校正装置:
我们可以通过下面的MATLAB语句得出校正前后系统的Bode图如图28,校正前后系统的阶跃响应图如图29。
其中
、
、ts1分别为校正前系统的幅值穿越频率、相角裕量、调节时间,
2、
、ts2分别为校正后系统的幅值穿越频率、相角裕量、调节时间。
G1=tf(100,[0.04,1,0]);%校正前模型
G2=tf(100*[0.025,1],conv([0.04,1,0],[0.01,1]))%校正后模型
%画伯德图,校正前用实线,校正后用短划线。
bode(G1)
hold
bode(G2)
%画时域响应图,校正前用实线,校正后用短划线。
figure
G1_c=feedback(G1,1)
G2_c=feedback(G2,1)
step(G1_c)
hold
step(G2_c)
六、实训心得。
经过为期四天的MATLAB实训已经结束,虽然时间很短,但我还是从中学到了很多,对MATLAB软件的特性与功能变得更为熟练,同时也体会到了MATLAB软件在自动控制系统设计的过程中所带来的方便与快捷的确是一款不错的设计软件。
这次我们实训的要求是利用MATLAB实现对自动控制系统的设计,在此次实习中我们学会了怎样使用MATLAB软件解决自动控制原理中的各种函数问题,还了解到了MATLAB软件是以负数矩阵作为基本编程单元的一种程序设计软件,它提供了各种矩阵运算与操作,并具有较强的绘图功能,作为国际上最流行的控制系统计算机辅助设计的软件,它具有广泛应用前景的计算机高级编程语言。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从而提高自己的实际动手能力和独立思考的能力。
同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。
在设计的过程当中,我们也进一步回顾了学过的知识,并进一步认识到了课程设计的艰辛,在设计中遇到了很多问题,最后在指导老师的辛勤指导下,终于迎刃而解,在这里,我们由衷的感谢我们的指导教师。