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

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

自动控制原理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 ≥+++++++==----,......)()

()(0

1110111

其中分子分母多项式中的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)3

1

25)(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

()425

C 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 定义时间范围的单位阶跃响应

相关文档
最新文档