1、计算机控制系统炉温控制炉温控制技术指标设计一个基于闭环直接数字控制算法的电阻炉温度控制系统具体化技术指标如下:1.电阻炉温度控制在0500;2. 加热过程中恒温控制,误差为2;3. LED实时显示系统温度,用键盘输入温度,精度为1;4. 采用直接数字控制算法,要求误差小,平稳性好;5. 温度超出预置温度5时发出报警。控制器算法:PID调节是连续系统中技术最成熟的、应用最广泛的一种控制算方法。它结构灵活,不仅可以用常规的PID调节,而且可以根据系统的要求,采用各种PID的变型,如PI、PD控制及改进的PID控制等. 所以该系统采用PID控制算法。系统的结构框图如图3-1所示:具有一阶惯性纯滞后特
2、性的电阻炉系统,其数学模型可表示为: (2-1)在PID调节中,比例控制能迅速反应误差,从而减小误差,但比例控制不能消除稳态误差,的加大,会引起系统的不稳定;积分控制的作用是:只要系统存在误差,积分控制作用就不断地积累,输出控制量以消除误差,因而,只要有足够的时间,积分控制将能完全消除误差,积分作用太强会使系统超调加大,甚至使系统出现振荡;微分控制可以使减小超调量,克服振荡,提高系统的稳定性,同时加快系统的动态响应速度,减小调整时间,从而改善系统的动态性能。将P、I、D三种调节规律结合在一起,可以使系统既快速敏捷,又平稳准确,只要三者强度配合适当,便可获得满意的调节效果。模拟PID控制规律为:
3、 (2-2)式中:称为偏差值,可作为温度调节器的输入信号,其中为给定值,为被测变量值;为比例系数;为积分时间常数;为微分时间常数;为调节器的输出控制电压信号。因为计算机只能处理数字信号,故上述数字方程式必须加以变换。设采样周期为T,第次采样得到的输入偏差为,调节器的输出为,作如下近似: (用差分代替微分) (用求和代替积分)这样,式(2-2)便可改写为: (2-3)其中,为调节器第次输出值;、分别为第次和第次采样时刻的偏差值。由式可知: 是全量值输出,每次的输出值都与执行机构的位置一一对应,所以称之为位置型PID算法。在这种位置型控制算法中,由于算式中存在累加项,而且输出的控制量不仅与本次偏差
4、有关,还与过去历次采样偏差有关,使得产生大幅度变化,这样会引起系统冲击,甚至造成事故。所以在实际中当执行机构需要的不是控制量的绝对值,而是其增量时,可采用增量型PID算法。当控制系统中的执行器为步进电机、电动调节阀、多圈电位器等具有保持历史位置的功能的这类装置时,一般均采用增量型PID控制算法。与位置算法相比,增量型PID算法有如下优点:(1)位置型算式每次输出与整个过程状态字有关,计算式中要用到过去偏差的累加值 ,容易产生较大的累积计算误差;而在增量型算式中由于消去了积分项,从而可消除调节器的积分饱和,在精度不足时,计算误差对控制量的影响较小,容易取得较好的控制效果。(2)为实现手动自动无忧
5、切换,在切换瞬时,计算机的输出值应设置为原始阀门开度 ,若采用增量型算法,其输出对应与阀门位置的变化部分,即算式中不出现 项,所以易于实现从手动到自动得的无忧动切换。(3)采用增量型算法时所用的执行器本身都具有寄存作用,所以即使计算机发生故障,执行器仍能保持在原位,不会对生产造成恶劣影响。正因为具有上述优点,在实际控制中,增量型算法要比位置算法应用更加广泛。利用位置型PID控制算法,可得到增量型PID控制算法的递推形式为: (2-4)式中,为比例增益;为积分系数;为微分系数。为了编程方便,可将式(2-4)整理成如下形式: (2-5)式中:总体设计:系统的硬件包括微控制器部分(主机)、温度检测、
6、温度控制、人机对话(键盘/显示/报警)4个主要部分,系统的结构框图如图4-1所示。系统程序采用模块化设计方法,程序有主程序、中断服务子程序和各功能模块程序组成,各功能模块可直接调用。图4-1 系统结构框图系统硬件设计:温度检测电路温度检测电路包括温度传感器、变送器和A/D转换三部分。传感器选用型号为WZB-003的铂热电阻,可满足本系统0500测量范围的要求。变送器将电阻信号转换成与温度成正比的电压,当温度在0500时变送器输出04.9v左右的电压。A/D转换可采用ADC0809进行,亦可采用单片机内部A/D功能进行。电路设计好后调整变送器的输出,使0500的温度变化对应于04.9v的输出,则
7、A/D转换对应的数字量位00HFAH,即0250,转换结果乘以2正好是温度值。用这种方法一方面可以减少标度变换的工作量,另一方面还可以避免标度变换带来的计算误差。温度控制电路:控制电路采用可控硅来实现,双向可控硅SCR和电路电阻丝串接在交流220V市电回路中,单片机信号通过光电隔离器和驱动电路送到可控硅的控制端,由端口的高低电平来控制可控硅的导通与断开,从而控制电阻丝的通电加热时间。将当前温度与预置温度比较,当前温度小于预置温度时,继电器闭合,接通电阻丝加热;当前温度大于预置温度时,继电器断开,停止加热;当二者相等时电路保持原来状态;当温度降低到比预置温度低2时,再重新启动加热;当前温度超出报
8、警上下限时将启动报警,并停止加热。由于电炉加热时,当前温度有可能低于报警下限,为防止误报,在未达到预置温度时,不允许报警,为此设置了报警允许标志位F0。键盘管理为使系统简单紧凑,键盘只设置四个功能键,分别是“启动键”、“百位”、“十位”和“个位”。由P1口低四位作为键盘接口。利用数字键可以分别对预置温度的百位、十位和个位进行0500的温度设置。数码显示本系统设有3位LED数码显示器,用于显示电阻炉的设定温度和实际温度。采用串行口扩展的静态显示电路作为显示接口电路。报警报警功能由蜂鸣器实现,当由于意外因素导致电阻炉温度高于设置温度时,单片机驱动蜂鸣器鸣叫报警。报警上限温度值为预置温度+5,即当前
9、温度上升到高于预置温度+5时报警,并停止加热;报警下限温度值设为预置温度-5,即当前温度下降到低于预置温度-5,且报警允许时报警,这是为了防止开始从较低温度加温时误报警。报警的同时也关闭电电炉。硬件连接整体电路如下:软件设计:89C51主程序的工作情况,主程序完成系统的初始化,温度预置及其合法性检测。预置温度的显示及定时器T0的初始化设置等。T0中断服务程序是温度控制体系的主体,用于温度检测、控制和报警。主程序和中断服务子程序的流程图如图4-2所示。主程序如下:TEMP1 EQU 50H ;当前检测温度(高位)TEMP2 EQU TEMQ1+1 ;当前检测温度(低位)ST1 EQU 52H ;
10、预置温度(高位)ST2 EQU 53H ;预置温度(低位)T100 EQU 54H ;温度BCD码显示缓冲区(百位)T10 EQU T100+1 ;温度BCD码显示缓冲区(十位)T EQU T100+2 ;温度BCD码显示缓冲区(个位)BT1 EQU 57H ;温度二进制码显示缓冲区(高位)BT2 EQU BT1+1 ;温度二进制码显示缓冲区(低位)ADIN0 EQU 7FF8H ;ADC 0809通道IN0的端口地址F0 BIT PSW.5 ;报警允许标志TEMP1 DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;50H58H单元初始化(清零)
11、 ORG 0000H AJMP MAIN ;转主程序 ORG 00BH AJMP PT0 ;转T0中断服务子程序 ORG 0030HMAIN: MOV SP,#59H ;设堆栈标志 CLR F0 ;报警标志清零 MOV TMOD,#01H ;定时器0初始化(方式1) MOV TL0,#0B0H ;定时器100ms定时常数 MOV TH0,#3CH MOV R7,#150 ;置15s软计数器初值 SETB ET0 ;允许定时器0中断 SETB EA ;开中断 SETB TRO ;启动定时器0MAIN1:ACALL KIN ;调键盘管理子程序 ACALL DISP ;调用显示子程序 SJMP MA
12、IN1定时器0中断服务子程序PT0:PT0: MOV TL0,#0BOH MOV TH0,#3CH ;重置定时器0初值 DJNZ R7,BACK ;15s到否,不到返回 MOV R7,#150 ;重置软计数器初值 ACALL TIN ;温度检测 MOV BT1,TEMP1 ;当前温度送到显示缓冲区 MOV BT0,TEMP0 ACALL DISP ;显示当前温度 ACALL CONT ;温度控制 ACALL ALARM ;温度越限报警BACK:RETI温度检测电路本设计A/D转换采用查询方式(由P1.4查询ADC0809的ECO转换结束信号)。为提高采样的可靠性,对采样温度进行数字滤波。数字滤
13、波的方法很多,这里采用4次采样取平均值的方法。因此,4次采样的数字量之和除以2就是检测的当前温度。温度检测子程序流程图如图4-3所示。图4-3 温度检测子程序流程图温度控制电路温度控制模块流程图见图4-4。键盘管理键盘管理子程序流程图如图4-5所示。数码显示显示子程序DISP如下:DISP: ACALL HTB ;调用将显示数据转换成BCD码的子程序HTB MOV SCON,#00H ;置串行口为方式0 MOV R2,#03H ;显示位数送R2 MOV R0,#T100 ;显示缓冲区首地址送R0LD: MOV DPTR,#TAB ;指向字符码表首地址 MOV A,R0 ;取出显示数据 MOVC A,A+DPTR ;查表 MOV SBUF,A ;字符码送串行口WAIT: JBC TI,NEXT ;发送结束转下一个数据并清除中断标志 SJMP WAIT ;发送未完等待NEXT: INC R0 ;修改显示缓冲区指针 DJNZ R2,LD ;判断3位显示完否,未完继续 RETTAB: ;字符码表报警NN