00讲稿 自动控制原理实验指导书00实.docx
《00讲稿 自动控制原理实验指导书00实.docx》由会员分享,可在线阅读,更多相关《00讲稿 自动控制原理实验指导书00实.docx(15页珍藏版)》请在冰豆网上搜索。
00讲稿自动控制原理实验指导书00实
《自动控制原理》
实验指导书
实验一基于MATLAB实验平台的系统被控对象的建立与转换
[实验目的]
1.了解MATLAB软件的基本特点和功能;
2.掌握线性系统被控对象传递函数数学模型在MATLAB环境下的表示方法及转换;
3.掌握多环节串联、并联、反馈连接时整体传递函数的求取方法;
4.了解在MATLAB环境下求取系统的输出时域表达式的方法。
[实验指导]
一、被控对象模型的建立
在线性系统理论中,一般常用的描述系统的数学模型形式有:
(1)传递函数模型——有理多项式分式表达式
(2)传递函数模型——零极点增益表达式
这些模型之间都有着内在的联系,可以相互进行转换。
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-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中建立了这个相应的有理多项式分式形式的传递函数模型。
则
(1)系统的MATLAB程序为:
举例1-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.相应的
(2)系统的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平台中被建立,并可以在屏幕上显示出来。
举例1-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)>>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]))));
>>[z,p,k]=tf2zp(num,den)
z=
-4.7321
-4.7321
-2.0000
-1.2679+0.0000i
-1.2679-0.0000i
p=
0
-2.9042
-0.0479+1.3112i
-0.0479-1.3112i
-1.0000+0.0000i
-1.0000-0.0000i
-1.0000
k=
4
>>z=[-3];p=[-1,-2,-5];k=6;
>>[num,den]=zp2tf(z,p,k)
num=
00618
den=
181710
>>
三、环节串联、并联、反馈连接时等效的整体传递函数的求取
1、串联
这里:
在MATLAB中求取整体传递函数的功能,采用如下的语句或函数来实现。
.
1G=G1*G2
2G=series(G1,G2)
3[num,den]=series(num1,den1,num2,den2)
举例1-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
举例1-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)
举例1-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
举例1-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)
③G=cloop(G1,sign)
④[numc,denc]=cloop(num,den,sign)
这里,sign=1时采用正反馈;当sign=-1时采用负反馈;sign缺省时,默认为负反馈。
其中G2;num2,den2;对应H(s)。
③④只用于单位反馈系统。
举例1-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
举例1-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
③
>>n1=[3100];d1=[1281];G1=tf(n1,d1);G=cloop(G1,-1)
结果:
Transferfunction:
3s+100
-------------------
s^2+2s+81
以上语句对于零极点增益模型也是适用的
举例1-10:
>>z=[-3];p=[-1];k=3;G1=zpk(z,p,k);z1=[-4];p1=[-2];k1=5;G1=zpk(z,p,k);
G2=zpk(z1,p1,k1);G=G1*G2
Zero/pole/gain:
15(s+3)(s+4)
--------------
(s+1)(s+2)
>>GG=G1+G2
Zero/pole/gain:
8(s+1.275)(s+3.725)
---------------------
(s+1)(s+2)
>>GGG=feedback(G1,G2,-1)
Zero/pole/gain:
0.1875(s+3)(s+2)
------------------
(s+3.25)(s+3.5)
以上运算中往往通分运算后不约简,可以再使用minreal()函数来实现约简,其格式为
G1=minreal(G)
举例1-11
>>z=[-3];p=[-1];k=3;G1=zpk(z,p,k);z1=[-1];p1=[-2];k1=5;G1=zpk(z,p,k);
G2=zpk(z1,p1,k1);G=G1*G2
Zero/pole/gain:
15(s+3)(s+1)
--------------
(s+1)(s+2)
>>G1=minreal(G)
Zero/pole/gain:
15(s+3)
--------
(s+2)
[实验内容]
1.自确定2个传递函数,实现传递函数的录入和求取串联、并联、反馈连接时等效的整体传递函数。
要求分别采用有理多项式模型和零极点增益模型两种传递函数形式。
n1=2;d1=[13];n2=7;d2=[121];G1=tf(n1,d1);G2=tf(n2,d2);G=G1*G2,G=G1+G2串联时的传递函数
2.进行2例有理多项式模型和零极点增益模型间的转换。
[实验报告要求]
1.写明实验目的和实验原理。
实验原理中简要说明求取传递函数的途径和采用的语句或函数。
2.在实验过程和结果中,要求按项目写清楚自定的传递函数,从屏幕上复制程序和运行结果,打印报告或打印粘贴在报告上。
不方便打印的同学,要求手动从屏幕上抄写和绘制。
3.简要写出实验心得和问题或建议。
实验心得: