小范围水温差恒定控制研究

时间:2022-09-21 14:50:54

小范围水温差恒定控制研究

摘要:日常生活中使用的恒温水控制装置在加热和保温方面具有单向性、时滞性的特征,在需要恒温热水时要手动反复调节温度,缺少智能恒温的设计。为实现水温的快速、准确、恒定控制,设计了一款基于单片机的智能恒温监测控制装置。以STM32F103系列的MCU作为上位机主控模块的核心芯片,智能控制下位机的直流泵、继电器在不同条件下的启动与关闭;利用DS18B20传感器进行多点测温以及加热棒、半导体降温片进行大温差模糊控制,在主控芯片中引入PID算法程序,每500ms调用一次,配合PWM输出,实现小范围温差控制。装置各部分统筹协调工作,从而实现恒温出水。实验结果显示,最终装置将小范围温差的误差控制在±0.1℃。

关键词:恒温控制;STM32F103;DS18B20;PWM;PID算法;智能控制

日常生活中,对于恒温水的需求必不可少,但大多传统产品仅为简易的加热与保温装置,在需要使用的时候由人工开启加热,加热完成后产品自动结束加热操作,水温也会在随后开始下降到室温[1-5]。随着人们对生活质量的要求越来越高,对控制水温恒定产品的需求逐渐增加。为了使控制水温恒定产品的功能更加完善,考虑如何高精度地将水温控制在恒定范围内具有重要意义[6-8]。由此可以在提高生活质量和舒适度的同时,节约水资源与电能、燃气等资源。国内外对于水恒温控制积聚了较多的解决方案,但都存在控制精度不足的问题。这样的情况下使得用户使用起来总是需要反复加热,会导致装置的温控不精确,反复大功率地加热还会造成能量浪费与元器件寿命损害等[9-10]。为实现水温的快速、准确、恒定控制,设计了一款基于单片机的智能恒温监测控制装置。

1智能水恒温控制监测装置的整体设计

本文设计了一套基于STM32的水恒温智能监测控制装置,实现装置开启状态下的恒温出水与内部恒温协调控制功能。硬件利用STM32F103系列的MCU作为系统上位机主控模块的核心,温度提示采用按键、蜂鸣器、OLED显示模块实现;下位机的温度监测控制采用温度、继电器、加热、降温、供水等模块实现。软件设计是在Keil5中利用C/C++编写各模块核心控制程序,引入PID算法,配合PWM输出,协调各模块工作,实现逻辑上与功能上的恒温控制。在装置整体功能上追求高性能、高灵敏度、高稳定性、高精确的目标。其中统筹实现水恒温控制与大小温差的智能调节控制是本次设计的两个关键点。本次设计的具体内容包括:(1)利用STM32F103系列的MCU作为系统上位机主控模块的核心;(2)对基本功能的键入与提示的设计(按键及蜂鸣器、OLED显示模块);(3)下位机监测控制模块的设计(温度、继电器、加热、降温、供水模块);(4)编写核心控制代码(开发工具为Keil5,编程语言为C/C++);(5)实现逻辑上与功能上的恒温控制(采用PID算法协调各模块);(6)实现数据的精确与系统的安全设计。

2硬件模块的设计与选型

水恒温智能控制监测装置在实际生活中的应用场景呈现多元化,主要功能是实现控制容器内或者管道内的水温恒定,以此方便生活使用或者工业使用。在主要功能之外,该系统还需要配备的功能如下:开关功能,能够主动管理通电唤醒设备;参数设定、功能选择键入的功能,能够匹配程序内的设定和设计;系统信息显示功能,能够显示系统当前状态和关键信息;系统状态提示功能,当有新的操作录入或反馈时返回提示;传感器信息捕获、恒温自校准、过热保护、预加热等功能。以下是根据系统功能需求分析之后,为硬件架构搭配的设计方案与选型结果。

2.1硬件设计

硬件架构设计是以STM32F103C8T6处理器为MCU,搭配OLED显示屏,集成按键输入、继电器控制、DS18B20多点温度采集[2]、PID控制[4]I/O口PWM输出等功能综合实现水恒温智能监测控制[3]。硬件整体设计结构如图1所示。对于图1所示的硬件整体设计结构,还分为系统上行监测布局与下行控制布局,分别如图2、图3所示。

2.2硬件选型

各硬件模块型号或参数的具体情况为:(1)一块STM32F103C8T6主控芯片;(2)一块用于图像输出的0.96寸128×64分辨率OLED显示屏;(3)一组用于用户输入的微动按键按钮;(4)一个用于声音提示的无源蜂鸣器;(5)一个DS18B20温度传感器;(6)控制模块采用的是继电器、PWM调节电子开关;(7)执行模块采用的是PTC加热片、直流泵、半导体制冷片;(8)供电部分采用3~12V/10A可调直流电源、升压模块。

3核心控制算法的选择

