基于微机电系统和BP PID控制算法的露点仪设计

2018-09-29 03:07孙启云刘清惓
实验室研究与探索 2018年8期
关键词:露点控制算法电容

孙启云, 刘清惓, 周 亚, 王 珲

(1. 江苏省大气环境与设备技术协同创新中心, 南京 210044;2. 南京信息工程大学 电子与信息工程学院, 南京 210044;3. 江苏省气象探测与信息处理重点实验室, 南京 210044)

0 引 言

大气湿度是气象探测中一项重要参数,露点温度作为湿度定义和计量的标准,准确测量大气露点温度尤为重要。冷镜式露点仪是湿度量值传递和国际对比标准仪器[1]。传统的冷镜式露点仪虽然有精度高的优点,但是价格昂贵,一旦有灰尘等污染物附着在镜面上就会对反射光形成干扰。当镜面温度低于0℃时,难以分辨镜面是结霜还是结露,亦有可能导致测量误差增大。大部分研究者采用传统的PID控制算法对露点仪进行控制,当测量环境变化时,传统PID控制算法的参数自适应能力有限,PID控制的响应速率变低,对其性能进一步提高造成了限制[2-3]。随着微加工技术的进步,一些国内外学者研制了基于微机电系统(MEMS)技术的露点仪系统[4]。传统露点仪中的光源和光电探测系统的成本高昂,且在低温环境中响应速度较慢,MEMS传感器在该领域的应用,不但使仪器的小型化和低成本化成为可能,亦有利于提高传感器的响应速率和测量精度[5]。

本文提出了一款基于MEMS及BP PID控制算法的露点仪设计,通过检测MEMS电容芯片及其表面温度变化,实现露点的测量。采用基于BP神经网络的PID控制算法,提高了传统PID控制算法参数的自适应能力及系统响应速率。移植FreeRTOS实时操作系统,提高了系统的稳定性、多任务能力和内存管理能力。

1 露点仪系统设计

1.1 MEMS露点仪设计原理

露点温度是指将一个光洁镜面放置在待测空气中进行等压降温,结露量保持恒定时的表面温度[6-7]。本文设计的露点仪,将MEMS传感器芯片表面的电容器件作为检测微小露珠的镜面,根据电容变化判定其表面是否有露形成。测量前,对电容进行标定。当镜面温度降低到露点温度时,镜面的水汽达到饱和状态,MEMS电容芯片表面有微小的露珠凝结[8],从而引起相对介电常数增加,此时测量MEMS电容值,当其稳定在系统预设电容值时,其表面温度即为露点温度[9]。通过算法控制半导体制冷器,使电容的测量值实时跟踪预设值,并使镜面上的结露量保持动态平衡。MEMS电容芯片结构示意图如图1所示。

图1 MEMS电容芯片结构示意图

1.2 高精度测控电路设计

系统测控电路主要包括处理器、电容测量电路、温度测量电路及制冷器温度控制电路。选用Cortex-M3内核的STM32微控制器作为主控芯片,其具有功耗低、中断延迟短、成本低、处理性强等优点,满足系统设计中数字信号采集、转换等需求。系统测控电路设计框图如图2所示。

图2 系统测控电路设计框图

使用由实验室自主研制的MEMS电容芯片作为传感器探头,其具有体积小、功耗低、成本低、高精度等特点[10]。选用AD7746作为电容测量芯片,AD7746作为一款Σ-Δ型电容数字转换器,噪声低,具有±0.01%的线性度,±4 fF的精度,4 aF的分辨率,可以精确检测到MEMS电容。当电容测量值稳定在预设值时,认为此时已达到露点温度,可进行温度测量。

为实现温度的高精度测量,使用铂电阻温度传感器采集温度。采用四线制铂电阻传感器的连接方式,有利于降低引线以及接线误差[11]。使用Fluke 1595A超级测温电桥与ISOTECH干体炉进行铂电阻温度传感器标定。选用Vishay公司研制的Z型金属箔精密电阻,并使用超级测温电桥对其进行阻值标定,减少普通电阻因温度、电流变换而引起的阻值误差。采用24位Σ-Δ模数转换器AD7794测量铂电阻及参考电阻两端的电压,并将数据传输给处理器进行数据处理,并采用线性电源LP2951供电。为减少内部基准电压源产生温漂而带来的系统误差,使用ADR444作为A/D采样的基准源,提高系统精度。

为使电容表面结露量保持动态平衡,采用多级半导体制冷器控制电容表面温度。使用微控制器产生PWM波,通过调节其占空比控制半导体制冷器功率开关的MOS管的通断。采用光耦连接处理器的输出和功率开关,可有效减少电流高频分量对处理器以及测量电路的影响[12]。为保证半导体制冷器的制冷效果,在其背面安装散热器。

为降低系统误差,提高测量精度,在PCB布局设计中,将数字部分与模拟部分独立分区布局与铺地,并使用磁珠进行耦合,减少处理器与通讯芯片中高频噪声对测量电路的影响。在电源电路中引入去耦、滤波电容消除电源杂波干扰。露点仪测控电路实物图如图3所示。

