控制理论基础实验报告一.docx
《控制理论基础实验报告一.docx》由会员分享,可在线阅读,更多相关《控制理论基础实验报告一.docx(18页珍藏版)》请在冰豆网上搜索。
控制理论基础实验报告一
实验1控制系统的模型建立
一、实验目的
1.掌握利用MATLAB建立控制系统模型的方法。
2.掌握系统的各种模型表述及相互之间的转换关系。
3.学习和掌握系统模型连接的等效变换。
二、实验原理
1.系统模型的MATLAB描述
系统的模型描述了系统的输入、输出变量以及内部各变量之间的关系,表征一个系统的模型有很多种,如微分方程、传递函数模型、状态空间模型等。
这里主要介绍系统传递函数(TF)模型、零极点增益(ZPK)模型和状态空间(SS)模型的MATLAB描述方法。
1)传递函数(TF)模型
传递函数是描述线性定常系统输入-输出关系的一种最常用的数学模型,其表达式一般为
(1-1)
在MATLAB中,直接使用分子分母多项式的行向量表示系统,即
调用tf函数可以建立传递函数TF对象模型,调用格式如下:
Tfdata函数可以从TF对象模型中提取分子分母多项式,调用格式如下:
返回cell类型的分子分母多项式系数
返回向量形式的分子分母多项式系数
2)零极点增益(ZPK)模型
传递函数因式分解后可以写成
式中,
称为传递函数的零点,
称为传递函数的极点,k为传递系数(系统增益)。
在MATLAB中,直接用
矢量组表示系统,其中
分别表示系统的零极点及其增益,即:
调用zpk函数可以创建ZPK对象模型,调用格式如下:
同样,MATLAB提供了zpkdata命令用来提取系统的零极点及其增益,调用格式如下:
返回cell类型的零极点及增益
返回向量形式的零极点及增益
函数pzmap可用于求取系统的零极点或绘制系统的零极点图,调用格式如下:
在复平面内绘出系统模型的零极点
返回系统的零极点,不做图。
3)状态空间(ss)模型
由状态变量描述的系统模型称为状态空间模型,由状态方程和输出方程组成:
(1-3)
其中:
x为n维状态向量;u为r维输入向量;y为m维输出向量;A为n*n方阵,称为系统矩阵;B为n*r矩阵,称为输入矩阵或控制矩阵;C为m*n矩阵,称为输出矩阵;D为m*r矩阵,称为直接传输矩阵。
在MATLAB中,直接用矩阵组[A,B,C,D]表示系统,调用ss函数可以创建ZPK对象模型,调用格式如下:
同样,MATLAB提供了ssdata命令用来提取系统的A,B,C,D矩阵,调用格式如下:
返回系统模型的A,B,C,D矩阵
4)三种模型之间的转换
上述三种模型之间可以相互转换,MATLAB实现方法如下
TF模型→ZPK模型:
zpk(SYS)或tf2zp(num,den)
TF模型→SS模型:
ss(SYS)或tf2ss(num,den)
ZPK模型→TF模型:
tf(SYS)或zp2ss(z,p,k)
SS模型→TF模型:
tf(SYS)或ss2tf(A,B,C,D)
SS模型→ZPK模型:
zpk(SYS)或ss2zp(A,B,C,D)
2.系统模型的连接
在实际应用中,整个控制系统是由多个单一的模型组合而成,基本的组合方式有串联连接、并联连接和反馈连接。
图1-2分别为串联连接、并联连接和反馈连接的结构框图和等效总传递函数。
U(s)Y(s)
U(s)+
Y(s)
+
G(s)=G2(s)G1(s)
(a)串联系统G(s)=G1(s)+G2(s)
(b)并联系统
(c)反馈连接
图1-2串联连接、并联连接和反馈连接
在MATLAB中可以直接使用“*”运算符实现串联连接,使用“+”运算符实现并联连接。
反馈系统传递函数求解可以通过命令feedback实现,调用格式如下:
其中,G为前向传递函数,H为反馈传递函数;当sign=+1是,GH为正反馈系统传递函数;当sign=-1是,GH为负反馈系统传递函数;默认值是负反馈系统。
三、实验内容及实验过程
1、已知控制系统的传递函数如下
试用MATLAB建立系统的传递函数模型、零极点增益模型及系统的状态空间方程模型,并绘制系统零极点图。
程序1:
>>num=[2,18,40];
>>den=[1,5,8,6];
>>Gtf=tf(num,den)%建立系统tf
Transferfunction:
2s^2+18s+40
---------------------
s^3+5s^2+8s+6
>>Gzpk=zpk(Gtf)%从传递函数模型转换到零极点增益模型
Zero/pole/gain:
2(s+5)(s+4)
--------------------
(s+3)(s^2+2s+2)
>>Gss=ss(Gtf)
a=
x1x2x3
x1-5-2-1.5
x2400
x3010
b=
u1
x14
x20
x30
c=
x1x2x3
y10.51.1252.5
d=
u1
y10
Continuous-timemodel.
>>pzmap(Gzpk);%绘制系统零极点图
实验1系统零极点图
2.已知控制系统的状态空间方程如下
试用MATLAB建立系统的传递函数模型、零极点增益模型及系统的状态空间方程模型,并绘制系统零极点图。
程序2:
>>A=[0100;0010;0001;-1-2-3-4];
>>B=[0;0;0;1];
>>Gss=ss(A,B,C,D)%建立系统的状态空间方程模型
a=
x1x2x3x4
x10100
x20010
x30001
x4-1-2-3-4
b=
u1
x10
x20
x30
x41
c=
x1x2x3x4
y110200
d=
u1
y10
Continuous-timemodel.
>>Gzpk=zpk(Gss)%从状态空间方程模型转换到零极点增益模型
Zero/pole/gain:
2(s+5)
---------------------------------------------
(s+3.234)(s+0.6724)(s^2+0.0936s+0.4599)
>>Gtf=tf(Gss)
Transferfunction:
2s+10
-----------------------------
s^4+4s^3+3s^2+2s+1
>>pzmap(Gzpk);%绘制系统零极点图
>>gridon
实验2系统零极点图
3.已知三个系统的传递函数分别为
试用MATLAB求上述三个系统串联后的总传递函数。
程序3:
>>num1=[265];
>>den1=[1452];
>>G1=tf(num1,den1)%建立G1的传递函数模型
Transferfunction:
2s^2+6s+5
---------------------
s^3+4s^2+5s+2
>>num2=[141];
>>den2=[1980];
>>G2=tf(num2,den2)%建立G2的传递函数模型
Transferfunction:
s^2+4s+1
-----------------
s^3+9s^2+8s
>>z=[-3,-7];
>>p=[-1,-4,-6];
>>k=[5];
>>G3=zpk(z,p,k)%建立G3的传递函数模型
Zero/pole/gain:
5(s+3)(s+7)
-----------------
(s+1)(s+4)(s+6)
>>G=G1*G2*G3%通过连乘实现三个系统的串联
Zero/pole/gain:
10(s+3.732)(s+3)(s+7)(s+0.2679)(s^2+3s+2.5)
----------------------------------------------------
s(s+8)(s+6)(s+4)(s+2)(s+1)^4
4.已知如图E2-1所示的系统框图
U(s)+
-
Y(s)
图E2-1
试用MATLAB求该系统的闭环传递函数。
程序4:
>>num1=[1];
>>den1=[11];
>>G1=tf(num1,den1)
Transferfunction:
1
-----
s+1
>>num2=[1];
>>den2=[0.51];
>>G2=tf(num2,den2)
Transferfunction:
1
---------
0.5s+1
>>num3=[3];
>>den3=[10];
>>G3=tf(num3,den3)
Transferfunction:
3
-
s
>>
>>num4=[1];
>>den4=[0.51];
>>G4=tf(num4,den4)
Transferfunction:
1
---------
0.5s+1
>>G=(G1+G2)*G3%前向通路传递函数
Transferfunction:
4.5s+6
---------------------
0.5s^3+1.5s^2+s
>>T=feedback(G,G4)
Transferfunction:
2.25s^2+7.5s+6
---------------------------------------
0.25s^4+1.25s^3+2s^2+5.5s+6%系统总传递函数
5.已知如图E2-2所示的系统框图
U(s)+
+
Y(s)
+
图E2-2
试用MATLAB求该系统的闭环传递函数。
程序5:
>>num1=[10];
>>den1=[11];
>>G1=tf(num1,den1)
Transferfunction:
10
-----
s+1
>>num2=2;
>>den2=conv([10],[11]);
>>G2=tf(num2,den2)
Transferfunction:
2
-------
s^2+s
>>num3=[50];
>>num3=[13];
>>den3=[12];
>>G3=tf(num4,den3)
Transferfunction:
1
-----
s+2
>>G3=tf(num3,den3)
Transferfunction:
s+3
-----
s+2
>>num4=[50];
>>den4=[168];
>>G4=tf(num4,den4)
Transferfunction:
5s
-------------
s^2+6s+8
>>T=feedback(G2,G3,1)%求回路传递函数
Transferfunction:
2s+4
---------------
s^3+3s^2–6
>>G=G1*T%求前向通路传递函数
Transferfunction:
20s+40
-----------------------------
s^4+4s^3+3s^2-6s-6
>>T=feedback(G,G4)%求系统总传递函数
Transferfunction:
20s^3+160s^2+400s+320
----------------------------------------------------
s^6+10s^5+35s^4+44s^3+82s^2+116s-48
四、实验心得