利用模糊控制算法和单片机实现恒温控制系统设计

描述

在日常工业生产当中,恒温控制应用非常广泛。模糊控制技术是通过模仿人的思维方法,运用不确定的模糊信息进行决策以实现最佳的控制效果。模糊控制所关心的是目标而不是精确的数学模型,即研究的是控制器的本身而不是被控对象。因此可以利用特殊的控制媒介,研究控制器本身。本系统以此作为出发点,以单片机为核心控制器,研究模糊控制算法,实现了精确的恒温控制。并设计了单片机与上位机的通信软件,实现了远程温度控制和温度曲线可视化的功能。

1 系统功能和硬件设计

本系统以水温作为测量媒介,以AT89C51单片机作为核心控制器,以AD590温度传感器作为采集器,实现温度的采集、控制、传输、显示的功能。系统采用模糊算法对电热丝的加热时间进行控制,从而达到对水温的控制。同时通过上位机软件可以进行实时控制和显示温度曲线图等,系统框图如图1所示。

单片机

图1 系统框图

1.1 温度采集模块

温度采集模块实现温度信号采集、信号调理、模/数转换的功能。主要以集成温度传感器AD590M为采集主体,经过电压跟随器、差分式减法器、电压放大器、反相器等电路作为信号调理,后输入10位A/D转换器TLC1549进行模/数转换。电路图如图2所示。

单片机

图2 温度采集模块电路图

AD590是电流型集成温度传感器,具有抗干扰能力强的特点,其输出电流和温度值成正比,且是以绝对温度零度(-273℃)为基准,其线性电流输出为1μA/K,利用10 kΩ的电阻可将电流信号转换为电压信号。本系统的测量范围为0~100℃,因此输出电压范围为2.73~3.73 V。为了增大后端电路的阻抗,减小对电流信号的分流,利用电压跟随器作为信号隔离。后输入差分减法器减去2.73 V,并经过5倍电压放大后,对应的输出电压范围为O~6 V。电压信号输入10位逐次比较型模数转换器TLCl549。其参考电压为5 V,则输入电压的分辨率(单位:mV)为:

单片机

由于传感器信号微弱,极易受到外界电磁环境影响,须使用双绞线传输传感器信号。

1.2 人机交互和远程管理模块

系统开发了丰富的人机交互接口,分为本地管理和远程管理,最大程度上简化了操作的复杂度和方便度。在本地端,设有三个功能按键,分别为:设定温度加0.1℃、设定温度减0.1℃、温度控制开关。两个三位七段数码管,分别显示:设定温度和实时采集温度。

系统通过串口转换芯片MAX232,实现上位机和单片机的通信。上位机作为远程管理端,实现了显示温度变化曲线、显示当前温度、显示设定温度、显示最大正负误差,放大或缩小曲线、保存曲线等功能。

1.3 温度控制和超界报警模块

系统利用单片机控制电热丝在一个加热周期内的加热时间来实现对水温的控制。单片机端口信号经过光耦隔离后,利用三级管驱动电磁继电器的闭合与断开,从而控制加热时间。当温度超过100℃或者实时温度变化超过10℃时,单片机将驱动蜂鸣器进行长时间报警提示,当设置温度变化超过10℃时,蜂鸣器进行短时间报警提示。

2 软件系统设计

系统的控制思路为:根据模糊控制模型和实际应用情况推理出模糊查询表,模糊查询表表示对于不同状态的加温周期时间。单片机根据实时采样温度的变化查取模糊查询表,对加温周期做出调整,从而达到对温度控制的目的。

2.1 主程序

主程序一直处于等待接收串口信号状态,同时判断是否需要发送数据。定时中断每秒对采样温度进行平均值滤波后,置串口发送标志,在主程序中发送。单片机接收到PC信号的第一个字节时,调用接收数据子程序,将剩余数据接收到缓冲区内,并判断接收数据的类型,执行相应操作。

为避免串口干扰信号,系统采用应答模式和单向传输混用的串口通信,以提高通信的稳定性和系统的实时性。上位机下发命令采用应答模式,单片机实时温度信息上传采用单向通信模式。通信协议由包头、命令、数据长度、数据包、校验位组成。

