实验三 线性系统时域响应分析

  • 格式:doc
  • 大小:102.50 KB
  • 文档页数:8

1 注意:作本实验前必须将本文件夹中的routh.m文件放到C:\MATLAB6p5\work目录中。

实验三 线性系统时域响应分析

一、实验目的

1.熟练掌握step( )函数和impulse( )函数的使用方法。

2.研究线性系统在单位阶跃函数及单位脉冲函数作用下的响应。

3.熟练掌握利用劳思判据判别系统的稳定性。

二、基础知识及MATLAB函数(注意:本部分内容如果已经熟悉,可以不用阅读,直接看第三部分内容)

(一)基础知识

学习自动控制理论时已经知道,为了研究控制系统的时域特性,经常采用瞬态响应(如阶跃响应、脉冲响应和斜坡响应)。系统的传递函数用两个数组来表示。

1.阶跃响应

考虑下列系统:25425)()(2sssRsC

该系统可以表示为两个数组,每一个数组由相应的多项式系数组成,并且以s的降幂排列如下:

>> num=[25]

>> den=[1 4 25]

num和den(即闭环传递函数的分子和分母),则命令

>> step(num,den) 或

>> step(num,den,t)

将会产生出单位阶跃响应图(在阶跃命令中,t为用户指定时间)。

由方程25425)()(2sssRsC描述的系统的单位阶跃响应在MATLAB中表示 2 如下:

>> num=[25];

>> den=[1 4 25];

>> step(num,den)

>> grid

>> title('Unit-step Respinse of G(S)=25/(s^2+4s+25) ')

该单位阶跃响应曲线如下图2-1所示:

图2-1 二阶系统的单位阶跃响应

2.单位脉冲响应

利用下列MATLAB命令中的一种命令,可以得到控制系统的单位脉冲响应:

>> impulse(num,den)

例:试求下列系统的单位脉冲响应:

12.01)()()(2sssGsRsC

在MATLAB中可表示为

由此得到的单位脉冲响应曲线如下图2-2所示: >>num=[0 0 1];

>>den=[1 0.2 1];

>>impulse(num,den);

>>grid

>>title('Unit-impulse Response of G(S)=1/(S^2+0.2s+1)') 3

图2-2 二阶系统的单位脉冲相应

3.单位斜坡响应

在MATLAB中没有斜坡响应命令,对于已经定义了的函数g,可以通过下面的语句求函数g的单位斜坡响应。

>> t=0:0.02:5;

>> r=t;

>> lsim(g,r,t)

例如,考虑下列闭环系统:

11)()(2sssRsC

为了得到系统的单位斜坡响应,可列写如下程序:

>>num=[1];

>>den=[1 1 1];

>>g=tf(num,den)

>> t=0:0.02:5;

>> r=t;

>> lsim(g,r,t)

利用此程序获得的响应曲线如图2-3所示:

4

图2-3 单位斜坡响应

3、单位加速度响应

在MATLAB中没有加速度响应命令,对于已经定义了的函数g,可以通过下面的语句求函数g的单位斜坡响应。

>> r=1/2*t.^2;

>> lsim(g,r,t)

例如,考虑下列闭环系统:

2()1()241CsRsss

为了得到系统的单位斜坡响应,可列写如下程序:

>>num=[1];

>>den=[2 4 1 ];

>>g=tf(num,den)

>> t=0:0.02:5;

>> r=1/2*t.^2;

>> lsim(g,r,t)

利用此程序获得的响应曲线如图2-4所示:

012345012345Linear Simulation ResultsTime (sec)Amplitude 5 01234502468101214Linear Simulation ResultsTime (sec)Amplitude

图2-4 单位加速度响应

4.劳斯稳定判据

(1)对于已知传递函数的特征方程,使用下面的MATLAB命令可以由routh判据判定出系统的稳定性。

>>syms EPS

>>ra=routh(den,EPS)

例子:已知系统的特征方程为s4+10s3+35s2+50s+24=0,使用routh判据判定出系统的稳定性。

den=[1,10,35,50,24];

syms EPS

ra=routh(den,EPS)

ra =

[ 1, 35, 24]

[ 10, 50, 0]

[ 30, 24, 0]

[ 42, 0, 0] 6 [ 24, 0, 0]

由劳思表可知系统稳定。

(2)用solve指令解方程求根验证:

>>solve('s^4+10*s^3+35*s^2+50*s+24=0')

ans =

[ -4]

[ -3]

[ -2]

[ -1]

(3)用root指令求根验证

>> roots([1 10 35 50 24])

ans =

-4.0000

-3.0000

-2.0000

-1.0000

(二)常用MATLAB函数

1.step

功能:求取线性系统单位的阶跃响应。

格式:step(g,t)

其中G为给定系统的LTI对象模型,变量t为由要计算的点所在时刻的值组成的向量,一般地可以由t=0:dt:t_end等步长地产生出来,其中t_end为终值时间,而dt为计算步长。这样得出的系统输出在y向量中返回。值得指出的是,在step( )函数的调用还可以使用不均匀生成的时间向量t。

还可以由其它的格式来调用step( )函数。

2.impulse 7 功能:求取线性系统的脉冲响应。

格式:

impulse(g):自动绘制系统的脉冲响应曲线。

3.routh

功能:构造系统的劳斯表。

格式:>>syms EPS

>>ra=routh(den,EPS)

其中,用户可以给出系统的分母多项式系数向量den,这样这个函数将返回routh表矩阵ra。

三、实验内容

1.对典型二阶系统

222()2nnnHsss

绘制出当ξ=0.7, n=6时单位阶跃响应、单位脉冲响应、单位斜坡响应和单位加速度响应曲线。

2.系统的特征方程式为

(1)5432614171020sssss

ra =

[ 1, 14, 10]

[ 6, 17, 2]

[ 67/6, 29/3, 0]

[ 791/67, 2, 0]

[ 6150/791, 0, 0]

[ 2, 0, 0]

(2)4322250ssss 8 Special Case: First element is zero.

ra =

[ 1, 2, 2]

[ 1, 2, 0]

[ EPS, 2, 0]

[ (-2+2*EPS)/EPS, 0, 0]

[ 2, 0, 0]

(3)6543228122016160ssssss

ra =

[ 1, 8, 20, 16]

[ 2, 12, 16, 0]

[ 2, 12, 16, 0]

[ 8, 24, 0, 0]

[ 6, 16, 0, 0]

[ 8/3, 0, 0, 0]

[ 16, 0, 0, 0]

试用劳斯判据判别系统的稳定性。

四、实验报告要求

写出实验内容、经调试好的MATLAB语言程序和对应的MATLAB运算结果和结论。