自动控制实验1.docx
《自动控制实验1.docx》由会员分享,可在线阅读,更多相关《自动控制实验1.docx(19页珍藏版)》请在冰豆网上搜索。
自动控制实验1
实验一基于MATLAB实验平台的
系统被控对象的建立与转换
[说明]
一个控制系统主要由被控对象、检测测量装置、控制器和执行器四大部分构成。
用于自控原理实验方面的被控对象可以有
①用于实际生产的实际系统的真实被控对象,如进行温度控制的锅炉、进行转速控制的电机等;
②用于实验研究的真实被控对象,如进行温度控制的实验用锅炉、进行转速控制的电机等;
③用运算放大器等电子器件搭建的电模拟被控对象(电路板形式),它们的数学模型与真实被控对象的数学模型基本一致,而且比真实被控对象更典型,更精准。
它们是实物型原理仿真被控对象。
④计算机仿真的被控对象,它们是非实物型原理仿真被控对象,是以各种形式展现的被控对象的数学模型。
它们通过计算机屏幕展示,或是公式形式的数学算式,或是数字形式的数表、矩阵,或是图形形式的结构框图,或是动画形式的真实被控对象实物的动态图形。
在自控原理实验中,①极少用;②用的不多;③用的较多;④在MATLAB软件广泛使用后,用的较多。
③、④各有其优缺点。
MATLAB软件的应用对提高控制系统的分析、设计和应用水平起着十分重要的作用。
我们的实验采用的是④:
采用MATLAB软件平台的计算机仿真的被控对象。
这里“被控对象的建立”,指在MATLAB软件平台上怎样正确表示被控对象的数学模型。
[实验目的]
1.了解MATLAB软件的基本特点和功能;
2.掌握线性系统被控对象传递函数数学模型在MATLAB环境下的表示方法及转换;
3.掌握多环节串联、并联、反馈连接时整体传递函数的求取方法;
4.掌握在SIMULINK环境下系统结构图的形成及整体传递函数的求取方法。
[实验指导]
一、被控对象模型的建立
在线性系统理论中,一般常用的描述系统的数学模型形式有:
(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-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、传递函数模型——零极点增益模型
零极点增益模型为:
其中:
K1为零极点增益,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中建立了这个零极点增益的模型。
3.3、状态空间模型
状态方程与输出方程的组合称为状态空间表达式,又称为动态方程:
在MATLAB中建立状态空间模型的程序如下:
>>A=[A];
>>B=[B];
>>C=[C];
>>D=[D];
>>sys=ss(A,B,C,D)
二、不同形式模型之间的相互转换
不同形式之间模型转换的函数:
(1)tf2zp:
多项式传递函数模型转换为零极点增益模型。
格式为:
[z,p,k]=tf2zp(num,den)
(2)zp2tf:
零极点增益模型转换为多项式传递函数模型。
格式为:
[num,den]=zp2tf(z,p,k)
(3)ss2tf:
状态空间模型转换为多项式传递函数模型。
格式为:
[num,den]=ss2tf(a,b,c,d)
(4)tf2ss:
多项式传递函数模型转换为状态空间模型。
格式为:
[a,b,c,d]=tf2ss(num,den)
(4)zp2ss:
零极点增益模型转换为状态空间模型。
格式为:
[a,b,c,d]=zp2ss(z,p,k)
(5)ss2zp:
状态空间模型转换为零极点增益模型。
格式为:
[z,p,k]=ss2zp(a,b,c,d)
三、环节串联、并联、反馈连接时等效的整体传递函数的求取
1、串联
这里:
在MATLAB中求取整体传递函数的功能,采用如下的语句或函数来实现。
.
G=G1*G2
G=series(G1,G2)
[num,den]=series(num1,den1,num2,den2)
举例1-4:
两环节G1、G2串联,求等效的整体传递函数G
解:
1实现的命令行程序之一:
>>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,d]=series(n1,d1,n2,d2)
运行结果:
n=
00014
d=
1573
举例1-5:
四环节G1、G2、G3、G4串联,求等效的整体传递函数G
解:
实现的命令行程序:
>>n1=2;d1=[13];n4=7;d4=[121];G1=tf(n1,d1);G4=tf(n2,d2);G=G1*G1*G1*G4
运行结果:
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);G=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:
两环节G1、G2连接如上图,求等效的整体传递函数G(s)
解:
程序如下
>>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)
③[Gb1,Gb2]=cloop(G1,G2,sign)
④[numc,denc]=cloop(num,den,sig