实验二基于MATLAB实验平台的系统被控对象的建立与转换.docx

上传人:b****3 文档编号:5473970 上传时间:2022-12-16 格式:DOCX 页数:17 大小:243.62KB
下载 相关 举报
实验二基于MATLAB实验平台的系统被控对象的建立与转换.docx_第1页
第1页 / 共17页
实验二基于MATLAB实验平台的系统被控对象的建立与转换.docx_第2页
第2页 / 共17页
实验二基于MATLAB实验平台的系统被控对象的建立与转换.docx_第3页
第3页 / 共17页
实验二基于MATLAB实验平台的系统被控对象的建立与转换.docx_第4页
第4页 / 共17页
实验二基于MATLAB实验平台的系统被控对象的建立与转换.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

实验二基于MATLAB实验平台的系统被控对象的建立与转换.docx

《实验二基于MATLAB实验平台的系统被控对象的建立与转换.docx》由会员分享,可在线阅读,更多相关《实验二基于MATLAB实验平台的系统被控对象的建立与转换.docx(17页珍藏版)》请在冰豆网上搜索。

实验二基于MATLAB实验平台的系统被控对象的建立与转换.docx

实验二基于MATLAB实验平台的系统被控对象的建立与转换

实验二基于MATLAB实验平台的系统被控对象的建立与转换

[实验目的]

1.了解MATLAB软件的基本特点和功能;

2.掌握线性系统被控对象传递函数数学模型在MATLAB环境下的表示方法及转换;

3.掌握多环节串联、并联、反馈连接时整体传递函数的求取方法;

4.掌握在SIMULINK环境下系统结构图的形成方法及整体传递函数的求取方法;

5.了解在MATLAB环境下求取系统的输出时域表达式的方法。

[实验指导]

一、被控对象模型的建立

在线性系统理论中,一般常用的描述系统的数学模型形式有:

(1)传递函数模型——有理多项式分式表达式

(2)传递函数模型——零极点增益表达式

(3)状态空间模型(系统的内部模型)

这些模型之间都有着内在的联系,可以相互进行转换。

1、传递函数模型——有理多项式分式表达式

设系统的传递函数模型为

若已知系统的传递函数为:

对线性定常系统,式中s的系数均为常数,且an不等于零。

这时系统在MATLAB中可以方便地由分子和分母各项系数构成的两个向量唯一地确定,这两个向量常用num和den表示。

num=[bm,bm-1,…,b1,b0]

den=[an,an-1,…,a1,a0]

注意:

它们都是按s的降幂进行排列的。

分子应为m项,分母应为n项,若有空缺项(系数为零的项),在相应的位置补零。

然后写上传递函数模型建立函数:

sys=tf(num,den)。

这个传递函数便在MATLAB平台中被建立,并可以在屏幕上显示出来。

例1:

已知系统的传递函数描述如下:

在MATLAB命令窗口(CommandWindow)键入以下程序:

>>num=[12,24,0,20];

>>den=[24622];

>>sys=tf(num,den)

回车后显示结果:

Transferfunction:

12s^3+24s^2+20

---------------------------------------

2s^4+4s^3+6s^2+2s+2

并同时在MATLAB中建立了这个相应的有理多项式分式形式的传递函数模型。

例2:

已知系统的传递函数描述如下:

其中,多项式相乘项,可借助多项式乘法函数conv来处理。

在MATLAB命令窗口(CommandWindow)键入以下程序:

>>num=4*conv([1,2],conv([1,6,6],[1,6,6]));

>>den=conv([1,0],conv([1,1],conv([1,1],conv([1,1],[1,3,2,5]))));

>>sys=tf(num,den)

回车后显示结果:

Transferfunction:

4s^5+56s^4+288s^3+672s^2+720s+288

---------------------------------------------------------------------------

s^7+6s^6+14s^5+21s^4+24s^3+17s^2+5s

即同时在MATLAB中建立了这个有理多项式分式形式的传递函数模型。

2、传递函数模型——零极点增益模型

零极点增益模型为:

其中:

K为零极点增益,zi为零点,pj为极点。

该模型在MATLAB中,可用[z,p,k]矢量组表示,即

z=[z1,z2,…,zm];

p=[p1,p2,...,pn];

k=[K];

然后在MATLAB中写上零极点增益形式的传递函数模型建立函数:

sys=zpk(z,p,k)。

这个零极点增益模型便在MATLAB平台中被建立,并可以在屏幕上显示出来。

例3:

已知系统的零极点增益模型:

在MATLAB命令窗口(CommandWindow)键入以下程序:

>>z=[-3];p=[-1,-2,-5];k=6;

>>sys=zpk(z,p,k)

回车后显示结果:

Zero/pole/gain:

6(s+3)

-----------------

(s+1)(s+2)(s+5)

则在MATLAB中建立了这个零极点增益的模型。

二、不同形式模型之间的相互转换

不同形式之间模型转换的函数:

(1)tf2zp:

多项式传递函数模型转换为零极点增益模型。

格式为:

[z,p,k]=tf2zp(num,den)

(2)zp2tf:

零极点增益模型转换为多项式传递函数模型。

格式为:

[num,den]=zp2tf(z,p,k)

三、环节串联、并联、反馈连接时等效的整体传递函数的求取

1、串联

这里:

在MATLAB中求取整体传递函数的功能,采用如下的语句或函数来实现。

.

1G=G1*G2

2G=series(G1,G2)

3[num,den]=series(num1,den1,num2,den2)

例4:

两环节G1、G2串联,求等效的整体传递函数G

解:

①实现的程序:

>>n1=2;d1=[13];n2=7;d2=[121];G1=tf(n1,d1);G2=tf(n2,d2);G=G1*G2

运行结果:

Transferfunction:

14

---------------------

s^3+5s^2+7s+3

②实现的程序:

>>n1=2;d1=[13];n2=7;d2=[121];G1=tf(n1,d1);G2=tf(n2,d2);G=series(G1,G2)

运行结果:

Transferfunction:

14

---------------------

s^3+5s^2+7s+3

③实现的程序:

>>n1=2;d1=[13];n2=7;d2=[121];G1=tf(n1,d1);G2=tf(n2,d2);

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

运行结果:

n=

00014

m=

1573

例5:

四环节G1、G2、G3、G4串联,求等效的整体传递函数G

解:

实现的程序:

>>n1=2;d1=[13];n2=7;d2=[121];G1=tf(n1,d1);G2=tf(n2,d2);

>>G=G1*G2*G1*G1

运行结果:

Transferfunction:

56

------------------------------------------

s^5+11s^4+46s^3+90s^2+81s+27

2、并联

两环节G1(s)与G2(s)并联,则等效的整体传递函数为

G(s)=G1(s)+G2(s)

在MATLAB中求取整体传递函数的功能,采用如下的语句或函数来实现。

①G=G1+G2

②G=parallel

1(G1,G2)

③[num,den]=parallel

2(num1,den1,num2,den2)

例6:

两环节G1、G2并联,求等效的整体传递函数G(s)

解:

①实现的程序:

>>n1=2;d1=[13];n2=7;d2=[121];G1=tf(n1,d1);G2=tf(n2,d2);G1+G2

运行结果:

Transferfunction:

2s^2+11s+23

----------------------------

s^3+5s^2+7s+3

②实现的程序:

>>n1=2;d1=[13];n2=7;d2=[121];G1=tf(n1,d1);G2=tf(n2,d2);G=parallel(G1,G2)

运行结果:

Transferfunction:

2s^2+11s+23

---------------------------

s^3+5s^2+7s+3

③实现的程序:

>>n1=2;d1=[13];n2=7;d2=[121];[n,d]=parallel(n1,d1,n2,d2)

运行结果:

n=

021123

d=

1573

则G(s)=G1(s)-G2(s)

相应的语句为

G=G1-G2

例7:

程序如下

>>n1=2;d1=[13];n2=7;d2=[121];G1=tf(n1,d1);G2=tf(n2,d2);G=G1-G2

运行结果:

Transferfunction:

2s^2-3s-19

------------------------------

s^3+5s^2+7s+3

3.反馈:

feedback

在MATLAB中采用如下的语句或函数来求取闭环传递函数

①G=feedback(G1,G2,sign)

②[num,den]=feedback(num1,den1,num2,den2,sign)

③[numc,denc]=cloop(num,den,sign)

这里,sign=1时采用正反馈;当sign=-1时采用负反馈;sign缺省时,默认为负反馈。

其中G2;num2,den2;对应H(s)。

③只用于单位反馈系统。

例8:

已知两环节G1、G2分别为

,求闭环传递函数。

解:

①a:

>>n1=[3100];d1=[1281];n2=2;d2=[25];

>>G1=tf(n1,d1);G2=tf(n2,d2);G=feedback(G1,G2,-1)

结果;

Transferfunction:

6s^2+215s+500

------------------------------------

2s^3+9s^2+178s+605

b:

>>n1=[3100];d1=[1281];n2=2;d2=[25];

G1=tf(n1,d1);G2=tf(n2,d2);G=feedback(G1,G2,1)

结果:

Transferfunction:

6s^2+215s+500

---------------------------

2s^3+9s^2+166s+205

num1=[3100];den1=[1281];num2=2;den2=[25];

[num,den]=feedback(num1,den1,num2,den2,-1)

结果:

num=

06215500

den=29178605

例9:

已知两环节G1、G2分别为

,求闭环传递函数。

解①

>>n1=[3100];d1=[1281];G1=tf(n1,d1);G2=1;G=feedback(G1,G2,-1)

结果:

Transferfunction:

3s+100

---------------

s^2+5s+181

>>num=[3100];den=[1281];[numc,denc]=cloop(num,den,sign)

结果:

Transferfunction:

3s+100

-------------------

s^2+25s+181

四、系统复杂连接时等效的整体传递函数的求取(用Siumlink软件实现传递函数的求取)

