电气工程与自动化学院课程设计报告(控制基础)题目:基于大林算法的炉温控制系统设计与仿真专业班级:自动化101班学号:26号学生姓名:许瑞新指导老师:杨国亮2012 年 12 月 21 日摘要在许多实际工程中 , 经常遇到一些纯滞后调节系统,往往滞后时间比较长。
对于这样的系统, 人们较为感兴趣的是要求系统没有超调量或很少超调量, 超调成为主要的设计指标。
尤其是具有滞后的控制系统, 用一般的随动系统设计方法是不行的, 而且 PID 算法效果往往也欠佳。
在温度控制技术领域中, 普遍采用控制算PID法。
但是在一些具有纯滞后环节的系统中, PID控制很难兼顾动、静两方面的性能, 而且多参数整定也很难实现最佳控制。
IBM公司的大林于1968年提出一种针对工业生产过程中含有纯滞后的控制对象的控制算法,即大林算法。
它具有良好的效果,采用大林算法的意义在于大林控制算法能在一些具有纯滞后环节的系统中兼顾动静两方面的性能,若采用大林算法, 可做到无或者小超调,无或小稳态误差,控制效果比较理想。
对工程实际应用具有很大的意义。
下面就PID设计和大林算法设计比较,发现二者的不同之处,然后用Matlab的GUI功能将两者制作成可简单操作的用户图形界面。
关键词:大林算法;PID控制;GUI界面;Matlab;目录第一章大林算法在炉温控制中的应用 (3)1.1大林算法简介 (3)1.2大林算法在炉温控制中的设计思路 (3)1.3大林算法实现炉温控制中的代码算法及波形图 (5)第二章 PID实现炉温控制的仿真 (7)2.1 PID的原理及介绍 (7)2.2 PID炉温控制算法程序设计 (8)第三章大林算法和PID实现炉温控制的SIMULINK仿真 (11)3.1 大林算法SIMULINK仿真结构图及波形 (11)3.2 PID的SIMULINK仿真 (11)3.3 大林算法和PID的比较 (12)第四章 GUI图形用户界面编程设计 (13)4.1 GUI简介 (13)4.2 GUI界面的建立 (13)4.2.1编写pushButton回调函数 (16)4.2.2仿真波形 (17)致谢 (18)参考文献 (19)第一章 大林算法在炉温控制中的应用1.1大林算法简介大林算法是由美国IBM 公司的大林(Dahllin)于1968年针对工业生产过程中含纯滞后的控制对象的控制算法。
该算法的设计目标是设计一个合适的数字控制器,使整个系统的闭环传递函数为带有原纯滞后时间的一阶惯性环节。
大林算法是运用于自动控制领域中的一种算法,是一种先设计好闭环系统的响应再反过来综合调节器的方法。
设计的数字控制器(算法)使闭环系统的特性为具有时间滞后的一阶惯性环节,且滞后时间与被控对象的滞后时间相同,此算法具有消除余差、对纯滞后有补偿作用等特点。
1.2大林算法在炉温控制中的设计思路已知电阻炉对象数学模型为1)(+=-Ts ke s G sτ 其中,k=12, T=400, 63=τ,电阻炉的温度设定为1000℃.要求:(1)设计大林控制算法;(2)设计PID 控制器,并与PID 算法进行比较;(3)改变模型参数,考察模型扰动下系统性能变化情况。
设计思路:τ—温控炉时间常数K —调节系统总的放大倍数θ —系统的纯滞后时间, 且θ = N T , T 为采样周期在被控制对象前加一个零阶保持器,将连续系统离散化,闭环系统的脉冲传递函数为:D (z)为温控炉按大林算法得出的数字控制器的数学模型。
为了计算机实现比较方便, 把D (z)进一步简化为:根据流程图编写程序:图1—1 程序设计流程图1.3大林算法实现炉温控制中的代码算法及波形图实验程序及波形图:r=1000;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/Tme=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)01002003004005006007008009001000图1—2 大林算法实现炉温控制波形图性能分析:基于大林算法的炉温控制系统仿真时,可以调节温控炉时间常数T 使闭环系统的指标达到最佳。
当T 很小时,响应很快但稳定性不好系统会产生震荡;当T 增大,系统的响应变慢,但稳定性很好。
而且由波形图可见大林控制算法下系统几乎无超调,响应速度也很快,性能效果很好。
第二章PID实现炉温控制的仿真2.1 PID的原理及介绍其中, ()u k 为调节器第k 次输出值;()e k 、(1)e k -分别为第k 次和第1k -次采样时刻的偏差值。
由式可知:()u k 是全量值输出,每次的输出值都与执行机构的位置一一对应,所以称之为位置型PID 算法。
在这种位置型控制算法中,由于算式中存在累加项,而且输出的控制量不仅与本次偏差有关,还与过去历次采样偏差有关,使得产生大幅度变化,这样会引起系统冲击,甚至造成事故。
所以在实际中当执行机构需要的不是控制量的绝对值,而是其增量时,可采用增量型PID 算法。
当控制系统中的执行器为步进电机、电动调节阀、多圈电位器等具有保持历史位置的功能的这类装置时,一般均采用增量型PID 控制算法。
2.2 PID 炉温控制算法程序设计(1)“PID 控制”控制算法程序框图如图3—1所示。
(2)“PID控制”控制算法程序代码如下:kp=input(‘比例Kp=’);ki=input(‘积分Ki=’);kd=input(‘微分Kd=’);K=input(‘K=’);ts=10;sys=tf([K],[400,1],'inputdelay',60);dsys=c2d(sys,ts,'zoh');[num,den]=tfdata(dsys,'v');u_1=0;u_2=0;u_3=0;u_4=0;u_5=0;ud_1=0;y_1=0;y_2=0;y_3=0;error_1=0;ei=0;for k=1:1:400time(k)=k*ts;rin(k)=1000;yout(k)=-den(2)*y_1+num(2)*u_5;error(k)=rin(k)-yout(k);ei=ei+error(k)*ts;gama=0.50;Td=kd/kp;Ti=1;c1=gama*Td/(gama*Td+ts);c2=(Td+ts)/(gama*Td+ts);c3=Td/(gama*Td+ts);u(k)=kp*error(k)+kd*(error(k)-error_1)/ts+ki*ei; u_5=u_4;u_4=u_3;u_3=u_2;u_2=u_1;u_1=u(k);y_3=y_2;y_2=y_1;y_1=yout(k);error_2=error_1;error_1=error(k);endplot(time,rin,'r',time,yout,'b');xlabel('time(s)');ylabel('rin,yout');(3)“PID控制”控制算法波形图如下:05001000150020002500300035004000200400600800100012001400time(s)r i n ,y o u t图3—2 “PID 控制”控制算法波形图由图3—2可知,PID 控制调节器超调量较大,控制效果不太理想。
第三章大林算法和PID实现炉温控制的SIMULINK仿真3.1 大林算法SIMULINK仿真结构图及波形图2—1 大林算法实现炉温控制的SIMULINK仿真结构图图2—2 大林算法实现炉温控制的SIMULINK仿真波形图3.2 PID的SIMULINK仿真图2—3 PID实现炉温控制的SIMULINK仿真结构图图2—2 大林算法实现炉温控制的SIMULINK仿真波形3.3 大林算法和PID的比较大林算法适合用于没有超调或较小的超调而对快速性要求不高的场合。
PID控制多年来受到广泛的的应用,PID在解决快速性、稳态误差、超调量等问题上具有很好的应用。
PID的调整时间,动态性能都很好,但是PID也有需要改进的地方。
如:积分项的改进在PID控制中,积分作用是消除稳态误差,提高控制精度。
但是很多时候积分作用又会对系统的动态响应造成不良影响,是系统产生大的超调或时间震荡。
具体的改进有:(1)积分项的改进有积分分离法、抗积分饱和法;(2)微分项的改进有不完全微分PID控制算法、微分先行PID控制算法。
第四章GUI图形用户界面编程设计4.1 GUI简介MATLAB是控制系统计算机辅助分析与设计的一个卓越平台,具有开放的环境、功能极强的矩阵运算、图形绘制、数据处理、各种工具箱以及像“草稿纸”一样的工作空间等许多优点,为控制工程基础的教学提供了一个连续的、有实用价值的工具。
但命令繁多,分析起来过于零散,难于对控制系统的性质有个整体的掌握,困此.编制一个辅助教学工具箱是必要的。
在MATLAB开发平台中,有可视化编程能力很强的图形用户界面GUI,设计相应的控制系统辅助课程教学工具箱是完全可行的。
图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。
与早期计算机使用的命令行界面相比,图形界面对于用户来说在视觉上更易于接受。
借助 MATLAB语言有中具有可视化编程能力很强的图形用户界面GUI,构建控制系统 CAI课程教学应用软件的使用环境,开发出操作简捷,形式灵活,界面友好,实用性强的人机对话窗口,提供一个方便的软件操作平台,计算机辅助分析与设计得到简化,同时也能提高学生动手分析与设计系统的主动性和创造性。
使用本软件教学系统,除了控制系统模型的参数设置通过键盘输入以外,其他的全部工作都只需用鼠标选择菜单的操作来完成,且无需任何编程操作。