恒温摇床温控系统设计与实现

2020-12-01 03:15单永明王凯
软件导刊 2020年10期
关键词:PID算法温度控制

单永明 王凯

摘要:恒温摇床是生化领域常用的实验仪器之一,为提高国内低价恒温摇床的温度控制精度,重新设计恒温摇床加热温控系统软硬件。硬件方面采用STM32F103R6T6作为主控芯片,PT100作为温度传感器;软件方面在常规PID控制算法中引入变速积分和微分先行改进算法。系统测试结果表明,该恒温摇床加热控制系统温控精度达到±0.1°C,实现了预设的性能指标,且能达到高价恒温摇床的部分指标,具有一定的市场前景。

关键词:恒温摇床;PID算法;温度控制

DOI:10. 11907/rjdk. 201117

中图分类号:TP319文献标识码:A 文章编号:1672-7800(2020)010-0169-05

Abstract: The thermostatic shaker is one of the commonly used experimental instruments in the field of biochemistry. The paper aims to improve the temperature control accuracy of domestic low-price thermostatic shaker. The hardware and software of the thermostatic shaker heating temperature control system have been redesigned. The hardware uses STM32F103R6T6 main control chip and PT100 temperature sensor. The software introduces a variable speed integral and differential advance improvement algorithm in the conventional PID control algorithm. The test results show that the temperature control system of the thermostatic shaker control precision reaches ±0.1℃, which has achieved the preset performance index. It reaches the target of high-priced constant temperature shaker and has certain market prospects.

Key Words: thermostatic shaker; PID algorithm; temperature control

0 引言

恒溫摇床作为常用的实验仪器之一,主要为实验物品提供一个温度恒定的实验平台,如发酵、微生物及细胞培养等,可广泛应用于医学、生物学、农业科学等领域[1-3]。我国每年进口的生化仪器产品主要来自美国、德国和日本等国家[4],金额高达400亿元以上[5]。在温度控制理论研究方面,国内外对传统PID控制算法都作了许多改进,加入了微分先行、变速积分、积分分离等算法,在控制性能方面得到了一定提升[6]。目前一些先进的工业控制系统已引入串级控制、内模控制[7]、模糊控制、专家控制、神经网络控制等技术[8],更先进的控制系统理论仍在进一步研究中。

传统国内仪器设备在温度控制的响应速度、稳定性、控制精度方面效果不佳,不能满足一些对温度敏感生化实验的要求。本文受某公司委托,综合考虑性价比,在不改动产品原有设备结构和主要部件的情况下,只对恒温摇床核心部分——加热温控系统的软硬件重新进行设计。本文采用过采样技术,在不增加硬件成本的基础上提高采样精度,为提高温控精度打下基础,并在常规的PID控制算法中引入变速积分和微分先行改进算法,有效改善了系统的静态和动态特性,使加热控制系统预设控制精度由原先的±1度提高到±0.1度。该系统旨在提高国内低价恒温摇床温控精度,为生物、化学等领域的科学实验提供便利,具有一定的市场前景。

1 系统整体方案设计

1.1 硬件电路架构

恒温摇床由加热电阻丝对箱体进行加热,因此在加热控制系统中,首先由传感器检测温度,然后与设定值进行比较。单片机采用PID控制算法输入模拟PWM波形,通过三极管驱动固态继电器导通,控制加热电阻丝工作,并由上位机实时监控温度过程参数。分析以上各个功能模块,在硬件电路层面将恒温摇床温控系统分为温度测量电路、MCU电路、通信电路、驱动电路等部分。温控系统硬件电路架构设计如图1所示。

1.2 软件架构

温控系统软件为运行在单片机中的固件程序,主要包括硬件驱动以及控制算法实现。结合程序的模块化设计思想,软件根据需要实现的功能分为以下模块:温度采集程序、温度控制程序、串口通信程序等,MCU根据中断切换处理事件。温控系统软件架构设计如图2所示。

1.3 温度控制策略

PID控制算法由于具有简单易懂、稳定可靠等特性,在工业领域应用广泛。低价恒温摇床温控通常也采用PID控制,具体控制规律如式(1)所示。

式(1)中,[Kp]、[Ti]、[Td]分别是比例系数、积分时间常数与微分时间常数。PID控制器分为比例环节、积分环节、微分环节,每个环节的校正作用不同。比例环节负责将输入和输出产生的偏差信号e成比例放大,积分环节主要用于减少系统余差,提高控制系统控制精度,微分环节反映系统误差的变化率。

