吴可秀,郑 琪,李忠帅,许凌云*
(1.南京航空航天大学 电子信息学院,江苏 南京 211100;2.南京航空航天大学 物理学院,江苏 南京 211100)
温度控制是现代工业、生活和科研领域中尤其重要的技术[1-4]。从金属铸造的上千摄氏度,到超导体的几十开尔文,再到载人飞船载人仓的温度,温度控制的要求都很严格[5-9]。但由于实验设备更新较慢,市面上大部分温度控制仪器主要采用位式控制算法,使用传统热电偶温度传感器测温、热电炉加热与电风扇降温实现控温,测量精度低,响应慢,稳定性差,影响实验进程,而重新购买实验设备会造成大量开销,旧实验设备也不好处理。因而本项目基于STM32,利用模糊PID控制算法,设计出一套操作简单,精度高,响应速率高以及稳定性高的智能温度控制仪。
本项目设计的智能温度控制仪基于STM32单片机,实现高稳定性、高精度的测量温度、显示温度、控制温度的功能。本项目的设计方案主要包括三个模块,分别是主控制器模块、人机交互模块以及温度控制模块。
智能温度控制仪总体结构框图如图1所示。
图1 温控仪总体结构框图
智能温度控制仪的具体工作流程为:由供电模块供电,DS18B20实时采集温度数据并传入STM32单片机处理,STM32单片机通过串口通讯控制智能液晶显示屏以及语音合成模块显示所测温度值,并依据液晶屏传入的控制温度目标值通过程序设定的模糊PID算法将当前所测温度值与目标温度值比对,从而动态调整PWM波的输出,以此实时控制加热管或TEC半导体制冷片工作,逐步趋近目标温度值,最终达到高精度、高稳定性的控温效果。
温控仪总体工作流程图如图2所示。
图2 温控仪总体工作流程图
主控制器模块采用STM32H750作为控制核心部件,主要负责温度信号的读取、解码以及输入输出控制。STM32H750的程序设计由编程软件Keil5完成,再通过软件STM32CubeMX配置I/O口、串口、定时器等部件的初始化。
STM32的工作内容主要表现为读取温度采集模块的数字信号传输至温度显示模块,同时根据主控制器软件设计部分的程序指令,输出下一步指令至温度控制模块,实现智能温度控制仪的宏观调控功能。本项目选择的控制器件STM32H750核心板性价比高,设计精简,同其他模块有对应串口功能和定时器PWM输出功能,与本项目设计的智能温度控制仪适配度高,在实际操作中功能发挥强大,节省大量精力。
人机交互模块主要由DS18B20温度传感器、智能液晶显示屏以及语音合成模块组成。
DS18B20温度传感器主要负责液体环境温度的采集。其根据通讯协议写入指令,将检测到的温度模拟信号直接转化为温度数字信号,并采用单总线数字协议输出至STM32单片机,检测温度范围为-55 ℃~125 ℃,精度达到±0.1 ℃。
智能液晶显示屏采用开放软件USART HMI设计显示页面,通过串口与STM32交互通讯,将得到的控制温度目标值传入STM32,同时将接受的温度数字信号显示于设定位置。
语音合成模块通过数字协议,以串口方式与STM32通讯,定时将STM32收集的温度数字信号通过语音形式播报输出。
人机交互模块的工作流程如下:DS18B20温度传感器与转接板结合使用,定时接收液体环境的温度模拟信号并转化为温度数字信号后,经过STM32单片机的调控传输至本项目采用的智能液晶显示屏中显示,同时通过自定义printf函数与语音合成模块进行串口通讯从而使所测温度值通过语音合成模块输出。该设计便于实时获取温度数据,操作简易,稳定性高。
温度控制模块由12 V液体加热管、TEC半导体制冷片以及散热电扇套件组成。
智能温度控制仪的温度控制模块主要采用模糊PID算法来控制STM32PWM的输出以实现温度的动态调控。具体工作流程如下:当确定控制温度目标值后,STM32通过内部预设的模糊PID算法将温度采集模块获取的温度值比对预设温度值,若实时温度值低于预设温度值,则加热管正常工作,制冷片及电扇停止工作,液体温度上升;反之,制冷片及电扇正常工作,加热管停止工作,液体温度下降。温变速率动态变化,逐渐趋近控制温度目标值,精度达到±0.1 ℃。加热管和制冷片的工作电压均为12 V,功率较低,安全系数高,且稳定性强。
温度控制模块工作流程框图如图3所示。
图3 温度控制模块工作框图
介于对多种控温方式的研究,智能温度控制仪的温度控制模块主要采用模糊PID算法实现温度的动态调控。模糊PID算法主要结合传统PID算法与模糊算法的思想,充分发挥两种算法的优势,自调整被控温度系统的PID参数,逐步求精,最终实现精准控温。
其中,PID算法是集比例(Proportional,对应参数P),积分(Integral,对应参数I)和微分(Differential,对应参数D)调节为一体的控制算法,其控制公式为:
(1)
控制公式中,u(t)为控制器输出的控制量,即PWM波的占空比;e(t)为偏差信号,它等于给定量与输出量之差,即给定温度和DS18B20的测量结果之差;Kp为比例放大系数,对应参数P;Ti为积分时间常数,对应参数I;Td为微分时间常数,对应参数D。
而模糊(Fuzzy)算法是一种总结归纳专家或操作人员的经验和数据,运用语言变量和模糊集合理论模拟人的思维而形成的智能化控制算法。
模糊PID算法在被控对象没有精确的数学模型的前提下,就可根据所总结的程序算法较为理想地控制具有不稳定性、不确定性、非线性、时变性的被控对象。对比传统PID算法线性控制的本质,模糊PID算法精确度更高,误差更小,这使得温度控制模块的工作效果更佳。
本项目将模糊PID算法应用于所设计的模糊PID控制器。模糊PID控制器工作的主要步骤为模糊化处理量化数据、利用模糊规则库进行推理决策以及解模糊化操作,主要组成部件有模糊控制器、PID控制器与被控对象。
模糊PID控制器结构图如图4所示。
图4 模糊PID控制器结构图
模糊PID控制器中的模糊控制器主要以温度量化值的偏差e和偏差增量ec作为输入,经过模糊化处理量化数据、利用规则库进行推理决策以及解模糊操作等模糊控制规则后,输出于传统PID控制器中进行实时修正,实现PID参数的调整。
构建模糊系统的具体步骤如下:
首先本项目选择NB,NM,NS,ZO,PS,PM,PB作为语言变量以确立模糊子集。并利用线性方式对输入的实际值偏差e和偏差增量ec进行量化。所采用的线性方式量化函数关系如下:
(2)
(3)
其中Vmax-Vmin表示e的量程范围。
综合各类分析,本项目采取{-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6}作为偏差e和偏差增量ec模糊子集对应的论域,并采用最常见的线性隶属度值法计算对应的隶属度。
经过对比例系数Kp、积分系数Ki和微分系数Kd三个参数在PID算法应用中特性与影响的分析,建立这三个参数的模糊规则库。
(4)
至此模糊系统构建完成。
在MATLAB中模糊控制工具箱里,本项目根据输入量偏差e和偏差增量ec以及输出量,设计一个二维模糊控制器。
根据具体参数设计的模糊PID控制器结构设定界面如图5所示:
图5 模糊PID控制器结构设定界面
在MATLAB的Simulink仿真器中设计智能温度控制仪的模糊控制器模型,将各个类型的PID控制器加入其中进行功能比对与仿真测试。所设计的模糊控制器仿真模型如图6所示。
图6 模糊控制器仿真模型
根据设计思路,通过软件Keil5进行模糊PID算法程序的编辑后烧录进STM32单片机以实现模糊PID算法。具体的程序代码如附录所示。
本项目所设计的智能温度控制仪采用加热管与半导体制冷片作为控温装置,不仅实现温度的上调,而且实现温度的下调。下面对温控仪加热实验与温控仪制冷实验分别进行测试。
实验开始前,室温下测得自来水温度值约为20.0 ℃,通过液晶屏设定智能温度控制系统目标温度值为30 ℃。
采用传统PID算法控制自来水加热过程中,STM32单片机在设定的模糊控制器中依据偏差e和偏差增量ec对控温参数自调整,升温速率逐渐变慢,逐步趋近目标温度值。到达目标温度值附近,STM32依据实时温度精准控制加热管工作,最后于目标温度值附近微小波动直至稳定,总体温度变化平稳。
采用传统PID算法控制自来水加热过程中,PID参数自设定后不变,升温速率变化稍有变慢。到达目标温度值时,加热管暂停工作,但会出现温度超调较严重的现象。总体温度变化抖动较大,控温效果不理想。
温控仪加热实验温度变化曲线如图7所示。
图7 温控仪加热实验温度变化曲线
实验开始前,室温下测得自来水温度值约为20.0 ℃,通过液晶屏设定智能温度控制系统目标温度值为10 ℃。
采用模糊PID算法,利用半导体制冷片TEC控制自来水制冷。工作过程中,由STM32单片机控制,所设定的模糊控制器依据偏差e和偏差增量ec对PID参数自调整,缓慢趋近目标温度值。受制冷片工作功率以及环境影响,制冷时间较长。自来水温度于目标温度值附近缓慢波动直至稳定,总体变化趋势平稳。
采用传统PID算法控制自来水制冷过程中,PID参数自设定后不变,制冷速率变化稍有变慢。趋近目标温度值时,由于实际值和预设值偏差较小、PID参数固定、半导体制冷片功率小、实际环境较高等因素的影响,最终温度不能降低至预设温度,而在目标温度示值上波动。制冷效果不理想。
温控仪制冷实验制冷曲线趋势图如图8所示。
时间/s
相较于现有的实验室温度控制仪,本项目设计的智能温度控制仪分别在测温、加热、制冷、控温几个功能板块上采用了更加先进的材料组件,实现对现有温控仪器的改良。控温精度更高,稳定性更强,噪音更小,符合节能、环保的项目设计要求,可应用于液体表面张力实验、导热系数测定实验以及粘滞系数实验中,提高物理实验仪器的工作效率,减小实验误差。