您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 制造加工工艺 > 基于AVR的高精度恒温控制酸奶机
基于AVR的高精度恒温控制酸奶机摘要:本设计研究了怎样由AVR单片机自动控制酸奶机的温腔,从硬件和软件两方面介绍了高精度恒温控制系统的思路,提出了基于模糊PID算法的AVR单片机温度控制系统。该系统通过温度传感器DS1820对温度进行采样和转换,执行模糊PID算法控制,输出控制量来调节可控硅触发端的通断,提高了半导体升降温的精确度,保证了有益菌群的成活率。具有定时报警功能和自动存储功能。关键词:AVRDS18B20模糊PID控制1引言:温度是工业生产中常见的工艺参数之一。对于不同生产情况和工艺要求下的温度控制,所采用的加热方式和控制方式都不同;传统温度测量系统中,一般选用模拟式温度传感器。常用的模拟式温度传感器,其中一个共同特点是输出为模拟量,因此在测量电路中必须经过A/D转换才能成为计算机所能处理的数字量。而数字式温度传感器能将非电模拟量转换到数字信号,这一处理过程的多个环节集成在单芯片上,实现了在测量点将温度值数字化,有效解决了传统温度传感器外围电路复杂,抗干扰能力差的弊病,降低了对系统的要求[1]。本系统的牛奶发酵恒温箱(酸奶机)采用了先进的单总线数字温度传感器DS18B20,应用AVR做主控单元,实现温度的测量,控制和显示;采用模糊PID控制,提高了系统的精度;选择半导体加热和制冷,即提高酸奶机的使用寿命,又节能减排。2系统的硬件设计该系统的控制对象是酸奶机腔内温度,腔温经温度传感器DS18B20进行测量,采样,转换成电压信号,经A/D转换成计算机可以接收的数字信号,保存在ATmega8L单片机采样值单元中;再利用键盘输入设定温度,经温度标度转换成二进制数,保存在单片机内设定值单元;然后,调用显示子程序,显示设定温度和采样温度,然后把采样值与设定值输入单片机内进行模糊PID控制算法的运算,运算结果由单片机输出,通过可控硅交流调压装置来控制时间的导通和关断,在达到设定温度后利用PWM方法来保持此温度,以此来调节温度[2]。该系统原理如图1所示。温度偏差温度采样ATMEGA8L单片机键盘显示报警PWM波(执行机构)半导体制冷半导体加热被控对象温度传感器温度高于设定温度温度低于设定温度图1系统原理框图2.1ATmega8L单片机本设计采用的ATmega8L单片机在AVR家族中是个非常特殊的单片机,它的芯片内集成了较大容量的存储器和丰富强大的硬件接口电路,它的EEPROM电可擦除技术、闪速存储器技术是最引人瞩目的高质量和高可靠性生产技术。ATmega8L单片机的特点是:8KB的系统内可编程Flash;512字节EEPROM;1KBSRAM;32个通用I/O口线;32个通用工作寄存器;3个具有比较模式的灵活的定时器,计数器;片内/外中断;可编程串行USART;面向字节的两线串行接口;10位6路A/D转换器;具有片内振荡器的可编程看门狗定时器;一个SPI串行端口以及5种可以通过软件进行选择的省电模式[3]。2.2DS18B20DS18B20将传感器和数字转换电路都集成在一起,测温范围是-55~+125℃,在-10~+85℃时精度为±0.5℃,符合本设计的要求。信息经过单线接口送入DSl820或从DSl820送出,既传输时钟,又传输数据,而且数据传输是双向的,因此具有节省I/O口线资源、结构简单、成本低廉。该温度传感器的输出温度数据可与摄氏度校准,使用查找表或转换规则就可计算温度值,在温度寄存器中温度数据存储格式为一个16位符号扩展的两个单元,温度寄存器格式如图2所示。符号位S表示温度的正负,S=0时为正,S=1时为负。当DS18B20的配置为12位分辨率时(测量精度是0.0625℃),温度寄存器的所有位数据都是有效的;当DS181320的配置为11位分辨率时(测量精度是0.125℃),bit0未定义;当DS181320的配置为10位分辨率时(测量精度是0.25℃),bit0和bit1未定义;当DS181320的配置为9位分辨率时(测量精度是0.5℃),bit0~bit2未定义[4]。3系统软件设计3.1程序流程系统的程序流程主要包括系统的主程序、对atmega8单片机硬件电路的初始化、腔内温度采集子程序、温度控制子程序、报警子程序和键盘控制子程序等部分构成。程序流程图如图3所示,该系统的软件是CodeVisionAVR,它是C交叉编译器,具有为Atmel公司的AVR系列单片机所设计的集成开发环境和程序自动生成器。编译后的coff目标文件可以用于C源代码级调试,也可以使用AVRStudio调试器进行调试。除了标准的C库函数,CodeVisionAVRCCompiler还具有其他器件的库函数,如字母数字液晶显示模块、飞利浦I2C总线、NS公司的LM75温度传感器、飞利浦的PCF8563和PCF8583、Dallas公司的DS1302和DS1307实时时钟器件、以及DS1820/DS1822温度传感器等。CodeisionAVR还包含了codewizardavr程序自动生成器,使用时只要添加相关器件的头文件就可以在短短几分钟内生成初始化程序,并可以根据需要调用头文件中包含的功能函数,以实现对外围设备的操作。Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit02222212021222224Bit15Bit14Bit13Bit12Bit11Bit10Bit9Bit8SSSSS212524MSByteLSByte图2DS18B20温度寄存器的格式开始各模块初始化温度测量子程序调降温子程序执行模糊PID子程序输入设定温度T显示当前温度高于T报警子程序键盘处理子程序测量值与设定值比较是否超出T低于T调升温子程序是否计算温度偏差3.2控制算法本文采用模糊PID控制算法,模糊PID控制系统主要由参数可控式PID系统和模糊控制系统两部分组成,参数可控式PID控制器完成对系统的直接控制,模糊控制器实现对PID的3个控制参数(Kp、Ki及Kd)的在线自动修正。PID参数调整规则采用数字式PID控制器一般用函数式(1)表示:0()()()()niUkKpEkKiEiKdEck………………(1)式中:E(k)为系统误差;Ec(k)为系统误差变化量;Kp为比例作用系数,影响系统响应速度和精度;Ki为积分作用系数,影响系统稳态精度;Kd为微分作用系数,影响系统动态特性。系统划分为模糊PID控制区和直接控制区,控制温度接近目标温度达到一定误差限度(-0.5℃≤e≤+0.5℃)时,启动模糊PID控制算法,使温度稳定在设定温度附近。当温度超过上述误差限度,采用直接控制算法。这样既保证了系统的稳定性又提高了系统的快速性。模糊控制器采用二输入三输出模糊控制器,输入为温度误差E和温度变化Ec,输出为PID的3个作用系数Kp、Ki和Kd。首先将温度误差模糊化,其次温度变模糊化最后制定出模糊控制表。模糊PID子程序初始化温度信号提取计算出E,EcE(k),Ec(k)模糊化模糊整定ΔKp,ΔKpΔKd计算Kp,Ki,KdPID子程序返回PID输出图3系统程序流程图图4模糊PID算法程序流程图模糊推理决策采用双输入单输出的方式,控制规则由式(2)推理语言构成:IfEisAiandEcisBithenΔKjisCi………(2)式中:Ai、Bi、Ci、分别为E、Ec和ΔKj(j=P,I,D)模糊子集。遵循式(2),通过经验可以总结出模糊控制器的初步控制规则,从而确定出ΔKpΔKi和ΔKd的模糊控制规则。模糊PID算法的程序流程如图4所示。4总结本文设计的基于AVR单片机的控制的智能酸奶机,采用单总线数字温度传感器DS18B20,被控对象温度直接以“单总线”的数字式传输,大大提高了系统的抗干扰性;同时采用先进的模糊PID工业控制技术,温度控制精度达到±0.1℃。很好地解决了恒温控制系统大迟滞、非线性难题。充分利用编译器Code-VisionAVRCCompiler的库函数,省去编写驱动程序的麻烦,大大缩短了开发周期,并且具有抗干扰能力强,扩展方便,廉价和适用的特点,能够满足生产过程的要求,具有很好的推广前景。参考文献:[1]葛治军.基于AVR单片机的多点数字温度检测系统设计[J].信息技术,2005(9):149-151.[2]蔡美琴.MCS-51系列单片机系统及其应用[M].北京:高等教育出版社,1992:42-60.[3]ATMEL.ATmega8L数据手册[Z].[4]DALLAS.DS18B20Datasheet[DB/OL].
本文标题:基于AVR的高精度恒温控制酸奶机
链接地址:https://www.777doc.com/doc-2568655 .html