当前位置:文档之家› 自控实验指导书--MATLAB--2013

自控实验指导书--MATLAB--2013

自动控制原理MATLAB仿真实验实验指导书2013年09月实验一 控制系统数学模型一、实验目的1、 掌握控制系统数学模型——传递函数的求取方法;2、 利用MATLAB 命令求取控制系统传递函数。

二、基础知识及MATLAB 函数在MA TLAB 命令窗口上,以命令的方式建立系统的传递函数。

在MA TLAB 下,系统的数学模型有3种描述方式,此实验用多项式模型。

(1)多项式模型:线性定常系统的数学模型传递函数G(s)一般可以表示成:m n a s a s a s a b s b s b s b s R s C s G n n n n m m m m ≥+++++++==----,......)()()(01110111其中分子分母多项式中的a n 与b m 均为常系数。

MATLAB 语言描述:构造分子多项式:num=[b m ,b m-1,…,b 1,b 0];或num=[b m b m-1 … b 1 b 0] 构造分母多项式:den=[a n ,a n-1,…,a 1,a 0];或den=[a n a n-1 … a 1 a 0] 构造并显示传递函数:printsys(num,den);其中num 与den 是习惯用法,也可用其它变量名代替,但在显示时会出现num/den ,这是通用输出显示格式,与输入变量名称无关。

例1-1:>>num=[1 12 44 48]; >>den=[1 16 86 176 105]; >>printsys(num,den) 显示: num/den =s^3 + 12 s^2 + 44 s + 48 ----------------------------------- s^4 + 16 s^3 + 86 s^2 + 176 s + 105 例1-2:系统开环传递函数为)106)(2()1(5)(22++++=s s s s s s G写出多项式模型。

>>n=conv([5],[1 1]);>>d=conv([1 0 0],conv([1 2],[1 6 10])); >>printsys(n,d) 显示: num/den =5 s + 5----------------------------- s^5 + 8 s^4 + 22 s^3 + 20 s^2 (2)模型的连接函数[num]=cloop()用于计算单位反馈时闭环传递函数多项式模型的参数向量,右变量为开环参数,左变量返回系统的闭环参数,反馈极性1为正反馈,-1为负反馈。

例1-3:系统开环传递函数为)3()1(5)(2++=s s s s G 写出单位负反馈时闭环传递函数的多项式模型。

>>numo=conv([5],[1 1]); >>deno=conv([1 0 0],[1 3]);>>[numc,denc]=cloop(numo,deno,-1); >>printsys(numc,denc) 显示: num/den=5 s + 5--------------------- s^3 + 3 s^2 + 5 s + 5函数[]=feedback()用于计算一般反馈系统的闭环传递函数。

其格式为:[num,den]=feedback(num1,den1,num2,den2,sign) 前向传递函数G(s)为num1/den1,反馈传递函数H(s)为num2/den2,右变量为G(s)与H(s)的参数,左变量返回系统的闭环参数,反馈极性sign 取1为正反馈,取-1为负反馈,缺省时作负反馈计算。

例4:系统结构图如图所示:>> num1=[10];den1=[1 1 0]; >>num2=[0.2 1];den2=[0.01 1];>>[num,den]=feedback(num1,den1,num2,den2,-1); >>printsys(num,den) 显示: num/den =0.1 s + 10------------------------------ 0.01 s^3 + 1.01 s^2 + 3 s + 10串联连接用函数series,格式:[num,den]=series(num1,den1,num2,den2) 并联连接用函数parallel,格式:[num,den]=parallel(num1,den1,num2,den2) *系统模型其他形式描述及分析见教材71页。

三、 实验步骤与内容:1、开机执行MATLAB 程序,进入MATLAB 命令窗口:“Command window ”。

2、建立简单的系统模型:用MA TLAB 语言求取传递函数,要求熟练应用以下指令:printsys(num,den); feedback; cloop; series; parallel; conv ;tf;zpk;zp2tf;tf2zp;(1)3125)(2423++++++=s s s s s s s G ;(2))162)(2()3)(1()(2+++++=s s s s s s s G ; (3)编写指令在命令窗口中显示上列传递函数 利用指令进行传递函数模型的转换四、实验报告1.根据内容要求,写出调试好的MATLAB 语言程序,及对应的结果。

2. 写出实验的心得与体会。

实验二 控制系统的阶跃响应一、实验目的1.熟练掌握step( )函数和impulse( )函数的使用方法,研究线性系统在单位阶跃、单位脉冲及单位斜坡函数作用下的响应。

2.通过响应曲线观测特征参量ζ和n ω对二阶系统性能的影响。

3.熟练掌握系统的稳定性的判断方法。

二、基础知识及MATLAB 函数用MATLAB 求系统的瞬态响应时,将传递函数的分子、分母多项式的系数分别以s 的降幂排列写为两个数组num 、den 。

由于控制系统分子的阶次m 一般小于其分母的阶次n ,所以num 中的数组元素与分子多项式系数之间自右向左逐次对齐,不足部分用零补齐,缺项系数也用零补上。

[wn,z]=damp(den) 计算系统的无阻尼自然振荡频率wn 和阻尼比z 。

den 为特征多项式系数向量(因为MATLAB 语言中只用英文字母,而不用希腊字母,故用wn 及z 分别代替ω和ζ)。

1、阶跃响应求系统阶跃响应的指令有:step(num,den) 时间向量t 的范围由软件自动设定,阶跃响应曲线随即绘出step(num,den,t) 时间向量t 的范围可以由人工给定(例如t=0:0.1:10) [y ,x]=step(num,den) 返回变量y 为输出向量,x 为状态向量在MATLAB 程序中,先定义num,den 数组,并调用上述指令,即可生成单位阶跃输入信号下的阶跃响应曲线图。

例2-1 求2()25()425C s R s s s =++的单位阶跃响应。

matlab 的调用语句:num=[0 0 25]; %定义分子多项式 den=[1 4 25]; %定义分母多项式step(num,den) %调用阶跃响应函数求取单位阶跃响应曲线 grid %画网格标度线xlabel(‘t/s’),ylabel(‘c(t)’) %给坐标轴加上说明 title(‘Unit -step Respinse of G(s)=25/(s^2+4s+25)’) %给图形加上标题名 则该单位阶跃响应曲线如图2-1所示:为了在图形屏幕上书写文本,可以用text 命令在图上的任何位置加标注。

例如: text(3.4,-0.06,’Y1’) 和 tex t(3.4,1.4,’Y2’)第一个语句告诉计算机,在坐标点x=3.4,y=-0.06上书写出’Y1’。

类似地,第二个语句告诉计算机,在坐标点x=3.4,y=1.4上书写出’Y2’。

图2-1 二阶系统的单位阶跃响应图2-2 定义时间范围的单位阶跃响应若要绘制系统t 在指定时间(0-10s )内的响应曲线,则用以下语句:num=[0 0 25]; den=[1 4 25]; t=0:0.1:10;step(num,den,t)即可得到系统的单位阶跃响应曲线在0-10s 间的部分,如图2-2所示。

2、脉冲响应① 求系统脉冲响应的指令有: impulse (num,den) 时间向量t 的范围由软件自动设定,阶跃响应曲线随即绘出impulse (num,den,t) 时间向量t 的范围可以由人工给定(例如t=0:0.1:10) [y,x]=impulse(num,den) 返回变量y 为输出向量,x 为状态向量 [y,x,t]=impulse(num,den,t) 向量t 表示脉冲响应进行计算的时间例2-2:试求下列系统的单位脉冲响应:2()1()()0.21C s G s R s s s ==++ 在matlab 中可表示为num=[0 0 1]; den=[1 0.2 1]; impulse(num,den) gridtitle(‘Unit -impulse Response of G(s)=1/(s ^2+0.2s+1)’) 由此得到的单位脉冲响应曲线如图2-3所示。

② 求脉冲响应的另一种方法应当指出,当初始条件为零时,G (s)的单位脉冲响应与sG(s)的单位阶跃响应相同。

考虑在上例题中求系统的单位脉冲响应,因为对于单位脉冲输入量,R(s)=1所以22()11()()()0.210.21C s s C s G s R s ss s s s ====⨯++++ 因此,可以将G(s)的单位脉冲响应变换成sG(s)的单位阶跃响应。

向MA TLAB 输入下列num 和den ,给出阶跃响应命令,可以得到系统的单位脉冲响应曲线如图2-4所示。

num=[0 1 0]; den=[1 0.2 1]; step(num,den) gridtitle(‘Unit -step Response of sG(s)=s/(s^2+0.2s+1)’)3、斜坡响应MATLAB 没有直接调用求系统斜坡响应的功能指令。

在求取斜坡响应时,通常利用阶跃响应的指令。

基于单位阶跃信号的拉氏变换为1/s ,而单位斜坡信号的拉氏变换为1/s2。

因此,当求系统G(s)的单位斜坡响应时,可以先用s 除G(s),再利用阶跃响应命令,就能求出系统的斜坡响应。

例2-3 试求下列闭环系统的单位斜坡响应。

11)()(2++=s s s R s C对于单位斜坡输入量,R(s)=1/s2 ,因此s s s s s s s s C 1)1(1111)(222⨯++=⨯++=在MATLAB 中输入以下命令,得到如图2-5所示的响应曲线:num=[0 0 0 1]; den=[1 1 1 0]; step(num,den)title(‘Unit -Ramp Response Cuve for System G(s)=1/(s^2+s+1)’)4、特征参量ζ和n ω对二阶系统性能的影响标准二阶系统的闭环传递函数为:222()()2n n nC s R s s s ωζωω=++图2-3 二阶系统的单位脉冲响应图2-4 单位脉冲响应的另一种表示法图2-5 单位斜坡响应设定无阻尼自然振荡频率1(/)n rad s ω=,考虑5种不同的ζ值:ζ=0,0.25,0.5,1.0和2.0,利用MATLAB 对每一种ζ求取单位阶跃响应曲线,分析参数ζ对系统的影响。

相关主题