北京理工大学控制理论基本实验文档格式.docx
《北京理工大学控制理论基本实验文档格式.docx》由会员分享,可在线阅读,更多相关《北京理工大学控制理论基本实验文档格式.docx(38页珍藏版)》请在冰点文库上搜索。
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=
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
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
-----------------------------------------------------------------------
s^9+24s^8+226s^7+1084s^6+2905s^5+4516s^4+4044s^3+1936s^2+384s
4.已知如图E2-1所示的系统框图
试用MATLAB求该系统的闭环传递函数。
%Eg_0_1_4
num1=[1];
den1=[1,1];
G1=tf(num1,den1);
num2=[1];
den2=[0.5,1];
G2=tf(num2,den2);
num3=[3];
den3=[1,0];
G3=tf(num3,den3);
G=(G1+G2)*G3;
%前向通路/开环传递函数
H=tf(num2,den2);
%反馈通路
T=feedback(G,H)%闭环传递函数
T=
2.25s^2+7.5s+6
---------------------------------------
0.25s^4+1.25s^3+2s^2+5.5s+6
5.已知如图E2-2所示的系统框图
%Eg_0_1_5
num1=[10];
num2=[5,0];
den2=[1,6,8];
H1=tf(num2,den2);
num3=[2];
den3=conv([1,0],[1,1]);
G2=tf(num3,den3);
z2=[-3];
p2=[-2];
k2=[1];
H2=zpk(z2,p2,k2);
T1=feedback(G2,H2,1);
%注意反馈系数,不是-1
T2=feedback(G1*T1,H1)
T2tf=tf(T2)
T2=
20(s+2)^2(s+4)
--------------------------------------------------------------
(s+2)(s-0.3234)(s^2-0.6067s+3.089)(s^2+8.93s+24.02)
T2tf=
20s^3+160s^2+400s+320
----------------------------------------------------
s^6+10s^5+35s^4+44s^3+82s^2+116s-48
四、实验心得体会
通过本次几个简单的实验,我知道了如何利用MATLAB建立控制系统的模型,包括传递函数型,零极点增益模型以及状态空间模型。
其中有一个系统是零极点模型,但是没有零点,最终对该系统利用conv函数建立了传递函数模型。
实验2控制系统的暂态特性分析
1.学习和掌握利用MATLAB进行系统时域响应求解和仿真的方法。
2.考察二阶系统的时间响应,研究二阶系统参数对系统暂态特性的影响。
1、系统的暂态性能指标
控制系统的暂态性能指标常以一组时域量值的形式给出,这些指标通常根据系统的单位阶跃响应给出定义,指标分别为:
(1)延迟时间td:
响应曲线首次到达稳态值的50%所需的时间。
(2)上升时间tr:
响应曲线从稳态值的10%上升到90%所需要的时间,对于欠阻尼系统,指响应曲线首次到达稳态值所需的时间。
(3)峰值时间tp:
响应曲线第一次到达最大值的时间。
(4)调整时间ts:
响应曲线开始进入并保持在允许的误差(±
2%或±
5%)范围内所需要的时间。
(5)超调量:
响应曲线的最大值和稳态值之差,通常用百分比表示
其中y(t)为响应曲线。
在MATLAB中求取单位阶跃响应的函数为step,其使用方法如下
step(sys)在默认的时间范围内绘出系统响应的时域波形
step(sys,T)绘出系统在0–T范围内响应的时域波形
step(sys,ts:
tp:
te)绘出系统在ts–te范围内,以tp为时间间隔取样的响应波形
[y,t]=step(…)该调用格式不绘出响应波形,而是返回响应的数值向量及其对应的时间向量。
系统的暂态性能指标可以根据上述定义,在响应曲线上用鼠标读取关键点或通过搜索曲线对应的数值向量中关键点来确定。
2、LTIViewer工具
在MATLAB中提供了线性时不变系统仿真的工具LTIViewer,可以方便地观察系统的响应曲线和性能指标。
在命令窗口中键入ltiview即可启动LTIViewer。
这里简要介绍LTIViewer工具(如图2-1所示)的使用方法。
(1)
【File】菜单
Import选项:
可以从Workspace或MAT文件中导入系统模型。
Export选项:
将当前窗口中的对象模型保存到Workspace或文件中。
Toolboxpreferences选项:
属性设置功能,可以设置控制系统中的各种属性值。
PageSetup选项:
页面设置功能,可以对打印输出和显示页面进行设置。
(2)
【Edit】菜单
PlotConfiguration选项:
对显示窗口及显示内容进行配置。
LineStyle选项:
线型设置功能,可以对输出响应曲线的线型进行设置。
ViewerPreferences选项:
对当前窗口的坐标、颜色、字体、响应曲线的特性参数等属性进行设置。
(3)右键菜单
在运行界面上点击鼠标右键,将会弹出一个弹出式菜单,菜单上各选项的功能分别为:
PlotTypes:
选择绘制的系统曲线类型,可选的类型有单位阶跃响应、单位冲激响应、波特图、奈奎斯特图、零极点图等。
System:
选择需要仿真的系统。
Characteristic:
系统的性能指标选项。
Grid:
显示和关闭网格。
Normalize:
正常显示模式。
FullView:
满界面显示模式。
Properties:
性能编辑器选项,可以设置画面的标题、坐标标志、坐标范围、线型、颜色、性能指标等。
1.已知单位负反馈系统前向通道的传递函数为
试用MATLAB绘制系统的单位阶跃响应曲线。
%Eg_0_2_1
num=[80];
den=[1,2,0];
G=tf(num,den);
%前向通道传递函数G
H=1;
%反馈通道
T=feedback(G,H);
%系统闭环传递函数
step(T);
%绘制系统的单位阶跃响应曲线
2.已知二阶系统
,
,试用MATLAB绘制系统单位阶跃响应曲线,并求取系统的暂态性能指标。
%Eg_0_2_2
E=0.6;
Wn=5;
num=[Wn^2];
den=[1,2*E*Wn,Wn^2];
step(G);
延迟时间td:
响应曲线首次到达稳态值的50%所需的时间0.272s
上升时间tr:
响应曲线从稳态值的10%上升到90%所需要的时间0.371s
峰值时间tp:
响应曲线第一次到达最大值的时间0.783s
调整时间ts:
5%)范围内所需要的时间1.19s
超调量:
响应曲线的最大值和稳态值之差9.48%
为0、0.707、1、2时,求此系统的单位阶跃响应。
%Eg_0_2_2_2
E1=0;
E2=0.707;
E3=1;
E4=2;
Wn=0.5;
den1=[1,2*E1*Wn,Wn^2];
G1=tf(num,den1);
den2=[1,2*E2*Wn,Wn^2];
G2=tf(num,den2);
den3=[1,2*E3*Wn,Wn^2];
G3=tf(num,den3);
den4=[1,2*E4*Wn,Wn^2];
%建立系统模型
G4=tf(num,den4);
step(G1,50);
holdon;
step(G2);
step(G3);
step(G4);
%作图
legend('
E=0'
'
E=0.707'
E=1'
E=2'
);
%标注
(3)
为1、5、10时,求此系统的单位阶跃响应。
%Eg_0_2_2_3
E=0.5;
Wn1=1;
Wn2=5;
Wn3=10;
num1=[Wn1^2];
den1=[1,2*E*Wn1,Wn1^2];
num2=[Wn2^2];
den2=[1,2*E*Wn2,Wn2^2];
num3=[Wn3^2];
den3=[1,2*E*Wn3,Wn3^2];
%建立系统模型
step(G1);
%作图
Wn1=1'
Wn2=5'
Wn3=10'
%标注
(4)观察上述实验结果,分析这两个特征参数对系统暂态特性的影响
分析:
由上述实验结果可知,
参数会对系统的延迟时间,上升时间,峰值时间,调整时间以及超调量造成影响。
越大,超调量越小,系统的延迟时间,上升时间,峰值时间,调整时间越长。
会对系统的延迟时间,上升时间,峰值时间,调整时间造成影响,
越大,系统的延迟时间,上升时间,峰值时间,调整时间越短。
的变化对系统超调量几乎没有影响。
通过本次实验,我对
两个特征参数给系统暂态特性的影响有了更深一步的理解,知道了如何修改这两个参数使系统暂态特性更好,同时我也对时域分析系统尤其是二阶系统性能有了更近一步的理解。
实验4系统的频率特性分析
1、学习和掌握利用MATLAB绘制系统Nyquist图和Bode图的方法。
2、学习和掌握利用系统的频率特性分析系统的性能。
系统的频率特性是一种图解方法,运用系统的开环频率特性曲线,分析闭环系统的性能,如系统的稳态性能、暂态性能。
常用的频率特性曲线有Nyquist图和Bode图。
在MATLAB中,提供了绘制Nyquist图和Bode图的专门函数。
1.Nyquist图
nyquist函数可以用于计算或绘制连续时间LTI系统的Nyquist频率曲线,其使用方法如下:
nyquist(sys)绘制系统的Nyquist曲线。
nyquist(sys,w)利用给定的频率向量w来绘制系统的Nyquist曲线。
[re,im]=nyquist(sys,w)返回Nyquist曲线的实部re和虚部im,不绘图。
2.Bode图
bode函数可以用于计算或绘制连续时间LTI系统的Bode图,其使用方法如下:
bode(sys)绘制系统的Bode图。
bode(sys,w)利用给定的频率向量w来绘制系统的Bode图。
[mag,phase]=bode(sys,w)返回Bode图数据的幅度mag和相位phase,不绘图。
3.幅值裕度和相位裕度计算
margin函数可以用于从频率响应数据中计算出幅值裕度、相位裕度及其对应的角频率,其使用方法如下:
margin(sys)
margin(mag,phase,w)
[Gm,Pm,Wcg,Wcp]=margin(sys)
[Gm,Pm,Wcg,Wcp]=margin(mag,phase,w)
其中不带输出参数时,可绘制出标有幅值裕度和相位裕度的Bode图;
带输