自动控制实验LTI系统的建模、设计和仿真——课程设计.doc
南京邮电大学系统仿真课程设计报告设计题目 LTI系统的建模、设计和仿真 专 业 自动化 姓 名 唐成 学 号 B11050121 指导老师 杨敏 实验日期: 2014 年 3 月 3 日至 2014 年 3 月 16 日LTI系统的建模、设计和仿真考虑如图所示的三轴搬运系统,要求机械臂能在三维空间中准确定位。1. 绘制三轴搬运系统开环根轨迹图、Bode 图和奈奎斯特图,并判断稳定性;2. 如要求系统的阶跃响应的超调量小于16%,在此条件下当控制器为比例控制器,确定K的合适取值,并估算系统的调节时间(按2%准则);3.当控制器为超前校正网络,设计合适的超前校正网络,使得系统的调节时间小于3s,阶跃响应的超调量小于16%;(要求用根轨迹法和频率响应法两种方法设计控制器)4.如要求系统阶跃响应的超调量小于13%,斜坡响应的稳态误差小于0.125, 请设计一个能满足要求的滞后校正网络,并估算校正后系统的调节时间(按2准则);5.如将校正网络改为特定形式的PI控制器,请设计能满足要求的PI控制器;6.为改善系统的瞬态性能,可以考虑引入前置滤波器。请讨论当控制器为超前控制和滞后控制两种情况下,前置滤波器对控制系统性能的影响;6.如希望尽可能的缩短系统的调节时间,请设计相对应的控制器,并画出校正后系统的阶跃响应曲线。二、概要设计 控制算法设计思想概述: 单位负反馈控制系统具有良好的性能是指: 1. 在输出端按要求能准确复现给定信号; 2. 具有良好的相对稳定性; 3. 对扰动信号具有充分的抑制能力。 为使系统的控制满足预定的性能指标而有目的地增添的元件或装置,称为控制系统的校正装置。 在控制系统中,我们经常采用两种校正方案:串联校正和反馈校正,其结构如图4.1、图4.2所示。而校正方案的选择主要取决于系统的结构、系统各点功率的大小、可供选择的元件、设计者的经验及经济条件等因素。 在控制工程实践中,解决系统的校正问题,采用的设计方法一般依性能指标而定。若单位反馈控制系统的性能指标以时域量的形式给出时,例如期望的闭环主导极点的阻尼比和无阻尼自振频率nw、超调量00s、上升时间rt和调整时间st等,这时采用根轨迹法进行设计是比较方便的。 若性能指标以频域量的形式给出时,例如所期望的相角裕度¡、幅值裕度Kg、谐振峰值Mr、剪切频率cw、谐振频率rw、带宽(0bw)及反映稳态指标的开环增益K、稳态误差()sse¥或误差系数(0,1,2)iCi=等,此时虽然时域响应和频域响应之间有间接的关系,但是采用Bode图法进行设计比较方便。采用Bode法设计时,如果给定的是时域指标00s、st,则必须先将其换算成频域指标¡和cw,方可进行相应的运算和设计。 三、详细设计与源代码,仿真结果与性能分析 1: 绘制三轴搬运系统开环根轨迹图、Bode 图和奈奎斯特图,并判断稳定性; 开环 >> Gs=tf(1,1,6,5,0) >> rlocus(Gs) >> bode(Gs) >> nyquist(Gs) 闭环>> Gf=feedback(Gs,1) >> rlocus(Gf) >> bode(Gf) >> nyquist(Gf) 开环传递函数的根轨迹图自动控制原理中对系统稳定性的判定,由于该系统传递函数的闭环根轨迹的极点 均分布在负半平面,故系统稳定。2: 如要求系统的阶跃响应的超调量小于16%,在此条件下当控制器cG为比例控制器,确定K的合适取值,并估算系统的调节时间(按2%准则); 解决方案:此题利用MATLAB的SISOTOOL工具能很方便的得出Gc的参数。SISOTOOL是典型单入单出系统的分析工具,只需将开环传递函数Gs导入,就能方便的对它的校正装置和反馈装置进行调节并直观的看出它的各项性能。源代码: sisotool(Gs)经过测试,当Kc=3时能满足题设的条件,超调量为11.7%,调节时间(Settling Time)为7.88 s。 3:当控制器cG为超前校正网络,设计合适的超前校正网络,使得系统的调节时间小于3s,阶跃响应的超调量小于16%;(要求用根轨迹法和频率响应法两种方法设计控制器)解决方案:(1) 根轨迹法:分析:由图可知,超调量为2.59%,调节时间为1.84 s,均符合题设要求。 (2) 频率响应法源代码:K=8;Ts=3; Gs=tf(1,1,6,5,0); mag,phase,w=bode(Gs); Gm,Pm=margin(Gs); Gama=45; Mr=1/sin(Gama); gama=Gama*pi/180; alfa=(1-sin(gama)/(1+sin(gama); %adb=20*log10(mag); %am=10*log10(alfa); %wc=spline(adb,w,am); wc=(2+1.5*(Mr-1)+2.5*(Mr-1)2)*pi/Ts; T=1/(wc*sqrt(alfa); alfat=alfa*T; Gc=tf(T 1,alfat 1); figure(1) margin(K*Gc*Gs); figure(2) step(feedback(K*Gc*Gs,1); 运行结果: 结论:超调量:8.65 调节时间:2.63 s 均满足题设要求。4:如要求系统阶跃响应的超调量小于13%,斜坡响应的稳态误差小于0.125, 请设计一个能满足要求的滞后校正网络,并估算校正后系统的调节时间(按2准则);采用频率响应法进行设计 源代码:K=8; Gs=tf(1,1,6,5,0); P0=57; fic=-180+P0+5; mu,pu,w=bode(Gs); wc2=spline(pu,w,fic); d1=conv(conv(1 0,1 1),1 5); na=polyval(K,j*wc2); da=polyval(d1,j*wc2); G=na/da; g1=abs(G); L=20*log10(g1); alfa=10(L/20); T=1/(0.1*wc2); alfat=alfa*T; Gc=tf(T 1,alfat 1); figure(1) margin(K*Gc*Gs); figure(2) step(feedback(K*Gc*Gs,1); 运行结果结论:超调量:12.9 调节时间:30.4 s。5:如将校正网络改为特定形式的PI控制器,请设计能满足要求的PI控制器 解决方案:源代码:for Kp=3:1:7 Gp=feedback(Kp*Gs,1) step(Gp),hold on end axis(0,10,0,1.5); gtext('Kp=3'); gtext('Kp=4'); gtext('Kp=5'); gtext('Kp=6'); gtext('Kp=7'); 运行结果:结论:Kp对超调量和上升时间有影响,Kp越大,超调量越大,上升时间越快。(2)观察Ki对系统阶跃响应的影响: 源代码:Gs=tf(1,1,6,5,0); Kp=3; for Ki=0.3:0.1:0.7 Go=tf(Kp*Ki 1,Ki 0); Gpi=feedback(Go*Gs,1); step(Gpi),hold on end axis(0,10,-5,5); gtext('Ki=0.3'); gtext('Ki=0.4'); gtext('Ki=0.5'); gtext('Ki=0.6'); gtext('Ki=0.7');运行结果:结论:Ki对系统的稳态误差有影响,Ki越小,稳态误差越大(3)观察Kd对系统阶跃响应的影响:源代码:>> Gs=tf(1,1,6,5,0); Kp=3;Ki=10 for Kd=1:1:5 Go=tf(Kp*Ki*Kd Ki 1,Ki 0); Gpid=feedback(Go*Gs,1); step(Gpid),hold on end gtext('Kd=1'); gtext('Kd=2'); gtext('Kd=3'); gtext('Kd=4'); gtext('Kd=5'); 运行结果:结论:Kd对系统的上升时间和超调量有影响,Kd越大,上升时间越快,超调量越小。(4)设计PI控制器:源代码:s=tf('s'); Gs=tf(1,1,6,5,0) Kc,Pm,Wc=margin(Gs); %计算频域响应参数,增益裕量kc和剪切频率wc Tc=2*pi/Wc; PIKp=0.4*Kc; %频域响应整定法计算并显示PI控制器PITi=0.8*Tc; PIGc=PIKp*(1+1/(PITi*s) step(feedback(PIGc*Gs,1),hold on PIKp,PITi gtext('PI'); 运行结果:使用试探法来满足要求:Kp=2;Ki=12 Go=tf(Kp*Ki 1,Ki 0); Gpi=feedback(Go*Gs,1); step(Gpi); 当Kp=2;Ki=12时,系统阶越响应比较满意6:为改善系统的瞬态性能,可以考虑引入前置滤波器。请讨论当控制器为超前控制和滞后控制两种情况下,前置滤波器对控制系统性能的影响(1)当控制器为超前控制情况下,前置滤波器对控制系统性能的影响: 因为是尾一型,所以极点的绝对值需要认真考虑。用工程测试法,取为4/(S+4)。 取第3题的结果,用其校正后的系统,调用sisotool,编写F:知道原来没有添加前置滤波器的系统,调节时间2.35秒,超调量为12.4%,峰值为1.12由下图可以看到,添加了前置滤波器的新系统,调节时间2.63秒,超调量为9.24%,峰值为1.09改善了系统的性能。(2)当控制器为滞后控制情况下,前置滤波器对控制系统性能的影响: 因为是尾一型,所以极点的绝对值需要认真考虑。用工程测试法,取为1/(S+0.1)。取第4题的结果,用其校正后的系统,调用sisotool,编写F:原系统的时域性能指标: 超调量:8.93% 峰值时间:8.51s 调节时间:51s 添加前置滤波器后的新系统的时域性能指标: 超调量:1.86% 峰值时间:54s 调节时间:30.8s 明显改善了系统的性能7:如希望尽可能的缩短系统的调节时间,请设计相对应的控制器,并画出校正后系统的阶跃响应曲线。PID调节:s=tf('s'); Kp=2;Ki=8;Kd=1; Go=Kp*(1+1/(Ki*s)+Kd*s/(Kd/10)*s+1); Gpid=feedback(Go*Gs,1); step(Gpid); (1)调节P至临界震荡>> Kp=30;Ki=0;Kd=0; Go=Kp Gpid=feedback(Go*Gs,1); step(Gpid); (2)加上I,D项根据经验公式联调s=tf('s'); Kp=12;Ki=18;Kd=1; Go=Kp*(1+1/(Ki*s)+Kd*s/(Kd/10)*s+1); Gpid=feedback(Go*Gs,1); step(Gpid); 运行结果:分析:PID所能达到的最佳调节时间仍比较长采用超前校正:修改系数,调整零点到0.87,极点调整到10则得到增益K为10*10=100代码: numc=1 0.87; denc=1 10; gc=tf(numc*100,denc);%gc是校正网络num=1; den=1 6 5 0; g=tf(num,den);%原系统gs=g*gc %串联后系统sisotool(gs) 整个系统为:Transfer function: 100 s + 87 - s4 + 16 s3 + 65 s2 + 50 s 此时系统的调节时间是1.81秒,超调量为4.24%。可以修正一下增益,用sisotool调节,则最佳增益是K=90 此时,调节时间为1.25秒,超调量为1.85%。提高系统的时域指标,取极点在40 则得到增益K为40*10=400 numc=1 0.87;denc=1 40;gc=tf(numc*400,denc); %gc是校正网络num=1;den=1 6 5 0;g=tf(num,den); %原系统gs=g*gc; %串联后系统sisotool(gs) 整个系统为:Transfer function: 400 s + 348 - s4 + 46 s3 + 245 s2 + 200 s 则此时没有超调量,系统的调节时间为1.29秒,时域指标较好。 修改增益,K为477新的系统为:Transfer function: 477 s + 415 - s4 + 46 s3 + 245 s2 + 200 s没有超调量,调节时间为0.981秒,调节时间为1秒左右。四、小结: (1) 对自动控制原理和控制系统的设计方法有了更加深刻感性的认识; (2) 掌握了MATLAB在控制系统设计中的使用方法; (3) 对各类控制器的设计方法(根轨迹法、频域响应法、工程试探法)有了全 面的认识及理解并能利用其解决实际问题; (4) 对超前校正,滞后校正以及PID控制有了系统全面的认识; (5) MATLAB在设计中只能起辅助作用,所以牢固的自控知识是非常必要的, 不能幻想着计算机帮我们处理所有事情,只能利用计算机去替我们分析结论和做计算。