基于STM32及PID-PWM的智能水温监控系统设计

2019-07-16 07:13曾凤施明朝王艳萍陈应松田亚铃
成都工业学院学报 2019年2期
关键词:STM32单片机

曾凤 施明朝 王艳萍 陈应松 田亚铃

摘要:以STM32F407ZGT6单片机作为控制核心,设计以集成DS18B20芯片的防水型水温探测温线作为温度反馈传感器,采用积分分离的比例(Proportional)、积分(Integral)、微分(Derivative)算法,即PID算法控制脉冲宽度调制(PWM)占空比进行智能水温闭环控制,同时用TFT液晶屏监控控制过程。实验结果表明该系统能快速、准确地进行水温控制,系统稳定性良好。系统控制精度达到0.1 ℃,温度波动小于0.5 ℃。

关键词:STM32单片机;PID;PWM;水溫闭环控制

中图分类号:TP273文献标志码:A

文章编号:2095-5383(2019)02-0024-05

Abstract:STM32F407ZGT6 micro controller unit was used in this design as the control core, and a waterproof temperature sensitive device integrated with DS18B20 was used as the temperature feedback sensor. The separation integral PID control algorithm was used to adjust duty cycle of PWM for intelligent closed-loop control of water temperature, and the TFT LCD screen was used to monitor process. The experimental results show that the system can control the water temperature quickly and accurately, and it has good system stability. The accuracy of the system is up to 0.1 ℃,and the temperature shift is less than 0.5 ℃.

Keywords: STM32 micro controller unit; PID; PWM; closed-loop control of water temperature

水温控制受外界环境影响大,精确模型难建立[1],由于加热设备余热及环境散热等因素,加热和制冷均为非稳定过程[2]。赵娜等利用51单片机采用断续ON-OFF控制水温[3],王博实现了仿真条件下的PID算法水温控制[4],文波等基于51单片机PID控制继电器进行温度控制[2]。温度控制环节是纯滞后的一阶大惯性环节[5],在要求控制精度、温度上升速度及下降速度可控的情况下,51单片机片内资源及运行速度有限,不能满足要求。ON-OFF控制系统振荡大,稳定性差。本系统以STM32单片机为控制核心,采用PID算法及PWM控制,以提高控制精度及稳定性。

1 PID-PWM算法

1.1 PID算法

1.2 PWM算法

脉冲宽度调制(Pulse Width Modulation,PWM)是利用微处理器的数字输出来对模拟电路进行控制的一种有效的技术,其原理图如图1所示[7]。本系统利用STM32的定时器14通道1的PWM输出模式。设置定时器的计数频率为1 MHz,重装载置寄存器ARR的值设置为5 000,因而PWM周期为200 Hz。利用PID算法改变捕获/比较寄存器CCRx的值,便可以改变PWM占空比。占空比为CCRx的值除以ARR的值。利用PMW输出的IO逻辑便可以实时调节加热器功率,实时加热功率为PWM占空比乘以加热器功率。

2 系统硬件设计与实现

本设计由STM32单片机最小系统、按键目标温度设置模块、防水型DS18B20温度检测模块、3.5 in(8.89 cm)TFT液晶显示屏控制模块、MOSFET控制的防水型加热器模块、串口通信模块构成。本系统是集水温信号采集、处理、显示、调节为一体的智能水温闭环控制系统,结构框图如图2所示。

2.1 控制器选型

2.2 前向通道

本系统的前向通道主要由两部分组成,由加、减两个按键电路构成的目标温度设定模块以及以DS18B20传感器为核心器件的温度测量模块。

2.2.1 目标温度设定模块

目标温度设定模块由两个独立按键控制,与STM32单片机的接口电路如图3所示。其中,KEY1连接单片机的PE3口、KEY2连接单片机的PE2口。

目标温度设定采用软件加硬件的方式,在软件初始化程序中设定一个基准温度,两个硬件按键KEY1、KEY2分别作为目标温度加、减键。每按一次“加键”,设定的目标温度值在基准温度上加0.1 ℃,并作为当前的基准温度。每按一次“减键”,目标温度值就减0.1 ℃。目标水温最高可设置成100 ℃,最低可设置成0 ℃。

2.2.2 温度测量模块

采用DS18B20作为温度传感器。其测温范围为-55~125  ℃。在温度为-10~85 ℃范围内的精度为±0.5  ℃。该传感器采用单总线接口、仅需要一条口线即可实现微处理器与该芯片的双向通信,抗干扰性强。其供电电压范围为3.0~5.5 V。测量结果以9~12位数字方式串行传送。本系统配置为12位精度模式,最大转换时间为750 ms。同时考虑到水温控制的防水要求,采用了Raisym公司的不锈钢防水型封装的DS18B20温线,如图4(a)所示。控制电路如图4(b)所示,传感器的数据线端口2连接单片机的PG9口。

2.3 后項通道