温控系统由于存在负载、死区、过冲等干扰,使系统具有不确定性及非线性等特点。传统PID不具备参数在线调整能力,难以取得良好的控制效果[9],因此低价恒温摇床的温控精度较低。本文通过设计变速积分和微分先行的改进PID控制算法,以提高系统的静态和动态特性。

2 硬件电路设计

根据图1的硬件架构设计,恒温摇床加热系统硬件电路主要包括4个子系统:MCU电路、温度控制电路、温度测量电路与RS-485通信电路。

2.1 MCU电路

MCU电路原理如图3所示。加热温控系统的MCU采用STM32F103R6T6芯片,该芯片具有外设资源丰富、处理数据速度快、功耗低等特点[10]。参考时钟源引脚外接25MHZ的晶振,晶振外壳与地相连,不仅能稳定时钟频率,还能防止一些外部干扰。电源电压与地引脚之间连接去耦电容,可以过滤掉一些高频元器件产生的射频能量,一定程度上提升了电源供电质量。

2.2 加热驱动电路

加热驱动电路如图4所示。加热驱动电路采用固态继电器驱动加热电路,可实现高频率PWM控制。继电器内部采用磁铁吸附触点进行工作,电路两端分别控制继电器导通和关断,两端都加入光电耦合器PC817。由于光耦信号只能进行单向传输,两端电路没有受到影响,完全实现了电气隔离功能。

2.3 温度测量电路

温度测量电路如图5所示。加热温控系统采用PT100铂电阻温度传感器采集温度信号[11],PT100测温的灵敏度、范围、稳定性、耐腐蚀性等性能都是传统热敏电阻无法比拟的。测温电路采用惠斯通桥式测温方法,当测量的温度与参考温度不同时,传感器负载将温度信号转换为微弱的电压差信号。STM32的ADC若直接进行采集将导致测量出现偏差,需要LM358芯片组成的桥式放大电路将压差信号成比例放大后再由单片机进行采集,其中R16和C20组成滤波电路的目的是滤除噪声。

2.4 串口通信电路

串口通信电路如图6所示。上位机与加热温控系统之间使用RS-485协议进行通信,因此采用SP485芯片。该芯片是一款低功耗、半双工的RS-485收发器,传输速率达到5Mbps。主控制器串口引脚通过SP485对TTL电平进行转换,并接入485总线网络中;主控制器PC3引脚控制数据发送方向;PRINT_T与PRINT_R两个引脚之间为了防止信号反射,需要并联终端电阻。

3 控制算法改进

恒温摇床所处的环境温度、箱体容器表面积都会对整个控制系统产生一定干扰,且传统PID算法无法在线调整参数,温控精度不够理想。本文通过设计变速积分和微分先行的改进型PID控制算法,以改善系统控制效果。

3.1 变速积分

常规PID控制算法如式(1)中积分系数[Ki]是一个固定常数,主要作用是消除系统余差,提高系统控制精度。在恒温摇床实际温度控制过程中,开始温度与目标温度相差很大,在加热过程中也会根据需要随时调整设定值,导致在短时间内出现很大偏差。PID控制器积分作用的存在会造成对误差的累積,使控制器输出可能超过执行机构允许的最大动作范围,导致系统产生较大的超调量,这在温度控制系统中是不允许的。针对这种缺陷,本文选用变速积分[12]改进PID算法,根据偏差大小动态改变积分速度,在偏差较大时积分作用应减弱甚至降为零,在偏差较小时则应强化积分作用,提高系统动态品质。变速积分PID算法表达式如式(2)所示。

上述公式中[f]取值范围为[0,1],并与偏差值e(k)满足关系如式(3)所示。

3.2 微分先行

在常规PID控制中,微分、比例与积分同时作用以改善系统动态控制品质。针对设定值频繁改变可能引起系统振荡的现象,本文选择微分先行[13]改进算法。该算法对变化平缓的输出量施加微分作用,而对给定值不施加微分作用。由于被控量的变化在通常情况下都很平缓,因此在改变给定值时,系统输出不会剧烈改变。微分作用输出与系统输出之间的传递函数如式(4)所示。

对式(4)进行差分计算,如式(5)、式(6)所示。

3.3 仿真验证

选取带有延迟环节的传递函数如式(7)所示。

