MATLAB及应用 -第八讲【知识发现】.ppt

上传人:rrsccc 文档编号:10249175 上传时间:2021-05-02 格式:PPT 页数:65 大小:1,015.50KB
返回 下载 相关 举报
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 求具有反馈结构的闭环传函:feed

2、back 对于离散系统只需在连续系统对应函数前加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.0

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

4、m,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);,第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,d

5、en,t); y,x,t=impluse (num,den); y,x,t=impluse (A,B,C,D,iu);,输出矩阵,状态轨迹,时间序列自动生成,时间向量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,

6、iu);,第iu个输入,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=dinitial(sys,x0,n);,eg6. 求下列系统在x0=1;1时,系统的零输入响

7、应。,程序: 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、dlsim()函数的用法 dlsim(sys,u); y,x=dlsim(sys,

8、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求取其单位阶跃响应和系统的稳定响应输出值。,程序: num=1;den=1 3

9、 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(Time/s),6.2 频域分析:,以频率特性作

10、为数学模型来分析、设计控制系统的方法称为频率特性法。它具有明确的物理意义,计算量较小,一般可采用作图方法或实验方法求出系统或元件的频率特性。 常用的作图方法:Bode图,奈奎斯特图,频域响应常用的Matlab函数:,画Bode图:bode 画奈奎斯特图:nyquist 画尼克尔斯图:nichols 绘制零极点位置:pzmap 计算增益和相位裕度: margin 对于离散系统只需在连续系统对应函数前加d就可以,如dbode,dnyquist,dnichols。调用格式类似。,(1)Bode图,1. 产生频率向量横轴 频率向量可由logspace( )函数来构成。此函数的调用格式为 =logspa

11、ce(m,n,npts) 此命令可生成一个以10为底的指数向量(10m10n ),点数由npts任意选定。,10m,10n,npts,2.输入画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图的频率点

12、。,幅频,相频,离散系统的调用格式为: 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,B,C,D分别为系统的开环传递函数和状态方程的参数,Ts为取样频率,w为Bode图的频率点。,幅频,相频,3. 显示绘制结果 可以利用下面的MATLAB命令 subplot(2,1,1);semilogx(w,20*log10(mag) subplot(2,1,2);

13、semilogx(w,phase) subplot把屏幕分成两个部分 semilogx生成半对数坐标图 同一个窗口上同时绘制出系统的Bode图了,其中前一条命令中对幅值向量mag求取分贝(dB)值。,M行,N列,4.求幅值裕量和相位裕量 在判断系统稳定性时,常常需要求出系统的幅值裕量和相位裕量。利用MATLAB控制系统工具箱提供的margin( )函数可以求出系统的幅值裕量与相位裕量,该函数的调用格式为 Gm,Pm,Wcg,Wcp=margin(sys) 或 Gm,Pm,Wcg,Wcp=margin(sys) 式中 Gm和Pm分别为系统的幅值裕量和相位裕量,而Wcg 和Wcp分别为幅值裕量和相

14、位裕量处相应的频率值。,例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); subplot(2,1,2); semilogx(w,p); grid;xlabel(频率(rad/s); ylabel(相角(deg);, Gm,Pm,Wcg,Wcp=margin(k*ng,dg) Gm = 4.0000 Pm =

15、 41.5340 Wcg = 1.4142 Wcp = 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图,连续系统函数的调用格式为 nyquist(sys) nyquist(sys,w) Re,Im,w=nyquist(num,den) Re,Im,w=nyquist(num,den,w)

16、 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编程如下: num=10; den=1,1.2,10; w=logspace(-2,2,1000); nyquist(num,den,w) grid bode(n

17、um,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对应的频率向量,离散系统函数的调用格式为 dnichols(num,den,Ts) dnichols(num,den,Ts,w) dnic

18、hols(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,而在无零极点对消时,闭环系统特征方程的根就是闭环传递函数的极点。 根轨迹分析方法是分析和设计线性定常控制系统的图解方法,使

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

20、, 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.0000i k = 2.1281 poles = -2.3394 + 1.0735i -2.3394 - 1.0735i -0.3212,例 特定的根对应的增益K, rlocus(num,den) k,poles=rlocfind(num,den),Select a point in the graphics window,

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

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1