110108李伟自动控制原理.docx
《110108李伟自动控制原理.docx》由会员分享,可在线阅读,更多相关《110108李伟自动控制原理.docx(14页珍藏版)》请在冰豆网上搜索。
110108李伟自动控制原理
实验报告
课程名称自动控制原理实验班级电信二班
指导教师付瑞玲学号1101020058
实验成绩姓名李伟
实验一控制系统的时域分析
一、实验目的
1、熟悉MATLAB基本函数;
2、熟悉典型响应、控制系统稳定性条件和控制系统的动态性能;
3、学习利用MATLAB进行控制系统时域分析,包括典型响应、判断系统稳定性和分析系统的动态特性;
二、预习要点
1、系统的典型响应有哪些?
2、如何判断系统稳定性?
3、系统的动态性能指标有哪些?
三、实验方法
(一)用MATLAB建立传递函数模型
1.有理函数模型
线性系统的传递函数模型可一般地表示为:
(1)
将系统的分子和分母多项式的系数按降幂的方式以向量的形式输入给两个变量
和
,就可以轻易地将传递函数模型输入到MATLAB环境中。
命令格式为:
;
(2)
; (3)
在MATLAB控制系统工具箱中,定义了tf()函数,它可由传递函数分子分母给出的变量构造出单个的传递函数对象。
从而使得系统模型的输入和处理更加方便。
该函数的调用格式为:
G=tf(num,den);
例1 一个简单的传递函数模型:
可以由下面的命令输入到MATLAB工作空间中去。
>> num=[1,5];
den=[1,2,3,4,5];
G=tf(num,den)
运行结果:
Transferfunction:
s+5
-----------------------------
s^4+2s^3+3s^2+4s+5
这时对象G可以用来描述给定的传递函数模型,作为其它函数调用的变量。
例2 一个稍微复杂一些的传递函数模型:
该传递函数模型可以通过下面的语句输入到MATLAB工作空间。
>>num=6*[1,5];
den=conv(conv([1,3,1],[1,3,1]),[1,6]);
tf(num,den)
运行结果
Transferfunction:
6s+30
-----------------------------------------
s^5+12s^4+47s^3+72s^2+37s+6
其中conv()函数(标准的MATLAB函数)用来计算两个向量的卷积,多项式乘法当然也可以用这个函数来计算。
该函数允许任意地多层嵌套,从而表示复杂的计算。
2.零极点模型
线性系统的传递函数还可以写成极点的形式:
(5)将系统增益、零点和极点以向量的形式输入给三个变量
、Z和P,就可以将系统的零极点模型输入到MATLAB工作空间中,命令格式为:
(6)
(7)
(8)
在MATLAB控制工具箱中,定义了zpk()函数,由它可通过以上三个MATLAB变量构造出零极点对象,用于简单地表述零极点模型。
该函数的调用格式为:
G=zpk(Z,P,KGain) (9)
例3 某系统的零极点模型为:
该模型可以由下面的语句输入到MATLAB工作空间中。
>>KGain=6;
z=[-1.9294;-0.0353+0.9287j;-0.0353-0.9287j];
p=[-0.9567+1.2272j;-0.9567-1.2272j;0.0433+0.6412j;0.0433-0.6412j];
G=zpk(Z,P,KGain)
运行结果:
Zero/pole/gain:
6(s+1.929)(s^2+0.0706s+0.8637)
----------------------------------------------
(s^2-0.0866s+0.413)(s^2+1.913s+2.421)
注意:
对于单变量系统,其零极点均是用列向量来表示的,故Z、P向量中各项均用分号(;)隔开。
(二)典型响应
1、阶跃响应:
阶跃响应常用格式:
1、
或
;
设系统的闭环传递函数为:
求系统的时域响应图,可输入下面的命令:
>>num=[1,4];
den=[1,2,8];
step(num,den)
2、
或者
;表示时间范围向量t指定。
3、
;返回变量格式,不作图。
2、脉冲响应:
脉冲响应函数常用格式:
①
;
②
3
(三)分析系统稳定性
有以下五种方法:
1、利用
得出系统的阶跃响应,观察响应曲线是否发散,以此来判断稳定性;
2、利用pzmap(G)绘制连续系统的零极点图;
3、利用[pz]=pzmap(G)求出系统零极点;
4、利用r=roots(den)求分母多项式的根来确定系统的极点;
5、利用p=pole(G)计算系统极点。
(四)系统的动态特性分析
Matlab提供了求取连续系统的单位阶跃响应函数step、单位脉冲响应函数impulse、零输入响应函数initial以及任意输入下的仿真函数lsim.
对于二阶系统
,求取阻尼比与无阻尼自然振荡角频率时可利用
函数
求阶跃响应的性能指标
MATLAB提供了强大的绘图计算功能,可以用多种方法求取系统的动态响应指标。
我们首先介绍一种最简单的方法――游动鼠标法。
在程序运行完毕后,用鼠标左键点击时域响应图线任意一点,系统会自动跳出一个小方框,小方框显示了这一点的横坐标(时间)和纵坐标(幅值)。
按住鼠标左键在曲线上移动,可以找到曲线幅值最大的一点――即曲线最大峰值,此时小方框中显示的时间就是此二阶系统的峰值时间,根据观察到的稳态值和峰值可以计算出系统的超调量。
系统的上升时间和稳态响应时间可以依此类推。
这种方法简单易用,但同时应注意它不适用于用plot()命令画出的图形。
另一种得到系统的单位阶跃响应曲线后,在图形窗口上右击,在characteristics下的子菜单中可以选择PeskResponse(峰值)、SettlingTime(调整时间)、RiseTime(上升时间)和SteadyState(稳太值)等参数进行显示.
四、实验内容
1、系统传函为
,试判断其稳定性
num=[3,2,5,4,6]
den=[1,3,4,2,7,2]
G=tf(num,den)
pzmap(G)
因有两零极点在右半周故为不稳定。
2、二阶系统
1)键入程序,观察并记录单位阶跃响应曲线
2)计算系统的闭环根、阻尼比、无阻尼振荡频率,并记录
闭环根3.1623阻尼比0.3162无阻尼振荡频率-1.0000+3.0000i
3)记录实际测取的峰值大小、峰值时间及过渡过程时间,并填表:
实际值
超调量
35.1
峰值时间tp
1.05
过渡时间ts
3.54
上升时间tr
0.427
4)修改参数,分别实现
和
的响应曲线,并记录
num=[10];
den=[12*3.163210];
G=tf(num,den);
step(G)
num=[10];
den=[12*2*3.163210];
G=tf(num,den);
step(G)
step(num,den)5)修改参数,分别写出程序实现
和
的响应曲线,并记录
num=[10/4];
den=[1110/4];
G=tf(num,den);
step(G)
num=[10*4];
den=[1410*4];
G=tf(num,den);
step(G)
3、用Matlab求二阶系统
和
的峰值时间
,上升时间
,调整时间
,超调量
。
num=[120];
den=[112120];
G=tf(num,den);
step(G)
num=[0.01];
den=[10.0020.01];
G=tf(num,den);
step(G)
五、思考题
在时域中还可以通过什么方法判断系统是否稳定?
六、实验心得与体会