对式(7)进行仿真分析,选择控制参数[Kp=0.45,Ki=0.004 6,Kd=12,A=0.6, B=0.4]。

阶跃响应仿真结果如图7所示。普通PID积分系数保持不变,变速积分参数随偏差减小而增大,系统在采用变速积分算法后调节时间变短,速度得到提升。

依然采用式(7)的传递函数,输入信号为带有高频干扰的方波信号,如式(8)所示。设置控制参数[Kp=0.3,Ki=0.005,Kd=12,γ=0.4],微分先行PID控制算法的方波响应仿真结果如图8所示。当给定值频繁升降,微分先行能及时跟随系统输入,改善系统的动态稳定性。

4 软件设计

根据图2的软件架构设计,加热控制系统软件程序采用“循环+定时/事件中断”方式运行,下载编译环境为 MDK5.1。软件程序按实现功能可作如下划分:串口通讯程序、温度采集程序、温度控制程序。

4.1 串口通信程序设计

串口通信程序运行框架如图9所示,温控系统采用串口通过modbus协议接收与发送数据[14],在初始化串口后,程序不断扫描接收缓冲区,判断是否有数据[15]。当以规定协议格式传输到下位机MCU时,下位机根据传输协议格式对其进行解析,判断数据是请求获取系统运行状态命令还是请求修改控制参数命令。如果下位机解析结果为获取控制系统某些状态命令,下位机则根据协议格式将需要的状态值打包,发送给上位机进行显示;如果解析结果是修改某些控制参数,则对相关参数重新进行赋值。

4.2 温度采样处理程序设计

温度采样处理过程如图10所示。首先,将温度传感器电压信号经过桥式放大电路转化成符合STM32ADC的采样电压,然后在软件上使用过采样技术[16]提高信号采集灵敏度。 SMT32内部集成了一个分辨率为12位的模数转换器,温度变化0.1°C时不能及时作出响应。本文设计的分辨率为16位,在每个采样周期内需要收集大量样本,之后除以16,即累加和转储,得到的结果是16位有效数据。接下来采用滑动平均滤波[17]方法去除信号中的噪声,滑动平均滤波方法[17]是针对本次采样结果与过去若干个采样值求取平均值而获得有效结果的一种算法,可减少采样次数,提升实时性,而且对于明显的脉冲干扰有非常好的滤除效果。软件设计一个存储近期温度值的数组,数组大小为20,将新采集的数据放到数组末尾后,去掉最小和最大值,求取平均值,得到的结果就是有效采样值。之后利用区间线性拟合算法[18]计算出温度值,在测温范围内等间距地选择6个标定的ADC值,在实际操作中,根据每次经过单片机的模数转换值求出选定标定值的最小范围。最后,在最小区间利用线性插补处理方法计算实际温度值。

4.3 温度控制程序设计

第3章所述的改进算法实现程序流程如图11所示。图中SP代表设定值;PV代表实时测量温度;P为设置的比例带大小,等于[Kp]的倒数。由图11可以看出:通过计算SP和PV的误差值,与所设定的比例带进行比较,在下比例带外禁止积分,以防止积分累积导致系统产生振荡,系统全功率输出,使摇床箱体内温度迅速升高。随着时间推移,当误差值降低到设定阈值0.7P时,调用微分先行算法,改变输出加热电阻丝的功率,使温度缓慢上升。当温度升高到设定值以上范围时,调用变速积分算法。当偏差大于设定值0.9P时,减小积分作用为0;当偏差小于设定值0.2P时,增大积分作用。当温度上升超过上比例带外时,主控制器输出的PWM波形占空比为0,即加热电阻丝不工作,同时使积分作用清零,依靠环境降温。在每个控制周期内,控制系统采用相同的控制策略,输出比例、积分和微分组成的控制量。

5 加热系统调试

硬件调试完毕后,将控制算法通过代码实现并烧录到单片机中。实验环境温度为25°C左右,选取高温50°C、中温35°C进行系统加热测试。实际编写程序时,为了避免出现小数,对误差进行10倍放大。工程上整定PID参数经常使用试凑法[19],经过多次实验,最终确定系统控制参数P=40,[Ti]=200。上位机以Labview作为编程环境[20],单片机通过串口将数据按照通讯协议格式发送给上位机,上位机利用其内部集成的VISA模块和显示控件对数据进行解析,并以图形化方式实时显示温控参数,为调试提供便利。实验结果如图12、图13所示。由图可以看出:系统温度快速上升,无超调现象,并且温度控制精度在±0.1°C,满足系统的预设指标。

