MATLAB及应用-第八讲

上传人:新** 文档编号:568199428 上传时间:2024-07-23 格式:PPT 页数:65 大小:572KB
返回 下载 相关 举报
MATLAB及应用-第八讲_第1页
第1页 / 共65页
MATLAB及应用-第八讲_第2页
第2页 / 共65页
MATLAB及应用-第八讲_第3页
第3页 / 共65页
MATLAB及应用-第八讲_第4页
第4页 / 共65页
MATLAB及应用-第八讲_第5页
第5页 / 共65页
点击查看更多>>
资源描述

《MATLAB及应用-第八讲》由会员分享,可在线阅读,更多相关《MATLAB及应用-第八讲(65页珍藏版)》请在金锄头文库上搜索。

1、第六章第六章 控制系统的时频域分析方法控制系统的时频域分析方法6.1 6.1 控制系统的时域分析控制系统的时域分析6.2 6.2 控制频域分析控制频域分析6.3 6.3 根轨迹分析根轨迹分析(一)时域响应概述:(一)时域响应概述: 回顾时域响应的性能指标回顾时域响应的性能指标 (1)动态性能指标)动态性能指标 上升时间、峰值时间、超调量、调整时间上升时间、峰值时间、超调量、调整时间 (2)稳态性能指标)稳态性能指标 稳态误差稳态误差控制系统最常用的时域分析方法是:当输入信号为单位阶跃和单位冲激函数时,求出系统的输出响应 (二)时域响应常用的(二)时域响应常用的MatlabMatlab函数:函数

2、:产生输入信号:产生输入信号:gensiggensig求取系统单位阶跃响应:求取系统单位阶跃响应:stepstep求取系统的冲激响应:求取系统的冲激响应:impulseimpulse连续系统的零输入响应:连续系统的零输入响应: initialinitial连续系统对任意输入的响应:连续系统对任意输入的响应: lsimlsim求系统稳态值:求系统稳态值:dcgaindcgain求具有反馈结构的闭环传函:求具有反馈结构的闭环传函:feedbackfeedback对于离散系统只需在连续系统对应函数前加对于离散系统只需在连续系统对应函数前加d d就就可以,如可以,如dstepdstep,dimpuls

