《基于PID电加热炉温度控制系统设计.doc》由会员分享,可在线阅读,更多相关《基于PID电加热炉温度控制系统设计.doc(32页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、. .基于PID电加热炉温度控制系统设计摘要电加热炉随着科学技术的开展和工业生产水平的提高,已经在冶金、化工、机械等各类工业控制中得到了广泛应用,并且在国民经济中占有举足轻重的地位。对于这样一个具有非线性、大滞后、大惯性、时变性、升温单向性等特点的控制对象,很难用数学方法建立准确的数学模型,因此用传统的控制理论和方法很难到达好的控制效果。单片机以其高可靠性、高性能价格比、控制方便简单和灵活性大等优点,在工业控制系统、智能化仪器仪表等诸多领域得到广泛应用。采用单片机进展炉温控制,可以提高控制质量和自动化水平。一、 绪论在本控制对象电阻加热炉功率为8可W,由220V交流电供电,采用双向可控硅进展控
2、制。本设计针对一个温度区进展温度控制,要求控制温度X围50350C,保温阶段温度控制精度为正负1度。选择适宜的传感器,计算机输出信号经转换后通过双向可控硅控制器控制加热电阻两端的电压。其对象问温控数学模型为:其中:时间常数Td=350秒,放大系数Kd=50,滞后时间=10秒,控制算法选用改PID控制实时温度采样显示设定值单片机设定温度电源控制电阻加热炉图1.1系统总体构造图二、控制系统的建模和数字控制器设计输入并采样r(K)、c(K)开场计算偏差eK=r(K)-c(K)计算 u(k)=qe(k)+qe(k-1)+qe(k-2)存u(k)以备输出参数序号e(k-1)e(k-2)调整 e(k)e(
3、k-1)返回图2 PID算法流程图数字PID控制算法 PID控制器是通过计算机PID控制算法程序实现的。计算机直接数字控制系统大多数是采样-数据控制系统。进入计算机的连续-时间信号,必须经过采样和整量化后,变成数字量,方能进入计算机的存贮器和存放器,而在数字计算机中的计算和处理,不管是积分还是微分,只能用数值计算去逼近。受控对象PID位置算法reuy+-图2.1位置PID控制算法简化示意图 在数字计算机中,PID控制规律的实现,也必须用数值逼近的方法。当采样周期相当短时,用求和代替积分,用差商代替微商,使PID算法离散化,将描述连续时间PID算法的微分方程,变为描述离散-时间PID算法的差分方
4、程。 用矩形积分时,有 1 用差分代替微分2 由上式得 (3) 式中 u0控制量的基值,即k=0时的控制;u(k)第k个采样时刻的控制;KP比例放大系数;KI积分放大系数;KD微分放大系数;TS采样周期。 式3是数字PID算法的非递推形式,称全量算法。算法中,为了求和,必须将系统偏差的全部过去值e(j)j=1,2,3,. ,k都存储起来。这种算法得出控制量的全量输出u(k),是控制量的绝对数值。在控制系统中,这种控制量确定了执行机构的位置。当执行机构需要的不是控制量的绝对值,而是控制量的增量例如去驱动步进电动机时,需要用PID的“增量算法。yuerPID增量算法受控对象-+步进电机u由位置算法
5、求出 再求出 两式相减,得出控制量的增量算法 (4) 式(4)称为增量式PID算法。对增量式PID算法4归并后,得 (5) 从式5看出,数字增量式PID算法,只要贮存最近的三个误差采样值e(k),e(k-1),e(k-2)就足够了。如果计算机系统采用恒定的采样周期T,一旦确定q,q,q只要使用前后测量三次的偏差值,就可以由上式求出控制量。typedefstructPIDIntSetPoint;/设定目标DesiredValueLongSumError;/误差累计doublepropotion;/比例常数PropotionConstDoubleintegral;/积分常数IntegralCons
6、tDoublederivative;/微分常数DerivativeConstintLastError;/Error-1IntPrevError;/Error-2PID;ststicPIDsPID;/*InitializePIDStructurePID参数初始化*/voidIncPIDInit(void)sptr-SumError=0;sptr-LastError=0;/Error-1sptr-PrevError=0;/Error-2sptr-Propotion=0;/比例常数PropotionalConstsptr-integral=0;/积分常数IntegralConstsptr-deriv
7、ative=0;/微分常数DerivativeConstsptr-SetPoint=0;/*增量式PID计算局部*/intIncPIDCalc(intNextPoint)registerintierror,iIncpid;/当前误差ierror=sptr-SetPoint-NextPoint;/增量计算三硬件的设计和实现3.1AT89C51系列根本组成及特性AT89C51是一种带4K字节FLASH存储器FPEROMFlash Programmable and Erasable Read Only Memory的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节
8、闪存可编程可擦除只读存储器的单片机。图3.1AT89C51管脚管脚说明:VCC:供电电压。 GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进展校验时,P0输出原码,此时P0外部必须接上拉电阻。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉
9、的缘故。在FLASH编程和校验时,P1口作为低八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进展存取时,P2口输出地址的高八位。在给出地址“1时,它利用内部上拉优势,当对外部八位地址数据存储器进展读写时,P2口输出其特殊功能存放器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/
10、O口,可接收输出4个TTL门电流。当P3口写入“1后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流ILL这是由于上拉的缘故。 P3口也可作为AT89C51的一些特殊功能口,如下表所示: 口管脚备选功能:P3.0 RXD串行输入口 P3.1 TXD串行输出口 P3.2 /INT0外部中断0 P3.3 /INT1外部中断1 P3.4 T0记时器0外部输入 P3.5 T1记时器1外部输入 P3.6 /WR外部数据存储器写选通 P3.7 /RD外部数据存储器读选通 P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持RS
11、T脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想制止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE制止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每
12、个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,那么在此期间外部程序存储器0000H-FFFFH,不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源VPP。 3.2键盘模块在本次设计当中,输入设备采用4*4矩阵键盘。当“设定键按下时触发键盘中断效劳程序,由程序程控扫描法确定那个键按下并执行相应的动作。程控扫描的任务是:(1)首先判断是否有键按下。方法:使所有的行输出均为低电平,然后从端口A读入
13、列值。如果没有键按下,那么读人值为FFH如果有链按下那么不为FFH。(2)去除键抖动。方法:延时1020 ms,再一次判断有无键按下,如果此时仍有键按下,那么认为键盘上确实有键处于稳定闭合期。(3)假设有键闭合,那么求出闭合键的键值。方法:对键盘逐行扫描。程序中需等闭合键释放后才对其进展处理。3.3设计输入输出通道输入通道:因为所控的实际温度在50 350,即35050300所以选用8位A/D转换器,其分辨率约为1.5/字,再加放大器偏置措施实现。通过调整放大器的零点来实现偏置这里采用一般中速芯片ADC0809。ADC0809是带有8位A/D转换器,8路多路开关以及微型计算机兼容的控制逻辑的C
14、MOS组件,其转换方法为逐次逼近型。8路的模拟开关由地址锁存器和译码器控制,可以在8个通道中任意访问一个通道的模拟信号。这种器件无需进展零位和满量程调整。由于多路开关的地址输入局部能够进展锁存和译码,而且其三态TTL输出也可以锁存,所以它易于与微型计算机接口。其具有较高的转换速度和精度,受温度影响较小,能较长时间保证精度,重现性好,功耗较低,故用于过程控制是比拟理想的器件。ADC0809应用接线图输出通道:据其实际情况,D/A转换器的位数可低于A/D转换器的位数,因为一般控制系统对输出通道分辨率的要求比输入通道的低,所以这里采用常用的DAC0832芯片。DAC0832是8位D/A转换器,与微处
15、理器完全兼容。期间采用先进的CMOS工艺,因此功耗低,输出漏电流误差较小。它的内部具有两级输入数据缓冲器和一个R-2RT型电阻网络,因DAC0832电流输出型D/A转换芯片,为了取得电压输出,需在电流输出端接运算放大器,Rf为为运算放大器的反应电阻端。双极性电压输出的D/A转换电路通常采用偏移二进制码、补码二进制码和符号一数值编码。只要在单极性电压输出的根底上再加一级电压放大器,并配以相关电阻网络就可以构成双极性电压输出。在上图中,运算放大器A2的作用是把运算放大器A1的单向输出电压转变为双向输出。3.4电源局部本系统所需电源有220V交流市电、直流5V电压和低压交流电,故需要变压器、整流装置
16、和稳压芯片等组成电源电路。电源变压器是将交流电网220V的电压变为所需要的电压值,然后通过整流电路将交流电压变为脉动的直流电压。由于此脉动的直流电压还含有较大的纹波,必须通过滤波电路加以滤除,从而得到平滑的直流电压。但这样的电压还随电网电压波动一般有+-10%左右的波动、负载和温度的变化而变化。因而在整流、滤波电路之后,还需要接稳压电路。稳压电路的作用是当电网电压波动、负载和温度变化时,维持输出直流电压稳定。整流装置采用二极管桥式整流,稳压芯片采用78L05,配合电容将电压稳定在5V,供控制电路、测量电路和驱动执行电路中弱电局部使用。除此之外,220V交流市电还是加热电阻两端的电压,通过控制双
17、向可控硅的导通与截止来控制加热电阻的功率。低压交流电即变压器二次侧的电压,通过过零检测电路检测交流电的过零点,送入单片机后,由控制程序决定双向可控硅的导通角,以到达控制加热电阻功率的目的。四、软件设计4.1系统主程序本系统的应用程序主要由主程序、中断效劳程序和子程序组成。主程序的任务是对系统进展初始化,实现参数输入,并控制电加热炉的正常运行。主程序主要由系统初始化、数据采集及处理、智能推理等局部组成。系统初始化包括设置栈底、工作存放器组、控制量的初始值、采样周期、中断方式和状态、定时器的工作方式以及8255的初始化、MAX1232的初始化等。数据采集及处理主要包括实时采集电加热炉的炉温信号,计
18、算出实际炉温与理想值的差值以及温差的变化率,并对炉温信号进展滤波和限幅处理。开场系统的初始化温度数据采集及处理温度值显示计算温差ek和温差变化率智能控制算法程序控制输出求出输出控制量完毕NY图4.1系统主程序 4.2模数转换模块ADC0809是一个典型的逐次逼近型8位A/D转换器。它由8路模拟开关、8位A/D转换器、三态输出锁存器及地址锁存译码器等组成。它允许8路模拟量分时输入,转换后的数字量输出是三态的总线型输出,可以直接与单片机数据总线连接。ADC0809采用+5V电源供电,外接工作时钟。当典型工作时钟为500KHz时,转换时间约为128us.(1) 时钟信号:由于ADC0809无片选端,
19、因此电路增加了或非门74LS02,以便对ADC0809进展读/写控制。单片机采用6MHz/s的晶振,ALE输出66MHz/s时钟信号,经74LS74触发器2分频,得到500KHz的时钟信号,与ADC0809的时钟端CLK相连。(2) 通道选择:三位通道选择端ADDA、ADDB、ADDC与数据线P1口的低三位P1.0、P1.1、P1.2相连,用数据线进展通道选择,由P1.0、P1.1、P1.2三位决定选择那一通道。(3) ADC0809启动:ADC0809的启动端START、地址所存端ALE均为高电平有效。将START和ALE连在一起,与74LS02的输出端相连。或非门74LS02的两个输入端/
20、WR和P3.5均为低电平时,其输出为高电平,执行外部I/O口的写操。开场将PSW压栈调显示程序读A/D结果置位状态位F0关闭报警F0是否等于零调PID控制算法程序报警子程序PSW出栈并返回输出控制量启动定时器T1溢出标志TF1是否为零设定值与AD结果比拟交流电是否过零结果=0结果or设定值的20%-20%结果20%F0=0F0=0NYNY 图4.2.1A/D转换完毕中断效劳程序流程图按键检测与处理流程图如图4.2.2所示是否有按键NY延时10-20ms是否有按键N按键已释放YNY获得键值,键处完毕图4.2.2按键检测与处理流程图编写D/A转换控制程序:DAC0832实现D/A转换,可以采用下面
21、程序段。设定要转换的数据放在1000H单元中。MOVBX,1000HMOVAL,BX取转换资料MOVDX,PORTAPORTA为D/A转换端口地址OUTDX,AL4.3LED显示模块图4.3显示子程序4.4数字控制算法子程序流程图4.5报警模块根据设计要求,在保温阶段,温度控制精度为正负1度,故当温度下降或上升2度时为故障状态,需要报警提醒。所以在电路设计上应用了蜂鸣器和发光二极管,系统正常运行时绿色发光二极管点亮,当出现故障时红色发光二极管点亮并且蜂鸣器鸣叫,提醒操作人员注意。报警状态可通过按键复位和系统恢复正常后自动复位开场置报警位P3.4子程序返回去除报警状态位F0图4.4报警子程序4.
22、6程序清单4.5.1 主程序ORG 0000HAJMP MAINORG 0003HAJMP KEYSORG 000BHAJMP PIT0ORG 001BHAJMP PIT1 ;中断入口及优先级MAIN: MOV SP,#00H CLR 5FH :清上下限越限标志 MOV A,#00HMOV R7,#09HMOV R0,#28HLP1:MOV R0,AINC R0 DJNZ R7,LP1MOV R7,#06HMOV R0,#39HLP2:MOV R0,AINC R0DJNZ R7,LP2MOV R7,#06HMOV RO,#50HLP3:MOV R0,AINC R0DINZ R7,LP3 ;清显
23、示缓冲区MOV 33H,#00HMOV 34H,#00H ;赋KP上下字节MOV 35H,#00HMOV 36H,#00H ; 赋KI上下字节MOV 37H,#00H MOV 38H,#00H ; 赋KD上下字节MOV 42H,#00HMOV 43H,#00H ;赋K上下字节MOV TMOD,#56H ;T0方式2,T1方式1计数MOV TLO,#06HMOV THO,#06H MOV 25H,#163H ;设定值默认值350SETB TR0 ;键盘高优先级SETB ET0SETBEX0SETB EA ;开键盘T0。T1中断LOOP:MOV R0,#56H MOV R1,#55H LCALLS
24、CACOV ;标度转化 MOV R0,#53H LCALLDIR NOP LCALLDLY10MS NOP LCALLDLY10MS AJMP LOOP;等中断4.5.2 键盘子程序KEYS:CLR EX0 CLR EA PUSH PSW PUSH ACC ;关中断 LCALLDLY10MS ;消抖CC: P3.2 AASETB 5DH ;置“显示设定值温度值标志MOV A,25H ;取运算位的值MOV B,#10H ;BCD码转化DIV A BMOV 52H,AMOV A, BMOV 51H, AMOV R0,#50HLCALL DIR ;显示设定温度NOPLCALLDLY10MSNOPLC
25、ALL DLY10MS P1.7 ,BBMOV R1,#25HLCALL DAAD1NOP LCALL DLY10MS AJMP CCBB: P1.6 CCMOV R1,#25HLCALL DEEC1NOPLCALL DLY10MSAJMP CCAA: POP ACCPOP PSWSETB EX0SETB EA ;出栈RETI4.5.3 显示子程序DIR: MOV SCON ,#00H ;置串行口移位存放器状态SETB P1.4 ;开显示 5DH,DL1 ;显示设定温度DL2: MOV DPTR,#SEGTDL0: MOV A,R0MOVC A,A+DPTRMOV SBUF ,ALOOP1:
26、JNB TI, LOOP1 CLR TIINC R0MOV A,R0MOVC A,A+DPTRANL A, #7FH ;使数带小数点MOV SBUF ,ALOOP2: JNB TI,LOOP2CLR TIINC R0MOV A,R0MOVC A,A+DPTRMOV SBUF,ALOOP3: JNB TI,LOOP3CLR TICLR P1.4CLR 5DHRETDL1: MOV 50H,#0AH ;小数位黑屏 AJMP DL2SEGT: DB 0C0H ,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH4.5.4 T0中断子程序PTT0: CLR EAP
27、USH ACCPUSH PSWPUAH DPLPUSH DPHSETB EA ;压栈后开中断响应键盘PPP: LCALLSMAP ;采样数据LCALL FILTER ;数字滤波MOV A,2AH ;取采样值CJNE A,#07H,AAA ;下限48比拟AJMP BBBAAA: JC CCC ;小于48度转CJNEA,#0FEH ,DDD ;上限355比拟AJMP BBB ;转至48355正常X围处理DDD: JC BBCLR P1.2 ;大于355黄灯亮SETB 5EHCLR P1.1 ;置标志 启动风扇AJMP PPPCCC: CLR P1.3 ;小于48红灯亮SETB 5FHBBB: CL
28、R P1.0 ;置标志启动电炉AJMPPPPSETB P1.0SETB P1.1SETB P1.2SETB P1.3CLR 5EHCLR 5FH ;50350之间正常LCALL PIDJNB 20H,EEF ;设定温度小于实际值转到风扇MOV A,29HLCALLFFFCLR P1.0LOOP10: MOV R0,#56H ;存放相乘结果的首址MOV R1,#55H ;赋显示缓冲区最高位地址LCALL SCACOV ;标度转化 MOV R0,#53H;;赋显示首址 CLR DIR D5H,LOOP10 ;等待T1中断 CLR EA POP DPH POP DPL POP PSWSETB EAP
29、OP ACCRETIEEE: MOV A,28H ;风扇处理 LCALL FFF CLR P1.1AJMP LOOP10FFF: CRL A ;根据PID结果计算T1初值 INC A MOV TL1,A MOV TH1,#0FFHSETB PI1 SETB TR1 SETB ET1 RET4.5.5采样子程序SWAP: MOV R0,#20H MOV R1,#03HSAW1: MOV DPTR,#7FF8H MOVX DPTR A ;A/D转化 MOV R2,#20HDLY: DJNZ R2,DLY ;延时HERE: P3.3 ,HEREMOV DPTR,#7FF8HMOVX A,DPTR ;
30、读转化结果MOV R0,AINC R0DJNZ R1,SAM1RET4.5.6数字滤波FILTER: MOV A, 20HCJNE A,2DH CMP1AJMP CMP2CMP1: JNC CMP2XCH A,2DH XCH A,2CHCMP2: MOV A,2DH CJNE A,22EH,CMP3 MOV 2AH,A AJMP RRCMP3: JC CMP4 MOV 2AH,A AJMP RRCMP4: MOV A,2EHCJNE A,2CH,CMP5MOV 2AH ,AAJMP RRCMP5: JC CMP6 XCH A,2CHCMP6: MOV 2AH,ARR: RET4.5.7T1中断
31、PIT1: CLR 00H 20H, GGGSETB P1.0 ;关闭电炉GG: CLR PT1RETIGGG:SETB P1.1 ;关闭风扇CLR 20H AJMP GG五、系统电路图系统电路图如下:六 总结这次的课程设计采用经典的PID算法控制,方法简单且对锅炉温度恒温控制起到良好的效果。课程设计加深了我们对平时学习的理论知识的理解,在理论和实验教学根底上进一步稳固所学根本理论和提高应用所学知识并加以综合应用的能力,培养学生将所学知识应用于实际的思想,提高分析和解决问题的能力,增强学生的综合能力,开发学生的智力,激发学生的创新精神,为毕业设计和以后工作打下必要根底。学习的过程是相互讨论共同进步的,多多讨论课题中遇到的问题,可以稳固我们的知识掌握能力,增加熟练运用度。通过各方面的努力,最终设计出了自己较为满意的系统。虽然做得很辛苦,但是自己付出的努力得到了回报,那种成就感是任何事物都无法代替的。还有在设计过程中,我们积累的经历,对我们以后的学习和工作会有莫大的帮助。参考文献1 康华光编著.电子技术根底模拟局部.高等教育,20002 于海生编著.计算机控制技术.机械工业,20033 李晓莹编著.传感器与测设技术.高等教育,2002 4 付家才编著.单片机实验与实践.高等教育,2004 5 谭浩强编著.MCS-51单片机应用教程.清华大学,2001. .word.zl.