基于PID电加热炉温度控制系统设计Word文件下载.docx
- 文档编号:22482973
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:23
- 大小:620.75KB
基于PID电加热炉温度控制系统设计Word文件下载.docx
《基于PID电加热炉温度控制系统设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于PID电加热炉温度控制系统设计Word文件下载.docx(23页珍藏版)》请在冰豆网上搜索。
图2.1PID算法流程图
增量式PID控制算法公式:
=
=
式中
由上式可以看出,如果计算机系统采用恒定的采样周期T,一旦确定
只要使用前后测量三次的偏差值,就可以由上式求出控制量。
typedefstructPID
{
IntSetPoint;
//设定目标DesiredValue
LongSumError;
//误差累计
doublepropotion;
//比例常数PropotionConst
Doubleintegral;
//积分常数IntegralConst
Doublederivative;
//微分常数DerivativeConst
intLastError;
//Error[-1]
IntPrevError;
//Error[-2]
}PID;
ststicPIDsPID;
/*InitializePIDStructurePID参数初始化*/
voidIncPIDInit(void)
sptr->
SumError=0;
LastError=0;
PrevError=0;
Propotion=0;
//比例常数PropotionalConst
integral=0;
//积分常数IntegralConst
derivative=0;
//微分常数DerivativeConst
SetPoint=0;
}
/*增量式PID计算部分*/
intIncPIDCalc(intNextPoint)
{registerintierror,iIncpid;
//当前误差
ierror=sptr->
SetPoint-NextPoint;
//增量计算}
3锅炉温度控制系统硬件电路设计
本系统硬件电路主要由以下部分组成:
供电电源电路、温度检测电路、数模转换电路、键盘输入电路、声光报警电路、继电器输出电路、LED显示电路。
3.1主控单片机AT89S51芯片介绍
AT89S51是一个低功耗,高性能CMOS8位单片机,片内含4kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,AT89S51在众多嵌入式控制应用系统中得到广泛应用。
(1)主要性能特点
1、4kBytesFlash片内程序存储器;
2、128bytes的随机存取数据存储器(RAM);
3、32个外部双向输入/输出(I/O)口;
4、5个中断优先级、2层中断嵌套中断;
5、6个中断源;
6、2个16位可编程定时器/计数器;
7、2个全双工串行通信口;
8、看门狗(WDT)电路;
9、片内振荡器和时钟电路;
10、与MCS-51兼容;
11、全静态工作:
0Hz-33MHz;
12、三级程序存储器保密锁定;
13、可编程串行通道;
14、低功耗的闲置和掉电模式。
(2)管脚说明
VCC:
供电电压。
GND:
接地
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
AT89S51管脚图如图3.1所示。
图3.1AT89S51管脚图
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口除了作为普通I/O口,还有第二功能:
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口同时为闪烁编程和编程校验接收一些控制信号。
I/O口作为输入口时有两种工作方式,即所谓的读端口与读引脚。
读端口时实际上并不从外部读入数据,而是把端口锁存器的内容读入到内部总线,经过某种运算或变换后再写回到端口锁存器。
只有读端口时才真正地把外部的数据读入到内部总线。
89C51的P0、P1、P2、P3口作为输入时都是准双向口。
除了P1口外P0、P2、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)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
(3)下载程序
AT89SXX系列单片机实现了ISP下载功能,故而取代了89CXX系列的下载方式,也是因为这样,ATMEL公司已经停止生产89CXX系列的单片机,现在市面上的AT89CXX多是停产前的库存产品。
3.2系统供电电源电路设计
主控电路所需的+5V电源;
外围电路(如继电器、运算放大器)所需的+12V和-12V电源。
如图3系统供电电源电路原理图所示:
此电路采用“降压整流滤波稳压滤波”的线形电源模式。
这里选用了78M12、79M12、78M05三端稳压器。
系统供电电源电路原理图如图3.2所示。
图3.2系统供电电源电路原理图
电路中两个二极管IN4007是:
防止系统不稳定时,输出电压高于输入电压,从而导致三端集成稳压器被烧毁,起到保护作用。
上述电源中所用的电源变压器功率为10W。
电路中的压敏电阻VDR是防雷、抑制过电压作用,保护电路免受过电压的损害。
压敏电阻VDR在它上面的电压低于它的阀值UN=471V时,流过它的电流极小,相当于一只关死的阀门,当电压超过471V时,流过它的电流激增,相当于短路,这时FUSE会因为电流激增而烧毁,使电路断开。
3.3温度信号测量电路
温度信号测量处理电路,利用热电阻Pt100作为温度传感器件,然后通过运算放大器OP-07构建差分放大电路将温度信号转换成ADC0809模拟通道的输入标准电压信号。
将Pt100接入到电桥中,如图6温度测量信号处理电路所示,由Pt100的阻值来反映锅炉的温度的变化,电桥输出电压为:
Uba=Vcc[R1_4/(R1_2+R1_4)-R1_3/(R1_1+R1_3)](其中下桥臂R1_3=100Ω,R1_4=1K,上桥臂R1_2=1K,Vcc=5V),所以Uba=5*[1K/(1K+1K)-R1_3/(R1_1+100)]=2.5-5*100/(R1_1+100)
其中AR1作用是将电桥电位Vb、Va作差分比例放大作用,由差分比例运算放大电路的计算方式:
Auf=Uo1/(U1_-U1+)=-R1_8/R1_6(其中R1_8=100K,R1_6=10K,U1_-U1+=-Uba)从而得到:
Uo1=10Uba=25-50*100/(R1_1+100)。
温度信号测量处理电路如图3.3所示。
图3.3温度信号测量处理电路
3.4A/D转换单元
经过温度信号测量处理电路后所得到的0—5V电压模拟信号要经过AD转换后才能送给单片机,经A/D转换电路,转换完成后,输送给单片机的P0口。
A/D转换电路如图3.4所示。
图3.4A/D转换电路
其中ADC0809的A、B、C三个端口作为它IN0-IN八个输入通道的选择信号,由于此处只用到了IN0通道,所以将此A、B、C三个端口全部接地,电路中ADC0809的转换结束信号引脚EOC接在单片机P3.5上,单片机启动ADC0809的转换后,延时一段时间,然后程序采取扫描方式检测ADC0809是否转换结束,单片机然后去检测P3.5电平,当接收到一个高电平时,发出一个READ信号,使得ADC0809输出锁存缓冲器开放,将数据输送到数据线上,从而完成温度数字信号的采集过程。
3.5输出模块
本控制系统的输出单元主要有三个:
(1)继电器输出控制加热执行机构的开与关。
(2)当水温高于上限温度和低于下限温度时,系统进行声光报警。
(3)数码管用于显示用户设定的温度、上限温度、下限温度和当前温度值。
(1)继电器输出
加热执行机构的开与关状态由固态继电器(SolidStateRelay),如图3.5所示。
图3.5固态继电器输出电路
当系统采集到温度信号后与设定温度进行比较得到一个偏差,然后通过PID运算,从单片机P1.0口输出一个PWM波,PWM波形的高电平期间,固态继电器SSR输入端IN1为高电平,从而OUT1和OUT2两触点闭合,将加热执行机构加热丝连入到交流220V回路中,控制加热机构对锅炉进行加热动作,与此同时工作指示灯LED点亮。
PWM波形低电平期间,SSR输入端IN1为低电平,从而OUT1和OUT2两触点断开,将加热执行机构加热丝从220V回路中切断,控制加热机构对锅炉停止加热,与此同时工作指示灯LED点熄灭。
(2)声光报警电路
当水温高于上限温度、低于下限温度或者在误输入时,单片机P1.1口给warn一个低电平信号来导通三极管8550以驱动蜂鸣器和LED灯,进行系统声光报警。
当温度恢复到设置范围内后,声光报警自动撤销。
声光报警电路如图3.6所示。
图3.6声光报警电路
(3)显示电路
用于显示用户设定的温度、上限温度、下限温度和当前温度值等,精确到小数点后一位。
如图3.7所示,单片机的P2口输出段选编码,P3.0、P3.1、P3.2、P3.3分别为四位数码管的位选编码。
当其中位选编码输出低电平时,三极管8550导通,使得共阳极数码管公共端得到一个高电平,同时P2口输出相应的要显示的数字共阳极字型码并通过74HC573将段码信号锁存输出。
图3.7温度数码管显示
(4)键盘电路
键盘是用来给用户提供设置设定温度上限值、下限值、显示温度等功能。
键盘电路如图3.8所示。
功能键:
选择修改温度设定值、上限值、下限值、显示温度
位选键:
选择修改百位、十位、个位、十分位这四位的标志
加1键:
每按一次键,位选标志所指的当前位的值加1
减1键:
每按一次键,位选标志所指的当前位的值减1
确定键:
保存设置值并返回到显示温度状态
图3.8键盘电路及功能说明
键没有被按下时,P1.3-P1.7通过下拉电阻接地,单片机此时检测的电平是低电平,当有键按下时,对应P1.3-P1.7中的引脚与VCC接通,单片机此时检测的电平是高电平。
4、锅炉温度控制系统软件设计
4.1主程序流程图及分析
炉温度控制系统中,主程序的功能主要是实现初始化,温度采集A/D转换,温度值。
主程序如图4.1所示。
开始
是否满足报警条件?
N
Y
是否有按键?
图4.1主程序流程图
温度值显示,将实际温度与设定值进行比较进行PID运算,输出PWM波形控制SSR并判断是否要启动报警,反复对键盘进行扫描从而更新温度参数设置、显示。
4.2子程序流程图及分析
本系统子程序主要有:
数码管显示程序、AD转换程序、键盘扫描程序。
数码管显示程序操作流程图如图4.2所示。
图4.2数码管显示程序操作流程图
A/D转换结束中断服务程序流程图如图4.3所示。
图4.3A/D转换结束中断服务程序流程图
按键检测与处理流程图如图4.4所示
图4.4按键检测与处理流程图
编写D/A转换控制程序:
DAC0832实现D/A转换,可以采用下面程序段。
设定要转换的数据放在1000H单元中。
MOVBX,1000H
MOVAL,[BX];
取转换资料
MOVDX,PORTA;
PORTA为D/A转换端口地址
OUTDX,AL
5结论
在此系统设计中,用AT89S51单片机作为主控芯片,通过电桥是的PT100来检测温度模拟信号,然后通过AD0809进行模/数转换并传送给单片机,单片机把数据进行进一步处理后一方面送给LED实现实时显示,并判断是否需要报警,另一方面与给定值进行比较,然后根据偏差值进行PID运算,此外程序需要对5个设置按键进行循环扫描,一旦有键按下,会做出相应设置过程。
此系统硬件主要分为5个模块:
电源模块、采样模块、控制模块、输出模块、设置模块。
电源模块采用降压和整流实现从市电转成各器件所需驱动的电压。
采样模块是由PT100、运放、AD芯片组合而成。
控制模块则为整个系统的核心部分,采用的是AT89S51单片机实现,输出模块是用来由PWM控制SSR的通断来控制加热丝执行过程以及声光报警模块。
设置模块是由5个按键组合成,可以对温度设定值、上限值、下限值进行修改以及显示温度。
此系统软件控制部分采用经典的PID算法控制,方法简单且对锅炉温度恒温控制起到良好的效果。
6参考文献
[1]曾屹.单片机原理与应用[M]中南大学出版社,2010
[2]戴永.微机控制技术湖南大学出版社,2010
[3]王丽娟.单片机在锅炉温度控制系统中的应用研究[J].微计算机信息,,2007,
[4]张丽丽,黄赫松.单片机应用系统抗干扰技术[J].技术交流,2004(3),
[5]王遇春.三端集成稳压器原理及应用[J].开发与应用,2003
(1),64~67
附录
系统总体电路图
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 PID 加热炉 温度 控制系统 设计