MATLAB系统模型建立和动态特性分析实验.docx

上传人:b****7 文档编号:25258273 上传时间:2023-06-06 格式:DOCX 页数:16 大小:114.16KB
下载 相关 举报
MATLAB系统模型建立和动态特性分析实验.docx_第1页
第1页 / 共16页
MATLAB系统模型建立和动态特性分析实验.docx_第2页
第2页 / 共16页
MATLAB系统模型建立和动态特性分析实验.docx_第3页
第3页 / 共16页
MATLAB系统模型建立和动态特性分析实验.docx_第4页
第4页 / 共16页
MATLAB系统模型建立和动态特性分析实验.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

MATLAB系统模型建立和动态特性分析实验.docx

《MATLAB系统模型建立和动态特性分析实验.docx》由会员分享,可在线阅读,更多相关《MATLAB系统模型建立和动态特性分析实验.docx(16页珍藏版)》请在冰豆网上搜索。

MATLAB系统模型建立和动态特性分析实验.docx

MATLAB系统模型建立和动态特性分析实验

实验二MATLAB系统模型建立和动态特性分析实验

一、实验目的

1.掌握如何使用MALAB进行系统模型的建立;

2.学习利用MALAB命令得阶跃响应曲线,分析系统动态特性;

3.利用MALAB求阶跃响应的性能指标。

二、实验仪器

计算机

三、实验内容

2.1控制系统的模型

控制系统的表示可用三种模型:

传递函数、零极点增益、状态空间。

每一种模型又有连续与离散之分。

为分析系统方便有时需要在三种模型间转换。

MATLAB提供了各种命令,使我们可以很方便的完成这些工作,下面以连续系统为例简要说明有关命令。

2.1.1模型与表示式

1、传递函数模型

在MATLAB中直接用矢量组表示传递函数的分子、分母多项式系数,即:

num=[bmbm-1…b0];表示传递函数的分子多项式系数

den=[anan-1…a0];表示传递函数的分母多项式系数

sys=tf(num,den)tf命令将sys变量表示成传递函数模型。

2、零极点增益模型

在MATLAB中用z、p、k矢量组分别表示系统的零点、极点和增益,即:

z=[z1z2……zm];

p=[p1p2……pn];

k=[k];

sys=zpk(z,p,k)zpk命令将sys变量表示成零极点增益模型。

3、状态空间模型

x=ax+bu

y=cx+du

在MATLAB中用(a、b、c、d)矩阵组表示,然后

sys=ss(a,b,c,d)ss命令将sys变量表示成状态空间模型。

2.1.2模型间的转换

在MATLAB中进行模型间转换的命令有:

ss2tf、ss2zp、tf2ss、tf2zp、zp2tf、zp2ss

它们之间的作用可由下面的示意图表示:

 

ss2tftf2sszp2tftf2zp

zp2ss

ss2zp

2.1.3模型间的关系与系统建模

实际工作中常常需要由多个简单系统构成复杂系统,MATLAB中有下面几种命令可以解决两个系统间的连接问题。

1、系统的并联

parallel命令可以实现两个系统的并联。

示意图如下:

u1y1

u+y

u2+

y2

并联后的系统传递函数表示式为:

其中n1、d1和n2、d2分别为g1(s)、g2(s)的传递函数分子、分母系数行矢量。

命令格式:

[n,d]=paralltl(n1,d1,n2,d2)

[a,b,c,d]=paralltl(a1,b1,c1,d1,a2,b2,c2,d2)

例十七将下面两个系统并联连接

执行下面程序:

n1=[3];

d1=[14];

n2=[24];

d2=[123];

[n,d]=parallel(n1,d1,n2,d2)

运行结果:

n=

051825

d=

161112

可得并联后系统的传递函数为

2、系统的串联

series命令实现两个系统的串联,示意图如下:

g2(s)

g1(s)

u1yu2y2

串联后系统的传递函数为

命令格式:

[n,d]=series(n1,d1,n2,d2)

[a,b,c,d]=series(a1,b1,c1,d1,a2,b2,c2,d2)

3、系统的反馈

feedback命令实现两个系统的反馈连接,示意图如下:

u1+y1

±

g2(s)

g1(s)

y2u2

连接后系统的传递函数表示为:

命令格式:

[n,d]=feedback(n1,d1,n2,d2)

或:

[n,d]=feedback(n1,d1,n2,d2,sign)

[a,b,c,d]=feedback(a1,b1,c1,d1,a2,b2,c2,d2,sign)

其中sign是指示y2到u1连接的符号,缺省时默认为负(即sign=-1)。

例十八设有下面两个系统:

现要将它们负反馈连接,求传递函数

输入:

n1=[1,1];

d1=[1,2,3];

n2=1;

d2=[1,10];

[n,d]=feedback(n1,d1,n2,d2)

运行结果:

n=011110

d=1122431

即所求系统为:

4、系统的闭环

cloop命令可以将系统的输出反馈到系统的输入构成闭环系统,示意图如下:

g1(s)

uy

±

正、负反馈后闭环系统为:

命令格式:

[n,d]=cloop(n1,d1,sign)

[ac,bc,cc,dc]=cloop(a,b,c,d,sign)

例十九已知系统如下

求该系统闭环后的传递函数(负反馈)。

输入:

n1=[12];

d1=[123];