PID控制算法[5]是工业控制领域使用最广泛的算法之一,共有两类:模拟PID控制和数字PID控制。数字PID再次细分为增量式数字PID和位置式数字PID。本次设计采用增量式PID控制算法,表达式为:式中:Kp为比例增益;Ti和Td分别为积分和微分时间常数;e为给定值与测量值之差。由式(1)可以看出,一旦确定了Kp、Ti、Td,输出的∆u(k)值只与最近三次的采样值有关,对微分部分进行加权处理后可使得输出值平滑稳定,此改动会在产生大偏差时使系统误动作较小,不会严重影响系统的工作,适用于执行机构带积分部件的对象,如步进电机等。影响装置稳定性与恒温精确性的关键因素无非是模糊控制策略与PID算法控制PWM输出,在主程序中初始化PID后,系统在开机状态下自动根据温度偏差每500ms调用一次PID算法,更改核心板I/O口,输出随占空比相应变化的PWM,从而实现动态改变用电器功率的目的。

4实施过程

4.1核心板上电、关键元器件初始化和检查

以STM32F103C8T6作为核心处理器[6]的开发板通电后,在未进入主系统前会优先对关键元器件进行初始化和检查,如OLED、DS18B20、按键、蜂鸣器;元器件初始化后,通过OLED显示屏反馈初始化情况,初始化不成功则显示错误;之后进入ESP无线配网,连接程序内指定名称和IP的TCPServer端;最后,进入系统待机,等待测试人员设定目标温度ST并开启系统。

4.2点亮OLED

在烧录STM32芯片的代码中配置开启OLED屏幕I/O口时钟,同时根据SPI通信协议配置引脚,一次复位后开启配置,写入一系列写命令配置OLED分页模式等初始化操作完成OLED初始化。

4.3DS18B20传感器多点测温

多点测温是通过单一I/O口连接多传感器,实施例的关键点是通过芯片向传感器发送读时序,记录传感器反馈的内部光刻ROM信息,并更新DS18B20_ID数组绑定每个传感器;通过定时拉低复位总线的方式,使得芯片向传感器发送读数据时序,记录每个传感器写入的字节温度数据,并根据DS18B20_ID区分不同数据;最后通过使用公式转换获得高精度的温度数据,转换后的温度精度可达0.06。

4.4PWM控制

PWM脉宽调制可结合微型处理器的数字输出口或引脚控制模拟电路,系统使用PWM开关模块,可根据输入波形的占空比正比调节DC的输出比例;初始芯片中通过通用定时器配置周期为12.5ms的PWM方波;衔接开关模块后,通过更改PWM输出通道的占空比,即更改一个周期内的高电平比例,实现用电器输出功率的控制[7]。

4.5PID算法程序控制

本设计中选择增量式数字PID控制算法[8]。在主程序中初始化PID后,系统的温度采集实时刷新;在恒温系统开启状态下,通用定时器每隔500ms自动根据当前温度与设定温度偏差,调用一次PID算法程序计算输出量的变化。结合上述过程实时更新PWM的输出占空比,即可实现用电器功率的动态改变,从而控制加热片、制冷片工作,实现水恒温的调节与控制。

5实验数据采集与分析

对于系统恒温测定,采用控制变量法,在室温22℃下控制加热水量为1L,开启设备后,在恒温池中温度即将达到设定温度时开始计数,每分钟记录一次温度读数,设定恒温温度值下半小时内记录多组温度变化,并根据数据进行绘图,如图4所示。从温度变化曲线上可以看出,曲线基本趋向于直线,稳态温度上下浮动范围在±0.1℃之间,即稳态误差约为±0.1℃,温度波动趋于稳定。在水恒温控制过程中,环境温度、元器件功率等因素的影响难以避免,这就会影响到恒温范围的测定,考虑到安全性和系统不足,仅在17~35℃范围内测定了温度调节,故本研究中重点测定系统稳态。不过类比实验搭建,采用工业化或电器化配置则会有更明显的反馈,并且可测定更大的恒温范围。

6结语

本文设计以STM32F103C8T6的MCU为主控,结合相关功能电路及模块,协调完成监测与控制,以便实现水温恒定。具体总结为:(1)搭建系统基本模型,完成各模块初始化配置与信息反馈显示;(2)解决恒温的监测准备,实现基于DS18B20的多点测温;(3)配置并输出周期为10ms的PWM;(4)成功为系统加入PID,调节PWM实时控制调整用电元器件的输出功率;(5)限于加热、降温器件功率,实现了小范围内的恒温,但是恒温稳态误差控制为±0.1℃。后期对该恒温系统功能可以补充系统数据及状态上发功能,结合物联网技术使得设备更加智能化。思路是将系统内部信息通过串口,结合ESP8266无线传输模块实时上发给上位机,当前上位机为TCPSERVER,即后期开发移植可将设备联网优化,实现物联网智能化控制。除了方便后期开发移植,也在很大程度上使设备设计更加具有智能化特点。

作者:李康 周薇 王想实 单位:无锡职业技术学院