3、e,dinitial,dlsimdimpulse,dinitial,dlsim等。等。调用格式与调用格式与stepstep、impulseimpulse类似。类似。1、gensig()函数的用法 u,t= gensig(type,tau) u,t= gensig(type,tau,tf,ts) 信信号号序序列列时时间间序序列列信信号号类类型型信信号号周周期期持持续续时时间间采采样样时时间间 eg1. 生成一个周期为2*pi,持续时间为50s,采样时间为0.01s的正弦波和方波信号。 程序:u1, t1=gensig(sin, 2*pi, 50, 0.01);u2, t2=gensig(squa

4、re, 2*pi, 50, 0.01);plot(t1,u1,t2,u2)axis(0 50 -1.2 1.2)xlabel(time/s)ylabel(c(t) 2、step()函数的用法 step(sys);step(sys,t); y=step(num,den,t); y,x,t=step(num,den); y,x,t=step(A,B,C,D,iu);输输出出矩矩阵阵状状态态轨轨迹迹时时间间序序列列自自动动生生成成时时间间向向量量 0 0, ,t t eg2. 求下列系统在输入信号为r(t)=10*1(t)输入时,系统在0 20s的响应曲线。 程序:K=10;Z=-1;P=-2 -3

5、;num,den=zp2tf(Z, P, K);sys=tf(num,den);t=0:0.2:20;step(sys,t)xlabel(time/s)ylabel(c(t) 3、dstep()函数的用法 dstep(numz,denz); dstep(A,B,C,D); dstep(A,B,C,D,iu);第第i iu u个个输输入入 eg3. 求下列系统的阶跃响应曲线。 程序:numz=1 -1.2 0.4;denz=1.2 -1.5 0.9;dstep(numz,denz)xlabel(time/s)ylabel(c(t) 4、impluse()函数的用法 impluse(sys); i

6、mpluse(sys,t); y=impluse (num,den,t); y,x,t=impluse (num,den); y,x,t=impluse (A,B,C,D,iu);输输出出矩矩阵阵状状态态轨轨迹迹时时间间序序列列自自动动生生成成时时间间向向量量 0 0, ,t t eg4. 求下列系统的脉冲响应曲线。 程序:K=1;Z=-1;P=-2 -3;num,den=zp2tf(Z, P, K);sys=tf(num,den);t=0:0.2:20;impulse(sys,t)xlabel(time/s)ylabel(c(t) 5、dimpulse()函数的用法 dimpulse(num

7、z,denz); dimpulse (A,B,C,D); dimpulse (A,B,C,D,iu);第第i iu u个个输输入入 eg5. 将下列连续系统离散化,并求其离散状态系统的冲激响应曲线。 程序:离散化:a=-0.5 -0.8;0.4 0;b=1;-1;c=2 5; d=0;G,H,Cd,Dd=c2dm(a,b,c,d,0.1)冲激响应:dimpulse(G,H,Cd,Dd) 6、initial()函数的用法 y,t,x=initial(sys,x0); y,t,x=initial(sys,x0,t);7、dinitial()函数的用法 dinitial(sys,x0); y,x,n

8、=dinitial(sys,x0,n); eg6. 求下列系统在x0=1;1时,系统的零输入响应。 程序:a=-0.5 -0.8;-0.4 0.4;b=1;-1;c=2 -5; d=2;x0=1;1; t=0:0.1:30;initial(a,b,c, d,x0,t) eg7. 求下列系统在x0=1;1.2时,系统的零输入响应。 程序:G=-0.5 -0.8;0.4 1;H=1;-1;C=1 -5; D=2;x0=1;1.2; dinitial(G,H,C, D,x0) 8、lsim()函数的用法 y,t,x=lsim(sys,u,t); y,t,x=lsim(sys,u,t,x0);9、dl

9、sim()函数的用法 dlsim(sys,u); y,x=dlsim(sys,u,x0); eg8. 求下列系统的正弦响应。其中:周期2*pi,时间t=30s,采样周期取0.1s. 程序:a=-0.5 -0.8;0.4 0.4;b=1;-1;c=2 -5; d=2;sys=ss(a,b,c,d) u,t=gensig(sin, 2*pi, 30, 0.1)lsim(sys,u,t) 11、dcgain()函数的用法 k=dcgain(sys); 12、feedback()函数的用法 sys=feedback(sys1,sys2); eg9. 给出如下系统的开环传递函数,试用MATLAB求取其单

10、位阶跃响应和系统的稳定响应输出值。 程序:num=1;den=1 3 3 4 0; numc,denc=cloop(num,den);t=0:0.1:20;y=step(numc,denc,t);plot(t,y)title(Step response)xlabel(Time/s)dc=dcgain(numc,denc) dc=1. eg10. 给出如下系统的开环传递函数,试用MATLAB求取其单位加速度响应。 程序:num=3;den=1 4 3 0 0 0; t=0:0.1:20;y=step(num,den,t);plot(t,y)title(Step response)xlabel(T

11、ime/s) 6.2 6.2 频域分析:频域分析: 以频率特性作为数学模型来分析、设计控制系以频率特性作为数学模型来分析、设计控制系统的方法称为频率特性法。它具有明确的物理意统的方法称为频率特性法。它具有明确的物理意义,计算量较小,一般可采用作图方法或实验方义,计算量较小,一般可采用作图方法或实验方法求出系统或元件的频率特性。法求出系统或元件的频率特性。 常用的作图方法:常用的作图方法:Bode图,奈奎斯特图图,奈奎斯特图 频域响应常用的频域响应常用的MatlabMatlab函数:函数:画画BodeBode图:图:bodebode画奈奎斯特图:画奈奎斯特图:nyquistnyquist画尼克尔

12、斯图:画尼克尔斯图:nicholsnichols绘制零极点位置:绘制零极点位置:pzmappzmap计算增益和相位裕度:计算增益和相位裕度: marginmargin对于离散系统只需在连续系统对应函数前加对于离散系统只需在连续系统对应函数前加d d就就可以,如可以,如dbodedbode,dnyquist,dnicholsdnyquist,dnichols。调用格。调用格式类似。式类似。(1 1)BodeBode图图1. 产生频率向量横轴 频率向量可由logspace( )函数来构成。此函数的调用格式为=logspace(m,n,npts)此命令可生成一个以10为底的指数向量(10m10n )

13、,点数由npts任意选定。10m10nnpts2.输入画Bode图的命令纵轴 连续系统的伯德图可利用bode( )函数来绘制,连续系统的调用格式为: bode(sys); bode(sys,w); mag,phase,w=bode(num,den) mag,phase=bode(num,den,w) mag,phase,w=bode(A,B,C,D) mag,phase,w=bode(A,B,C,D,iu) 式中num,den和A,B,C,D分别为系统的开环传递函数和状态方程的参数, w为Bode图的频率点。幅频幅频相频相频离散系统的调用格式为:离散系统的调用格式为: mag,phase,w=

14、dbode(numz,denz,Ts) mag,phase=dbode(numz,denz,Ts,w) mag,phase,w=dbode(A,B,C,D,Ts,iu) mag,phase,w=dbode(A,B,C,D,Ts,iu,w) 式中numz,denz和A,B,C,D分别为系统的开环传递函数和状态方程的参数,Ts为取样频率,w为Bode图的频率点。幅频幅频相频相频3. 显示绘制结果 可以利用下面的MATLAB命令 subplot(2,1,1);semilogx(w,20*log10(mag) subplot(2,1,2);semilogx(w,phase) subplot把屏幕分成两

15、个部分 semilogx生成半对数坐标图 同一个窗口上同时绘制出系统的Bode图了,其中前一条命令中对幅值向量mag求取分贝(dB)值。M M行行N N列列在判断系统稳定性时,常常需要求出系统的幅值裕量和相位裕量。利用MATLAB控制系统工具箱提供的margin( )函数可以求出系统的幅值裕量与相位裕量,该函数的调用格式为 Gm,Pm,Wcg,Wcp=margin(sys)或 Gm,Pm,Wcg,Wcp=margin(sys)式中 Gm和Pm分别为系统的幅值裕量和相位裕量,而Wcg 和Wcp分别为幅值裕量和相位裕量处相应的频率值。例例5-2 5-2 已知二阶系统的开环传递函数为试绘制系统的开环

16、频率特性曲线k=1.5;k=1.5;ng=1.0;ng=1.0;dg=poly(0 -1 -2);dg=poly(0 -1 -2);w=logspace(-1,1,100);w=logspace(-1,1,100);m,p=bode(k*ng,dg,w);m,p=bode(k*ng,dg,w);subplot(2,1,1);subplot(2,1,1);semilogx(w,20*log10(m);semilogx(w,20*log10(m);grid;ylabel(grid;ylabel(增益增益(dB);(dB);subplot(2,1,2);subplot(2,1,2);semilogx

17、(w,p);semilogx(w,p);grid;xlabel(grid;xlabel(频率频率(rad/s);(rad/s);ylabel(ylabel(相角相角(deg);(deg); Gm,Pm,Wcg,Wcp=margin(k*ng,dg) Gm,Pm,Wcg,Wcp=margin(k*ng,dg)Gm =Gm =Pm =Pm = Wcg =Wcg =Wcp =Wcp = G=20*log10(Gm) G=20*log10(Gm)G =G = 相位裕量相位裕量幅值裕量幅值裕量练习练习 已知二阶系统的开环传递函数为试绘制系统的Bode图k=10;k=10;z=-4;z=-4;p=0 -0

18、.5 -50 -50;p=0 -0.5 -50 -50;num,den=zp2tf(z,p,k);num,den=zp2tf(z,p,k);Bode(num,den);Bode(num,den);title(Bode plot);title(Bode plot);grid ongrid on(2 2) Nyquist图连续系统函数的调用格式为 nyquist(sys) nyquist(sys,w) Re,Im,w=nyquist(num,den) Re,Im,w=nyquist(num,den,w) Re,Im,w=nyquist(A,B,C,D)其中 返回值Re,Im和w分别为频率特性的实部

19、向量、虚部向量和对应的频率向量离散系统函数的调用格式为 dnyquist(a,b,c,d,Ts) dnyquist(a,b,c,d,Ts,iu) dnyquist(a,b,c,d,Ts,iu,w)其中 TS和w分别为频率特性的取样时间和对应的频率向量 例例5-16、5-17例例 绘制 的nyquist图和bode图。解解 MATLAB编程如下:num=10;den=1,1.2,10;w=logspace(-2,2,1000); nyquist(num,den,w)gridbode(num,den,w)grid练习练习 已知系统的开环传递函数 绘制系统绘制系统nyquist曲线。解解 MATLA

20、B编程如下:k=50;z=;p=-5 2;num,den=zp2tf(z,p,k); nyquist(num,den)(3 3) Nichols图连续系统函数的调用格式为 nichols(sys) nichols (sys,w) nichols (num,den) nichols (num,den,w) nichols (A,B,C,D)其中 w对应的频率向量离散系统函数的调用格式为 dnichols(num,den,Ts) dnichols(num,den,Ts,w) dnichols(a,b,c,d,Ts) dnichols (a,b,c,d,Ts,iu) dnichols (a,b,c,

21、d,Ts,iu,w)其中 TS和w分别为频率特性的取样时间和对应的频率向量 例例5-18、5-19(4 4) pzmap 绘制零极点位置调用格式为 pzmap(p,z);P零点向量 z极点向量例5-24 重要(三)根轨迹:(三)根轨迹:q所谓根轨迹是指,当开环系统某一参数从零变到无穷大时,闭环系统特征方程的根在s平面上的轨迹。一般来说,这一参数选作开环系统的增益K,而在无零极点对消时,闭环系统特征方程的根就是闭环传递函数的极点。q根轨迹分析方法是分析和设计线性定常控制系统的图解方法,使用十分简便。通常来说,绘制系统的根轨迹是很繁琐的事情,因此在教科书中介绍的是一种按照一定规则进行绘制的概略根轨

22、迹。在MATLAB中,专门提供了绘制根轨迹的有关函数。rlocusrlocus:求系统根轨迹。rlocfindrlocfind:计算给定一组根的根轨迹增益。对于图所示的负反馈系统,其特征方程可表示为 或 利用rlocus( )函数可绘制出当开环增益K由0至变化时,闭环系统的特征根在s平面变化的轨迹,函数的调用格式为:rlocus(GH); rlocus(GH,k); r,K=rlocus(num,den)r,K=rlocus(a,b,c,d) 其中:返回值r为系统的闭环极点,K为相应的增益。例 num=1 1;den=1 5 6 0;rlocus(num,den) r=rlocus(num,d

23、en,10)r = -2.1056 - 2.8714i K(s+1)s(s+2)1(s+3)-R(s)C(s) r,k=rlocus(num,den)命令 K,poles=rlocfind(num,den)K,poles=rlocfind(num,den)或 K,poles=rlocfind(A,B,C,D)K,poles=rlocfind(A,B,C,D)了解特定的复根对应的增益K的取值只有运行了rlocus函数并得到根轨迹后,才能合法调用运行rlocfind函数后,MATLAB会在根轨迹图上产生+提示符,通过鼠标将提示符移动到根轨迹相应的位置确定,所选的K值就会在命令窗口显示selected_point =k =poles = -0.3212 例 特定的根对应的增益K rlocus(num,den) k,poles=rlocfind(num,den)Select a point in thegraphics window

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号