《基于Matlab的控制系统Bode图超前校正设计指导老师闫银发》由会员分享,可在线阅读,更多相关《基于Matlab的控制系统Bode图超前校正设计指导老师闫银发(10页珍藏版)》请在金锄头文库上搜索。
1、自动控制系统课程设计题目:基于 Matlab 的控制系统 Bode 图超前校正设计院系:机械与电子工程学院专业:自动化班级:姓名: 学号:指导教师:闫银发日期:2011.11.11 目录一、摘要 . 3二、设计要求 . 3三、超前校正的一般设计步骤与原理 . 3四、校正前的系统分析 . 41、用 MATLAB画出系统伯德图,程序为: . 42、再用 MATLAB求校正前的相角裕度和幅值裕度,程序为: . 5五、校正后的系统分析 . 51、Key=1时,Var=gama 满足要求的相角稳定裕度 5(1)调用 LeadCalibrate 函数程序为: 5(2)、用 MATLAB画出系统校正后的伯德
2、图,程序为: . 62、Key=2时,Var=wc,满足要求的剪切频率求超前校正函数 . 7(1)调用 LeadCalibrate 函数程序为: 7(2)、用 MATLAB画出系统校正后的伯德图,程序为: . 7(3)用 MATLAB求校正后的阶跃响应,程序为: . 8六、串联超前校正函数程序 . 9七、心得体会 . 9八、参考文献 . 10一、摘要 所谓校正,就是在系统中加入一些其参数可以根据需要而改变的机构或装 置,使系统整个特性发生变化, 从而满足给定的各项性能指标。校正环节的结构 通常采用超前校正、滞后校正、滞后- 超前校正这三种类型。 根据本次设计题目要求, 采用超前校正函数, 且本
3、次的设计核心就是校正函数的 求取,然后调用校正函数,检测校正前后的性能指标是否满足要求。 通过这次设计,提高对matlab 的实际应用能力。二、设计要求本次课程设计需要对Matlab 熟练运用 ,以及自动控制原理中超前校正的相关 知识。包括其中的一些常用函数和对图形用户界面设计的熟练运用、例如:bode () 、margin()函数,这次实验主要实现的功能是: (1)在斜坡信号r(t) v0 t 作用下,系统的稳态误差0 0.01 ess vo ; (2)系统校正后,相角稳定裕度g 满足: 48。 (3)剪切频率 wc170 s。 (4)根据超前校正原理,编写程序求串联超前校正函数,函数调用格
4、式要求: Gc=LeadCalibrate(Key,Gs,Var) Gc 为返回的超前校正函数,Key=1 时, Var=gama,根据满足要求的相角 稳定裕度求超 前校正函数; Key=2 时, Var=wc,根据满足要求的剪切频率求超前校正函 数。Key=3, Var(1)=gama,Var(2)=wc,根据满足要求的相位裕度和剪切频率求超 前校正函数。 (5)校验系统校正后是否满足性能指标要求。 (6)计算系统校正后单位阶跃响应曲线及动态性能指标。三、超前校正的一般设计步骤与原理 本设计使用频域法确定超前校正参数。 首先根据给定的稳态性能指标, 确定系统的开环增益K。因为超前校正不改 变
5、系统的稳态指标, 所以,第一步仍然是调整放大器, 使系统满足稳态性能指标。 再利用上一步求得的K,绘制未校正前系统的伯德图,具体步骤如下:绘制在确定的 K 值下系统的伯德图,并计算最大其相角裕度0。根据给定的相角裕度,计算所需要的相角超前量0。式子中的=15 20 ,是因为考虑到校正装置影响剪切频率的位置而留出的裕度。令超前校正装置的最大超前角m=,并按下式计算网络的系数a值:mmasin1sin1 如果m60 , 则应该考虑采用有源校正装置或者两级网络。将校正网络在m处的增益定为10lg(1/ a) ,同时确定未校正系统伯德图曲线上增益为 -10lg(1/a )处的频率,即为校正后系统的剪切
6、频率cm。确定超前校正装置的交接频率1=am1,/1 2m7校验指标,绘制系统校正后的伯德图,检验是否满足给定的性能指标。 当系统仍不满足要求时,则增大值,从取值再次调试计算。四、校正前的系统分析1、用 MATLAB 画出系统伯德图,程序为:num=100; den=conv(1,0,conv(0.1,1,0.01,1); G0=tf(num,den) Transfer function: 100 - 0.001 s3 + 0.11 s2 + s w=logspace(-1,4,500); bode(G0) margin(G0) bode 图如下:-150-100-50050100Magnit
7、ude(dB)10-1100101102103104-270-225-180-135-90Phase(deg)Bode Diagram Gm = 0.828 dB (at 31.6 rad/sec) , Pm = 1.58 deg (at 30.1 rad/sec)Frequency (rad/sec)2、再用 MATLAB 求校正前的相角裕度和幅值裕度,程序为:mag,pha,w=bode(G0); Gm,Pm,Wcg,Wcp=margin(mag,pha,w) Gm = 1.1025 Pm = 1.6090 Wcg = 31.6228 Wcp = 30.1165可得到相角裕度Pm =1.6
8、090、截止频率Wcg=31.6228 、幅值裕度如上Gm=1.1025 。2、用 MATLAB 求校正前的阶跃响应,程序为sys=feedback(G0,1); step(sys) 结果下图0246810121400.20.40.60.811.21.41.61.82Step ResponseTime (sec)Amplitude五、校正后的系统分析1、Key=1时, Var=gama 满足要求的相角稳定裕度(1)调用 LeadCalibrate 函数程序为:Gc=LeadCalibrate(1,G0,48) Transfer function: 0.07414 s + 1 - 0.3238(
9、2)、用 MATLAB 画出系统校正后的伯德图,程序为:G1=G0*Gc; bode(G1); margin(G1); Gm,Pm,Wcg,Wcp=margin(G1) grid Gm = 5.2547 Pm = 43.5696 Wcg = 171.6458 Wcp = 62.3080 Bode 图如下:-150-100-50050Magnitude(dB)100 101 102 103 104-270-225-180-135-90Phase(deg)Bode Diagram Gm = 14.4 dB (at 172 rad/sec) , Pm = 43.6 deg (at 62.3 rad/
10、sec)Frequency (rad/sec)(3)、用 MATLAB 求校正后的阶跃响应,程序为:sys1=feedback(G1,1); step(sys1) 结果如下图所示:00.020.040.060.080.10.120.140.160.180.200.20.40.60.811.21.4Step ResponseTime (sec)Amplitude2、Key=2时,Var=wc ,满足要求的剪切频率求超前校正函数(1)调用 LeadCalibrate 函数程序为:c=LeadCalibrate(2,G0,170) Transfer function: 0.3359 s + 1 -
11、0.000103 s + 1 (2)、用 MATLAB 画出系统校正后的伯德图,程序为:G1=G0*Gc; bode(G1); margin(G1); Gm,Pm,Wcg,Wcp=margin(G1) grid Gm = 31.2714 Pm = 31.8253 Wcg = 1.0196e+003 Wcp = 169.9997 Bode 图如下所示:-200-150-100-50050100Magnitude(dB)10-1100101102103104105106-270-225-180-135-90-45Phase(deg)Bode Diagram Gm = 29.9 dB (at 1.0
12、2e+003 rad/sec) , Pm = 31.8 deg (at 170 rad/sec)Frequency (rad/sec)(3)用 MATLAB 求校正后的阶跃响应,程序为:sys1=feedback(G1,1); step(sys1) 结果如下图所示:00.10.20.30.40.50.600.20.40.60.811.21.4Step ResponseTime (sec)Amplitude六、串联超前校正函数程序function Gc=LeadCalibrate(Key,G0,var) w=logspace(-1,4,500); mag,pha,w=bode(G0); Gm,P
13、m,Wcg,Wcp=margin(mag,pha,w); if Key=1 Phi=(var-Pm+20)*pi/180; alpha=(1-sin(Phi)/(1+sin(Phi); M=10*log10(alpha)*ones(length(w),1); semilogx(w,20*log10(mag(:),w,M); wmmin=w(find(20*log10(mag(:)M); wmin=max(wmmin); wmmax=w(find(20*log10(mag(:)M); wmax=min(wmmax); wm=(wmin+wmax)/2; wc=wm; T=1/(wc*sqrt(a
14、lpha); Tz=alpha*T; Gc=tf(T,1,Tz,1); end if Key=2 wc=var; mag3,pha3,w1=bode(G0,wc); magdb=20*log10(mag3); alpha=1/(10(magdb/10); T=1/(wc*sqrt(alpha); Tz=alpha*T; Gc=tf(Tz,1,T,1); end end 七、心得体会 在很多人眼中课程设计是一种煎熬,确实,课设和我们习惯的单纯的看书做题目 不一样,它更考验我们对知识的理解和应用。通过这次自控的课程设计中我可谓 受益匪浅。 首先当然是对于课本知识的再学习和更深刻的理解,和做题目不一
15、样, 在做课设 时需要全方面的考虑问题,而不是单纯的算出一个结果,特别是对与校正系统, 在试取值时需要耐心的验算, 在校正后还需要前后的对比分析,我这次在校正时 刚开始就没能取到合适的值, 但是在重新取值后最终还是满足了要求。虽说这个 过程并不算是多么的漫长或艰难, 但是这种经历确实能让我们养成一种不断探索 的科学研究精神, 我想对于工学学生这个是很重要的。这次课设对我的另一大考 验就是 MATLAB 的应用,虽说之前上过基础强化训练课,但是并没有具体到在 自动控制系统上的应用, 所以自己查资料是必须的, 对于工科学生来说查资料也 是必备的能力, 有些问题在不会时看上去很可怕,但是在看过资料后
16、才发现也没有想象的那么难,这次课设中用到的MATLAB 就比我之前想的要容易,我想搞 课设很大的一方面原因也是为了提高我们的自学意识和自学能力,通过这次课 设,我在查资料的能力上也确实得到了提高,除开图书馆, 上网搜索也的确是不 错的选择。 不少人抱怨在大学学不到东西, 我并不这样认为。 我想无论是在学习还是在生活 上只有自己有心去学习和参与才可能有收获,这也算是课设给我知识之外的一点 小小的感悟。八、参考文献1、胡寿松 . 自动控制原理(第四版). 北京:科学出版社, 2002年 2、瞿亮 基于 Matlab 的控制系统计算机仿真清华大学出版社2006年 1 月 3、何衍庆 . MATLAB 语言的运用 . 北京:化学工业出版社, 2003 年