MATLAB及应用-第八讲.ppt

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

《MATLAB及应用-第八讲.ppt》由会员分享,可在线阅读,更多相关《MATLAB及应用-第八讲.ppt(65页珍藏版)》请在三一办公上搜索。

1、第六章 控制系统的时频域分析方法,6.1 控制系统的时域分析6.2 控制频域分析6.3 根轨迹分析,(一)时域响应概述:,回顾时域响应的性能指标(1)动态性能指标 上升时间、峰值时间、超调量、调整时间(2)稳态性能指标 稳态误差控制系统最常用的时域分析方法是:当输入信号为单位阶跃和单位冲激函数时,求出系统的输出响应,(二)时域响应常用的Matlab函数:,产生输入信号:gensig求取系统单位阶跃响应:step求取系统的冲激响应:impulse连续系统的零输入响应:initial连续系统对任意输入的响应:lsim求系统稳态值:dcgain求具有反馈结构的闭环传函:feedback对于离散系统只

2、需在连续系统对应函数前加d就可以,如dstep,dimpulse,dinitial,dlsim等。调用格式与step、impulse类似。,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(square,2*pi,50,0.01);plot(t1,u1,t2,u2)axis(0

3、 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,t,eg2.求下列系统在输入信号为r(t)=10*1(t)输入时,系统在0 20s的响应曲线。,程序:K=10;Z=-1;P=-2-3;num,den=zp2tf(Z,P,K);sys=tf(num,den);t=0:0.2:20;step(sys,t)xlabel(time/

4、s)ylabel(c(t),3、dstep()函数的用法 dstep(numz,denz);dstep(A,B,C,D);dstep(A,B,C,D,iu);,第iu个输入,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);impluse(sys,t);y=impluse(num,den,t);y,x,t=impluse(num,den);y,x,t=impluse(A,B,C,D,iu);,输出

5、矩阵,状态轨迹,时间序列自动生成,时间向量0,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(numz,denz);dimpulse(A,B,C,D);dimpulse(A,B,C,D,iu);,第iu个输入,eg5.将下列连续系统离散化,并求其离散状态系统的冲激响应曲线。,程序:离散化:a=-0.5-0.8;0.4 0;b=1;-1;c

6、=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=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.求下列

7、系统在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、dlsim()函数的用法 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=ge

8、nsig(sin,2*pi,30,0.1)lsim(sys,u,t),11、dcgain()函数的用法 k=dcgain(sys);12、feedback()函数的用法 sys=feedback(sys1,sys2);,eg9.给出如下系统的开环传递函数,试用MATLAB求取其单位阶跃响应和系统的稳定响应输出值。,程序: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)

9、,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(Time/s),6.2 频域分析:,以频率特性作为数学模型来分析、设计控制系统的方法称为频率特性法。它具有明确的物理意义,计算量较小,一般可采用作图方法或实验方法求出系统或元件的频率特性。常用的作图方法:Bode图,奈奎斯特图,频域响应常用的Matlab函数:,画Bode图:bode画奈奎斯特图:nyquist画尼克尔斯图:n

10、ichols绘制零极点位置:pzmap计算增益和相位裕度:margin对于离散系统只需在连续系统对应函数前加d就可以,如dbode,dnyquist,dnichols。调用格式类似。,(1)Bode图,1.产生频率向量横轴 频率向量可由logspace()函数来构成。此函数的调用格式为=logspace(m,n,npts)此命令可生成一个以10为底的指数向量(10m10n),点数由npts任意选定。,10m,10n,npts,2.输入画Bode图的命令纵轴 连续系统的伯德图可利用bode()函数来绘制,连续系统的调用格式为:bode(sys);bode(sys,w);mag,phase,w=b

