实验四线性系统时域响应分析.docx

上传人:b****5 文档编号:6840780 上传时间:2023-01-11 格式:DOCX 页数:13 大小:194.99KB
下载 相关 举报
实验四线性系统时域响应分析.docx_第1页
第1页 / 共13页
实验四线性系统时域响应分析.docx_第2页
第2页 / 共13页
实验四线性系统时域响应分析.docx_第3页
第3页 / 共13页
实验四线性系统时域响应分析.docx_第4页
第4页 / 共13页
实验四线性系统时域响应分析.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

实验四线性系统时域响应分析.docx

《实验四线性系统时域响应分析.docx》由会员分享,可在线阅读,更多相关《实验四线性系统时域响应分析.docx(13页珍藏版)》请在冰豆网上搜索。

实验四线性系统时域响应分析.docx

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

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

一、实验目的

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

2.通过响应曲线观测特征参量

对二阶系统性能的影响。

3.熟练掌握系统的动态性能指标在MATLAB中的求取方法。

二、基础知识及MATLAB函数

(一)基础知识

时域分析法直接在时间域中对系统进行分析,可以提供系统时间响应的全部信息,具有直观、准确的特点。

为了研究控制系统的时域特性,经常采用瞬态响应(如阶跃响应、脉冲响应和斜坡响应)。

本次实验从分析系统的性能指标出发,给出了在MATLAB环境下获取系统时域响应和分析系统的动态性能和稳态性能的方法。

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

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

1.用MATLAB求控制系统的瞬态响应

1)阶跃响应

求系统阶跃响应的指令有:

step(num,den)时间向量t的范围由软件自动设定,阶跃响应曲线随即绘出step(num,den,t)时间向量t的范围可以由人工给定(例如t=0:

0.1:

10)

[y,x]=step(num,den)返回变量y为输出向量,x为状态向量

[y,t,x]=step(num,den,t)向量t表示脉冲响应进行计算的时间

在MATLAB程序中,先定义num,den数组,并调用上述指令,即可生成单位阶跃输入信号下的阶跃响应曲线图。

考虑下列系统:

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

则matlab的调用语句:

num=[0025];%定义分子多项式

den=[1425];%定义分母多项式

step(num,den)%调用阶跃响应函数求取单位阶跃响应曲线

gridon%画网格标度线

xlabel(‘t/s’),ylabel(‘c(t)’)%给坐标轴加上说明

title(‘Unit-stepRespinseofG(s)=25/(s^2+4s+25)’)%给图形加上标题名

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

 

图4-2定义时间范围的单位阶跃响应

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

 

为了在图形屏幕上书写文本,可以用text命令在图上的任何位置加标注。

例如:

text(3.4,-0.06,’Y1’)和text(3.4,1.4,’Y2’)

第一个语句告诉计算机,在坐标点x=3.4,y=-0.06上书写出’Y1’。

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

若要绘制系统t在指定时间(0-10s)内的响应曲线,则用以下语句:

num=[0025];

den=[1425];

t=0:

0.1:

10;

step(num,den,t)

即可得到系统的单位阶跃响应曲线在0-10s间的部分,如图4-2所示。

2)脉冲响应

①求系统脉冲响应的指令有:

impulse(num,den)时间向量t的范围由软件自动设定,阶跃响应曲线随即绘出

impulse(num,den,t)时间向量t的范围可以由人工给定(例如t=0:

0.1:

10)

[y,x]=impulse(num,den)返回变量y为输出向量,x为状态向量

[y,t,x]=impulse(num,den,t)向量t表示脉冲响应进行计算的时间

例:

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

在matlab中可表示为

num=[001];

den=[10.21];

impulse(num,den)

grid

title(‘Unit-impulseResponseofG(s)=1/(s^2+0.2s+1)’)

由此得到的单位脉冲响应曲线如图4-3所示:

 

②求脉冲响应的另一种方法

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

考虑在上例题中求系统的单位脉冲响应,因为对于单位脉冲输入量,R(s)=1所以

因此,可以将G(s)的单位脉冲响应变换成sG(s)的单位阶跃响应。

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

num=[010];

den=[10.21];

step(num,den)

grid

title(‘Unit-stepResponseof

sG(s)=s/(s^2+0.2s+1)’)

 

3)斜坡响应

MATLAB没有直接调用求系统斜坡响应的功能指令。

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

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

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

例如,试求下列闭环系统的单位斜坡响应。

对于单位斜坡输入量,R(s)=1/s2,因此

在MATLAB中输入以下命令,得到如图4-5所示的响应曲线:

num=[0001];

den=[1110];

step(num,den)

title(‘Unit-RampResponseCuveforSystemG(s)=1/(s^2+s+1)’)

4)任意输入的响应

格式:

lsim(sys,u,t)

%给定系统对象sys,控制输入向量u和等间隔时间向%量t,求系统的单位脉冲响应并作图。

lsim(sys,u,t,x0)%计算带初始条件x0的时间响应并作图。

lsim(sys1,sys2,…u,t,x0)%多系统任意输入时间响应并绘图。

y=lsim(sys,u,t)%返回变量格式,不作图。

[y,t,x]=lsim(sys,u,t,x0)

2.特征参量

对二阶系统性能的影响

标准二阶系统的闭环传递函数为:

二阶系统的单位阶跃响应在不同的特征参量下有不同的响应曲线。

1)

对二阶系统性能的影响

已知二阶系统的传递函数为:

当ωn=1时,试计算ξ从0.1变至1时二阶系统的响应,并绘制一簇阶跃响应曲线。

程序及结果如下:

num=1;y=zeros(200,1);i=0;

forbc=0.1:

0.1:

1

den=[1,2*bc,1];

