北理工自控实验报告Word文档格式.docx
《北理工自控实验报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《北理工自控实验报告Word文档格式.docx(19页珍藏版)》请在冰豆网上搜索。
传递函数因式分解后可以写成
式中,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函数可以创建ZPK对象模型,调用格式如下:
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、系统模型的连接
在实际应用中,整个控制系统是由多个单一的模型组合而成,基本的组合方式有串联连接、并联连接与反馈连接。
下图分别为串联连接、并联连接与反馈连接的结构框图与等效总传递函数。
在MATLAB中可以直接使用“*”运算符实现串联连接,使用“+”运算符实现并联连接。
反馈系统传递函数求解可以通过命令feedback实现,调用格式如下:
T=feedback(G,H)
T=feedback(G,H,sign)
其中,G为前向传递函数,H为反馈传递函数;
当sign=+1时,GH为正反馈系统传递函数;
当sign=-1时,GH为负反馈系统传递函数;
默认值是负反馈系统。
三、实验内容
1、已知控制系统的传递函数如下
试用MATLAB建立系统的传递函数模型、零极点增益模型及系统的状态空间方程模型,并绘制系统零极点图。
实验代码:
num=[21840];
den=[1586];
Gtf=tf(num,den)%系统的传递函数模型
Gzpk=zpk(Gtf)%传递函数模型转换为零极点增益模型
pzmap(Gzpk);
%画零极点图
gridon;
Gss=ss(Gtf)%转换为状态空间方程模型
实验结果:
(1)传递函数模型:
Gtf=
2s^2+18s+40
s^3+5s^2+8s+6
(2)零极点增益模型为:
Gzpk=
2(s+5)(s+4)
(s+3)(s^2+2s+2)
系统零极点图为:
(3)状态空间方程模型:
Gss=
a=
x1x2x3
x1-5-2-1.5
x2400
x3010
b=
u1
x14
x20
x30
c=
y10.51.1252.5
d=
y10
2、已知控制系统的状态空间方程如下
A=[0100;
0010;
0001;
-1-2-3-4];
B=[0;
0;
1];
C=[10200];
D=[0];
Gss=ss(A,B,C,D)
Gtf=tf(Gss)
Gzpk=zpk(Gss)
(1)系统矩阵
x1x2x3x4
x10100
x20010
x30001
x4-1-2-3-4
x10
x41
y110200
(2)零极点模型:
Zero/pole/gain:
2(s+5)
(s+3.234)(s+0.6724)(s^2+0.0936s+0.4599)
零极点图:
(3)传递函数:
Transferfunction:
2s+10
s^4+4s^3+3s^2+2s+1
3、已知三个系统的传递函数分别为
试用MATLAB求上述三个系统串联后的总传递函数。
a1=[265];
b1=[1452];
G1=tf(a1,b1)
a2=[141];
b2=[198];
G2=tf(a2,b2);
a3=[550105];
b3=[1113424];
G3=tf(a3,b3)
Gtf=G1*G2*G3
Gzpk=zpk(G)
10s^6+170s^5+1065s^4+3150s^3+4580s^2+2980s+525
-------------------------------------------------------------------------------s^8+24s^7+226s^6+1084s^5+2905s^4+4516s^3+4044s^2+1936s+384
10(s+7)(s+3.732)(s+3)(s+0.2679)(s^2+3s+2.5)
(s+8)(s+6)(s+4)(s+2)(s+1)^4
4、已知如图E2-1所示的系统框图
试用MATLAB求该系统的闭环传递函数。
a1=[1];
b1=[11];
a2=[1];
b2=[0.51];
G2=tf(a2,b2)
a4=[1];
b4=[0.51];
H=tf(a4,b4)%反馈传函
a3=[3];
b3=[10];
G3=tf(a3,b3)
G=(G1+G2)*G3%前向传函
T=feedback(G,H,-1)%闭环传函
2.25s^2+7.5s+6
0.25s^4+1.25s^3+2s^2+5.5s+6
5、已知如图E2-2所示的系统框图
又框图可知,该系统为G2与H1形成反馈系统G3,之后与G1级联形成G4,再与H2形成反馈系统T。
a1=[10];
a2=[2];
b2=[110];
a3=[13];
b3=[12];
H1=tf(a3,b3)
a4=[50];
b4=[168];
H2=tf(a4,b4)
G3=feedback(G2,H1)%G2与H1反馈
G4=G1*G3%G1与G3级联
T=feedback(G4,H2,-1)%总的系统传函
G3=
2s+4
s^3+3s^2+4s+6
G4=
20s+40
s^4+4s^3+7s^2+10s+6
T=
20s^3+160s^2+400s+320
s^6+10s^5+39s^4+84s^3+222s^2+316s+48
四、体会与建议
本次实验比较基础,学习如何创建传递函数模型,并得到对应的零极点模型与状态空间方程。
零极点图之前在理论课上画过,这次实验用MATLAB得以实现,非常直观与准确。
在做框图问题时,要细心与耐心,注意连接顺序与反馈的部分。
实验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,可以方便地观察系统的响应曲线与性能指标。
在命令窗口中键入litview即可启动LTIViewer。
这里简要介绍LTIViewer工具的使用方法。
1)
【File】菜单
Import选项:
可以从Workspace或MAT文件中导入系统模型。
Export选项:
将当前窗口中的对象模型保存到Workspace或文件中。
Toolboxpreferences选项:
属性设置功能,可以设置控制系统中得各种属性值。
PageSetup选项:
页面设置功能,可以对打印输出与显示页面进行设置。
2)
【Edit】菜单
PlotConfiguration选项:
对显示窗口及显示内容进行配置。
LineStyle选项:
线型设置功能,可以对输出响应曲线的线型进行设置。
ViewerPreferences选项:
对当前窗口的坐标、颜色、字体、响应曲线的特性参数等属性进行设置。
3)右键菜单
在运行界面上点击鼠标右键,将会弹出一个弹出式菜单,菜单上个选项的功能分别为:
PlotTypes:
选择绘制的系统曲线类型,可选的类型有单位阶跃响应、单位冲击响应、波特图、奈奎斯特图、零极点图等。
System:
选择需要仿真的系统。
Characteristic:
系统的性能指标选项。
Grid:
显示与关闭网格。
Normalize:
正常显示模式。
FullView:
满界面显示模式。
Properties:
性能编辑器选项,可以设置画面的标题、坐标标志、坐标范围、线型、颜色、性能指标等。
1、已知单位负反馈系统前向通道的传递函数为
试用MATLAB绘制系统的单位阶跃响应曲线。
num=[80];
den=[120];
G=tf(num,den);
%建立系统传递函数模型
T=feedback(G,1);
%单位负反馈
step(T)
实验结果:
2、已知二阶系统
(1)ζ=0.6,
=5,试用MATLAB绘制系统单位阶跃响应曲线,并求取系统的暂态性能指标。
(2)
=1,ζ从0变化到2,求此系统的单位阶跃响应。
(3)ζ=0.5,
从0变化到1(
≠0),求此系统的单位阶跃响应。
(4)观察上述实验结果,分析这两个特征参数对系统暂态特性的影响。
(1)使用step函数可以绘制系统的单位阶跃响应曲线
e1=0.6;
wn=5;
num=[wn^2];
den=[1,2*wn*e1,wn^2];
Gtf=tf(num,den);
求系统的暂态性能指标:
在workspace中输入ltiview,弹出LTIViewer
1)找到纵坐标为0.5的点,对应的时间即td=0.271s。
2)找到纵坐标首次为1的点,对应的时间即tr=0.556s。
3)找到纵坐标首次达到最大值的点(最大值为1.09),对应的时间即tp=0.784s。
4)找到纵坐标为1.02的点,对应的时间为1.16s,即允许的误差取2%时,ts=1.16s。
找到纵坐标为首次为1.05的点,对应的时间即ts=1.03s。
5)超调量
=(1.09-1)/1*100%=9%
(2)取ζ分别为0,0.5,1,1.5,2,分别求出单位阶跃响应
>
wn=1;
e1=0.6;
num=[wn^2];
den=[1,2*wn*e1,wn^2];
Gtf=tf(num,den);
e1=0;
G1=tf(num,den);
e1=0.5;
G2=tf(num,den);
e1=1;
G3=tf(num,den);
e1=1.5;
G4=tf(num,den);
e1=2;
G5=tf(num,den);
ltiview
调用ltiview,加入G1—G5,结果如下:
(2)分别取
=0.2,0.4,0.6,0.8,1
wn=0.2;
wn=0.4;
wn=0.6;
wn=0.8;
系统单位阶跃响应的变化情况如下图所示:
(4)结果分析
ξ为阻尼比,𝜔
𝑛
称为无阻尼自振荡角频率。
由上图可以看出,当𝜔
一定时,ξ从0变化到2时,系统由无阻尼等幅振荡变成欠阻尼振荡,再到临界阻尼,最后达到过阻尼;
而当ξ=0.5不变时,系统处于欠阻尼状态,𝜔
越大,系统上升时间、峰值时间与过渡时间越小,即系统趋于稳定所需的时间越少,而超调量基本不变。
四、实验心得
这次实验是研究系统的暂态特性,主要分析了上升时间、峰值时间、过渡时间、超调量等,并分析了当ξ与ωn变化时,系统的单位阶跃响应会发生怎样的变化。
这次实验还学习了使用LTIVIEWER,这个工具使用方便很有用处。
实验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图,带输出参数时,返回幅度裕度Gm,相位裕度Pm及其对应的角频率Wcg与Wcp。
1、已知系统开环传递函数为
绘制系统的Nyquist图,并讨论其稳定性。
num=[1000];
den=conv([132],[15]);
nyquist(Gtf)
该系统不稳定。
2、已知系统的开环传递函数为
(1)绘制系统的零极点图,根据零极点分布判断系统的稳定性。
(2)绘制系统Bode图,求出幅度裕度与相位裕度,判断闭环系统的稳定性。
bode函数可以用于计算或绘制连续时间LTI系统的Bode图,margin函数可以用于从频率响应数据中计算出幅度裕度、相位裕度及其对应的角频率。
(1)实验代码:
num=10*[25/165/41];
den=conv([100],[10/31]);
den=conv(den,[0.2/31]);
den=conv(den,[1/401]);
Gzpk=zpk(Gtf);
结果分析:
由图可知,该系统的极点均位于左半平面,所以系统稳定。
(2)实验代码:
num=10*[25/165/41];
den2=conv([100],conv([10/31],conv([0.2/31],[1/40,1])));
sys2=tf(num,den2);
margin(sys2);
[Gm,Pm,Wcg,Wcp]=margin(sys2)
Gm=0.1198
Pm=60.6660
Wcg=0.6614
Wcp=4.3878
在开环幅频特性大于0dB的所有频段内,相频特性曲线对-180度线的正负穿越次数之差为0,可以判断出系统是稳定的。
3、已知系统的开环传递函数为
分别判断当开环放大系数K=5与K=20时闭环系统的稳定性,并求出幅度裕度与相位裕度。
1)K=5;
num=[5];
den=conv([10],conv([11],[0.11]));
sys=tf(num,den);
[Gm1,Pm1,Wcg1,Wcp1]=margin(sys1)
Gm1=2.2000
Pm1=13.5709
Wcg1=3.1623
Wcp1=2.1020
K=5时,在开环幅频特性大于0dB的所有频段内,相频特性曲线对-180度线没有穿越,可以