陈 群,左 锋,卢文科(东华大学信息科学与技术学院,上海201620)
基于人工鱼群BP神经网络算法的压力传感器温度补偿研究
陈 群,左 锋,卢文科
(东华大学信息科学与技术学院,上海201620)
为实现压力传感器的温度补偿,采用BP神经网络作为压力传感器软件补偿系统的核心算法,但由于BP神经网络算法易陷入局部极值,因此采用具有全局搜索能力的算法—人工鱼群算法(AFSA)进行优化,得到的结果是压力传感器的线性度提升1个数量级,温度灵敏度系数降低2个数量级,得到了很好的补偿效果。
压力传感器;温度补偿;人工鱼群算法
与传统传感器相比,智能传感器具有精度高、可靠性高、自适应性强等特点,运用传统传感器制造工艺来完善传感器的测量性能已经暴露出相当多的局限性,以大规模集成电路为基础的微处理器的发展为改善传统传感器性能提供了一个基于可编程芯片和软件的解决方案。而压力作为最常见的物理量,对它的测量是工控系统中的重要环节,基于硅半导体材料的压力传感器因为对温度的敏感性,很难在宽泛的环境温度下保证测量精度(零点和灵敏度随温度漂移),因此需要进行温度补偿[1]。
软件补偿的本质是利用微处理器强大的数据处理能力修正外界干扰量(如温度)对压力传感器输出的影响。可以构建一个具有温度补偿功能的二传感器数据融合智能传感器系统,其中一个是辅助传感器,用来监测干扰量温度T;另一个是主传感器,即压力传感器,如图1。
温度补偿问题本质上是个非线性优化问题,因此引入具有自学习、自适应的BP神经网络算法来解决。
2.1 结构
BP神经网络可以由一个或者多个隐层组成,一般采用三层BP神经网络。假设权值Wjk(l×r)、Wkj(m×l)与阈值b1j(l个)、b2j(m个)随机赋予初始值、确定分组输入P1,P2,…,Pr,如图2所示。
图2 BP神经网络示意图
由此可以得出输出层节点k的输出o2k与期望输出dk存在误差,输出层m个节点的总误差E取为:
通过反复计算,求取E,根据E的大小调整网络参数,最终使得误差E足够小,这个过程称之为网络学习,也称之为网络训练过程。网络权值的调整所遵循的规则称为梯度下降法,其基本思想是:沿着误差函数E的负梯度方向修改各个节点的权值[1]。
2.2 特点
与其他局部搜索的优化方法一样,BP神经网络算法也有缺陷,首先网络的权值是通过沿局部改善的方向逐渐进行调整的,这样就容易过早地陷入局部极值;其次,由于BP神经网络的实质属于梯度下降算法,随着其优化的目标函数复杂度增加,算法的收敛速度显著放慢。李晓磊[2]提出的一种具有全局优化能力的人工鱼群算法在全局寻优和降低噪声方面有着不错的效果,因此本文提出一种人工鱼群与BP神经网络相结合的方案。
3.1 人工鱼群算法(AFSA)
鱼类会根据水中食物浓度的分布自主选择觅食、聚集以及追尾等行为[2]。传统的人工鱼感知模型如图3。
图3中,人工鱼所处当前位置为X,visua1代表人工鱼感知的距离,Xv为此人工鱼某时刻感知到的点,若Xv处的食物浓度优于X,则向该点方向前进一步,到达位置Xnext,否则,继续感知区域内的其他点,感知过程如式(2)所示:
图3 人工鱼感知模型图
其中,调用rand()是为了产生[0,1]区间内的随机数,steP为人工鱼移动的最大步长,它限定了人工鱼的最大活动范围,定义为Xv与X之间的距离,人工鱼所在位置X的食物浓度Y=f(X),设try_Nunber为人工鱼觅食行为的最多尝试次数,δ为拥挤因子,人工鱼(AF)根据当前的状态选择觅食、聚群和追尾等行为。
3.2 人工鱼群算法改进(lAFSA)
常规的人工鱼群算法也是有缺陷的,初始人工鱼的个体分布状况对全局收敛性影响较大;人工鱼步长steP和视野visua1等参数对算法的精度影响很大,在一定范围内,steP和visua1值越大,AFSA在初始化初期收敛速度越快,克服局部极值的能力越强,这也会在很大程度上造成算法优化后期的收敛速度慢,加上感知和移动的随机性,使得结果无法跳出局部最优。
(1)初始化操作
根据人工鱼初始分布的随机性,为了提高算法的收敛速度以及防止过早收敛,合理的初始化显得尤为重要,为此采用网格化鱼群[3]:
式(4)中Xi(k)为第i条(i=1,…,n)人工鱼的第k维分量,Lmax(k)和Lmin(k)表示k维分量的上界和下界。
(2)自适应感知和移动
①变步长
步长的调整依据人工鱼对当前食物环境的判断。公式如下:
式(5)中,Yi表示人工鱼在当前环境下的食物浓度,Ymax、Ymin限定了视野范围visua1内食物浓度范围区间,通过steP的改变可以更加细致地寻优。
②视野自适应
人工鱼群具有聚集效应,视野visua1随觅食尝试次数try_Nunber的增加而逐渐减小,公式如下:
式(6)中,Vmax、Vmin限定了视野visua1的取值区间,try_ Nunber为最大尝试次数,t为当前尝试次数。在寻优初期,每一条人工鱼在较大的视野内游动,算法的搜索域较大,随着后期人工鱼的视野visua1逐渐减小,人工鱼可以灵活地在相对较小的视野范围visua1内更细致地寻优[4]。
3.3 lAFSA-BP算法
定义第i条人工鱼的状态Xi(k):
i=1,…,fish_Number;k=1,…,D
式中fish_Number为初始化人工鱼的数目,用维数D表示神经网络所有的权值和阈值的总和。本文采用单隐层神经网络结构,其中输入层神经元个数为r(P1,P2…,Pr),隐层神经元个数为l,输出层神经元的个数为m,则D的计算公式为:
D=(r+1)×l+(l+1)×m(7)
BP神经网络的所有权值和阈值按照输入层、隐层、输出层的顺序依次赋予人工鱼AF的D维分量,则第i条AF的一个状态值Xi(k)表示一个神经网络的权值或阈值。每一条AF的状态反映的就是BP神经网络的优化结果,再根据鱼群的状态修改BP神经网络的所有权值和阈值[5]。
初始化AF根据当前状态计算食物浓度,人工鱼食物浓度记为Y=1 /yi,yi为神经网络输出值的误差,计算公式如下:
其中,N是训练样本集的维数;dij是第i个样本的第j个网络输出层节点的实际输出值。与传统的人工鱼群算法一样,设置公告板,用来记录最优的AF网络,经过有限次迭代和比较,获得最优的AF网络,同时需要判断神经网络输出值的误差是否在目标范围内,若在则停止寻优,输出最优网络,否则继续寻优,直到获得误差范围内的最优解为止。改进后的IAFSA-BP算法流程图如图4所示。
4.1 传感器标定实验
压力传感器的输出UP与被测压力P和温度T呈非线性关系,所以可在传感器工作温度范围内选定不同温度状态对被补偿的压力传感器进行标定实验。以扩散硅压力传感器为例,选取5个温度T进行标定,详见表1,UP为主传感器输出信号,Ut为辅助温度传感器输出信号,P为输入压力。
图4 IAFSA-BP算法流程图
表1 不同工作温度下压力传感器输入输出标定数据
4.2 训练样本库建立
随机选取8组数据对作为检验样本,其余作为训练样本。经过归一化处理后的数据在[-1,1]或者[0,1]之间,这样可以有更好的数据融合效果。数据归一化的公式如下:
式中X、¯X分别为归一化前后的样本数据,Xmax、Xmin为X所在行的最大、最小值。
4.3 结果分析
使用MATLAB自带的神经网络工具箱设计BP神经网络,可以得到被测压力的修正值UP′,如表2所示。
表2 训练后压力传感器在不同温度的输出修正值
图5、图6分别为补偿前后的输入输出压力值。对比表1、表2以及图5、图6可知,补偿前压力传感器的输出线性度δL=5.7%,而补偿后线性度δ′L=0.18%,提升了一个数量级。
图5 补偿前输入输出
图6 补偿后的输入输出
补偿前压力传感器的温度灵敏系数αl=6.85×10-2,而补偿后压力传感器的温度灵敏系数αl′=8.5×10-4,显然传感器灵敏度受温度的影响减弱许多。
人工鱼群算法通过个体的局部寻优,实现全局最优,算法具有操作简单、收敛速度快等优点,将其作为学习方法来对BP神经网络进行训练,并将其移植到压力传感器温度补偿模型,提高了压力传感器测量的精度和稳定性。
[1]刘君华.智能传感器系统[M].西安:西安电子科技大学出版社,2010.[2]李晓磊.一种新型的智能优化方法-人工鱼群算法[D].杭州:浙江大学,2003.
[3]齐爱玲,马宏伟,刘涛.基于改进人工鱼群算法的超声信号稀疏分解[J].仪器仪表学报,2009,25(12):24-28.
[4]曹承志,张坤,郑海英,等.基于人工鱼群算法的BP神经网络速度辨识器[J].系统仿真学报,2009,26(4):104-105.
[5]刘彦君,江铭炎.自适应视野和步长的改进人工鱼群算法[J].计算机工程,2009,25(5):35-47.
陈群(1989 -),通信作者,男,硕士研究生,主要研究方向:智能传感器系统,物联网技术与应用。E-mai1:chenqun0916@163.com。
左锋(1963 -),男,博士,工程师,主要研究方向:工程检测与自动化装置开发与应用。
卢文科(1962 -),男,博士,教授,硕士生导师,主要研究方向:声表面波,数字旋转。
Study on Pressure sensor temPerature comPensation based on IAFSA-BP neura1network a1gorithm
Chen Qun,Zuo Feng,Lu Wenke
(Co11ege of Information Science&Techno1ogy,Donghua University,Shanghai 201620,China)
In order to achieve the temPerature comPensation of the Pressure sensor,this PaPer adoPts the BP neura1network as the core a1gorithm of Pressure sensor software comPensation system,but as the resu1t of the BP neura1network a1gorithm is easi1y traPPed in 1oca1minima,so it can be oP-timized by the a1gorithm with the g1oba1 search abi1ity-Artificia1Fish Swarm A1gorithm(AFSA).It imProves the accuracy ofmeasurement sensors.
Pressure sensor;temPerature comPensation;artificia1 fish swarm a1gorithm
TP23
A
10.19358 /j.issn.1674-7720.2016.09.009
陈群,左锋,卢文科.基于人工鱼群BP神经网络算法的压力传感器温度补偿研究[J].微型机与应用,2016,35(9):27-29,33.
2016-01-13)