基于PID电加热炉温度控制系统毕业设计论文.docx
《基于PID电加热炉温度控制系统毕业设计论文.docx》由会员分享,可在线阅读,更多相关《基于PID电加热炉温度控制系统毕业设计论文.docx(16页珍藏版)》请在冰豆网上搜索。
基于PID电加热炉温度控制系统毕业设计论文
基于PID电加热炉温度控制系统设计
纪和增
摘要电加热炉随着科学技术的发展和工业生产水平的提高,已经在冶金、化工、机械等各类工业控制中得到了广泛应用,并且在国民经济中占有举足轻重的地位。
对于这样一个具有非线性、大滞后、大惯性、时变性、升温单向性等特点的控制对象,很难用数学方法建立精确的数学模型,因此用传统的控制理论和方法很难达到好的控制效果。
单片机以其高可靠性、高性能价格比、控制方便简单和灵活性大等优点,在工业控制系统、智能化仪器仪表等诸多领域得到广泛应用。
采用单片机进行炉温控制,可以提高控制质量和自动化水平。
关键字PID;电加热炉;温度控制系统;单片机
1绪论
在本控制对象电阻加热炉功率为8可W,由220V交流电供电,采用双向可控硅进行控制。
本设计针对一个温度区进行温度控制,要求控制温度范围50~350C,保温阶段温度控制精度为正负1度。
选择合适的传感器,计算机输出信号经转换后通过双向可控硅控制器控制加热电阻两端的电压。
其对象问温控数学模型为:
其中:
时间常数Td=350秒,放大系数Kd=50,滞后时间=10秒,
控制算法选用改PID控制
图1.1系统总体结构图
2控制系统的建模和数字控制器设计
数字PID控制算法
在电子数字计算机直接数字控制系统中,PID控制器是通过计算机PID控制算法程序实现的。
计算机直接数字控制系统大多数是采样-数据控制系统。
进入计算机的连续-时间信号,必须经过采样和整量化后,变成数字量,方能进入计算机的存贮器和寄存器,而在数字计算机中的计算和处理,不论是积分还是微分,只能用数值计算去逼近。
图2.1位置PID控制算法简化示意图
在数字计算机中,PID控制规律的实现,也必须用数值逼近的方法。
当采样周期相当短时,用求和代替积分,用差商代替微商,使PID算法离散化,将描述连续时间PID算法的微分方程,变为描述离散-时间PID算法的差分方程。
用矩形积分时,有
(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的“增量算法”。
由位置算法求出
再求出
两式相减,得出控制量的增量算法
(4)
式(4)称为增量式PID算法。
对增量式PID算法(4)归并后,得
(5)
其中(5)已看不出是PID的表达式了,也看不出P、I、D作用的直接关系,只表示了各次误差量对控制作用的影响。
从式(5)看出,数字增量式PID算法,只要贮存最近的三个误差采样值e(k),e(k-1),e(k-2)就足够了。
3硬件的设计和实现
3.1AT89C51系列基本组成及特性
AT89C51是一种带4K字节FLASH存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。
AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。
图3.1AT89C51管脚
管脚说明:
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向IO口,每脚可吸收8TTL门电流。
当P0口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据地址的低八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须接上拉电阻。
P1口:
P1口是一个内部提供上拉电阻的8位双向IO口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为低八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向IO口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向IO口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下表所示:
口管脚备选功能:
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2INT0(外部中断0)
P3.3INT1(外部中断1)
P3.4T0(记时器0外部输入)
P3.5T1(记时器1外部输入)
P3.6WR(外部数据存储器写选通)
P3.7RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALEPROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的16。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次PSEN有效。
但在访问外部数据存储器时,这两次有效的PSEN信号将不出现。
EAVPP:
当EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,EA将内部锁定为RESET;当EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
振荡器特性:
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
3.2采样测量部分
在检测装置中,温度检测用WZP-231铂热电阻(Pt100),采用三线制接法,采样电路为桥式测量电路,其输入量程为50~350°C,经测量电路采样后输出2~5V电压,再经模数转换芯片ADC0809进行转换,变为数字量后送入单片机进行分析处理。
铂电阻温度传感器是利用其电阻和温度成一定函数关系而制成的温度传感器,由于其测量准确度高、测量范围大、复现性和稳定性好等,被广泛用于中温(-200℃~650℃)范围的温度测量中。
PT100是一种广泛应用的测温元件,在-50~600℃范围内具有其他任何温度传感器无可比拟的优势,包括高精度、稳定性好、抗干扰能力强等。
由于铂电阻的电阻值与温度成非线性关系,所以需要进行非线性校正。
校正分为模拟电路校正和微处理器数字化校正,模拟校正有很多现成的电路,其精度不高且易受温漂等干扰因素影响,数字化校正则需要在微处理系统中使用,将Pt电阻的电阻值和温度对应起来后存入EEPROM中,根据电路中实测的AD值以查表方式计算相应温度值。
常用的Pt电阻接法有三线制和两线制,其中三线制接法的优点是将PT100的两侧相等的的导线长度分别加在两侧的桥臂上,使得导线电阻得以消除。
常用的采样电路有两种:
一为桥式测温电路,一为恒流源式测温电路。
在本系统设计中,采用了第一种方法,即桥式测温。
测温原理:
电路采用TL431和电位器VR1调节产生4.096V的参考电源;采用R1、R2、VR2、Pt100构成测量电桥(其中R1=R2,VR2为100Ω精密电阻),当Pt100的电阻值和VR2的电阻值不相等时,电桥输出一个mV级的压差信号,这个压差信号经过运放LM324放大后输出期望大小的电压信号,该信号可直接连AD转换芯片。
差动放大电路中R3=R4、R5=R6、放大倍数=R5R3,运放采用单一5V供电。
设计及调试注意点:
1.同幅度调整R1和R2的电阻值可以改变电桥输出的压差大小;
2.改变R5R3的比值即可改变电压信号的放大倍数,以便满足设计者对温度范围的要求
3.放大电路必须接成负反馈方式,否则放大电路不能正常工作。
4.VR2也可为电位器,调节电位器阻值大小可以改变温度的零点设定,例如Pt100的零点温度为0℃,即0℃时电阻为100Ω,当电位器阻值调至109.885Ω时,温度的零点就被设定在了25℃。
测量电位器的阻值时须在没有接入电路时调节,这是因为接入电路后测量的电阻值发生了改变。
5.理论上,运放输出的电压为输入压差信号×放大倍数,但实际在电路工作时测量输出电压与输入压差信号并非这样的关系,压差信号比理论值小很多,实际输出信号为:
4.096*(RPt100(R1+RPt100)-RVR2(R1+RVR2))
(1)式中电阻值以电路工作时量取的为准。
6.电桥的正电源必须接稳定的参考基准,因为如果直接VCC的话,当网压波动造成VCC发生波动时,运放输出的信号也会发生改变,此时再到以VCC未发生波动时建立的温度-电阻表中查表求值时就不准确。
3.3驱动执行部分
硬件输出通道主要包括加热电阻的控制环节,而此控制环节的核心是双向可控硅,但电路的关键是设计双向可控硅的驱动电路。
双向可控硅的通断直接决定加热电阻的工作与不工作,本部分用带过零触发的光耦MOC3061来驱动。
(1)光耦驱动电路
在驱动电路中,由于是弱电控制强电,而弱电又很容易受到强电的干扰,影响系统的工作效率和实时性,甚至烧毁整个系统,导致不可挽回的后果,因此必须要加入抗干扰措施,将强弱电隔离。
光耦合器是靠光传送信号,切断了各部件之间地线的联系,从根本上对强弱电进行隔离,从而可以有效地抑制掉干扰信号。
此外,光耦合器提供了较好的带宽,较低的输入失调漂移和增益温度系数。
因此,能够较好地满足信号传输速度的要求,且光耦合器非常容易得到触发脉冲,具有可靠、体积小、等特点。
所以在本系统设计中采用了带过零检测的光电隔离器MOC3061,用来驱动双向可控硅并隔离控制回路和主回路。
MOC3061是一片把过零检测和光耦双向可控硅集成在一起的芯片。
其输出端的额定电压是400V,最大重复浪涌电流为1.2A,最大电压上升率dvdt为1000vus,输入输出隔离电压为7500V,输入控制电流为15mA。
在图2-2驱动执行电路中,当单片机的P2.0、P2.1、P2.2发出逻辑数字量为高电平时,经过三极管放大后驱动光耦合器的放光二极管,MOC3061的输入端导通,有大约15mA的电流输入。
当MOC306的输出端6脚和4脚尖电压稍稍过零时,光耦内部双向可控硅即可导通,提供一个触发信号给外部晶闸管使其导通;当P2.0、P2.1、P2.2为低电平时,MOC3061截止,双向可控硅始终处于截止状态。
(2)驱动电路有关元件的选择
R25,C10组成吸收电路,并接在双向可控硅的两极之间。
吸收回路组成缓冲器。
有了吸收回路,可控硅通断过程中电源电压的变化率受到R25,C10的限制。
R25可以抑制双向可控硅通断时产生的浪涌电流。
R25和C10根据经验公式选,一般C10取0.01~1.0uF,R25取几欧到几十欧,本电路中R25取39欧,C10取0.01uF。
R27为限流电阻,用来限制MOC3061的输出驱动电流,其数值为电源电压峰值除以双向可控硅的允许重复电流。
在本电路中R27取300欧。
R26:
由于MOC3061在输出关断状态下也有小于或等于500mA的输出电流,所以加入R26分流消除这个电流对双向可控硅的影响,以防止双向可控硅误触发,提高了系统的可靠性。
在此电路中可以看出单片机的输出通道采用了MOC3061进行驱动有以下优点:
1.控制简单。
可用SETB或CLR指令直接控制P2.0、P2.1、P2.2以控制加热电阻的工作与否。
2.MOC3061由于采用了过零触发电路大大简化了双向可控硅的触发电路,把SCR一向控制变为实用的数字脉冲控制。
3.MOC3061与双向可控硅实际组成了一个固态继电器,实现了无触电控制。
4.输出通道实现了光电隔离,防止了射电干扰。
5.输出通道用P2.0、P2.1、P2.2口直接控制双向可控硅,省去了的DA转换电路,简化了接口电路。
(3)双向可控硅电路
1.双向可控硅
这种可控硅具有双向导通功能,在交流电的正负半周都可以导通。
其英文名TRIAC即三级交流开关的意思,并把它的两极称为MT1和MT2,其电路符合如图所示。
双向可控硅的通断情况由控制极栅极(G)决定,当栅极无信号时MT1和MT2成高阻态,管截止;而当MT1与MT2之间加一个阈值电压(一般大于1.5V)的电压时,就可以利用控制极栅极电压来使可控硅导通。
但需要注意的是,当双向可控硅接感性负载时,电流和电压之间有一定的相位差。
在电流为零时,反向电压可能不为零,且超过转换电压,使管子反向导通,故要管子能承受这种反向电压,并在回路中加入RC网络加以吸收。
2.触发方式
控制双向可控硅从高阻态(阻断区)转换到低阻态(导通区)可以用不同的方式实现。
相应的分为四种方式:
(1)MT1相对于MT2为正,控制脉冲电压Ug相对于MT1为正
(2)MT1相对于MT2为负,控制脉冲电压Ug相对于MT1为负
(3)MT1相对于MT2为正,控制脉冲电压Ug相对于MT1为负
(4)MT1相对于MT2为负,控制脉冲电压Ug相对于MT1为正
双向可控硅通常工作在控制方式
(1)和控制方式
(2)。
在这两种控制方式下,控制灵敏度特别高。
另外两种控制方式下,要求高一倍的触发电流。
在本设计中,选择了控制方式
(1)和
(2)。
如同晶闸管的控制极那样,双向可控硅的控制极在触发后便失去了作用。
双向可控硅长期维持低阻态,直到低于维持电流IH,然后在转换到高阻态。
在控制交流电压时,每次电源电压过零双向可控硅都会自动截止,所以双向可控硅每半个周期都需要重新触发。
在本设计中,考虑到电网电压的稳定和现在市场上销售的双向可控硅型号,选择了工作电压为400V,通态电流为4A的双向可控硅BT136。
利用单片机控制双向可控硅的导通角。
在不同时刻利用单片机给双向可控硅的控制端发出触发信号,使其导通或关断,实现负载电压有效值的不同,以达到调压控制的目的。
具体如下:
(1)由硬件完成过零触发环节,即在工频电压下,每10ms进行一次过零触发信号,由此信号来达到与单片机的同步。
(2)过零检测信号接至单片机的P2.3口,由单片机对此口进行循环检测,然后进行延时触发。
3.4电源部分
本系统所需电源有220V交流市电、直流5V电压和低压交流电,故需要变压器、整流装置和稳压芯片等组成电源电路。
电源变压器是将交流电网220V的电压变为所需要的电压值,然后通过整流电路将交流电压变为脉动的直流电压。
由于此脉动的直流电压还含有较大的纹波,必须通过滤波电路加以滤除,从而得到平滑的直流电压。
但这样的电压还随电网电压波动(一般有+-10%左右的波动)、负载和温度的变化而变化。
因而在整流、滤波电路之后,还需要接稳压电路。
稳压电路的作用是当电网电压波动、负载和温度变化时,维持输出直流电压稳定。
整流装置采用二极管桥式整流,稳压芯片采用78L05,配合电容将电压稳定在5V,供控制电路、测量电路和驱动执行电路中弱电部分使用。
除此之外,220V交流市电还是加热电阻两端的电压,通过控制双向可控硅的导通与截止来控制加热电阻的功率。
低压交流电即变压器二次侧的电压,通过过零检测电路检测交流电的过零点,送入单片机后,由控制程序决定双向可控硅的导通角,以达到控制加热电阻功率的目的。
四、软件设计
4.1初始化程序,中端服务程序,系统主程序
1初始化程序
MOVR0,#0A0H;数据存储区首地址
MOVR2,#08H;8路计数器
SETBIT1;边沿触发方式
SETBEA;终端允许
SETBEX1;允许外部中断1中断
MOVDPTR,#OFEF8H;DA转换器地址
LOOP:
MOVX@DPTR,A启动AD转换
HERE:
SJMPHERE;等待中断
2中端服务程序
DJNZR2,ADEND
MOVX;数据采样
MOVX@RO,A;存数
INCDPTR;指向下一模拟通道
INCRO;指向数据存储器下一单元
MOVX@DPTR,A
ADEND:
RETI
3系统主程序
本系统的应用程序主要由主程序、中断服务程序和子程序组成。
主程序的任务是对系统进行初始化,实现参数输入,并控制电加热炉的正常运行。
主程序主要由系统初始化、数据采集及处理、智能推理等部分组成。
系统初始化包括设置栈底、工作寄存器组、控制量的初始值、采样周期、中断方式和状态、定时器的工作方式以及8255的初始化、MAX1232的初始化等。
数据采集及处理主要包括实时采集电加热炉的炉温信号,计算出实际炉温与理想值的差值以及温差的变化率,并对炉温信号进行滤波和限幅处理。
图4.1系统主程序
控制系统的软件主要包括:
采样、标度变换、控制计算、控制输出、中断、显示、报警、调节参数修改、温度设定及修改。
其中控制算法采用数字PID调节,应用增量型控制算法,并对积分项和微分项进行改进,以达到更好的控制效果。
考虑到电加热炉是一个非线性、时变和分布参数系统,所以本文采用一种新型的智能控制算法。
它充分吸取数学和自动控制理论成果,与定性知识相结合,做到取长补短,在实时控制中取得较好的成果。
4.2模数转换模块
ADC0809是一个典型的逐次逼近型8位AD转换器。
它由8路模拟开关、8位AD转换器、三态输出锁存器及地址锁存译码器等组成。
它允许8路模拟量分时输入,转换后的数字量输出是三态的(总线型输出),可以直接与单片机数据总线连接。
ADC0809采用+5V电源供电,外接工作时钟。
当典型工作时钟为500KHz时,转换时间约为128us.
(1)时钟信号:
由于ADC0809无片选端,因此电路增加了或非门74LS02,以便对ADC0809进行读写控制。
单片机采用6MHzs的晶振,ALE输出66MHzs时钟信号,经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的两个输入端WR和P3.5均为低电平时,其输出为高电平,执行外部IO口的写操作。
(4)转换数据的读取:
当转换结束时,EOC端输出高电平。
可用查询和中断的方法进行数据读取处理。
输出允许OE端为高电平,8位转换数据D0~D7输出到数据线上。
只有P3.5和RD同时为低电平时,OE端才为高电平。
执行外部IO口读操作RD为低电平。
(5)转换结束标志EOC:
转换结束标志EOC端经反向器与单片机的INT1相连,即转换一旦结束,外部中断1则申请中断。
图4.2AD转换结束中断服务程序流程图
4.3DA转换和控制
MOVBX.1000H
MOVAL,[BX];取换资料
MOVDX,PORTA;POTRA为DA转换器端口地址
OUTDX,AL
4.4LED显示模块
8段LED显示屏是最常用的显示器件,分为共阳极和共阴极两种形式。
共阳极LED将所有发光二极管的阳极接在一起作为公共端,当公共端接高电平,某一段的发光二极管阴极接低电平时,相应的字段就被点亮。
共阴极LED将所有发光二极管的阴极接在一起作为公共端,当公共端接低电平,某一段的发光二极管阳极接高电平时,相应的字段就被点亮。
LED数码管的显示方法:
动态显示:
动态扫描,分时循环
静态显示:
一次输出,结果保持
(1)动态显示
动态显示,就是微型机定时地对显示器件扫描,在这种方法中,显示器件分时工作,每次只能一个器件显示。
但由于人视觉的暂留现象,所以,仍感觉所有的器件都在显示。
(2)静态显示
静态显示,是由微型机一次输出显示后,就能保持该显示结果,直到下次送新的显示模型为止。
这种显示占用机时少,显示可靠。
通过比较及对程序的分析,本设计当中两组数码管均采用了共阴极静态显示。
图4.4显示子程序
4.5报警模块
根据设计要求,在保温阶段,温度控制精度为正负1度,故当温度下降或上升2度时为故障状态,需要报警提醒。
所以在电路设计上应用了蜂鸣器和发光二极管,系统正常运行时绿色发光二极管点亮,当出现故障时红色发光二极管点亮并且蜂鸣器鸣叫,提醒操作人员注意。
报警状态可通过按键复位和系统恢复正常后自动复位
图4.5报警子程序
4.6键盘模块
在本次设计当中,输入设备采用4*4矩阵键盘。
当“设定”键按下时触发键盘中断服务程序,由程序程控扫描法确定那个键按下并执行相应的动作。
程控扫描的任务是:
(1)首先判断是否有键按下。
方法:
使所有的行输出均为低电平,然后从端口A读入列值。
如果没有键按下,则读人值为FFH.如果有链按下.则不为FFH。
(2)去除键抖动。
方法:
延时10—20ms,再一次判断有无键按下,如果此时仍有键按下,则认为键盘上确实有键处于稳定闭合期。
(3)若有键闭合,则求出闭合键的键值。
方法:
对键盘逐行扫描。
(4)程序中需等闭合键释放后才对其进行处理。
4.7通信模块
在此部分主要是实现下位机与上位机之间的通信,将实时数据传送到上位机,进行同一协调和集中管理。
RS232的电气接口是单端的、双极性电源电路。
由于RS-232采用的数据传输线路是非平衡,且是误无差分的接收方式,当信号穿过电气干扰环境时,发送的信号将会受到影响。
故数据传输速率局限于20KBs;传输距离局限于15m,但RS-232也是目前最广泛使用的串行通信接口标准。
在本设计当中,考虑到系统调试的方便,采用了RS232串