t=[0:

0.1:

19.9]';

sys=tf(num,den);

i=i+1;

y(:

i)=step(sys,t);

end

mesh(flipud(y),[-10020])

图4-6二阶系统阻尼比变化时的阶跃响应曲线簇三维图

2)

对二阶系统性能的影响

同理,设定阻尼比

时,当

分别取1,2,3时,利用MATLAB求取单位阶跃响应曲线,分析参数

对系统的影响。

num1=[001];den1=[10.51];

t=0:

0.1:

10;step(num1,den1,t);

grid;holdon

text(3.1,1.4,’wn=1’)

num2=[004];den2=[114];

step(num2,den2,t);holdon

text(1.7,1.4,’wn=2’)

num3=[009];den3=[11.59];

step(num3,den3,t);holdon

text(0.5,1.4,’wn=3’)

由此得到的响应曲线如图4-7所示:

 

3.动态性能指标的求取

一种比较常用的方法就是用编程方式求取时域响应的各项性能指标。

编程方法稍微复杂,但通过下面的学习,读者可以掌握一定的编程技巧,能够将控制原理知识和编程方法相结合,自己编写一些程序,获取一些较为复杂的性能指标。

通过前面的学习,我们已经可以用阶跃响应函数step()获得系统输出量,若将输出量返回到变量y中,可以调用如下格式

[y,t]=step(G)

该函数还同时返回了自动生成的时间变量t,对返回的这一对变量y和t的值进行计算,可以得到时域性能指标。

峰值时间(timetopeak)可由以下命令获得:

[Y,k]=max(y);                 

timetopeak=t(k)                

应用取最大值函数max()求出y的峰值及相应的时间,并存于变量Y和k中。

然后在变量t中取出峰值时间,并将它赋给变量timetopeak。

最大(百分比)超调量(percentovershoot)可由以下命令得到:

C=dcgain(G);

[Y,k]=max(y);

percentovershoot=100*(Y-C)/C

dcgain()函数用于求取系统的终值,将终值赋给变量C,然后依据超调量的定义,由Y和C计算出百分比超调量。

上升时间(risetime)可利用MATLAB中控制语句编制M文件来获得。

首先简单介绍一下循环语句while的使用。

while循环语句的一般格式为:

while<循环判断语句>

循环体

end

其中,循环判断语句为某种形式的逻辑判断表达式。

当表达式的逻辑值为真时,就执行循环体内的语句;当表达式的逻辑值为假时,就退出当前的循环体。

如果循环判断语句为矩阵时,当且仅当所有的矩阵元素非零时,逻辑表达式的值为真。

为避免循环语句陷入死循环,在语句内必须有可以自动修改循环控制变量的命令。

要求出上升时间,可以用while语句编写以下程序得到:

C=dcgain(G);

n=1;

whiley(n)

n=n+1;

end

risetime=t(n)

在阶跃输入条件下,y的值由零逐渐增大,当以上循环满足y=C时,退出循环,此时对应的时刻,即为上升时间。

对于输出无超调的系统响应,上升时间定义为输出从稳态值的10%上升到90%所需时间,则计算程序如下:

C=dcgain(G);

n=1;

whiley(n)<0.1*C

n=n+1;

end

m=1;

whiley(n)<0.9*C

m=m+1;

end

risetime=t(m)-t(n)

调节时间(setllingtime)可由while语句编程得到:

C=dcgain(G);

i=length(t);   

while(y(i)>0.98*C)&(y(i)<1.02*C)

i=i-1;

end

setllingtime=t(i)

用向量长度函数length()可求得t序列的长度,将其设定为变量i的上限值。

例已知二阶系统传递函数为:

利用下面的stepanalysis.m程序可得到阶跃响应如图4-8及性能指标数据。

G=zpk([],[-1+3*i,-1-3*i],3);

%计算最大峰值时间和它对应的超调量

C=dcgain(G)

[y,t]=step(G);

plot(t,y)

grid

[Y,k]=max(y);

timeopeak=t(k)%取得最大峰值时间

percentovershoot=100*(Y-C)/C%计算超调量

%计算上升时间

n=1;

whiley(n)

n=n+1;

end

risetime=t(n)

%计算稳态响应时间

i=length(t);

while(y(i)>0.98*C)&(y(i)<1.02*C)

i=i-1;

end

settingtime=t(i)

运行后的响应图如图4-8,命令窗口中显示的结果为:

C=              timetopeak=

0.3000              1.0491

percentovershoot=       risetime=

35.0914              0.6626

setllingtime=

3.5337

三、实验内容

1.观察函数step()和impulse()的调用格式,假设系统的传递函数模型为

可以用几种方法绘制出系统的阶跃响应和脉冲响应曲线?

试分别绘制。

2.对典型二阶系统

1)分别绘出

分别取0,0.25,0.5,1.0和2.0时的单位阶跃响应曲线,分析参数

对系统的影响。

2)绘制出当

=0.25,

分别取1,2,4,6时单位阶跃响应曲线,分析参数

对系统的影响。

3.单位负反馈系统的开环传递函数为

,编写程序求系统动态性能指标:

超调量、调节时间、上升时间、峰值时间。

4.参考教材P120,学习使用图形工具LTIViewer,对上题3中的系统求取动态性能指标,并与编程所得结果进行比较。

选做:

5.已知单位反馈系统开环传函为:

试绘制k=1.4,2.3,3.5时单位阶跃响应曲线(在同一坐标下)。

6.单位反馈开环零极点增益模型为:

试绘制该系统单位阶跃响应曲线和单位斜坡响应曲线,并计算单位阶跃响应的稳态误差(或画出误差曲线)。

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 解决方案

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1