基于单片机的温度控制系统设计 孙连强Word下载.docx
- 文档编号:21341764
- 上传时间:2023-01-29
- 格式:DOCX
- 页数:22
- 大小:428.90KB
基于单片机的温度控制系统设计 孙连强Word下载.docx
《基于单片机的温度控制系统设计 孙连强Word下载.docx》由会员分享,可在线阅读,更多相关《基于单片机的温度控制系统设计 孙连强Word下载.docx(22页珍藏版)》请在冰豆网上搜索。
每个分机上可以连接10跟电缆,每根电缆上可并联几十个点。
分机利用了68HC08GP32的片内FLASH功能,实现了DS1820的序列号在68HC08GP32中的动态存取,从而节省了大量存储器。
温度数据保存在68HC08GP32的片内RAM里并且利用了充分利用了68HC08GP32的片内的A/D实现了湿度数据的测量。
有的还用PLC来控制总之温度控制系统的控制方式是多种多样的。
1.3课程设计任务
本文主要介绍单片机温度控制系统的设计过程,其中涉及系统结构设计、元器件的选取和控制算法的选择、程序的调试和系统参数的整定。
以AT89C51为CPU,温度信号由PT1000和电压放大电路提供。
电压放大电路用超低温漂移高精度运算放大器OP07将温度--电压信号进行放大,用单片机控制SSR固态继电器的通断时间以控制水温,系统控制对象为1升净水,容器为搪瓷器皿。
水温可以在环境温度降低时实现自动控制,以保持设定的温度基本不变,具有较好的快速性和较小的超调。
第二章系统方案
2.1水温控制系统设计任务和要求
设计一个水温自动控制系统,控制对象为1升净水,水温可以在一定范围内由人工设定,并能在环境温度降低时实现自动调整,以保持设定的温度基本不变,系统设计具体要求:
温度设定范围为40℃,目标温度的±
5℃;
加热棒功率2KW,控制器为继电器;
用十进制数码管显示水的实际温度。
2.2水温控制系统部分
水温控制系统是一个过程控制系统,组成框图如图1所示,由控制器、执行器、被控对象其反馈作用的测量变送组成。
测量变送试通过温度传感器Pt1000来传送的。
控制器是通过单片机来完成。
图1控制系统框图
2.2.1CPU中央处理器
方案一:
采用8031作为控制核心,使用最为普遍的器件ADC0804作模数转换,控制上使用对加热棒加电对水槽里的水升温。
此方案简易可行,器件价格便宜,但8031内部没有程序存储器需扩展,增加了电路的复杂性。
方案二:
此方案采用8951单片机实现,可用编程实现各种控制算法和逻辑控制。
进行数据转换,控制电路部分采用SSR固态继电器控制加热棒的通断,此方案电路简单并且可以满足题目中的各项要求的精度。
比较两个方案可知,采用Atmel单片机来实现本题目,不管是从结构上,还是从工作量上都占有很大的优势,所以最后决定使用AT89C51作为该控制系统的核心。
根据温度变化慢,并且控制精度不易掌握的特点,设计了水箱温度自动控制系统,总体框图如图2所示。
温度控制采用改进的PID数字控制算法,显
示采用用3位LED静态显示。
图2控制器设计总体框图
2.3控制方式
该控制系统是把输出量检测出来,经过物理量的转换,再反馈到输入端去和给定量进行比较(综合),并利用控制器形成的控制信号通过执行机构SSR对控制对象进行控制,抑制内部或外部扰动对输出量的影响,减小输出量的误差,达到控制目的。
在此控制系统中单片机就相当于常规控制系统中的运算器控制器,它对过程变量的实测值和设定位之间的误差信号进行运算然后给出控制信息,单片机的运算规则称为控制法则或控制算法。
第三章系统硬件设计
3.1总体设计框图及说明
本系统是一个简单的单回路控制系统,总体框图如图2所示。
单片机系统是整个控制系统的核心,AT89C51可以提供系统控制所需的I/O口、中断、定时及存放中间结果的RAM电路;
前向通道是信息采集的通道,主要包括传感器、信号放大、A/D转换等电路;
由于水温变化是一个相对缓慢的过程,因此前向通道中没有使用采样保持电路;
信号的滤波可由软件实现,以简化硬件、降低硬件成本。
键盘设定:
用于温度设定,共三个按键。
数据采样:
将由传感器及相关电路采集到的温度转为电压信号,经A/D转换后,送入AT89C51相应接口中,换算成温度值,用于控制和显示。
数据显示:
采用了共阴极数码管LED进行显示设置温度和测量温度。
继电器/加热棒:
通过三极管控制继电器的开关来完成对加热棒的控制。
3.2外部电路设计
3.2.1温度采集电路
采用温度传感器铂电阻Pt1000,对于温度的精密测量而言,温度测量部分是整个系统设计的第一步。
温度传感器的选择是这块电路的关键,它是直接影响整个系统的性能和效果的关键因素之一。
这里采用的是精密级铂电阻温度传感器Pt1000,它的金属铂含量达99.9999%,因为铂电阻的物理和化学性能在高温和氧化介质中很稳定、价格又便宜,常用作工业测量元件,以铂电阻温度计作基准器线性好,温度系数分散性小,在0~100摄氏度时,最大非线性偏差小于0.5摄氏度,性能稳定,广泛用于精密温度测量和标定。
铂热电阻和温度关系式
,其中:
--温度为t摄氏度时的电阻;
--温度为0摄氏度时的电阻;
A、B--温度系数A=3.94*102/℃;
其中B=-
/℃;
T--任意温度。
3.2.2温度控制电路
此部分通过控制继电器的通断从而控制加热棒,采用对加在加热棒两端的电压进行通断的方法进行控制,以实现对水加热功率的调整,从而达到对水温控制的目的,即在闭环控制系统中对被控对象实施控制。
此部分的继电器采用的是SSR继电器,即固态继电器,主要由输入(控制)电路,驱动电路和输出(负载)电路三部分组成。
固态继电器的输入电路是为输入控制信号提供一个回路,使之成为固态继电器的触发信号源。
固态继电器的输出电路是在触发信号的控制下,实现固态继电器的通断切换。
输出电路主要由输出器件(芯片)和起瞬态抑制作用的吸收回路组成,固态继电器(SSR)是一种全电子电路组合的元件,它依靠半导体器件和电子元件的电、磁和光特性来完成其隔离和继电切换功能。
图3是它的工作原理框图,图9中的部件①-④构成交流SSR的主体,从整体上看,SSR只有两个输入端(A和B)及两个输出端(C和D),是一种四端器件。
工作时只要在A、B上加上一定的控制信号,就可以控制C、D两端之间的“通”和“断”,实现“开关”的功能。
图3SSR结构图
由于开关电路在不加特殊控制电路时,将产生射频干扰并以高次谐波或尖峰等污染电网,为此特设“过零控制电路”。
为使其实现过零控制,就是要实现工频电压的过零检测,并给出脉冲信号,由单片机控制可控硅过零脉冲数目。
当在其输入端加入控制信号时,输出端接通,从而使得加热棒加热以致温度上升;
当此时撤离控制信号时,输出端断开,而使加热棒停止加热从而温度下降。
图4加热棒控制电路
3.3单片机系统电路设计
3.3.1系统框图
图5系统框图
3.3.2A/D转换电路
ADC0804是CMOS集成工艺制成的逐次比较型A/D转换器芯片。
分辨率为8位,转换时间为100μs,输出电压范围为0~5V,增加某些外部电路后,输入模拟电压可为±
5V。
该芯片内有输出数据锁存器,当和计算机连接时,转换电路的输出可以直接连接到CPU的数据总线上,无需附加逻辑接口电路。
图6ADC0804引脚图图7ADC0804控制信号的时序图
采集数据时,首先微处理器执行一条传送指令,在指令执行过程中,微处理器在控制总线的同时产生CS1、WR1低电平信号,启动A/D转换器工作,ADC0804经100μS后将输入模拟信号转换为数字信号存于输出锁存器,并在INTR端产生低电平表示转换结束,并通知微处理器可来取数。
当微处理器通过总线查询到INTR为低电平时,立即执行输入指令,以产生CS、RD2低电平信号到ADC0804相应引脚,将数据取出并存入存储器中。
整个数据采集过程中,由微处理器有序地执行若干指令完成,AD0804的连接图如图8。
图8AD0804连接图
3.3.3键盘设置电路
单片机上的P25口接S1,P26口接S2,P27口接S3。
S1:
设置温度的十位数:
0—9
S2:
设置温度的个位数:
S3:
工作模式选择键,共有两种工作模式:
正常工作状态、温度重新设置。
图9键盘设置电路
系统上电后,数码管全部显示为零,根据按S1次数,十位的数码管顺序增加。
同样S2,也如此。
按S3后,系统开始测温,并和采集的温度进行比较,通过软件来控制加热棒的开关。
3.3.4数码显示电路
数码管作为单片机系统最为常用的输出器件,在显示时可以由数字和少量字母组合完成输出功能的系统中使用十分方便。
图21为AT89C51最小系统以及一个四位共阴数码管,DIG0、DIG1、DIG2、DIG3分别和单片机的P21、P22、P23、P24相连,每一个都拥有一个共阴的位选端。
从而可以通过单片机选通所需显示的数码管。
SegA--SegDp口传输要显示的数据,利用其串/并转换功能,送入数码管显示。
在此外接了一个10K的排阻来保护LED。
图10数码管显示电路
第四章系统软件设计
4.1程序框架结构
一个整体的系统软件设计是由各个在系统里起着不同作用的模块整合在一起,从而实现系统的所要实现的功能。
本系统硬件接口如下:
P1--AD;
P00~P07--LEDa~LEDdp.;
P25~P27--S1~S3;
P20~P23--COM1~COM3;
此系统包括主控制程序,A/D采样数据处理程序,PID算法程序,LED显示及按键处理程序。
结构框架图如图11所示。
图11程序结构图
主程序模块对子程序模块的调用进行管理,它主要负责初始化IO口;
等待键盘的被按下,并调用相应的模块进行处理;
在适当的时候接受A/D采样的数据,并和所设定的值进行比较,然后通过调用PID算法处理数据,处理后来控制继电器的通断,从而控制热电管达到控制水温的目的。
4.2程序流程图及部分程序
4.2.1主程序模块
由于模块化程序的设计,通过调用程序即可实现所用功能,主程序流程图如图12所示。
写程序时,调用程序前即系统运行首要先对系统进行初始化。
然后对按键进行扫描,对按键事件做出相应的反应。
接下来看是否有温度数据采集到,如果有就进行A/D采样及PID处理数据,最后所得结果和设定值比较从而控制继电器通断。
图12主程序流程图
4.2.2系统初始化
系统初始化包括A/D口初始化、按键初始化等。
对端口的初始化即是对端口相应位进行设置,这些初始化程序都嵌入在各个子程序里面。
4.2.3按键程序
按键扫描:
由于机械触点有弹性,在按下或弹起按键时会出现弹跳抖动过程,从最初按下到接触稳定要经过数毫秒的弹跳时间,因此为了保证探险键识别的准确性,必须消除抖动。
键值处理:
图13是对键值的处理流程图。
4.2.3A/D采样数据处理
当采样到温度数据时,为了防止在采样过程中外界干扰而造成采样数据的不准确,必须调用温度均值处理程序,然后确定温度系数使采样转换得到的电压信号转换成温度值,并进行十进制转换,用于显示和PID计算。
其中均值处理是一个重要的环节,是A/D转换前必不可少的工具,流程图如图14所示。
图13键值处理图14A/D转换流程图
4.2.5PID计算
由于单片机控制是一种采样控制,系统中PID调节规律可通过数值公式近似计算。
(式4-1)
(式4-2)
由此可得增量式算法公式:
(式4-3)
(式4-4)
这个计算的过程可用一个简单的程序来实现。
4.2.6继电器控制
继电器是和AT89C51单片机的P25口相连的,它的开断完全取决于P25口的输出,即PID计算的结果。
当输出小于零说明设定值小于实际输出值,这是就要关闭电炉,同时关闭定时器的计时。
如果输出值大于设定值5摄氏度时就可以开电炉对水开始加热。
如果设定值和实际输出值差值在5摄氏度以内时,我们就调用中断程序定时加热。
图15数据采样中断服务程序的流程图,此中断程序采用的是2Hz中断定时0.5秒钟采样一次。
图16控制程序的中断服务程序,用来对继电器定时加热。
它利用中断定时器10ms确定加热时间,当加热时间未到时,继续时间累积,若加热时间到时,就调用关定时器子程序,停止计时。
图15数据采样中断程序流程图图16控制程序中断程序流程图
4.2.7单片机最小系统
在以单片机为控制核心的控制系统中,单片机担负着接受外部信号,发出控制指令等重要作用,是构建控制系统的前提,所以在开始直流电机控制系统的设计之前必须首先搭建起一套能正常工作的单片机最小系统。
最小系统是实现实验的一个最基本的关键环节,它的好坏决定了一个系统的好坏,所以说最小系统是单片机里最基本的系统,也是重要的系统。
图17单片机最小系统
4.3系统安装调试和测试
1测触点电阻
用万能表的电阻档,测量常闭触点和动点电阻,其阻值应为0;
而常开触点和动点的阻值就为无穷大。
由此可以区别出那个是常闭触点,那个是常开触点。
经测试本系统使用的继电器为常开式。
2测线圈电阻
可用万能表R×
200Ω档测量继电器线圈的阻值,从而判断该线圈是否存在着开路现象。
3测量吸合电压和吸合电流
找来可调稳压电源和电流表,给继电器输入一组电压,且在供电回路中串入电流表进行监测。
慢慢调高电源电压,听到继电器吸合声时,记下该吸合电压和吸合电流。
为求准确,可以试多几次而求平均值。
4测量释放电压和释放电流
进行连接测试,当继电器发生吸合后,再逐渐降低供电电压,当听到继电器发生释放声音时,记下此时的电压和电流,亦可尝试多几次而取得平均的释放电压和释放电流。
一般情况下,继电器的释放电压约在吸合电压的10~50%,如果释放电压太小(小于1/10的吸合电压),则不能正常使用了,这样会对电路的稳定性造成威胁,工作不可靠。
第五章结论
此课程设计是水温控制系统,首先是方案的选择,这是课程设计的最主要的环节。
然后进行软件编程,通过数据线连接电脑下载编好的程序,进行调试。
再接下来是添加单元电路,并进行调试。
调试过程中,遇到不少问题,主要是经验不足,经过不停的摸索,问题基本上得到了解决。
我也懂得了系统要有良好的控制效果,其前端采集温度信号需要足够精确,其次系统的构成要简单实用,实时监控系统状态参数,并且运用多种算法使得数据更为接近真实值。
此次系统设计中主要难题为控制系统输出控制和PID控件,系统PID输出为模拟信号而该系统的控制对象为一加热棒,因此一般的执行器无法满足控制需求,而使用普通的触点式继电器会因频繁开关而产生电弧,可能导致事故发生。
所以在系统执行部分选取了SSR固态继电器作执行部件,从而克服了触点式继电器的不足。
PID控件的难题在于参数整定,对于本系统来说参数整定只能使用经验凑试,而且调试的时候一定要耐心。
总的来说通过这次设计实验,学到了很多东西,无论是动手能力,分析问题的能力都得到了提高,重要的是建立了对电子设计兴趣。
最大的体会还是理论运用到实践还是有很大差距,理论学得再好到了实际运用的时候还是会出现很多问题,这些问题通过多实践积累经验可以得到解决。
参考文献
[1]黄智伟.全国大学生电子设计竞赛电路设计.北京:
北京航天航空大学出版社,2007
[2]黄智伟.全国大学生电子设计竞赛技能训练.北京:
[3]黄智伟.全国大学生电子设计竞赛制作实训.北京:
[4]谭浩强.C程序设计.北京:
清华大学出版社,2002
[5]胡寿松.自动控制原理(第四版).北京:
科学出版社,2000,P220~236
附件1(程序代码):
#include<
AT89C51.h>
intrins.h>
#defineuintunsignedint
#defineucharunsignedchar
sbitS1=P2^5;
sbitS2=P2^6;
sbitS3=P2^7;
unsignedGetCh(void)
{unsignedchars=0,k=0;
if(!
S1)s=1;
//对于不同按键按下赋予不同数值,以供后面程序判断
S2)s=2;
S3)s=3;
k=s;
if(s)
{while(s)
{delay(1000);
s=0;
if(!
if(!
}
}
returnk;
//以下是A/D转换程序
//=======================================================
voidSystem_Initial(void)
{CS=1;
WR=1;
RD=1;
voidGetAD(void)
{CS=0;
nop();
//空操作
WR1=0;
Delay(100);
WR1=1;
CS=1;
while(!
INTR);
nop();
CS=0;
RD1=0;
dat=P2;
RD1=1;
ch=dat;
//ch是全局变量
intadc_data;
if(G_ADC_flag)//判断是否有温度采样1,有0,无
{G_ADC_flag=0;
adc_data=adc_data_cmp();
adc_data/=SET_ADC_TIME;
//计算温度平均值
if(adc_data>
0x0255)K=0.079;
//确定温度系数
elseK=0.076;
fT=adc_data*K;
//换算成温度值
//将温度值转换成十进制用于LED显示
guiLED_Value[0]=(int)fT/10;
guiLED_Value[1]=(int)fT%10;
guiLED_Value[2]=(int)(fT*10)%10;
stPID.Proportion=1;
//设置PID比例值
stPID.Integral=0.5;
//设置PID积分值
stPID.Derivative=0.0;
//设置PID微分值
Out=100*PIDCalc(&
stPID,(int)(fT*10));
//PID计算
}
//===========================================================
//函数:
intadc_data_cmp()
//语法:
//描述:
ADC采样数据的均值处理,抗干扰作用
//参数:
无
//返回:
//===========================================================
intadc_data_cmp()
{intmax;
intmin;
intSum;
inti;
max=ADC_DataSave[0];
for(i=0;
i<
10;
i++)
{if(ADC_DataSave[i]>
max)
max=ADC_DataSave[i];
//取出最大值
min=ADC_DataSave[i];
{if(ADC_DataSave[i]<
min)
min=ADC_DataSave[i];
//取出最小值
Sum+=ADC_DataSave[i];
//计算累计值
Sum=Sum-max-min;
//排除最大最小值
return(Sum);
//PID算法子程序
//函数:
voidPID_Initial(void)
voidPID_Initial(void)
PID初始化
无
{stPID.LastError=0;
stPID.PrevError=0;
stPID.SumError=0;
floatPIDCalc(PID*pp,intNextPoint)
PID计算
1、PID数值2、采样温度值
PID输出值
floatPIDCalc(PID*pp,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于单片机的温度控制系统设计 孙连强 基于 单片机 温度 控制系统 设计