本系统的后项通道由供电电源、加热器控制电路及加热器组成。加热器供电电源选用大疆悟1 V 2.0 TB47可充电电池,可供电压为22.2~26 V。控制电路主要由2SD601A型号的NPN三极管与SUM110P0607L型号的MOSFET管组成,其中三极管的基级与单片机的F9端口相连,端口复用为TIM14_CH1 PWM模式。加热器为防水U型24 V 500 W电阻丝。由于加热器供电电源为24  V,单片机工作在3.3 V,所以采用PWM信号输出控制NPN三极管的通断,利用三极管集电极电压控制大功率MOS管通断作为加热器的驱动控制,进而控制加热功率。加热器实物如图5(a)所示,控制电路如图5(b)所示。

2.4 人机交互通道

本系统的人机交互通道包括TFT液晶显示模块及利用STM32串口通信发送数据串口至PC端利用调试助手软件显示。本设计中采用两种显示,即用TFT液晶屏显示设定温度和当前实际温度,或使用串口打印方式监测数据。用串口通信发送信息到上位机(PC),显示目标水温、当前温度、温度的偏差,PID的比例项、积分项、差分项输出,PWM输出。TFT显示实物如图6所示。使用串口打印方式监测数据如图7所示。

3 系统软件设计与实现

控制程序在Keil μVision5集成开发环境中编写,用C语言编程。软件程序包括系统初始化,按键信息采集处理,水温采集、处理、显示,控制信号调整输出,其流程图如图8所示。

程序功能主要由以下几部分组成:

1)系统初始化:TFT初始化、按键初始化、温度传感器初始化、PID参数初始化、目标温度初始化、PWM 输出初始化,即将定时器14通道1配置为定时器PWM模式。

2)目标温度按键信息采集:定时采集两个按键接口PE2、PE3口的电平信号,当有对应键按下时,修改目标温度。

3)温度数据采集:定时采集温度传感器接口PG9的温度信号,获得实时水温。

4)大功率MOS管控制:根据设定的目标温度及温度传感器采集到的当前温度,利用PID控制算法,控制PWM信号的占空比,通过PF9口输出PWM波控制加热器电路。

5)数据显示:编程将目标温度及实时温度显示在TFT上。利用printf()函数将温度调节信息显示在PC端串口助手软件中。

4 系统调试与结构分析

本系统在电路制作过程中采用模块化硬件焊接调试方法,以提高制作效率。

实验对500 mL温度低于设定温度的自来水进行实验。设定目标温度分别为30、50、70、80 ℃。设置系统PID比例系数KP为700、积分系数KI为300、微分系数KD为300。系统水温控制的实验统计结果如图9所示。实验结果表明温度控制平滑,满足控制要求。

实验结果表明:目标温度为30、50、70、80 ℃的超调量σ%分别为6.70%、2.00%、0.43%、0.00%,温度越高超调量越低。分析其原因有:1)当温度达到或超过目标温度时,虽然加热器控制电路输出为0,但是由于加热器的余热,会使水温继续上升,产生超调;2)由于环境的影响,加热过程中也伴随着热传递。水与环境温度差越高、散热越快。加热棒余热加热与热传递会相互抵消一部分,因而设定目标温度越高超调会慢慢降低。

5 结束语

本设计可以实现目标水温的设定、水温的实时监测、水温的自动化控制。现采用自然冷却的方式,冷却速度较慢,今后可增加降温控制电路,如半导体制冷。本控制方案适用于对温度控制稳定性高、要求超调量小的场景中,如家用热水器控制、养殖鱼池水温控制等。

参考文献:

[1]王冠龙,崔靓,朱学军.基于数字PID算法的温度控制系统设计[J].传感器与微系统,2019,38(1):86-88,96.

[2]文波,孟令军,张晓春,等.基于增量式PID算法的水温自动控制器设计[J].仪表技术与传感器,2015(12):113-116.

[3]赵娜,方圆.基于51单片机的智能水温控制系统的设计[J].电脑迷,2018,112(11):150.

[4]王博,曾方,程一哲.基于PID算法的水温控制系统[J].电脑知识与技术,2018,14(27):242-243.

[5]刘向东,高军,杨乐民.一种新的一阶系统自调整模糊控制器[J].哈尔滨理工大学学报,2003,8(5):75-79.

[6]姜学军,刘新郭,李晓静.计算机控制技术[M].2版.北京:清华大学出版社,2009.

[7]张洋,刘军,严汉宇,等.精通STM32F4(库函数版)[M].北京:北京航空航天大学出版社,2015.

[8]ST Microelectronics Corporation.STM32F407xx/STM32F407xx Datasheet [EB/OL].(2016-09-01)[2018-1230].https://www.st.com/resource/en/datasheet/stm32f407zg.pdf.

猜你喜欢
STM32单片机
基于STM32芯片的移动机器人的避障研究
基于STM32的两轮自平衡遥控小车设计