图3 露点仪测控电路实物图

1.3 系统软件设计

利用处理器与24位电容数字转化器之间I2C通信测量MEMS电容,使用基于BP神经网络的PID控制算法控制半导体制冷器的输出功率,实现电容芯片表面温度控制。当电容测量值稳定在系统预设值时,利用处理器与24位模数转换器之间SPI通信测量铂电阻两端电压,通过转换得到铂电阻阻值,最终计算得出露点温度,并由串口将数据发送给上位机进行数据显示。处理器需完成多通道ADC数据测量、数学计算、上位机通讯等工作,任务量大,实时性要求高。FreeRTOS作为一款内核较小但功能齐全的操作系统,可方便移植,无任务数量限制,通过移植FreeRTOS操作系统提高了本系统的实时性和稳定性[13]。系统软件设计流程图如图4所示。

图4 系统软件设计流程图

2 基于BP神经网络的PID控制算法设计

为提高传统PID控制算法参数的自适应能力及系统响应速率,将BP神经网络算法应用于PID的参数识别过程,设计基于BP神经网络的PID控制算法[14]。设计中采用增量式离散PID算法[15]

Kd(e(k)-e(k-1))

(1)

式中:Kp、Ki、Kd分别为控制器的比例、积分和微分系数;e(k)、e(k-1)指采集到的第k次和第k-1次时电容值与预设电容值的差值;u(k)、u(k-1)指在第k次和第k-1次采集时接入半导体制冷器的输入电压。在此基础上加入BP神经网络算法,利用神经网络模型通过训练和学习找出一个最佳控制算法规律,实现Kp、Ki、Kd实时可调。

本文建立如图5的3层神经网络结构,确定网络输入层、隐含层、输出层的神经元个数分别为4、20、3。隐含层与输出层的权值函数分别为vij、wli。将测量得到的电容差值作为输入层的输入,

Oj=ej,j=1,2,3,4

(2)

隐含层的输入输出分别为:

输出层的输入输出分别为:

图5 3层神经网络结构图

隐含层神经元活化函数f(x)为正负对称的sigmoid函数,由于PID的3个参数非负,所以输出层神经元活化函数g(x)为非负的sigmoid函数[16]。输出层的3个结果输出分别对应PID算法中的3个参数。为提高PID参数的自适应能力,需进行BP神经网络算法学习,采用梯度下降法调整隐含层和输出层的权值系数。经过多次试验,本文选定学习速率η为0.48,惯性系数α为0.001。系统指标函数为:

(7)

式中:r(k)是系统电容预设值;y(k)是电容实时采集值。利用指标函数E(k)对权系数按照负梯度方向进行搜索调整,可得网络输出层权系数的学习算法公式

隐含层权系数的学习算法计算公式:

基于BP神经网络的PID控制算法可在控制过程中根据预设平衡条件,不停地控制制冷器的工作功率,提升系统的响应速率,使MEMS电容可实时跟踪系统预设值,维持其表面结露量的动态平衡。控制算法设计流程图如图6所示。

图6 控制算法设计流程图

3 对比实验与结果分析

为验证系统的实际性能,测试环境使用伟思福奇环境试验仪器有限公司生产的温湿度检定箱。选取英国Michell公司生产的OPTIDEW VISION计量级冷镜式露点仪进行对比试验。将计量级冷镜式露点仪测得的露点温度记为dp0,本系统测得的露点温度记为dp1,得到如表1的数据。

表1 OPTIDEW VISION光电露点仪与本系统露点仪拟合测量结果对比 ℃

将计量级冷镜式露点仪测得的露点温度与本系统测得的露点温度之间的误差值绘制如图7所示的折线图。对比测试结果表明,本系统的测量精度为±0.2 ℃,计算可得本系统均方根误差为0.12 ℃。

4 结 语

图7 露点温度误差折线图

本文提出了一种基于MEMS电容芯片及BP PID控制算法的露点仪。采用MEMS技术设计露点传感器探头,使用24位电容数字转换器测量MEMS电容。结合基于BP神经网络的PID控制算法设计了半导体制冷器控制电路,提高了参数的自适应能力,使电容测量值可实时跟踪系统预设值。设计基于24位模数转换器的铂电阻温度传感器,经转换计算得出最终露点。系统中移植FreeRTOS操作系统,提高了系统的稳定性及多任务的工作效率。对比实验结果显示,系统测量精度优于±0.2 ℃,未来有望应用于高空与地面气象探测。

猜你喜欢
露点控制算法电容
煤层气集输系统中仪表风水露点问题分析与探索
基于ARM+FPGA的模块化同步控制算法研究
宽电容测量仪的设计
PWM Buck变换器电容引起的混沌及其控制
一种降压/升压式开关电容AC-AC变换器设计
新闻报道要当心露点走光
一种优化的基于ARM Cortex-M3电池组均衡控制算法应用
气力输送系统中压缩空气的露点控制Dew point control of conveying air system
滑模控制算法在在线式大功率UPS高频整流器中的应用
一种非圆旋转工件支撑装置控制算法