11、ode(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=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,

12、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把屏幕分成两个部分 semilogx生成半对数坐标图 同一个窗口上同时绘制出系统的Bode图了,其中前一条命令中对幅值向量mag求取分贝(dB)值。,M行,N列,4.求幅值裕量和相位裕量在判断系统稳定性时,常常需要求出系统的幅值裕量和相位裕量。利用MATLAB控制系统工具箱提供的marg

13、in()函数可以求出系统的幅值裕量与相位裕量,该函数的调用格式为 Gm,Pm,Wcg,Wcp=margin(sys)或 Gm,Pm,Wcg,Wcp=margin(sys)式中 Gm和Pm分别为系统的幅值裕量和相位裕量,而Wcg 和Wcp分别为幅值裕量和相位裕量处相应的频率值。,例5-2 已知二阶系统的开环传递函数为,试绘制系统的开环频率特性曲线,k=1.5;ng=1.0;dg=poly(0-1-2);w=logspace(-1,1,100);m,p=bode(k*ng,dg,w);subplot(2,1,1);semilogx(w,20*log10(m);grid;ylabel(增益(dB);

14、subplot(2,1,2);semilogx(w,p);grid;xlabel(频率(rad/s);ylabel(相角(deg);,Gm,Pm,Wcg,Wcp=margin(k*ng,dg)Gm=4.0000Pm=41.5340Wcg=1.4142Wcp=0.6118 G=20*log10(Gm)G=12.0412,相位裕量,幅值裕量,练习 已知二阶系统的开环传递函数为,试绘制系统的Bode图,k=10;z=-4;p=0-0.5-50-50;num,den=zp2tf(z,p,k);Bode(num,den);title(Bode plot);grid on,(2)Nyquist图,连续系统

15、函数的调用格式为 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分别为频率特性的实部向量、虚部向量和对应的频率向量,离散系统函数的调用格式为 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编

16、程如下:num=10;den=1,1.2,10;w=logspace(-2,2,1000);nyquist(num,den,w)gridbode(num,den,w)grid,练习 已知系统的开环传递函数,绘制系统nyquist曲线。,解 MATLAB编程如下:k=50;z=;p=-5 2;num,den=zp2tf(z,p,k);nyquist(num,den),(3)Nichols图,连续系统函数的调用格式为 nichols(sys)nichols(sys,w)nichols(num,den)nichols(num,den,w)nichols(A,B,C,D)其中 w对应的频率向量,离散系

17、统函数的调用格式为 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,d,Ts,iu,w)其中 TS和w分别为频率特性的取样时间和对应的频率向量 例例5-18、5-19,(4)pzmap 绘制零极点位置,调用格式为 pzmap(p,z);P零点向量 z极点向量例5-24 重要,(三)根轨迹:,所谓根轨迹是指,当开环系统某一参数从零变到无穷大时,闭环系统特征方程的根在s平面上的轨迹。一般来说,这一参数选作开环系统的增益K,而在无零极点对消时,闭环系

18、统特征方程的根就是闭环传递函数的极点。根轨迹分析方法是分析和设计线性定常控制系统的图解方法,使用十分简便。,通常来说,绘制系统的根轨迹是很繁琐的事情,因此在教科书中介绍的是一种按照一定规则进行绘制的概略根轨迹。在MATLAB中,专门提供了绘制根轨迹的有关函数。,rlocus:求系统根轨迹。rlocfind:计算给定一组根的根轨迹增益。,对于图所示的负反馈系统,其特征方程可表示为 或 利用rlocus()函数可绘制出当开环增益K由0至变化时,闭环系统的特征根在s平面变化的轨迹,函数的调用格式为:rlocus(GH);rlocus(GH,k);r,K=rlocus(num,den)r,K=rloc

19、us(a,b,c,d)其中:返回值r为系统的闭环极点,K为相应的增益。,例,num=1 1;den=1 5 6 0;rlocus(num,den),r=rlocus(num,den,10)r=-2.1056+2.8714i-2.1056-2.8714i-0.7887,r,k=rlocus(num,den),命令 K,poles=rlocfind(num,den)或 K,poles=rlocfind(A,B,C,D),了解特定的复根对应的增益K的取值只有运行了rlocus函数并得到根轨迹后,才能合法调用运行rlocfind函数后,MATLAB会在根轨迹图上产生+提示符,通过鼠标将提示符移动到根轨迹相应的位置确定,所选的K值就会在命令窗口显示,selected_point=-0.3212+0.0000ik=2.1281poles=-2.3394+1.0735i-2.3394-1.0735i-0.3212,例 特定的根对应的增益K,rlocus(num,den)k,poles=rlocfind(num,den),Select a point in thegraphics window,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号