资源描述
河 南 工 业 大 学
计算机控制技术课程设计
院(系):
专业班级:
学 号:
学生姓名:
指导教师:
起止时间:
课程设计(论文)任务及评语
院(系):电气工程学院 教研室:
学 号
学生姓名
专业班级
课程设计(论文)题目
食物仓储温度控制系统设计
课程设计(论文)任务
设计任务及要求
1、确定系统设计方案,包括单片机的选择,输入输出通道,键盘显示电路;
2、建立被控对象的数学模型;
3、推导PID控制算式,设计PID算法的程序流程图或程序清单;
4、仿真研究,验证设计结果。
5、撰写、打印设计说明书一份;设计说明书应在4000字以上。
技术参数
温度控制范围:-5—+5 ºC
误差小于5%
低于下限或高于上限时报警
进度计划
1、布置任务,查阅资料,确定系统方案(1天)
2、被控对象建模(1天)
3、算法推导,程序设计(3天)
4、撰写、打印设计说明书(2天)
指导教师评语及成绩
平时: 论文质量: 答辩:
总成绩: 指导教师签字:
年 月 日
摘 要
本设计以单片机为核心的果蔬仓储温度控制系统设计,从硬件和软件的思路来分析其原理,对硬件原理图和程序流程图进行了系统的描述。系统主要功能是检测现场温度和温度越限报警功能,实现温度的自动测量和控制,并采用PID算法,将温度控制在规定的范围内,通过显示器显示当前温度。本设计单片机控制部分由2部分组成,第一部分是控制制冷机的制冷量,通过单片机PID算法,输出模拟信号送到变频器,来控制压缩机来控制制冷量。第二部分是控制空调机来实现温度升高。从而达到将仓储温度控制在最佳温度范围内的控制目的。
关键词:单片机;果蔬仓储;温度控制
目 录
第1章 绪论 1
第2章 课程设计的方案 2
2.1 概述 2
2.2 系统组成总体结构 2
第3章 硬件设计 4
3.1 单片机最小系统设计 4
3.2 核心芯片的选择 5
3.3 A/D转换器的选择 6
3.4 模拟量传感器的选择 8
3.5 变频器的选择 9
3.6 LED显示与键盘电路 9
3.7 系统总电路图 9
第4章 软件设计 11
4.1 单片机软件设计 11
4.2 系统设计流程图 14
第5章 课程设计总结 20
参考文献 21
第1章 绪论
我国北方冬季寒冷而漫长,大力推广果蔬仓储来满足人们日常生活对水果蔬菜的需要,随着人们生活水平的日益增长,对果蔬的要求也较高,对果蔬储存的最重要的一个因素就是温度控制。冬季对果蔬储存是一个对温度要求较高的设计,当温度过高时,水果和蔬菜会发变质发烂:当温度过低时,对水果蔬菜会造成冷冻状态,失去原有的味道,所以对仓储的温度要求是非常高的。
仓储温度采集系统主要应用在对果蔬的储藏,本系统由检测软件、A/D转换器、单片机、传感器组成。采集控制器可接传感器,控制器报警输出以一个采集控制器为一个采集单元,报警输出参考值可以是2采集点平均温或单点温度,平均温度报警输出更加合理,更加准确绝对避免温度突变误报。采集器防水处理可以安装在-5~+5 ºC的仓储温度范围内,可壁挂式安装或嵌入式安装。
温度控制系统主要适用于药品储藏、食品储藏、水果储藏、蔬菜储藏、疫苗储藏,血液储藏等,但本设计方案主要对于水果和蔬菜的储存温度进行控制设计。
随着科学发展的进度和对水果蔬菜最适温度的研究,对仓储温度的要求也越来越高,为了让人类的生活更加完美,吃到的水果蔬菜既新鲜又美味,仓储温度的控制系统起着重要作用,为了使单片机控制温度更加精密,所以对系统的要求更高。
第2章 课程设计的方案
2.1 概述
本次设计主要是综合应用所学知识,对果蔬仓储温度系统进行设计,并在实践的基本技能方面进行一次系统的训练。能够较全面地巩固和应用“单片机”课程中所学的基本理论和基本方法,并初步掌握小型单片机系统设计的基本方法。
应用场合: 应用于蔬菜、水果仓储储存 ,冷库温度控制系统有一个脉冲温度传感器,通过脉冲计数可以显示冷库中的温度值。控制器由12V蓄电池供电。
系统功能介绍: 利用传感器采集现场温度,并通过A/D转换器将模拟信号转化为数字信号送入单片机中,通过PID算法将温度控制在规定范围内,从而达到对仓储温度控制的目的。
2.2 系统组成总体结构
仓储储存在我国北方是比较常见的一种对水果和蔬菜的储存方法,其主要是检测仓储内部的温度,并将温度控制在规定范围内,保证水果蔬菜新鲜。本设计温度控制以单片机为核心,选用8052芯片作为控制器件。
果蔬仓储的电源采用交流电,使用可控硅来控制温度功率,本设计采用单相220V交流电即可。
该温度控制系统启动后,能够按实测温度和设定温度通过单片机的运算输出信号从而控制双相晶闸管的导通角,来控制果蔬仓储冷却功率,调节温度使温度保存在设定值。在单片机进行运算的同时会进行相应的报警判断,来决定是否输出报警信号等,采用PID控制算法,将温度控制在规定范围内,并在显示器上显示出当前温度值。
该温度控制系统分为三个部分,温度采样、主机部分和实现部分,在设计单片机结构的同时要通过PID算法求出当前仓储的温度值,利用专业知识来进行编程设计,软硬件相结合来完成本次设计,熟练掌握PID计算方法来完成温度值的求得,选用适当的单片机芯片,完成各接口的连接以及各部分的结构图和流程图,
根据各部件要求及设计思路,可得系统结构框图如下所示:
单片机
模拟量传感器
A/D转换器
键盘按钮
变频器
空调机
显示电路
图2.1 系统总体框图
第3章 硬件设计
3.1 单片机最小系统设计
本系统所需单片机最小系统如下图所示:
图3.1 单片机最小系统图
图3.1是温度控制系统的结构框图,系统主要由单片机,检测系统及变换电路、键盘、显示器、变频器、执行机构组成,采用了模块化的设计方案,组建方式灵活,具有良好的扩展性。
单片机
驱动电路
变频器
控制对象
输出
温度检测及变换电路
图3.2 温度控制系统结构框图
该系统的性能特点:
(1) 可靠性高,在系统设计中对系统可靠性作了充分的论证, 同时采取了相应的解决措整个系统的可靠性高,使运行安全、可靠。
(2) 控制精度高,由于对仓储温度分布进行了分析,找出最佳测量点,在设计方案上采用了开关量控制和模拟量控制以提高精确度,在硬件上采用了高精度的传感器和性能良好的集成芯片,使温度精度进一步提高满足用户对温度要求。
(3) 可控点多,扩展性能良好,采用平均值算法客服了以往温控制能单点测量某一区的温度值。
3.2 核心芯片的选择
目前,市场上以MCS-51系列单片机应用最广,配合其生产的芯片业最多,而
且51系列以能完成本系统所需要求,价格较低,所以本系统选用51系列单片机AT89C52作为核心芯片。AT89C52有40个引脚,32个外部双向输入/输出(I/O)接口,同时内含2个外中断口,3个16位可编程定时计时器,2个双全工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,也可以在线编程。将其通用的微处理器和Flash存储器结和再一起,特别是可反复擦写的Flash存储器可有效的降低开发成本。其引脚如图所示
其主要功能特性如下:
兼容MCS51指令系统
8K可反复擦写Flash ROM
32个双向I/O口
256*8bit内部RAM
3个16位可编程定时/计时器中断
时钟频率0-24MHZ
2个串行中断
可编程UART串行通道
2个外部中断源
2个读写中断口线
3.3 A/D转换器的选择
A/D转换器采用AD5240芯片,它是采用CMOS工艺制作的单片41/2位A/D转换器,只要附加译码器,数码显示器,驱动器及电阻电容元件等。组成一个满量程为2V的数字电压表,其引脚功能及芯片图如下图所示。
AD5240主要特点如下:
1 在每次A/D转换前,内部电路都自行进行调零操作。
2 具有自动极性转换功能。
3 所以输出端与TTL电路相等。
4 有过量程和欠量程标志信号输出,可用作自动量程转换的控制信号。
5 输出为动态扫描BCD码。
6 对外提供6个输入,输出控制信号,因此除用于数字电压表外,还能与异步接受/发送器,微处理器或其他控制电路连接使用。
7 STATUS
当输出电压超出量程范围,STATUS将会变高,该信号在CLK信号结束时变高,在START阶段开始时变低。
8 CLK:时钟输入端,工作于双极性情况下,最高时钟频率为125kHZ,这时转换次数为3次每秒左右。如果输入信号为单极性的,最高时钟频率为1kHZ,这时转换速度为25次每秒左右。
9 DGND:数字地
10 R/H;启动转换保持控制端,该端接高电平时,转换器自动连续转换。每隔40002个时钟完成一次A/D转换。该端为低电平时,A/D转换结束后保持转换结果,输入一个正脉冲后,重新启动转换器进行下一次转换。
双积分A/D转换工作原理
电路先对未知的输入模拟电压进行固定的时间积分,然后转为对标准电压进行反向计分,直至计分输出返回起始值,则对标准电压积分的时间正比于模拟输入电压,输入电压大,则反向积分时间长,用高频率标准时钟脉冲来测量时间,即可以得到相应模拟电压的数字量。
3.4 模拟量传感器的选择
当将单片机用于做测控系统时,系统总要有被测量信号的输入通道,由计算机拾取必要的信息,对测控系统来讲,对被控对象状态的测试和对控制条件的观察也是不可缺少的环节。对被测对象的状态的拾取,一半都离不开传感器,这是因为被测对象的状态参数往往是一种非电物理量,而计算机只是一个能识别和处理电信号的数字系统,因此利用传感器将非电物理量转换成电信号才能完成测量和控制功能。
一般情况下,一切随温度变化而物体性质也发生变化的物质均可作为温度传感器,一般真正能作为实际中使用的传感器物体可具备如下特点:
(1) 物体的特性随着温度的变化有较大的变化,且变化量易于测量。
(2) 对温度变化有较好的一一对应关系。
(3) 性能误差及老化小,重复性好,尺寸小。
(4) 有较强的耐机械、化学及热作用等特点。
(5) 与被检测的温度范围和精度像适应。
(6) 价格适宜,适合于批量生产。
本系统采用的温度传感器是热电阻,热电阻是温度测量中最常用的传感器,其测温区宽,测量的准确度和灵敏度都较高,尤其在高温范围内,有较高的精度,热电阻已经标准化,产品系列化,易于选用。
3.5 变频器的选择
本系统采用的变频器是交流变频器,通过变频器的调速功能来改变执行机构的制冷机或空调机,从而来改变仓储内部的温度,该系统所选用的交流变频器的普通型变频器,其主要特点是变速快,结构简单易于维护,操作简单,可靠性高。交流变频器在该系统中主要作用是来改变执行机构对温度调节的速度快慢,本系统对调节时间要求并不高,所以选用交流变频器能够达到所期望的目的,市场上普通型交流变频器的价格并不高,对本系统的成本并没有影响,所以该变频器是满足本系统的最佳变频器。
3.6 LED显示与键盘电路
本系统采样三位显示作用,第一位显示温度的正负,第二位显示温度的整数位,第三位显示的是温度的小数位,根据规定的温度范围所得。LED显示是由发光二极管组成的显示器,是智能化测量控制仪表中简单而又常用到的设备,常用来指示机器的状态或其他信息。他的优点是价格低,寿命长,对电压电流的要求低容易实现等,因而在智能化控制仪表中得到了广泛应用。
在多位LED显示时,为了简化电路,通常将所有位的段选线相应的并联在一起,由一个8位I/O口控制,形成段选线的复用。而各位的共阳极和共阴极分别由相应的I/O口线控制,实现各位的分时选通。各位LED能够显示出与本位相应的显示字符,必须采用扫描显示方式,即在某一时刻,只让某一位的位选线处于选通状态,同时,段选线上数出相应的输出码,这样同一时刻,3位LED中只有选通的那位显示数值,本系统显示精确到小数点后一位,例如通过PID检测到当前温度为零上1.5 ºC时,相应的显示为,百位+、十位1、各位5。
3.7 系统总电路图
系统电路连接包括单片机,A/D转换,传感器,单片机,显示电路,键盘电路及执行单元,通过各引脚将各单元连接起来,其连接电路图如下所示。
图3.5 总电路图
第4章 软件设计
4.1 单片机软件设计
本系统设计要求是能够实时的测温并显示所测得的温度以及根据要调节的温度,采用一定的算法使控制的温度与所调节的相符。在设计该系统时,根据控制系统的实时测量,实时决策,实时控制来完成,将程序分解成模块来处理。
软件程序所要完成的任务:
(1) 利用A/D来完成对俩个通道进行选择
(2) 键盘扫描、识别、温度显示
(3) 数据处理
(4) 越限处理
(5) PID运算
主程序:主程序只需要进行一些AT89C52本身的初始化,然后等待中断的产生,初始化包括中断允许寄存器的设置,对中断的优先级IP的设定,T0的初始化,等待中断。
T0中断服务程序:T0中断程序是温度控制系统的主体程序,用于启动转换,读入采样数据,数字虑波,越限温度报警和越限处理,计算等。从T0中断程序中,还需要用到一系列的子程序,如温度采用值的子程序,数字滤波子程序限处理子程序,计算子程序,标度转换程序和温度显示程序。
常规PID控制是一种线性控制,如图4.1所示。
被控对象
积分
比例
微分
+
r(t)
e(t)
c(t)
图4.1 PID控制原理图
在制冷控制中,根据给定温度值与实际输出温度值构成控制偏差=-,然后将偏差按比例、积分、微分,通过线性组合构成控制量,控制被控对象,控制规律是:
其中,是比例系数,是积分时间,是微分时间。
对于制冷机来说,采用变频器来控制,因此其PID控制规律可采用增量式差分方程:
其中,K为采样序号,是第K次时计算机输出值,是第K次采用输入 差值, 为第K-1次采用输出偏差值。
把测得的仓储温度与设定值相比,便可得到二者的偏差,然后经过PID的运算,得到控制器的输出量,驱动变频器改变执行机构功率,来改变仓储内部的温度。
PID参数的整定
控制系统质量的好坏取决于控制器与被控对象之间的特性配合是否恰当,因此PID控制器的参数应由被控对象来空调机来确定。由于空调机是一个多参数,大惯性的对象,可将其看作延迟对象,应满足:
其中,是空调机的时间常数,由于被控对象中有储能环节,对于突变的输入,其输出不能立即复现,因此时间常数反映了一个系统自动平衡的时间长短,为空调机的延时,表示输出量复现输入量所需要的延时一段时间,为空调机的增益,反映了对象的自平衡性,s为拉普拉斯变换算子。
空调机的特性参数K、T、将随着热负荷的大小变化而变化,可以通过实验反复曲线法求得。实验如下,给压缩机一个速度阶跃,空调机的制冷量将对应一个响应,可以测得空调机响应制冷的一个曲线。然后根据响应曲线求得T、K、分别为:
其中,为空调机流量的阶跃变化,为空调机制冷量的变化,是空调机响应曲线对应0.28时的时间,是空调机响应曲线对应0.632的时间。
对应求得:
根据执行机构空调机的参数得到该系统的传递函数为:
=
又因为
所以
由增量型公式:
其中,
本实验选用传递函数为:
G(s)= 1/(0.1s+1)*2/(0.1s+1)
通常取,从图中可得到=0.32s
通常取,从图中可得到
求得PID调节器控制参数
根据求得的数据计算偏差值,并控制偏差值5%,若偏差值5%,采用PID参数整定法将偏差值控制在5%以内,这样才能够保证能够实现所要求的温度范围内,即将温度控制在-5~+5摄氏度。
由此看出,空调机是一个多参数相互耦合的系统,各种干扰导致其右强烈的非线性,因此在采用滞后一个惯性环节时,进行了线性处理,才得到了PID控制参数,PID控制算法能使空调机的参数K、T、在一定范围内变化,仍具有一定的适应性,这也是很多制冷系统采用PID算法的原因。
4.2 系统设计流程图
本系统编程采样单片机编程,利用所学知识来完成各部分编程,本程序设计采用模化设计思路,这种设计方法特点是便于编程,调试程序,编程效率高,其基本思路是将整个控制系统的功能分解成几个相应的独立的标准模块,使其在的每一个模块完成某一特定的功能,使它们的运行不受其他模块的影响。同时,在整个系统的主程序中,利用顺次查询方式完成数据处理,逻辑运算,功能块调试等。尽量减少跳转指令,增强系统的可靠性。同时,为增加数据存储的可靠性,可以采用冗余设计,对重要数据进行备份。增加一个软件定时器,当单片机受到各种干扰而失效,因此程序跑飞,也可能使程序进入死循环,因此,可以采用程序监控技术。
开始
IE设置
IP设置
T0初始化
等待中断
图4.2 主程序流程图
保护现场
采样温度
数字滤波
是否超过
上限
PID算出温度
温度转换
达到温度标准
恢复现场
返回
循环
是
恢复现场
返回
否
是否超过下限
是
PID算出温度
温度转换
达到温度标准
恢复现场
返回
否
循环
图4.3 中断服务流程图
通过实验测试及PID控制算法测的得出系统传递函数,根据其PID参数得到相应的PID曲线图,其图形如下图所示:
本系统所以程序如下:
#include<reg51.h> //包含单片机寄存器的头文件
#include<intrins.h> //包含_nop_()函数定义的头文件
unsigned char code digit[10]={"0123456789"}; //定义字符数组显示数字
unsigned char code Str[]={" Welcome"}; //说明显示的是温度
unsigned char code Error[]={"Error!Check!"}; //说明没有检测到
unsigned char code Temp[]={"Temp:"}; //说明显示的是温度
unsigned char code tab[]
sbit RS=P0^5; //寄存器选择位,将RS位定义为P2.0引脚
sbit RW=P0^6; //读写选择位,将RW位定义为P2.1引脚
sbit E=P0^7; //使能信号位,将E位定义为P2.2引脚
//sbit BF=P1^7; //忙碌标志位,,将BF位定义为P0.7引脚
void delay1ms
unsigned char i,j;
for(i=0;i<10;i++)
for(j=0;j<33
void delaynms(unsigned char n)
unsigned char i;
for(i=0;i<n;i++)
返回值:result。result=1,忙碌;result=0,温度超过上限
bit BusyTest(void)
bit result;
RS=0;
RW=1;
E=1; //E=1,才允许读写
return result;
void WriteInstruction (unsigned char dictate)
while(BusyTest()==1); //如果忙就等待
RS=0; //根据规定,RS和R/W同时为低电平时,可以入指令
RW=0;
E=0; //E置低电平 ;
void display_explain(void)
unsigned char i;
WriteAddress(0x00); //写显示地址,将在第1行第1列开始显示
i = 0; //从第一个字符开始显示
while(Str[i] != '\0') //只要没有写到结束标志,就继续写
{
WriteData(Str[i]); //将字符常量写入LCD
i++; //指向下一个字符
delaynms(100); //延时100ms较长时间,以看清关于显示的说明
}
void display_symbol(void)
{
unsigned char i;
WriteAddress(0x40); //写显示地址,将在第2行第1列开始显示
i = 0; //从第一个字符开始显示
while(Temp[i] != '\0') //只要没有写到结束标志,就继续
WriteData(Temp[i]); //将字符常量写入LCD
i++; //指向下一个字符
delaynms(50); //延时1ms给硬件一点反应时间
void display_dot(void)
WriteAddress(0x49); //写显示地址,将在第2行第10列开始显示
WriteData('.'); //将小数点的字符常量写入LCD
delaynms(50); //延时1ms给硬件一点反应时间
void display_cent(void)
unsigned char m;
WriteInstruction(0x40);//写年月日
for(m=0;m<40
delaynms(50); //延时1ms给硬件一点反应时间
void display_temp1(unsigned char x)
unsigned char j,k,l; //j,k,l分别储存温度的符号、个位、小数位
j=0 //取正
l=x%10; //取个位
k=x%0.1 //取小数位
WriteAddress(0x46); //写显示地址,将在第2行第7列开始显示
WriteData(digit[j]); //符号位字符常量写入LCD
WriteData(digit[k]); //将个位数字的字符常量写入LCD
WriteData(digit[l]); //将小数位数字的字符常量写入LCD
delaynms(50); //延时1ms给硬件一点反应时间
void display_temp2(unsigned char x)
WriteAddress(0x4a); //写显示地址,将在第2行第11列开始显示
WriteData(digit[x]); //将小数部分的第一位数字字符常量写入LCD
delaynms(50); //延时1ms给硬件一点反应时间
void ReadyReadTemp(void)
Init_DS18B20(); //将DS18B20初始化
WriteOneChar(0xCC); // 跳过读序号列号的操作
WriteOneChar(0x44); // 启动温度转换
for(time=0;time<100;time++)
; //温度转换需要一点时间
Init_DS18B20(); //将DS18B20初始化
WriteOneChar(0xCC); //跳过读序号列号的操作
WriteOneChar(0xBE); //读取温度寄存器,前两个分别是温度的低位和高位
void main(void)
LcdInitiate(); //将液晶初始化
delaynms(5); //延时5ms给硬件一点反应时间
if(Init_DS18B20()==1)
display_error();
display_explain();
display_symbol(); //显示温度说明
display_dot(); //显示温度的小数点
display_cent(); //显示温度的单位
while(1) //不断检测并显示温度
ReadyReadTemp(); //读温度准备
TL=ReadOneChar(); //先读的是温度值低位
TH=ReadOneChar(); //接着读的是温度值高位
TN=TH*16+TL/16; //实际温度值=(TH*256+TL)/16,即:TH*16+TL/16
//这样得出的是温度的整数部分,小数部分被丢弃了
TD=(TL%16)*10/16; //计算温度的小数部分,将余数乘以10再除以16取整, //这样得到的是温度小数部分的第一位数字(保留1位小数)
display_temp1(TN); //显示温度的整数部分
display_temp2(TD); //显示温度的小数部分
delaynms(10);
}
}
第5章 课程设计总结
在我国北方对水果蔬菜存储非常普遍,该系统是一种基于单片机对冷库温度进行检查控制系统,解决了仓储温度测量单单靠人力来完成的任务,提高了仓储的温度控制效果,对产品的质量进一步的提高,该系统能在相应的功能上代理人为管理系统,大大的减少了劳动力,避免了人为失误而带来的经济损失,提高的产品的普遍化和经济化,使生产水平上一台阶。
本系统设计虽然达到了要求目的,但是很多方面对实际情况有不足的时候,通过与其他系统的比较来进一步改善系统的设计,使该系统能够真正用于实际果蔬仓储控制中,来达到对果蔬进行保鲜的作用
参考文献
[1] 王丹,高精度温度测量仪的研究,电子测量与仪器学报,2001.1
[2] 李波,基于CAN总线冷库温度控制系统;科技文献出版社,2003.6
[3] 朱华贵,分布式多路远程温度检测系统的设计与实现,乐山师范学院学报,1990(2):14-21
[4] 宋书峰,基于PLC单片机的测温网络开发:仪表技术,1992:53-58
[5] 刘斌.微型冷库系统研究,天津商学院.1994:23-30
[6] 杨勇,.数字温度传感器于单片机构成的测温系统的研究,现代电子技术,2001.6
[7] 黄金华,PID连续控制算法研究,自动化仪表与自动化装置,2001
[8] 陈宝江,MCS单片机应用系统指南,机械工业出版社,1997.6
[9] 张兴国,增量式PID控制在温度系统中的应用,南通大学报,2000.4
[10] 丁国良,制冷空调装置仿真与优化,北京科学出版社,2003.8
展开阅读全文