基于MSP430的水温控制系统设计报告.docx
- 文档编号:30275240
- 上传时间:2023-08-13
- 格式:DOCX
- 页数:21
- 大小:647.21KB
基于MSP430的水温控制系统设计报告.docx
《基于MSP430的水温控制系统设计报告.docx》由会员分享,可在线阅读,更多相关《基于MSP430的水温控制系统设计报告.docx(21页珍藏版)》请在冰豆网上搜索。
基于MSP430的水温控制系统设计报告
水温控制系统
摘要
本水温控制系统是基于MSP430单片机为主控芯片,键盘输入设定温度,并在LCD12864上显示设定温度和实时温度。
通过DS18B20温度传感器对水温进行采样,将采得的数字温度信号送给单片机,单片机对温度进行PID算法,通过改变加热控制方波的占空比达到精确控制温度的目的。
本水温控制系统的静态误差≤0.2°C,当设定的温度比实时温度高0.12°C时,则启动风扇降温,10分钟左右到达稳定状态。
本系统能够很精确地实现水温控制,是一个很好的水温控制方案。
关键字MSP430PID算法DS18B20温度传感器
Abstract
ThetemperaturecontrolsystemisbasedontheMSP430microcontrollerasthemasterchip,controltemperatureissetthroughkeyboardandtheLCD12864displaythecontroltemperatureandthereal-timetemperature.TemperaturesensorDS18B20samplesthewatertemperatureandsentsthedigitalsignaltothemicrocontroller,themicrocontrolleronthetemperatureofPIDalgorithmchangesthedutycycleofheatingcontrolsquarewavetoachieveprecisecontroloftemperature.Thetemperaturecontrolsystemofstaticerror≤0.2°C.whenthesettemperaturehigherthanthereal-timetemperature0.12°C,thenthefanstartstocool,reachingthesteadystatecostabout10minutes.Thesystemcanachieveaveryprecisetemperaturecontrol,thistemperaturecontrolisagoodprogram.
Keywords:
MSP430PIDalgorithmtemperaturesensorDS18B20
目录
1引言1
2方案论证与比较2
2.1总体方案设计2
2.2模块方案设计2
2.2.1温度传感器的设计2
2.2.2MCU的选择与设计4
2.2.3温度显示模块的设计5
2.2.4强电控制电路设计6
3系统电路设计7
3.1系统设计总方框图7
3.2电源模块设计8
3.3MSP430核心模块设计8
3.4继电器控制模块8
3.5液晶及按键模块9
3.6DS18B20模块9
3.7温控电路实物图10
4系统软件设计11
4.1软件流程图11
4.2PID控制的原理和特点11
4.3PID算法程序设计12
5测试方法与测试结果13
5.1测试仪器13
5.2测试方法13
5.3测试结果13
6总结及展望14
1引言
在现代化的工业生产中,电流、电压、温度、压力、流量、流速和开关量都是常用的主要被控参数。
例如:
在冶金工业、化学生产、电力工程、造纸行业、机械制造和食品加工等诸多领域中,人们都需要对各类加热炉、热处理炉、反应炉和锅炉中的温度进行检测和控制。
采用MSP430(MixedSignalProcessor)单片机对温度进行控制,不仅具有控制方便、组态简单和灵活性大等特点,而且可以大幅度提高被控制温度的技术指标,从而能够大大提高产片的质量和数量。
因此,单片机对温度的控制问题是一个工业生产中经常会遇到的问题。
在人类的生活环境中,温度扮演着极其重要的角色。
温度是工业生产中常见的工艺参数之一,任何物理变化和化学反应都与温度密切相关,因此温度控制是生产自动化的重要任务。
对于不同生产情况和工艺要求下的温度控制,所采取的加热方式,燃料,控制方案也有所不同。
无论生活在哪里,从事什么工作,无时不刻都在和温度打交道。
自18世纪工业革命以来,工业发展对是否能掌握温度有着绝对的联系。
在冶金、钢铁、石化、水泥、玻璃、医药等等行业,几乎大部分工业部门都不得不考虑着温度的因素。
因此,以单片机为核心的水温控制系统在工业生产中有着广泛的应用情景。
给水温控制系统以MSP430为核心,完成了从水温检测、信号处理、输入、运算到输出控制电炉加热功率以实现水温控制的全过程。
而且MSP430的超低功耗满足了工业级的要求,使得这一水温控制系统在市场上更加具有竞争力。
主要性能指标:
a控制精度:
温度控制的静态误差≤1℃;
b温度设定范围:
10~90℃,最小区分度为0.5℃;
c能显示水的实际温度;
d能在LCD12864上自动显示水温随时间变化的曲线;
e当温度突变时,能减小系统的调节时间和超调量。
2方案论证与比较
2.1总体方案设计
方案一、此方案是采用传统的模拟控制方法,选用模拟电路,用电位器设定给定值,反馈的温度值与给定的温度值比较后在决定加热与否。
其特点是电路简单,易于实现,但是系统所得结果的精度不高并且调节动作频繁,系统静态误差大,不稳定,不能实现复杂的控制算法,人机交换性能差。
方案二、采用单片机为核心,用DS18B20采集温度信号送入单片机处理,并用单片机控制相应的加热电路,从而达到温度控制的目的。
单片机具有编程灵活,控制简单的特点,使系统能简单的实现温度的控制及显示,并且通过软件编程能实现各种控制算法,提高了系统的控制精度。
另外,单片机的使用也为实现水温的智能化控制以及提供完善的人机交互界面以及多机通讯接口提供了可能,而这些功能在常规的数字逻辑电路中往往难以实现。
比较两种方案,方案二明显改善了方案一的不足和缺点,并且具有控制简单、温度控制精度高的特点。
因此本设计电路采用方案二。
2.2模块方案设计
2.2.1温度传感器的设计
方案一、采用集成温度传感器AD590K的温度检测电路
温度检测电路如图1所示,采用集成温度传感器AD590K。
AD590K温度传感器具有较高精度和线性度,非线性为0.8℃(-50℃~+155℃),重复性优于0.1℃,可在A/D采集后,在程序中对采样数据进行非线性补偿,从而达到±0.1℃测量精度。
AD581是一个输出为10V电压的高精度基准电压源。
AD707A是一个超低漂移的运算放大器。
图1
由于AD590K测温精度为0.3℃,测温度重复性优于0.1℃,因此在程序使用中使用软件插值法进行线性化后,系统测温精度可以达到0.1℃。
实际标定步骤如下:
1传感器粗调0℃点校正。
在保温杯中加入冰水混合物,放入标准温度计(分度为0.1℃)和传感器探头,用高精度数字电压表测量温度检测电路输出电压。
等温度检测电路输出电压稳定后,读标准温度计刻度。
若温度为0.5℃,则调节温度检测电路的调零电位器R1,使检测电路的输出电压为0.5V。
2增益调整。
将传感器探头放入沸水中,读标准温度计刻度。
若温度为95℃,则调节温度检测电路中的增益调整电位器R2,是检测电路的输出电压为9.5V。
经过以上粗调后,温度检测电路输出为100mV/℃,在0~100℃是对应电压0~10.0V,测量精度为0.3℃。
3传感器精度标定。
AD590K的测温精度由于其非线性特性,只能达到±0.3℃。
若要进一步提高AD590K的测温精度,则必须精确地标定温度检测电路在不同温度下的输出电压,将电压-温度的对应关系存入表格,在测控程序中采用软件进行插值补偿,获得±0.1℃的测量精度。
方案二、采用DS18B20数字温度传感器对水温进行采样
DS18B20是DALLAS公司生产的1-Wire数字温度传感器,具有3引脚TO-92小体积封装形式,如图2所示,DQ为数字信号输入/输出端,GND为电源地,VDD为外接供电电源输入端,在寄生电源方式时VDD接地。
温度控制范围为-55℃~+125℃,分辨率可达0.0625℃,满足本设计系统对温度的要求。
控制温度检测结果以16为数字量方式串行输出,单片机和DS18B20之间仅需一条线就可以实现通讯。
图2
对比分析:
在市面上AD590比DS18B20贵几倍,同时AD590的外围电路比DS18B20的复杂,在程序控制上,AD中需要复杂的时序控制,而DS18B20只需一条数据线就可以控制,就这价格和电路实现难易的考虑,本系统选择方案二。
2.2.2MCU的选择与设计
方案一采用STC89C52作为主控芯片
STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
具有以下标准功能:
8k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,内置4KBEEPROM,MAX810复位电路,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口。
另外STC89X52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
最高运作频率35Mhz,6T/12T可选。
图3
方案二采用MSP430作为主控芯片
MSP430系列单片机是美国德州仪器(TI)1996年开始推向市场的一种16位超低功耗、具有精简指令集(RISC)的混合信号处理器(MixedSignalProcessor)。
其具有以下突出特点:
A处理能力强
MSP430系列单片机是一个16位的单片机,采用了精简指令集(RISC)结构,具有丰富的寻址方式(7种源操作数寻址、4种目的操作数寻址)、简洁的27条内核指令以及大量的模拟指令;大量的寄存器以及片内数据存储器都可参加多种运算;还有高效的查表处理指令。
这些特点保证了可编制出高效率的源程序。
B运算速度快
MSP430系列单片机能在25MHz晶体的驱动下,实现40ns的指令周期。
16位的数据宽度、40ns的指令周期以及多功能的硬件乘法器(能实现乘加运算)相配合,能实现数字信号处理的某些算法(如FFT等)。
C超低功耗
MSP430单片机之所以有超低的功耗,是因为其在降低芯片的电源电压和灵活而可控的运行时钟方面都有其独到之处。
首先,MSP430系列单片机的电源电压采用的是1.8-3.6V电压。
因而可使其在1MHz的时钟条件下运行时,芯片的电流最低会在165μA左右,RAM保持模式下的最低功耗只有0.1μA。
其次,独特的时钟系统设计。
在MSP430系列中有两个不同的时钟系统:
基本时钟系统、锁频环(FLL和FLL+)时钟系统和DCO数字振荡器时钟系统。
可以只使用一个晶体振荡器(32768Hz),也可以使用两个晶体振荡器。
由系统时钟系统产生CPU和各功能所需的时钟。
并且这些时钟可以在指令的控制下,打开和关闭,从而实现对总体功耗的控制。
由于系统运行时开启的功能模块不同,即采用不同的工作模式,芯片的功耗有着显著的不同。
在系统中共有一种活动模式(AM)和五种低功耗模式(LPM0~LPM4)。
在实时时钟模式下,可达2.5μA,在RAM保持模式下,最低可达0.1μA。
图4
对比分析:
对比以上两种芯片,由于MSP430突出的处理能力,其运算能力比STC89C52高出10倍以上,功耗也比STC89C52小得多,而且片上有丰富的I/O口资源,对于整体的硬件电路实现有益,所以选择方案二。
2.2.3温度显示模块的设计
方案一 采用七段数码管作为显示模块
七段数码管(如图5)是数码管的一种是半导体发光器件,其基本单元是发光二极管。
图5
显示温度时,先通过段选芯片74HC04选择哪一位的数码管导通,再对控制数码管的I/O口进行赋值定义,即可以使数码管显示出相应的数字。
控制简单高效,操作起来十分方便。
其应用电路如图6所示。
图6
方案二 采用LCD1602作为显示模块
1602液晶(如图7)也叫1602字符型液晶它是一种专门用来显示字母、数字、符号等的点阵型液晶模块它有若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符。
每位之间有一个点距的间隔每行之间也有间隔起到了字符间距和行间距的作用,正因为如此所以他不能显示图形。
图7
方案三 采用LCD12864作为显示模块
LCD12864(如图8)是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64,内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。
可以显示8×4行16×16点阵的汉字。
也可完成图形显示。
图8
对比分析:
对比以上三种方案,选择LCD12864比较合理。
其可以显示字符、汉字、图形等,很好的满足了题目对温度曲线显示的要求。
2.2.4强电控制电路设计
方案一 采用MOC3041和可控硅的功率控制电路
采用MOC3041和可控硅功率控制电路如图9所示。
图中MOC3041是具有双向晶闸管输出的光电隔离器,在MOC3041内部不仅具有发光二极管,而且还有过零检测电路和一个小功率的双向可控硅。
当控制其通断的I/O口置高时,MOC3041中的发光二极管发光,由于过零电路的同步作用,内部的双向可控硅过零后马上导通,在负载上有电流流过。
当I/O口置低时,MOC3041中的发光二极管不发光,内部的双向可控硅截止,所以功率双向可控硅也截止,负载中没有电流流过。
由于被控对象是热得快,而它们是感性元件,因此在电路中接上一个0.01uF的电容来校正零相位。
图9
方案二 采用SAI400D固态继电器的功率控制电路
固态继电器是用半导体器件代替传统电接点作为切换装置的具有继电器特性的无触点开关器件,里面集成了光耦元件和可控硅。
其控制方式和普通继电器相似,当有电流流过输入口时,光耦导通,可控硅相应的也导通,负载中就有电流流过。
对比分析:
对比两种方案,方案一是采用分离元件搭成的电路,调试难度比较大,而且电路的反应时间有限,不能满足PWM波控制的要求。
方案二中的固态继电器集成了光耦和可控硅电路,其切换动作只需要几微秒就可以完成。
所以,采用方案二比较合理。
3系统电路设计
3.1系统设计总方框图
LCD12864
电炉
电扇
MSP430
DS18B20
固态继电器
电磁继电器
键盘
3.2电源模块设计
电源部分采用LM7805和LM1117-3.3V两块稳压芯片为水温控制系统供电。
D2为整流二极管,其可通过的最大电流为1A。
C5、C6、C7等电容为滤波电容,滤除电流中的交流成分。
原理图如图10所示。
图10
3.3MSP430核心模块设计
MSP430芯片采用排针与整个板相接,将核心芯片插入最小系统板下载完程序后,在插入温控系统PCB板。
原理图如图11所示。
图11
3.4继电器控制模块
继电器控制模块包含两部分,一部分为电炉控制模块,采用的是固态继电器,以实现PWM控制,以达到对水温的精确控制。
另一部分为电磁继电器,控制冷却用的电机。
I/O口送来的高电平经过三极管S8050的放大作用以实现控制继电器初级的通断。
原理图如图12所示。
图12
3.5液晶及按键模块
液晶模块中,电位器R10控制屏幕的亮度。
如图13所示。
图13
3.6DS18B20模块
在温度检测中,由于加热时,靠近加热器的水温比容器周围的水温会略微偏高,如果只采用一个DS18B20,则会导致温度测量的误差,难以达到题目要求的0.1℃的要求。
所以本水温控制系统设计中采用了两个DS18B20进行水温测量,然后对其取平均值,最后送到液晶显示。
其原理图如图14
图14
3.7温控电路实物图
4系统软件设计
N
Y
N
键按下?
显示处理
相应处理
显示温度曲线?
开始
温度显示
Y
开中断
软件定时中断初始化
参数初始化
4.1软件流程图
4.2PID控制的原理和特点
在工程实际中,应用最为广泛的调节器控制规律为比例、积分、微分控制,简称PID控制,又称PID调节。
PID控制器的问世至今已有近70年的历史,她以其结构简单、稳定性好、工作可靠、调节方便而成为工业控制的主要技术之一。
当被控制对象的结构和参数不能完全掌握,或得不到精确的数学模型时,控制理论的的其它技术难以采用时,系统控制器的结构和参数必须依靠经验和现场调试来确定,这时应用PID控制技术最为方便。
即当我们不完全了解一个系统和被控对象,或不能通过有效的测量手段来获得系统参数时,最适合用PID控制技术。
PID控制,实际中也有PI和PD控制。
PID控制器就是根据系统的误差,利用比例、积分、微分计算出控制量进行控制的。
(1)比例(P)控制
比例控制是一种最简单的控制方式。
其控制器的输出与输入误差信号成比例关系。
当仅有比例控制时系统输出存在系统误差(Steady-stateerror)。
(2)积分(I)控制
在积分控制中,控制器的输出与输入误差信号的积分成正比关系。
对一个自动控制系统,如果再进入稳态后存在稳态误差,则称这个系统是有稳态误差的或简称为有差系统(SystemwithSteady-stateError)。
为了消除稳态误差,在积分器中必须引入“积分项”。
积分项对误差取决于时间的积分,随着时间的增加,积分项会增大。
这样,即便误差小,积分项也会随时间的增大而加大,它推动控制器的输出增大使稳态误差进一步减小,直到等于零。
因此,比例+积分(PI)控制器,可以使系统在进入稳态后无稳态误差。
(3)微分(D)控制
在控制系统中,控制器的输出与输入误差信号的微分(即误差的变化率)成正比关系。
自动控制系统在克服误差的调节过程中可能出现振荡甚至失稳。
其原因是由于存在有较大惯性组件(环节)或有滞后(delay)组件,具有抑制误差的作用,其变化总是落后于误差的变化。
解决的办法是使抑制误差的作用的变化“超前”,即在误差接近零时,抑制误差的作用就应该是零。
这就是说,在控制器中仅引入“比例”项往往是不够的,比例项的作用仅是放大误差的幅值,而目前需要增加的是“微分项”,它能预测误差变化的趋势,这样,具有比例+微分的控制器,就是能够提前使抑制误差的控制作用等于零,甚至为负值,从而避免了被控制量的严重超调。
所以对有较大惯性或滞后的被控对象,比例+微分(PD)控制器能改善系统在调节过程中的动态特性。
4.3PID算法程序设计
aPID增量算法程序框图
计算Pp(k)=Kp*[E(k)-E(k-1)]
计算E(k)=R(k)-M(k)
开始
计算Pi(k)=Ki*E(k)
P(k)=Pp(k)+Pi(k)+Pd(k)
计算Pd(k)=Kd[E(k)-2E(k-1)+E(k-2)]
E(k-2)=E(k-1),E(k-1)=E(k)
b水温控制程序框图
开始
发出制冷信号
PID算法控制加热信号
发出加热信号
0.12+Ts>Tn>Ts-2.5
Tn Tn>Ts+0.12 实时温度Tn与设定温度Ts比较 5测试方法与测试结果 5.1测试仪器 水温计,数字万用表,秒表,容积为1.5L的搪瓷碗。 5.2测试方法 (1)在1.5L搪瓷碗中放入1L清水,将热得快放入水中,然后将两个DS18B20放在水中,最后将电风扇放在搪瓷碗旁边,风向对准清水。 (2)水温计测量搪瓷碗中的水温,水温为25℃。 分别设定温度为30℃、35℃、40℃、45℃、50℃、60℃、70℃、80℃、90℃,观察设定温度和实际温度,并记录数据。 填写表6-1。 (3)观察水温变化的动态情况,并记录温度稳定时间。 填写表6-2。 5.3测试结果 (1)给定温度与实测温度的数据对比表如表6-1 项目组别 1 2 3 4 5 6 7 8 9 设定温度(℃) 30 35 40 45 50 60 70 80 90 实测温度(℃) 30.1 34.8 40.2 45.3 49.6 60.4 70.5 80.2 89.7 绝对误差(℃) 0.1 -0.2 0.2 0.3 -0.4 0.4 0.3 0.2 -0.3 相对误差(℃) 0.33% 0.57% 0.50% 0.67% 0.8% 0.67% 0.43% 0.25% 0.33% (2)当温度从40℃上升到50℃时温度变化的数据如表6-2 测量时间(min) 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 实测温度(℃) 35.5 37 40.3 43.5 48.1 50.3 51.1 50.6 49.8 50.6 50.2 6总结及展望 总结 本次设计的水温控制系统能很好的题目所达到的要求,实现水温的精确控制。 设计的过程中也学会了很多东西。 在硬件的设计中,需要充分衡量各方面的因素,例如板子的散热,元器件的布局,元件之间的布线连接等。 最重要的是,还要考虑到软件程序功能实现的可能性,重视MCU的I/O口资源的分配问题,以便于软件的编写。 在程序的编写的过程中,应该是分模块写作,然后在用头文件进行调用。 这样便于程序的调试,也使整个程序的结构清晰。 程序中的某些部分要追加注释,以提高程序的可读性。 在以后的系统设计中,应该使用最小系统板比较合适,这样便于调试,节省了程序调试的时间,也缩短了整个系统的设计周期。 展望 对于这个水温控制系统,还是存在一些需要改善的地方。 硬件部分还可以把电路板设计得更加小巧简洁,降低硬件设计成本,使其能尽量达到工业生产的要求。 软件部分PID控制部分的程序设计比较简单,还有许多细节功能没有实现,需要进一步的调试改进程序的算法,使其能更加精简,功能更加完善。 附录一温度变化曲线显示 附录二温控系统电路原理图
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 MSP430 水温 控制系统 设计 报告