6 结语

恒温摇床加热温度控制系统采用铂电阻温度传感器PT100采集摇床箱体温度,通过主控制器内部实现的PID算法控制加热系统,系统运行过程温度参数经过LabVIEW内部集成的显示控件进行实时监控。设计的控制算法经过软件实现并部署在主控制系统中,选取高温50°C、中温35°C进行系统测试,采用LabVIEW显示控件对温度参数进行实时监控,结果表明:温度控制精度为±0.1°C,达到预设目标,可提高国内低价恒温摇床的温控精度。

参考文献:

[1] 芦宏斌, 陈玮, 程环.  摇床机构仿真分析[J].  医疗卫生装备, 2012, 33(8): 24-27.

[2] 臧衍乐, 朱文俊, 雷杰.  国产电脑横机控制系统结构及其改进[J].  西安工程大学学报, 2011, 25(4): 453-456.

[3] 曲广毅.  QYC-200恒温空气摇床控制系统的应用[J].  中国医学装备, 2013, 10(6): 61-62.

[4] 范红, 王磊, 韩世鹏.  浅谈我国生命科学仪器研发和产业化[J].  中国科技资源导刊, 2019, 51(4): 12-15.

[5] 伊彤, 常静.  中、美、德、日科学仪器产业技术创新比较研究[J].  中国科技论坛, 2017(7): 161-183.

[6] 周彬.  大滞后特性温度系统的控制[D].  重庆:重庆大学, 2002.

[7] 文新宇, 张井岗, 赵志诚.  模糊神经网络内模控制[J].  中南工业大学学报(自然科学版), 2003 (34): 225-229.

[8] MAHDI Z, SEYED A T, DAVID V. Neural networkbased sensorless direct power control of permanent magnet synchronousmotor[J].  Ain Shams Engineering Journal, 2016.

[9] JOSEPH M. 基于微處理器的PID控制器的设计与应用研究[D].  长春:吉林大学, 2015.

[10] 徐娟娟.  STM32F103的汽车远程防盗系统设计[J]. 单片机与嵌入式系统应用, 2012(11):66-69.

[11] 王青.  基于PT100的温度测控系统的设计与仿真[J]. 计算机测量与控制, 2019, 27(9):47-50.

[12] 夏玉发, 郭晓学, 刘宇红.  基于变速积分PID的恒温控制系统的应用研究[J].  电脑知识与技术, 2014, 10(6): 3921-3922.

[13] 杨晓生, 彭志坚, 肖益波,等.  基于微分先行PID算法的铸锭炉温控系统[J]. 电子工业专用设备, 2009, 38(7): 42-45.

[14] 谢子馨.  计算机串口通信分析[J].  通信电源技术, 2019, 36(9): 188-189.

[15] 崔玉凤, 蔡立娟, 王彩霞,等.  STM32与虚拟仪器串口通信的研究[J].  信息通信, 2015, 28(12): 207-208.

[16] 王文海.  基于STM32微控制器的过采样技术研究与实现[J].  数字技术与应用, 2017(10):5-7.

[17] 牛余朋, 成曙.  单片机数字滤波算法研究[J].  中国测试技术, 2005, 31(6): 97-99.

[18] YUKITERU K,DAISUKE A,HARUMI S,et al. Usefulness of a curve fitting method in the analysis of overlapping overtones and combinationsof CH stretching modes[J].  Journal of Near Infrared Spectroscopy, 2002, 10(1): 401-414.

[19] 王庆燕, 李祥龙.  直线电机新型PID控制研究[J].  金陵科技学院院报, 2018, 34(3): 15-18.

[20] 邓玲敏, 张鹏朱, 继勇,等.  基于LabVIEW的智能灌溉上位机数据监测子系统的设计[J].  信息通信, 2019(11): 113-115.

(责任编辑:黄 健)

猜你喜欢
PID算法温度控制
船舶主机温度控制方法优化
基于模糊PID参数自整定的细胞培养箱温度控制算法
锻造温度控制
基于模糊控制的PLC在温度控制中的应用
基于AVR单片机的旋转倒立摆设计
三菱PLC在电加热与温度控制中的应用
基于模糊PID算法的空调机组温度控制