[n,d]=cloop(n1,d1)

运算结果:

n=012

d=135

即:

闭环后系统的传递函数为

5、生成二阶系统

ord2命令在给定

,ξ下可以生成相应的二阶系统,即:

命令格式:

[n,d]=ord2(Wn,z)

其中:

z=ξWn=

2.2控制系统的时域分析

系统对不同的输入信号具有不同的响应,而控制系统在运行中受到的外作用信号具有随机性。

因此在研究系统的性能和响应时,需要采用某些标准的测减信号。

常用的测减信号有:

阶跃信号、速度信号、冲激信号、加速度信号等等。

具体采用哪种信号,则要看系统主要工作于那种信号作用的场所,如系统的输入信号是突变信号,则采用阶跃信号分析为宜。

而系统输入信号是以时间为基准成比例变化的量时,则采用速度信号分析为宜。

MATLAB中包融了一些常用分析命令要求单位阶跃响应、冲激响应等供我们分析所用。

本节实验的主要目的是使学生通过上机实验,掌握运用MATLAB常用命令对系统进行时域分析的基本方法。

2.2.1单位阶跃响应的求法

step命令可以求得连续系统的单位阶跃响应,当不带输出变量时,可在当前窗口中绘出单位阶跃响应曲线。

带有输出变时时则输出一组数据。

命令格式:

step(n,d,t);或[y,x,t]=step(n,d,t);

step(a,b,c,d,t)或[y,x,t]=step(a,b,c,d,t);

其中t是事先确定的时间矢量,当t缺省时则时间由函数自行决定。

如果需要将输出结果返回到MATLAB工作空间,则采用以下调用格式:

c=step(G)

此时,屏幕上不会显示响应曲线,必须利用plot()命令去查看响应曲线。

Plot可以根据两个或多个给定的矢量绘制二维图形。

例二十已知传递函数为

利用以下MALAB命令可得阶跃响应曲线

num=[0,0,25];

den=[1,4,25];

step(num,den)

grid%绘制网格线

还可用下面的语句来得出阶跃响应曲线:

G=tf([0,0,25],[1,4,25]);

t=0:

0.1:

5;%从0到5每隔0.1取一个值

c=step(G,t);  %动态响应的幅值赋给变量c

plot(t,c)%绘二维图形,横坐标取t,纵坐标取c

Css=dcgain(G)%求取稳态值

系统显示的图形类似于上一个例子,在命令窗口中显示了如下结果:

Css=1

2.2.2求阶跃响应的性能指标

方法一:

游动鼠标法

如上例,在程序运行完毕后,用鼠标左键单击时域响应曲线任意一点,系统会自动跳出一个小方框,小方框显示了这一点的横坐标(时间)和纵坐标(幅值)。

按住鼠标左键在曲线上移动,可找到曲线幅值最大的一点,即曲线最大峰值,此时小方框显示的时间就是此二阶系统的峰值时间,根据观测到的稳态值和峰值可计算出系统的超调量。

系统的上升时间和稳态响应时间可以此类推。

注:

它不适用于用己于plot()命令画出的图形。

方法二:

用编程方式求取时域响应的各项性能指标

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

[y,t]=step(G)

对返回的这一对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语句编写以下程序得到:

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)可由语句编程得到:

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的上限值。

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

利用下面的程序可得到阶跃响应如图所示及性能指标数据。

G=zpk([],[-1+3*i,-1-3*i],3);%计算最大峰值时间和它对应的超调量。

C=dcgain(G)

[y,t]=step(G);

plot(t,y)

grid

[Y,k]=max(y);

timetopeak=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

setllingtime=t(i)

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

C=0.3000timetopeak=1.0491

percentovershoot=35.0914risetime=0.6626

setllingtime=3.5337

2.2.3求系统的单位冲激响应

impulse命令可求得系统的单位冲激响应。

当不带输出变量时可在当前窗口得到单位冲激响应曲线,带有输出变量时则得到一组对应的数据。

命令格式:

impulse(n,d)或[y,x]=impulse(n,d)

impulse(a,b,c,d)或[y,x]=impulse(a,b,c,d)

也可加入事先选定的时间矢量t,其t的特性同上。

例二十二设单位反馈控制系统的开环传递函数为:

求此系统的单位冲激响应。

num1=[10];

den1=[140];

[n,d]=cloop(num1,den1);

impulse(n,d)

四、实验步骤

1、运行Matlab软件;

2、在其命令窗口中输入响应的命令或程序;

3、观察并记录。

五、实验习题

实验习题一

已知系统传递函数为:

求上述传递函数的零极点和状态空间的表达形式。

实验习题二

已知传递函数为:

求其单位阶跃响应的最大值,峰值时间和它对应的超调量,上升时间。

仅供个人用于学习、研究;不得用于商业用途。

Forpersonaluseonlyinstudyandresearch;notforcommercialuse.

NurfürdenpersönlichenfürStudien,Forschung,zukommerziellenZweckenverwendetwerden.

Pourl'étudeetlarechercheuniquementàdesfinspersonnelles;pasàdesfinscommerciales.

 толькодлялюдей,которыеиспользуютсядляобучения,исследованийинедолжныиспользоватьсявкоммерческихцелях. 

以下无正文

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

当前位置:首页 > 医药卫生 > 预防医学

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

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