2009年格州电子杯电子设计竞赛作品报告
课题名称:基于单片机PID算法的热恒温水壶
组员姓名 : 俞欣滢,曾志强,孙仪彬,赵连福,刘得金,叶伟
所属学校:上海大学
专 业: 电气自动化
指导教师: 许路,邵定国
目录:
1.概述................................................P03 1.1摘要............................................P03 1.2课题要求........................................P04
2. 方案选择...................................... .....P04 2.1方案选择与论证.............................. ....P04 2.2方案确定...................................... ..P08
3.方案实现及具体化.................................. . .P08 3.1检测部分.........................................P08 3.2单片机部分.......................................P10 3.3电源部分.........................................P13
4.感想与心得............................................P16
5.附录............................................ . . .P17
1.概述
1.1 摘要:
本系统是基于格州学习板KG3_78F1166开发而来,通过三个模块:检测模块,单片机PID模块,电源模块来实现恒温控制。检测模块作为闭环的反馈实时检测水温,并经A/D把信号送给单片机,再通过单片机把处理后的控制信号通过D/A送给单元的TL494,TL494控制电压与锯齿波比较输出一个占空比可控的PWM波形,进而对加热器的开关控制以达到输出可控的效果。
关键词:温度检测,PID,单片机,电源
Abstract:
The constant temperature control system is developed based on the NEC’S microcontroller KG3_78F1166, and the whole system’s frame is divided into three modules: temperature testing module, digital PID module, and power module.
As the sensor of the closed system, the temperature testing module transmits the water’s accurate real-time temperature to microcontroller through the
A/D channel by changing it into a corresponding voltage signal, after which the signal will be analysed by microcontroller with the PID algorithm and a control voltage signal will be sent to the execution unit TL494 through D/A channel. Then a PMW wave is sent out to control the switch of the heater and thus achieve the purpose of controlling water's temperature.
Key Words: TEMPERATURE TESTING, PID, MICROCONTROLLER, POWER.
1.2课题要求:
1.2.1基本要求:用电热器加热水壶中的水,使用单片机检测壶内温度,使温度恒温于80度,持续10分钟以上。 1.2.2发挥部分: (1)键盘设定温度
(2)LCD显示设定温度
***********************************************************
2.方案选择
2.1方案选择与论证:
对于本课题来说,有三个环节:检测环节、单片机PID运算环节、
输出电源环节。
我们就这三部分分别加以讨论,以组合一个性能相对稳定,成本相对较低,安全系数相对较高的系统。
一:检测环节
(1) 采用热敏电阻:热敏电阻体积小,价格便宜,易于通过接触测
试固体温度。但是对于测量液体温度表现不佳。再者,热敏电阻特性的非线性(或者说近似的分段线性)给单片机的多点恒温带来麻烦,要通过大量测试建立温度-电压(T-V)表格,才能实现。且非线性对于PID参数的要求也有些许不同,随着设定温度的不同PID也要随之改变,对于要频繁改变设定温度的系统来说,操作性不强。
(2) 采用AD590:AD590具有精度高、价格低、不需辅助电源、线
性好等特点。在以往的实验中,用起来也颇为方便,但是AD590输出的是uA级的电流,接触水会使输出非正常的显著,测量便不准确。我们用绝缘胶布包住导线,但是随着水温的升高,会不可避免的产生湿气,造成影响。对于液体测温来说,可操作性也不是很强。
(3) 采用PT1000:电阻温度系数分散性小,其精度高、线性好、
灵敏度也比较高。对于本系统来说,PT1000在液体中的表现也非常稳定。线性的输出也适合单片机采样和计算。在测温中,
把其固定在液体中,效果良好。
(4) 采用DS18B20:我们用的是格州单片机面板,在上面集成有
DS18B20,各项性能都表现良好,但是不易直接用其测水温。
注:以下分别为:热敏电阻、AD590、PT1000
二:单片机环节
(1) 采用传统PID:位置式和增量式算法,其特点是结构简单,实
现相对容易,缺点是有超调和温度上升不够快。
(2) 分段PID: 在传统PID的基础上有效克服积分饱和问题,解
决系统运行一段时间后会突然急剧升温的问题。也能按每部分加热要求的不同而灵活调整。达到较好的调温效果。
(3) FUZZY PID:根据模糊控制理论,把E(K)和dE/dt,即E(K)
- E(K-1)分别分成5段和三段,再排列15种情况,加以给定不同的PID参数(有一套基准PID参数)。根据理论,这种方法效果应当做好,但是需要巨量的试验数据和经验作为依据,对于我们来说显得要求过高,操作性相对分段PID来说有所降低。
三:电源环节
(1) 采用直流升压电路:考虑使用升压电路主要是因为升压 电路
可以保证加热电阻丝能在短时间内快速的达到给定温度,可是供电电压过高首先对MOS管的耐压与限流值有较高的要求,同时Vgs电压在-20V~+20V之间,由于直流升压电路的局限性,不能保证所使用的PMOS管压降在正常范围内,如果从电压上去解决,限定电压峰值又不能实现升压电路的初始目的;另外我们也查询了相关资料来解决上述问题,可是从方案实现的简洁性与实用性以及电路整体的经济可行上来考虑都不是很好,因此在理论分析时,我们首先否定了这个方案。
(2) 采用直流降压电路:直流降压电路与升压电路相比主要缺点在
于电路的功率不可能像升压电路一样大,可是降压也有它的优点。首先就电压来说,我们的输出电压在36V以下,属于人体安全电压范围,不易发生安全事故;同时由于在电路设计的过程中我们最大地考虑了效率的问题,带负载效率可达91.63%,加热功率也不低,经试验测定可达243.6W足以用于烧水。而且对于MOS管Vgs不超出-20V~+20V的要求,我们将常规的MOS管接到电源的正极,由占空比可调的PWM波控制MOS的开——关,在我们设计的电路中我们在前人的基础上进行了一定的创新,将MOS管经过电感电容分压之后接到MOS管的漏极。MOS管的源极接地,门级接驱动输出。经过理论分析与实验验证我们最终采用了该方案。
2.2方案确定
三个环节都有多种选择的空间,但是实际操作中各个环节都会相互影响,在大量的尝试中,我们把方案定为:
检测选用PT1000 单片机算法选用分段PID 电源选用直流降压电路
系统框图如下:
PT1000实时温度采样 键盘输入设定温度 单 片 机 显示设定值 电源控制输出电压(功率) 锅炉加热
***********************************************************
3.方案实现及具体化
和之前的方案选择一样,本单元我们把系统按照三部分来分别讲
解,再组合论述。这样既可以具体说明各部分的功能,又能指出一旦系统整合在一起会产生的问题与解决方案。 3.1检测部分: (附图,见P17)
温度检测在整个系统中是一个非常重要的环节,温度检测直接影响着系统的精度,所以设计精密的温度检测电路是十分的重要。
我们设计的恒温控制系统中的温度检测是使用PT1000传感器检测温度,PT1000的精度是比较的高,对于温度传感器要使测得的数据精确必须要有一个很高精度的恒流源。传感器PT1000的检测信号的输出是很低的,所以要对检测信号进行精密的放大也是比不可少的环节。 恒流源的设计:
如电路图所示,恒流源采用的是运算放大器LM324实现的。LM324中含有四个运算放大器我们使用了其中的三个,一个是用作放大作用,另外的两个用作跟随器的作用。如图所示,在运算放大器的输出端接了一个电阻R6可以确定电流的大小,要使输出的电流是高精度的那么在运算放大器的输入端就必须有一个稳定的电压Vref所以我们使用TL431产生一个稳定的电压作为输入,这样就能保证输出稳定,这样可以做到电流的误差在毫安级,为了提高精度,我们在电路中又增加了两个电压跟随器还有几个兆欧级的电阻,这样我们所设计的恒流源的精度可以达到微安级,这样就能为温度传感器的检测提供一个稳定的环境,为提高检测精度提供了保证。
信号的放大:
信号的放大环节也是十分的重要,它的精度要求是很高的,而却也要求能够有很高的放大倍数,所以我们采用的运算放大器是高精度、低功耗的仪器放大器INA128。INA128的放大倍数是很高的,它可以放大很微弱的信号,它的电路连接如图所示,我们将温度传感器检测的电压信号放大了100倍。 检测输出环节:
温度传感器检测的信号经放大后要用单片机进行采样控制,如电路图所设计的电路,为了保证单片机的安全,输出部分我们又设计了一个对单片机的保护环节。
3.2单片机部分: 3.2.1
我们所使用的单片机为格州电子的NEC实验板,使用的是78F1166 MCU,板上集成了4*4键盘,4位NUMLED,LCD等等。一般实验所需要的功能都能实现。
在本课题中,单片机通过A/D采样检测装置的输入,并进行PID处理,再通过D/A输出电压信号给电源装置的TL494,达到控制输出电压的效果。 3.2.2
PID算法原理:
比例--P 一般来说,增加控制系统的比例增益,可以提高系统的响应速度,同时也会降低稳态误差。尽管如此,如果比例增益太大,系统超调就会增大,如果Kp再进一步增加,震荡就会加大,系统就会变得不稳定。
积分—I 即便误差很小,积分项也会随着时间的增加而加大,它推动控制器的输出增大使稳态误差进一步减小,直到等于零。因此,比例+积分(PI)控制器,可以使系统在进入稳态后无稳态误差。但积分过强同样影响系统的稳定性。
微分—D 使抑制误差的作用的变化“超前”,即在误差接近零时,抑制误差的作用就应该是零。它能预测误差变化的趋势,具有比例+微分的控制器,能够提前使抑制误差的控制作用等于零,甚至为负值,从而避免了被控量的严重超调。但是,如果反馈回来的过程变量代表的噪声,微分参数就会引起系统的不稳定。模拟系统结构图如下:
数字算法流程图如下:
3.2.3
(1)时域中的PID控制:
式中
(2)数字增量式的PID控制:
U(K) = U(K-1)+ /*上次输入*/ +Kp*[e(K)- e(K-1)] /*比例环节*/ + Ki* e(K) /*积分环节*/ +Kd*[ e(K)- 2e(K-1) +e(K-2)] /*微分环节*/ 以上是基本PID的原理。在实际中,我们要加入输出限福,以防电路损坏。加入分段积分,以防积分饱和以及加速温控。 3.2.4
由于温度读入A/D可能有微小偏差,我们决定不用LCD显示实时温度,而是用数字温度计来显示,以使试验更严谨。 程序流程图:
硬件初始化 键盘输入设定温度,并用LCD显示 A/D读入检测电压
具体程序见注。
3.3电源部分:
控制钪铜丝加热功率(通过控制电压实现) 分段PID增量式控制,输出给D/A控制电压 利用TL494生成BUCK大功率稳压电路的控制信号,TL494产生一个占空比可控的PWM波作为最终驱动NMOS的原始信号。中间使用了光耦6N137实现弱电控制到高电压功率输出的电气隔离。由于TL494的输出信号是一个较小的信号,不能直接用作功率电路的驱动,因此在光耦电路中必须对原信号进行放大,以此来满足NMOS所需的电平要求。在功率输出电路中实现恒压控制,只有电压能在负载有扰动的情况下维持稳定才可以实现单片机对水壶中水温的实时控制。
首先控制部分采用TL494,TL494在整个系统中的作用一方面是为了给后面的电路一个控制信号,另一方面要实现单片机对加热电源的控制,只能是让控制电压在单片机的可输出范围值之内。TL494在应用电路中主要作为波形发生器,因此对电路的要求不高。 TL494在该逆变器中的应用方法如下:
TL494的内部电路由基准电压产生电路、振荡电路、死区时间控制电路、两个误差放大器、脉宽调制比较器以及输出电路等组成。下图是它的管脚图,其中1、2脚是误差放大器I的同相和反相输入端;3脚是相位校正和增益控制;由于我们控制中需要电压可调输
出,在接电路的过程中,2、3管脚接在一起,相当于一个射极跟随
器,控制信号直接由单片机控制。4脚为死区控制,其上加0~3.3V电压时可使截止时间从2%线性变化到100%;5、6脚分别用于外接振荡电阻和振荡电容,根据预先设定的频率100KHz经计算分别取100K电阻与120pF瓷片电容;7脚为接地端;8、9脚和11、10脚分别为TL494内部两个末级输出三极管集电极和发射极,由于该方案只涉及到一个控制信号,因此我们只选用了一个三极管作为输出,并且射极输出可以保证控制信号切换速度;12脚为电源供电端;13脚为输出控制端,该脚接地时为并联单端输出方式,接14脚时为推挽输出方式;14脚为5V基准电压输出端,最大输出电流10mA;15、16脚是误差放大器II的反相和同相输入端,由于电路的简单性,16脚接地,15、14脚短接,误差放大器II的输出为一恒定值,TL494的信号由E2输出。
中间一级光耦实现弱电控制与加热电路间的电气隔离,避免由于负载变化与负载扰动引起的电信号干扰对检测电路的影响。光耦6N137是单路光耦,2、3脚之间为一个发光二极管。输出端是一个三极管,三极管输出经过一个推挽式输出进而实现对PWM信号的放大。(如上图所示)后级功率输出电路参见电源电路图,在其电路设计中,大电感大电容主要是维持输出电压的稳定,同时我们也解决了其中的MOS管电压限制问题,利用电容电感来顶住MOS管关断瞬间的大电压冲击。
**********************************************************
4.感想与心得
在这次系统的调试与运行过程中,我们最大的收获在于如何把整个系统分解成相应的各子模块,同时如何将各个子模块连接起来且不产生干扰,各个环节在连接过程中出现问题如何将相应的问题分配到哪一个模块,最终解决联机之后出现的各种预想不到的问题。在NEC单片机的使用过程中我们充分的体会到现代单片机的实用性与方便性,这块格州电子的MCU学习板采用16位单片机KG3系列78F1166芯片,主板、扩展板分离设计,通过并口连接,使用灵活方便。主板上集成了数码管、发光二极管、4*4键盘模块、EEPROM、独立的蜂鸣器等电路,每一个管脚都有插针引出,方便扩展其他功能。副板提供了1602液晶模组、232通讯模块、485模块、AD/DA、红外发射接受模块、温度检测模块,资源丰富,可已实现各种功能的集成。在当今节能环保的主题下我们的设计也最大的考虑了这方面的问题,因此在电源电路设计中我们能用三极管的地方就不用MOS管,虽然MOS管有个更优越的功能,可是功耗也更大。因此我们在最终敲定的方案中降低了控制电压的频率,这样可以减小功率损耗。另外从我们的电路图中可以清楚的看出我们用了两路降压电路:一路用做驱动电路的拉电源;一路作为可调的降压输出电路.在前一个电路中我们只用了一个稳压管与一个三极管,这部分主要的损耗主要集中在几个分压电阻上,均低于1/4W。电感值我们经过了详细的计算,最终选用的电感比计算值稍小一些,进一步减小了电感中的磁损耗。我们的检测回路简单易行,
PT1000价格实惠,中间放大电路仅采用了恒流源与精密运放,完全用运算放大器实现,电路实现简单。通过这次系统功能的实现我对自己的专业有了更深的认识,熟悉了一定数量的器件的电气性能与使用规则,同时在发现问题与解决问题的过程中得到了很大的锻炼。在此感谢我们的老师,也感谢我们各成员间良好的配合。
***********************************************************
5.附录:电路原理图及单片机程序:
一:检测电路
二:电源电路
三:PT1000温度曲线
四:单片机程序:
(见同文件夹下面的工程文件)
因篇幅问题不能全部显示,请点此查看更多更全内容