计算机控制技术课程设计2015/2016学年第二学期设计课题:基于大林算法的炉温控制系统目录1 课题简介课题目的课程设计是课程教学中的一项重要内容,是达到教学目标的重要环节,是综合性较强的实践教学环节,它对帮助学生全面牢固地掌握课堂教学内容、培养学生的实践和实际动手能力、提高学生全面素质具有很重要的意义。
《计算机控制系统》是一门理论性、实用性和实践性都很强的课程,课程设计环节应占有更加重要的地位。
通过课程设计,加深对学生控制算法设计的认识,学会控制算法的实际应用,使学生从整体上了解计算机控制系统的实际组成,掌握计算机控制系统的整体设计方法和设计步骤,编程调试,为从事计算机控制系统的理论设计和系统的调试工作打下基础。
课题任务设计以89C51单片机和AD 、DA 驱动电路、控制电路、滤波电路、被控对象电路等电路、由运放电路实现的被控对象构成的计算机单闭环反馈控制系统。
1. 硬件电路设计:89C51最小系统加上模入电路(用ADC0809等)和模出电路(用DAC0832和运放等);由运放实现的被控对象。
2. 控制算法:大林控制算法。
3. 软件设计:主程序、中断程序、A/D 转换程序、大林算法控制程序、D/A 输出程序等。
4.仿真设计:用Matlab 仿真闭环控制系统。
设计要求1. 模入电路能接受双极性电压输入(-5V~+5V ),模出电路能输出双极性电压(-5V~+5V )。
2. 模入电路用两个通道分别采集被控对象的输出和给定信号。
3. 选择被控对象:G (),3.341sc e s T s τ-==+ 4. 对象的纯延迟环节seτ-用软件通过数组单元移位实现。
5. 定时中断间隔选取50ms ,采样周期T 既要是采样中断间隔的整数倍,又满足(0.2~1)T τ=。
6. 闭环系统时间常数T τ按倍的被控对象最大时间常数选择。
2 大林算法控制系统方案设计大林算法总体介绍+)(r t )(t e D(Z)U(Z)se Ts--1G(S)C(T)-图2-1 大林算法设计的闭环控制系统方框图在控制系统设计中,纯滞后往往是影响系统动态特性的不利因素,这种系统如果控制器设计不当,常常会引起系统产生大的超调或振荡。
对这类系统的控制要求,快速性是次要的,而主要要求系统没有超调或很少的超调。
大林(Dahlin )算法就是一种专门针对工业生产过程中含有纯滞后控制对象的直接数字设计算法。
振铃现象及其消除所谓振铃(Ringing )现象,是指数字控制器的输出u(k)以2T 大幅度上下摆动。
振铃现象会引起采样点间系统输出纹波,增加执行机构的磨损,影响多参数系统稳定性。
振铃现象与被控对象的特性、闭环时间常数、采样时间、纯滞后时间的大小等有关。
2.2.1振铃现象产生的根源由于()()()()()Y z R z z U z G z φ==,()()()u z z G z φφ=,得()()()u U z z R z φ=,则对单位阶跃输入11()1R z z-=-,它有极点z =1,如果()u z φ的极点在负实轴上,且与z = -1接近,则上述两个极点造成的输出瞬态项在不同的时刻可能叠加也可能抵消,导致输出出现波动。
2.2.2振铃现象的消除找出D(z)中引起振铃的因子(z = -1附近的极点),令其中的z = 1。
取消了这个极点,可以消除振铃。
系统稳态值不变,但瞬态特性会变化,数字控制器的动态性能也会有影响。
根据终值定理,t →∞时,对应1z →,因此这样处理不影响输出的稳态值。
注意:大林算法由于修改了控制器的结构,使系统闭环传函φ(z) 也发生了变化,一般应检查其在改变后是否稳定。
大林算法只适合于稳定的对象。
如果广义对象的Z 传函G(z)中出现了单位圆外的零点,它将引起不稳定的控制,在这种情况下,相应于控制器中的这一不稳定极点,可采用前面消除振铃极点相同的办法来处理。
系统闭环工作原理在本次大林算法控制系统中,系统先进行A/D 采样,将给定值采样值取到单片机内,之后单片机会选择另外一路通道,进行输出值即反馈值的采样。
将输出值采样到单片机内后,在单片机中进行差值E(K )计算,再通过单片机中的算法程序得到输出量U(K ),再经过D/A 变换器,将输出结果作用于被控对象。
经被控对象的输出值又将作为反馈值被采样到单片机内。
系统的结构框图电加热炉控制系统的硬件结构框图如图:图2-2 系统的总体结构框图3 大林算法控制系统硬件电路设计驱动电路温度控制系统ADC0809AT89C51电加热炉键盘DAC0833.1 A/D采样电路图3-1 A/D采样硬件电路图 D/A输出电路图3-2 D/A输出电路驱动电路设计图3-3 驱动电路电路图给定对象硬件电路设计图3-4 给定对象硬件电路图总硬件图图3-5 总硬件图4 大林算法控制系统算法设计控制算法的原理设计数字控制器使系统的闭环传函为具有纯滞后的一阶惯性环节,且其滞后时间等于被控对象的滞后时间。
并希望整个闭环系统的纯滞后时间和被控对象的纯滞后时间相同。
其中为闭环系统的时间常数,纯滞后时间与采样周期T 有整数倍关系。
控制器的设计过程首先被控对象的传递函数:(),3.341sC e G s T s τ-==+ (4-1) 其中1T s =,2T s τ=。
经计算: 210.2587z ()10.7413G z z --=- (4-2)210.3935() 10.6065z z z --Φ=- (4-3)1111.5211(10.7413)()(1)(10.3935)z D z z z ----=-+ (4-4)2345()0.39350.63220.77690.8647Y z zz z z ----=-+++L (4-5)1234() 1.5228 1.3175 1.193 1.1176 1.0718U z z z z z ----=+++++L (4-6)计算机实现的计算机公式推导() 1.5228() 1.1289(1)()0.8735(1)0.5711(2)0.4446(3)U k u k u k e k e k e k e k =--+----+- (4-7)程序中00.087,10.6544,20.1054kk kk kk ==-=,10.1353,20.8647,30pp pp pp ===。
采样周期的选择在本实验中,定时中断间隔选取50ms ,由被控对象的表达式可知,N=1,1T 1s s ττ=T ==,,取。
5 大林算法控制系统仿真系统仿流程图图5—1 程序设计流程图R3→通道数 计算偏差计算a1E(k-1) 计算a0E(k)-a1E(k-1) 传送数据,为下次采样计算做准备调用D/A 输出子程序8通道均控制完否?返回计算a0E(k) 计算b1E(k-1)计算011()(1)(1)a E k a E k b E k --+-计算b2E(k-N-1)计算0112()(1)(1)(1)a E k a E k b E k b E k N --+-+--开始仿真代码r=500; T=10;sys=tf(12,[400 1],'inputdelay',60) sys=c2d(sys,T,'zoh');[num,den]=tfdata(sys,'v'); Tf=input('仿真时间Tf='); Tm=input('采样周期Tm='); a0=1/12;a1=exp(-Tm/400)/12; b1=exp(-Tm/400); b2=1-exp(-Tm/400);u1=0;u2=0;u3=0;u4=0;u5=0;u6=0;u7=0;e1=0;y=0;y1=0;t=0; for i=1:Tf/Tm e=r-y(end);u=a0*e-a1*e1+b1*u1+b2*u7; for j=1:Tm/Ty=[y,-den(2)*y1+num(1)*u6+num(2)*u7]; t=[t,t(end)+T]; endu7=u6;u6=u5;u5=u4;u4=u3;u3=u2;u2=u1;u1=u;y1=y(end); e1=e; endplot(t,y)波形图及性能分析图5-2 大林算法实现炉温控制波形图基于大林算法的炉温控制系统仿真时,可以调节温控炉时间常数T 使闭环系统的指标达到最佳。
当T 很小时,响应很快但稳定性不好系统会产生震荡;当T 增大,系统的响应变慢,但稳定性很好。
而且由波形图可见大林控制算法下系统几乎无超调,精度设计时候是300℃,最终通过仿真也是,因此精度是1。
误差计算为:设系统在输入信号的作用下时,21()R s s,所以系统的误差为1()()()0.471()limlim lim r sr sr t s s e e t sE s sR sG s →∞→→====+ (5-2)大林算法SIMULINK 仿真结构图及波形当炉温为300℃时,图5—3 大林算法实现炉温300℃控制的SIMULINK 仿真结构图图5—4 大林算法实现炉温300℃控制的SIMULINK 仿真波形图当炉温为500℃时,图5—5 大林算法实现炉温500℃控制的SIMULINK 仿真结构图图5—6 大林算法实现炉温500℃控制的SIMULINK仿真波形图当炉温为200℃时,图5—7 大林算法实现炉温200℃控制的SIMULINK仿真结构图图5—8 大林算法实现炉温200℃控制的SIMULINK仿真结构图6 小结与体会在这个维持近两周的计算机课设的过程中,我们是两个同学为一个小组进行这次课设任务,我主要任务是负责仿真部分,而另外一位同学负责的是其他部分。
因为一开始老师给的课题种类较丰富,比如有从对象上分类就有温度、电机等等其他种类,然后从算法上又可以分为大林算法,PID算法,最少拍算法等等,所以在和同学一起查阅相关资料,再结合我们平时所学习的并且已经掌握的书本知识的前提下,我们选择了基于大林算法的炉温控制系统这一课设主题。
通过已经学习的知识,如数电,自动控制原理,计算机控制等科目,加上自己在网上查找资料、参考论文,和自己在图书馆找书自学Matlab软件才完成了这次的课程的仿真设计。
在设计的过程中,也不是从头到尾就一帆风顺,没有困难。
在自学仿真软件的过程中,我遇到如下问题:1.安装软件过程中,通过软件自带的说明,才成功安装。
在熟悉软件的过程中,通过网上查阅资料,逐步了解软件运行过程和问题处理方案。
2.第一周末画波形图,在波形图的绘制过程中,需要自己编程序,我在网上找到了一些程序,在仔细甄别以后,开始尝试画图,但由于程序依旧出现问题,我就自己尝试修改,一次又一次的尝试以后,功夫不负有心人,终于出现结果。