北京理工大学控制理论基础实验Word格式文档下载.docx
《北京理工大学控制理论基础实验Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《北京理工大学控制理论基础实验Word格式文档下载.docx(30页珍藏版)》请在冰豆网上搜索。
![北京理工大学控制理论基础实验Word格式文档下载.docx](https://file1.bdocx.com/fileroot1/2022-10/7/a6360e47-a538-45e4-9c58-1a1830f9cb5f/a6360e47-a538-45e4-9c58-1a1830f9cb5f1.gif)
成绩:
目录
实验1控制系统的模型建立………………………2
实验2控制系统的暂态特性分析…………………13
实验4系统的频率特性分析………………………19
实验6极点配置与全维状态观测器的设计………24
实验1控制系统的模型建立
一、实验目的
1.掌握利用MATLAB建立控制系统模型的方法。
2.掌握系统的各种模型表述及相互之间的转换关系。
3.学习和掌握系统模型连接的等效变换。
二、实验原理
1、系统模型的MATLAB描述
系统的模型描述了系统的输入、输出变量以及内部各变量之间的关系,表征一个系统的模型有很多种,如微分方程、传递函数、状态空间方程等。
这里主要介绍系统多项式型传递函数(TF)模型、零极点型传递函数(ZPK)模型和状态空间方程(SS)模型的MATLAB描述方法。
(1)传递函数(TF)模型
传递函数是描述线性定常系统输入-输出关系的一种最常用的数学模型,其表达式一般为
在MATLAB中,直接使用行向量分子分母多项式的表示系统,即
num=[bm,bm-1,…b1,b0]
den=[an,an-1,…a1,a0]
调用tf函数可以建立传递函数TF对象模型,调用格式如下:
Gtf=tf(num,den)
Tfdata函数可以从TF对象模型中提取分子分母多项式,调用格式如下:
[num,den]=tfdata(Gtf)返回cell类型的分子分母多项式系数
[num,den]=tfdata(Gtf,'
v'
)返回向量形式的分子分母多项式系数
(2)零极点增益(ZPK)模型
传递函数因式分解后可以写成
式中z1,z2,…,zm称为传递函数的零点,p1,p2,…,pn称为传递函数的极点,k为传递系数(系统增益)。
在MATLAB中,直接用[z,p,k]矢量组表示系统,其中z,p,k分别表示系统的零极点及其增益,即:
z=[z1,z2,…,zm];
p=[p1,p2,…,pn];
k=[k];
调用zpk函数可以创建ZPK对象模型,调用格式如下:
Gzpk=zpk(z,p,k)
同样,MATLAB提供了zpkdata命令用来提取系统的零极点及其增益,调用格式如下:
[z,p,k]=zpkdata(Gzpk)返回cell类型的零极点及增益
[z,p,k]=zpkdata(Gzpk,’v’)返回向量形式的零极点及增益
函数pzmap可用于求取系统的零极点或绘制系统的零极点图,调用格式如下:
pzmap(G)在复平面内绘出系统模型的零极点图。
[p,z]=pzmap(G)返回的系统零极点,不作图
(3)状态空间(SS)模型
由状态变量描述的系统模型称为状态空间模型,由状态方程和输出方程组成:
其中:
x为n维状态向量;
u为r维输入向量;
y为m维输出向量;
A为n×
n方阵,称为系统矩阵;
B为n×
r矩阵,称为输入矩阵或控制矩阵;
C为m×
n矩阵,称为输出矩阵;
D为m×
r矩阵,称为直接传输矩阵。
在MATLAB中,直接用矩阵组[A,B,C,D]表示系统,调用ss函数可以创建SS对象模型,调用格式如下:
Gss=ss(A,B,C,D)
同样,MATLAB提供了ssdata命令用来提取系统的A、B、C、D矩阵,调用格式如下:
[A,B,C,D]=ssdata(Gss)返回系统模型的A、B、C、D矩阵
(4)三种模型之间的转换
上述三种模型之间可以互相转换,MATLAB实现方法如下
TF模型→ZPK模型:
zpk(SYS)或tf2zp(num,den)
TF模型→SS模型:
ss(SYS)或tf2ss(num,den)
ZPK模型→TF模型:
tf(SYS)或zp2tf(z,p,k)
ZPK模型→SS模型:
ss(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分别为串联连接、并联连接和反馈连接的结构框图和等效总传递函数。
在MATLAB中可以直接使用“*”运算符实现串联连接,使用“+”运算符实现并联连接。
反馈系统传递函数求解可以通过命令feedback实现,调用格式如下:
T=feedback(G,H)
T=feedback(G,H,sign)
其中,G为前向传递函数,H为反馈传递函数;
当sign=+1时,GH为正反馈系统传递函数;
当sign=-1时,GH为负反馈系统传递函数;
默认值是负反馈系统。
三、实验内容及结果
1.已知控制系统的传递函数如下
试用MATLAB建立系统的传递函数模型、零极点增益模型及系统的状态空间方程模型,并绘制系统零极点图。
实验代码:
%Eg_0_1_1
num=[2,18,40];
den=[1,5,8,6];
Gtf=tf(num,den)%传递函数模型
Gzpk=zpk(Gtf)%零极点增益模型
Gss=ss(Gzpk)%状态空间模型
pzmap(Gzpk);
%绘制系统零极点图
gridon;
%显示网格线
实验结果:
Gtf=
2s^2+18s+40
---------------------
s^3+5s^2+8s+6
Continuous-timetransferfunction.
Gzpk=
2(s+5)(s+4)
--------------------
(s+3)(s^2+2s+2)
Continuous-timezero/pole/gainmodel.
Gss=
A=
x1x2x3
x1-110
x2-1-12.515
x300-3
B=
u1
x10
x21.778
x31.414
C=
y13.3741.1250
D=
u1
y10
Continuous-timestate-spacemodel.
2.已知控制系统的状态空间方程如下
试用MATLAB建立系统的传递函数模型、零极点增益模型及系统的状态空间方程模型,并绘制系统零极点图。
%Eg_0_1_2
A=[0,1,0,0;
0,0,1,0;
0,0,0,1;
-1,-2,-3,-4];
B=[0;
0;
1];
C=[10,2,0,0];
D=0;
%D方程为空
Gss=ss(A,B,C,D)%状态空间方程模型
Gtf=tf(Gss)%传递函数模型
Gzpk=zpk(Gtf)%零极点增益模型
%绘制系统零极点图
%显示网格线
x1x2x3x4
x10100
x20010
x30001
x4-1-2-3-4
x10
x20
x30
x41
y110200
2s+10
-----------------------------
s^4+4s^3+3s^2+2s+1
2(s+5)
---------------------------------------------
(s+3.234)(s+0.6724)(s^2+0.0936s+0.4599)
3.已知三个系统的传递函数分别为
试用MATLAB求上述三个系统串联后的总传递函数。
%Eg_0_1_3
num1=[2,6,5];
den1=[1,4,5,2];
G1tf=tf(num1,den1)%表示G1,传递函数模型
num2=[1,4,1];
den2=[1,9,8,0];
G2tf=tf(num2,den2)%表示G2,传递函数模型
z3=[-3,-7];
p3=[-1,-4,-6];
k3=[5];
G3zpk=zpk(z3,p3,k3)%表示G3,零极点增益模型
G=G1tf*G2tf*G3zpk;
%表示串联总函数G
Gtf=tf(G)%G转化为传递函数模型
G1tf=
2s^2+6s+5
s^3+4s^2+5s+2
G2tf=
s^2+4s+1
-----------------
s^3+9s^2+8s
Continuous-timetransferfunction.
G3zpk=
5(s+3)(s+7)
(s+1)(s+4)(s+6)
Continuous-timezero/pole/gainmodel.
10s^6+170s^5+1065s^4+3150s^3+4580s^2+2980s+525