您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 基于PID电加热炉温度控制系统设计(1)
1基于PID电加热炉温度控制系统设计摘要电加热炉随着科学技术的发展和工业生产水平的提高,已经在冶金、化工、机械等各类工业控制中得到了广泛应用,并且在国民经济中占有举足轻重的地位。对于这样一个具有非线性、大滞后、大惯性、时变性、升温单向性等特点的控制对象,很难用数学方法建立精确的数学模型,因此用传统的控制理论和方法很难达到好的控制效果。单片机以其高可靠性、高性能价格比、控制方便简单和灵活性大等优点,在工业控制系统、智能化仪器仪表等诸多领域得到广泛应用。采用单片机进行炉温控制,可以提高控制质量和自动化水平。一、绪论在本控制对象电阻加热炉功率为8可W,由220V交流电供电,采用双向可控硅进行控制。本设计针对一个温度区进行温度控制,要求控制温度范围50~350C,保温阶段温度控制精度为正负1度。选择合适的传感器,计算机输出信号经转换后通过双向可控硅控制器控制加热电阻两端的电压。其对象问温控数学模型为:1)(sTeKsGdsd其中:时间常数Td=350秒,放大系数Kd=50,滞后时间=10秒,控制算法选用改PID控制图1.1系统总体结构图实时温度采样显示设定值单片机设定温度电源控制电阻加热炉2二、控制系统的建模和数字控制器设计图2PID算法流程图数字PID控制算法PID控制器是通过计算机PID控制算法程序实现的。计算机直接数字控制系统大多数是采样-数据控制系统。进入计算机的连续-时间信号,必须经过采样和整量化后,变成数字量,方能进入计算机的存贮器和寄存器,而在数字计算机中的计算和处理,不论是积分还是微分,只能用数值计算去逼近。图2.1位置PID控制算法简化示意图受控对象PID位置算法reuy+-开始输入并采样r(K)、c(K)计算偏差e(K)=r(K)-c(K)计算u(k)=q0e(k)+q1e(k-1)+q2e(k-2)存u(k)以备输出参数序号e(k-1)e(k-2)调整e(k)e(k-1)返回3在数字计算机中,PID控制规律的实现,也必须用数值逼近的方法。当采样周期相当短时,用求和代替积分,用差商代替微商,使PID算法离散化,将描述连续时间PID算法的微分方程,变为描述离散-时间PID算法的差分方程。kjisjeTTdeT0t0)()(1用矩形积分时,有)]1()([)(kekeTTdttdeTSDd(1)用差分代替微分00))]1()([)(()([)(ukekeTTjeTTkeKkuSDkjisp(2)由上式得001)]1()([)()()(uukekeKkeKkeKkDkjp(3)式中u0——控制量的基值,即k=0时的控制;u(k)——第k个采样时刻的控制;KP——比例放大系数;KI——积分放大系数;ISPITTKKSDPDTTKKKD——微分放大系数;TS——采样周期。式(3)是数字PID算法的非递推形式,称全量算法。算法中,为了求和,必须将系统偏差的全部过去值e(j)(j=1,2,3,...,k)都存储起来。这种算法得出控制量的全量输出u(k),是控制量的绝对数值。在控制系统中,这种控制量确定了执行机构的位置。当执行机构需要的不是控制量的绝对值,而是控制量的增量(例如去驱动步进电动机)时,需要用PID的“增量算法”。yuerPID增量算法受控对象-+步进电机∆u4由位置算法求出010)]2()1()()1([)1(uukekeTTjeTTkeKkSDkjISp再求出)1()()(kukuku两式相减,得出控制量的增量算法01)]1()([)()([)(ukekeTTjeTTkeKkuSDkjISp(4)式(4)称为增量式PID算法。对增量式PID算法(4)归并后,得)2()1()()(210keqkeqkeqku(5)]1[0SDISPTTTTKq]21[1SDPTTKqSDPTTKq2从式(5)看出,数字增量式PID算法,只要贮存最近的三个误差采样值e(k),e(k-1),e(k-2)就足够了。如果计算机系统采用恒定的采样周期T,一旦确定q0,q1,q2只要使用前后测量三次的偏差值,就可以由上式求出控制量。typedefstructPID{IntSetPoint;//设定目标DesiredValueLongSumError;//误差累计doublepropotion;//比例常数PropotionConstDoubleintegral;//积分常数IntegralConstDoublederivative;//微分常数DerivativeConstintLastError;//Error[-1]IntPrevError;//Error[-2]}PID;ststicPIDsPID;5/*InitializePIDStructurePID参数初始化*/voidIncPIDInit(void){sptr-SumError=0;sptr-LastError=0;//Error[-1]sptr-PrevError=0;//Error[-2]sptr-Propotion=0;//比例常数PropotionalConstsptr-integral=0;//积分常数IntegralConstsptr-derivative=0;//微分常数DerivativeConstsptr-SetPoint=0;}/*增量式PID计算部分*/intIncPIDCalc(intNextPoint){registerintierror,iIncpid;//当前误差ierror=sptr-SetPoint-NextPoint;//增量计算}三硬件的设计和实现3.1AT89C51系列基本组成及特性AT89C51是一种带4K字节FLASH存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。图3.1AT89C51管脚管脚说明:VCC:供电电压。GND:接地。6P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须接上拉电阻。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为低八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚备选功能:P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2/INT0(外部中断0)P3.3/INT1(外部中断1)P3.4T0(记时器0外部输入)P3.5T1(记时器1外部输入)7P3.6/WR(外部数据存储器写选通)P3.7/RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。3.2键盘模块在本次设计当中,输入设备采用4*4矩阵键盘。当“设定”键按下时触发键盘中断服务程序,由程序程控扫描法确定那个键按下并执行相应的动作。程控扫描的任务是:(1)首先判断是否有键按下。方法:使所有的行输出均为低电平,然后从端口A读入列值。如果没有键按下,则读人值为FFH.如果有链按下.则不为FFH。(2)去除键抖动。方法:延时10—20ms,再一次判断有无键按下,如果此时仍有键按下,则认为8键盘上确实有键处于稳定闭合期。(3)若有键闭合,则求出闭合键的键值。方法:对键盘逐行扫描。程序中需等闭合键释放后才对其进行处理。3.3设计输入输出通道输入通道:因为所控的实际温度在50~350℃,即(350-50)=300所以选用8位A/D转换器,其分辨率约为1.5℃/字,再加放大器偏置措施实现。(通过调整放大器的零点来实现偏置)这里采用一般中速芯片ADC0809。ADC0809是带有8位A/D转换器,8路多路开关以及微型计算机兼容的控制逻辑的CMOS组件,其转换方法为逐次逼近型。8路的模拟开关由地址锁存器和译码器控制,可以在8个通道中任意访问一个通道的模拟信号。这种器件无需进行零位和满量程调整。由于多路开关的地址输入部分能够进行锁存和译码,而且其三态TTL输出也可以锁存,所以它易于与微型计算机接口。其具有较高的转换速度和精度,受温度影响较小,能较长时间保证精度,重现性好,功耗较低,故用于过程控制是比较理想的器件。ADC0809应用接线图输出通道:据其实际情况,D/A转换器的位数可低于A/D转换器的位数,因为一般控制系统对输出通道分辨率的要求比输入通道的低,所以这里采用常用的DAC0832芯片。DAC0832是8位D/A转换器,与微处理器完全兼容。期间采用先进的CMOS工艺,因此功耗低,输出漏电流误差较小。它的内部具有两级输入数据缓冲器和一个R-2RT型电阻网络,因DAC0832电流输出型D/A转换芯片,为了9取得电压输出,需在电流输出端接运算放大器,Rf为为运算放大器的反馈电阻端。双极性电压输出的D/A转换电路通常采用偏移二进制码、补码二进制码和符号一数值编码。只要在单极性电压输出的基础上再加一级电压放大器,并配以相关电阻网络就可以构成双极性电压输出。在上图中,运算放大器A2的作用是把运算放大器A1的单向输出电压转变为双向输出。3.4电源部分本系统所需电源有220V交流市电、直流5V电压和低压交流电,故需要变压器、整流装置和稳压芯片等组成电源电路。电源变压器是将交流电网220V的电压变为所需要的电压值,然后通过整流电路将交流电压变为脉动的直流电压。由于此脉动的
本文标题:基于PID电加热炉温度控制系统设计(1)
链接地址:https://www.777doc.com/doc-2410131 .html