2.2 1ms定时中断程序

1ms定时中断作为系统的总时钟。每1 ms刷新一位数码管,每10 ms扫描一次按键,每1 s的最后100 ms中,每隔10 ms采样一次温度值,将10次采样值冒泡排序,去掉最大值和最小值后的平均值,作为本次实时采样的最终值送入显示缓冲区。若恒温控制开关打开,则每1 s还要调用恒温控制程序。若报警开关打开,则每1 s取反一次扬声器输出。定时中断返回前将重置看门狗。

2.3 模糊控制模型建立

系统利用了双输入单输出的模糊控制模式。2个输入语言变量E,EC分别表示温度误差和温度误差的变化率,输出语言变量U表示继电器的闭合时间。语言变量E赋8个值,即正小(PS)、正零(PO)、负零(NO),负小(NS),负中(NM),负大(NL),负加大(NXL),负超大 (NXXL),考虑到系统中并未设置降温措施,E的赋值并不对称。EC赋7个值,即正大(PL)、正中(PM)、正小(PS)、零(PO)、负小 (NS)、负中(NM)、负大(N-L)。U赋4个值:零(O)、正小(PS)、正中(PM)、正大(PL)。为补偿温度控制无超调量,E的量化值为 -10~2,EC,U的量化值分别为-6~6,0~6。每个值采用三角形隶属函数模型,如图3~图5所示。

单片机

单片机

依靠经验来建立控制规则,但是得到的控制量并是一个模糊量,不能直接用来作为控制输出,采用C语言进行解模糊处理,得到模糊查询表,并在测试中反复调整,最终得到模糊查询表如表1所示。

表1  模糊查询表

单片机

2.4 模糊控制程序

在单片机的程序中,设置了变量TOUT表示恒温控制周期,TSET表示一个恒温控制周期中韵加热输出时间,即表中的U。每隔TOUT的时间,将调用模糊推理程序,求出误差E和误差变化率EC。其中:

E=实时采样温度值-设定温度值

EC=当前误差-上次误差

当误差较大时,不必进行模糊控制,只需判断是全速加热或是停止加热。当误差进入预设的控制范围时,量化E,EC,并由量化值查询模糊查询表,得出该周期应该输出的加热时间TSET。

在测试中发现,采用单一的E,EC论域的效果并不让人满意,系统灵敏度较低。考虑加热惯性和高温散热较快的影响,采用了两级控制的方式。在第一级控制中,E和EC的论域范围较大,可快速加热到恒温设定温度附近;此后进入第二级控制,缩小E和EC的论域范围,提高控制的灵敏度。经测试,采用此方式可在各温度层次控制过程中将恒温误差稳定在±0.3℃以内。

3 系统实验和误差分析

3.1 传感器零点校准

系统采用电流型温度传感器AD590,同时使用单点调节电路。在理想情况下,在冰水混合物(O℃)中并联10kΩ电阻,输出电压为2.73V,即为传感器零点。同时为保证系统的精确性,使用单点调节电路进行进一步调节。

3.2 系统实验

利用本系统对自来水进行重复性测试。由于本地气压和水中杂质的影响,当水到达沸点时仍无法到达100℃,因此系统的测试范围设定为40~90℃。当系统达到温度恒定且停止加温后,随机进行一次静态数据测量;在此后100 min内,每隔5 min进行一次恒温控制数据测量。静态数据如表2所示,恒温控制数据如表3所示,50℃恒温控制上位机曲线如图6所示。

单片机

单片机

由表3可知,系统的静态误差为±0.2℃。对表3中每组数据的后10个数据进行标准差计算,结果如表4所示,可知其平均误差小于±0.3 ℃。

单片机

4 结语

该系统以模糊控制算法和单片机设计了一种恒温控制系统。利用单片机作为核心控制器,开发了丰富的友好的人机交互环境:温度变化曲线可视性、远程可控性非常适合工业远程管理要求。其成本低,可扩展性好,非常容易扩展为多路采集系统;同时采用模糊查询表的方式,提高了系统的移植性。实验表明:本系统能够将水温恒定的控制在40~90℃范围内,控制误差小于0.5℃,静态误差小于0.2℃,可广泛的推广和移植到工业当中。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分