MATLAB及应用-第八讲.ppt

上传人:xt****7 文档编号:16591553 上传时间:2020-10-17 格式:PPT 页数:65 大小:691.50KB
返回 下载 相关 举报
MATLAB及应用-第八讲.ppt_第1页
第1页 / 共65页
MATLAB及应用-第八讲.ppt_第2页
第2页 / 共65页
MATLAB及应用-第八讲.ppt_第3页
第3页 / 共65页
点击查看更多>>
资源描述
第六章 控制系统的时频域分析方法 6.1 控制系统的时域分析 6.2 控制频域分析 6.3 根轨迹分析 (一)时域响应概述: 回顾时域响应的性能指标 ( 1)动态性能指标 上升时间、峰值时间、超调量、调整时间 ( 2)稳态性能指标 稳态误差 控制系统最常用的时域分析方法是 :当输入 信号为单位阶跃和单位冲激函数时,求出 系统的输出响应 (二)时域响应常用的 Matlab函数: 产生输入信号: gensig 求取系统单位阶跃响应: step 求取系统的冲激响应: impulse 连续系统的零输入响应: initial 连续系统对任意输入的响应: lsim 求系统稳态值: dcgain 求具有反馈结构的闭环传函: feedback 对于离散系统只需在连续系统对应函数前加 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 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/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); 输 出 矩 阵 状 态 轨 迹 时 间 序 列 自 动 生 成 时 间 向 量 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=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. 求下列系统在 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=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 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) 433 123 sssssG dc=1. eg10. 给出如下系统的开环传递函数,试用 MATLAB 求取其单位加速度响应。 432 sssG 程序: 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) s s sC ssss sC ss s sss s s sR , 34 3 232 1 23 1 34 31 34 3 232 , 3 6.2 频域分析: 以频率特性作为数学模型来分析、设计控制系 统的方法称为频率特性法。它具有明确的物理意 义,计算量较小,一般可采用作图方法或实验方 法求出系统或元件的频率特性。 常用的作图方法: Bode图,奈奎斯特图 频域响应常用的 Matlab函数: 画 Bode图: bode 画奈奎斯特图: nyquist 画尼克尔斯图: nichols 绘制零极点位置: pzmap 计算增益和相位裕度: margin 对于离散系统只需在连续系统对应函数前加 d 就可以,如 dbode, dnyquist,dnichols。调用 格式类似。 ( 1) Bode图 1. 产生频率向量 横轴 频率向量可由 logspace( )函数来构成。此 函数的调用格式为 =logspace(m,n,npts) 此命令可生成一个以 10为底的指数向量 (10m 10n ),点数由 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图的频率 点 。 幅频 相频 离散系统的调用格式为: 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);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分别为幅值裕量和 相位裕量处相应的频率值。 例 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 = 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) 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 例 绘制 102.1 10 )( 2 ss sG 的 nyquist图和 bode图。 解 MATLAB编程如下: num=10; den=1,1.2,10; w=logspace(-2,2,1000); nyquist(num,den,w) grid bode(num,den,w) grid 练习 已知系统的开环传递函数 绘制系统 nyquist曲线。 )2)(5( 50 )()( ss sHsG 解 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) 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,而在无零极点 对消时,闭环系统特征方程的根就是闭环 传递函数的极点。 根轨迹分析方法是分析和设计线性定常 控制系统的图解方法,使用十分简便。 通常来说,绘制系统的根轨迹是很繁琐的事 情,因此在教科书中介绍的是一种按照一定规则进 行绘制的概略根轨迹。在 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为相应的增益。 0)()(1 sHsG 0 )( )(1 sd e n sn u mK + G ( s ) H ( s ) - 图7 - 1 2 例 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 K(s+1) s(s+2) 1 (s+3) - R(s) C(s) 0 s6s5s 1sK1 23 r,k=rlocus(num,den) - 3 . 5 -3 - 2 . 5 -2 - 1 . 5 -1 - 0 . 5 0 0 . 5 -8 -6 -4 -2 0 2 4 6 8 R o o t L o c u s R e a l A x i s I m a g i n a r y A x i s 命令 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 - 3 . 5 -3 - 2 . 5 -2 - 1 . 5 -1 - 0 . 5 0 0 . 5 -8 -6 -4 -2 0 2 4 6 8 R o o t L o c u s R e a l A x i s I m a g i n a r y A x i s
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!