Siumlink软件是基于Windows的模型化图形输入的仿真软件,是MATLAB软件的拓展,在Siumlink环境下输入系统的方框图则可以方便的得到其传递函数。

⑴系统方框图的输入

1在MATLAB命令窗口中输入simulink,出现一个称为SimulinkLibraryBrowser的窗口,它提供构造方框图(或其他仿真图形界面)的模块;

②在MATLAB主窗口对File\New\Model操作,打开模型文件窗口,在此窗口上,构造方框图。

③以下面的系统为例,介绍构造方框图的各模块录入方法和设置方法。

图中,

◇录入各传递函数方框

在SimulinkLibraryBrowser的窗口打开Simulink→Continuous子库,将TransferFcn模块复制到(拽到)模型文件窗口,共复制6个方框,分别放到相应位置。

传递函数是积分环节的,也可以复制Integrator模块

◇录入相加点

在SimulinkLibraryBrowser的窗口打开Simulink→Math子库,将Sum模块复制到(拽到)模型文件窗口,共复制复制到(拽到)模型文件窗口,共复制3个相加点,分别放到相应位置。

◇录入输入点与输出点标记

打开Simulink→Sources子库,将In1模块(输入点)复制到(拽到)模型文件窗口,放到相应位置。

打开Simulink→Sinks子库,将Out1模块(输出点)复制到(拽到)模型文件窗口,放到相应位置。

◇连接各方框(环节)

在模型文件窗口上,按箭头方向从起点到终点按住鼠标左键,连接方框。

传递函数方框有信号的入点和出点标记,画图不方便时,可以修改原来的方向,右键点击方框,在出现的浮动菜单上,作如下选择,即可实现方框旋转。

还可以对方框加阴影,改颜色,增加或取消修改名称注释及其位置等。

其他模块也有这些功能。

◇双击各模块,在参数设定窗口,设置模块参数。

对于方框,是确定该方框表示的具体传递函数。

对于相加点,是确定图形标记是圆形还是方形,并确定有几个需要相加的输入信号及信号极性。

输入点与输出点标记不用再设置。

在模型文件窗口构建得到的方框图如下:

⑵将构建的方框图保存

自定文件名,保存在默认的目录下。

文件名例如:

cdhs。

⑶求取方框图表示的系统的传递函数

①有理多项式形式

在MATLAB命令窗口(CommandWindow)键入以下程序:

>>[n,d]=linmod('cdhs')注:

''中是自定的文件名。

结果:

Returningtransferfunctionmodel

n=

00.000000.000012.00002.40000.0000

d=

1.00001.700016.800026.500021.60003.20000.0000

②零极点增益模型

在MATLAB命令窗口(CommandWindow)键入以下程序:

>>[a,b,c,d]=linmod2('cdhs');G=ss(a,b,c,d);G1=ZPK(G)

结果:

Zero/pole/gain:

12s(s+0.2)

------------------------------------------------------------

s(s+0.1855)(s^2+1.521s+1.12)(s^2-0.006824s+15.41)

化简

>>G2=minreal(G1)

结果:

Zero/pole/gain:

12(s+0.2)

----------------------------------------------------------

(s+0.1855)(s^2+1.521s+1.12)(s^2-0.006824s+15.41)

 

[实验内容]

已知多回路反馈系统的结构图如下图所示,求闭环系统的传递函数。

其中

1、用Siumlink软件实现传递函数的求取。

Siumllink软件仿真电路图如下所示:

Siumllink软件仿真电路图

2、采用软件编程方法实现系统传递函数的求取。

(参考P73)

MATLAB程序如下:

G1=tf([10],[11]);G2=tf([1],[11]);G3=tf([101],[141]);

>>nu4=[11];de4=[16];G4=tf(nu4,de4);

>>H1=zpk([-1],[-2],1);nu2=[2];de2=[1];H3=1;

>>nh2=conv(nu2,de4);dh2=conv(de2,nu4);

>>H2=tf(nh2,dh2);

>>sys1=series(G3,G4);

>>sys2=feedback(sys1,H1);

>>sys3=series(G2,sys2);

>>sys4=feedback(sys3,H2);

>>sys5=series(G1,sys4);

>>sys=feedback(sys5,H3)

Zero/pole/gain:

5(s+1)^2(s+2)(s^2+1)

-------------------------------------------------------------------

(s+1.957)(s+1)^2(s^2+0.5313s+0.5668)(s^2+6.511s+25.69)

实验心得:

通过本次试验,我更加深入的了解了MATLAB软件的基本特点和功能,并且掌握了线性系统被控对象传递函数数学模型在MATLAB环境下的表示方法及转换形式,及多环节串联、并联、反馈连接时整体传递函数的求取方法和在SIMULINK环境下系统结构图的形成方法及整体传递函数的求取方法。

此次试验使我更加了解到了多回路反馈系统各结构之间的关系。

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

当前位置:首页 > 医药卫生 > 基础医学

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

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