改进PSO优化的小波神经网络在压力传感器温度补偿中的研究
2022-09-26朱志峰张海宁
朱志峰,张海宁
(西安工业大学电子信息工程学院,陕西西安 710021)
0 引言
目前,压力传感器的使用极其普遍,如在典型的工业液压控制系统中应用压力传感器完成力的闭环控制;在矿山压力监测中应用各种压力传感器来监测矿山潜在的危险以及在采矿环境中确保工作的安全性,但压力传感器的测量精度通常容易受到环境温度的影响[1-3]。因此对于温度变化较大的应用场合,这类压力传感器的精度会不及预期,需要对其进行温度补偿,来消除温度非目标参量对实际测量结果的影响[4-5]。目前,对此类传感器的温度补偿主要集中在硬件补偿和软件补偿两方面。硬件补偿随着技术的不断提高和制作工艺的完善,基本上已经达到了最佳的状态,但是仍不能消除温度对其影响[6-7]。软件补偿方法有:插值法、多项式拟合法、多维回归分析法、神经网络等补偿修正算法。郭志君等[8]采用基于NSGA的BP神经网络在压力传感器温度补偿中的研究,通过NSGA算法优化BP神经网络的初始权值和阈值,提高该模型补偿精度和运行时间;张鹏[9]采用基于小波神经网络的温度补偿方法对光纤微压传感器进行分析,采用该方法后其输出电压受温度影响显著减小,系统性能更加稳定。
与上述算法相比可知,本文使用PSO优化的小波神经网络对矿山压力检测中使用的电阻应变式压力传感器进行温度补偿。小波神经网络相比于前向的神经网络,它可以避免BP神经网络等结构设计上的不确定性;其次,小波神经网络有更强的学习能力,对同样的学习任务,小波神经网络结构更简单,收敛速度更快,精度更高[10-12]。粒子群优化算法是一种单项信息共享机制,相比于遗传算法来说不需要编码,没有交叉和变异等操作,其原理更简单,参数少,实现更容易。因此,利用PSO和小波神经网络相结合的方法对电阻应变式压力传感器进行温度补偿,以实现更高精度的压力传感器测量输出。
1 电阻应变式压力传感器温度补偿原理
如图1所示,利用神经网络模型对电阻应变式压力传感器进行温度修正,其中压力传感器用来测量被测压力,用温度传感器来监测环境温度,压力传感器的输出为Up,其中p为被测压力,温度传感器的输出为Ut,其中t为非参量温度,压力传感器和温度传感器的输出值构成小波神经网络的训练样本,p′为经过小波神经网络温度修正后的输出值。电阻应变式压力传感器的温度补偿过程包含以下步骤:
(1)采集被测量压力p和工作环境温度t,并通过压力传感器和温度传感器将其分别转换为电压值输出;
(2)对其数据进行归一化处理,使特征具有相同的度量尺度;
(3)建立电阻应变式压力传感器温度补偿的小波神经网络模型,采用改进的PSO算法优化小波神经网络结构;
(4)网络训练,利用前面测得的数据进行网络的训练,得到经过温度补偿后的网络输出值p′。
图1 温度补偿模型
2 基于PSO-小波神经网络的温度补偿模型
2.1 小波神经网络
小波神经网络是以BP神经网络拓扑结构为基础,把小波基函数作为隐含层节点的传递函数,相应的输入层到隐含层的权值及隐含层的阈值分别由小波函数的尺度伸缩因子和时间平移因子代替的神经网络[13]。根据所选取的小波基函数的连续性不同,选择连续参数的小波神经网络表达式为
(1)
式中:aj为平移尺度因子;bj为伸缩尺度因子;xi为网络的输入函数矢量;uij为网络输入层第i个单元与隐含层第j个神经元的连接权函数;ωk为隐含层第k个神经元与输出层单元的连接权值;g为小波函数。
小波变换的平移因子使得小波能够沿信号的时间轴实现遍历分析,伸缩因子通过收缩和伸张小波,使得每次遍历分析实现对不同频率信号的逼近,如图2所示。其中,ωjk为小波神经网络输入层到隐含层的连接权值,θi为隐含层节点的阈值,ωij为隐含层到输出层的连接权值,θk为输出层节点的阈值,φ(x)为隐含层激活函数。
图2 小波神经网络结构图
2.2 改进的PSO算法
粒子群算法(PSO)是由Eberhart和Kennedy观察鸟群寻找食物行为提出的一种求解优化问题的方法[14-15]。基本思路是用一种粒子来模拟鸟类个体,每个粒子可视为N维搜索空间中的一个搜索个体,粒子的当前位置即为对应优化问题的一个候选解,粒子的飞行过程就是该个体的搜索过程,粒子的飞行速度可根据粒子历史最优位置和种群历史最优位置进行动态调整,粒子的速度代表移动的快慢,位置代表移动的方向。通过不断迭代更新速度和位置,最终得到满足终止条件的最优解。流程如下:
(1)初始化。设置粒子群的最大迭代次数、目标函数的自变量个数、粒子的最大速度,位置信息为整个搜索空间,对于速度区间和搜索空间随机初始化速度和位置,设置粒子群规模为M,每个粒子随机初始化为一个飞行速度。
(2)个体极值与全局最优解。自定义适应度函数,个体极值定义为每个粒子找到的最优解,然后从这些最优解中找到一个全局值作为全局最优解,最后与历史全局最优比较,进行迭代更新。
(3)更新速度和位置。PSO算法在优化过程中,种群的多样性和算法的收敛速度之间始终存在着矛盾。因此对标准PSO算法改进,通过调整PSO的参数来平衡算法的全局探测和局部开采能力,通过在速度进化方程中引入了惯性权重ω和伸缩系数χ,并依据迭代进程及粒子飞行情况对惯性权重进行线性或者非线性的动态调整,以平衡搜索的全局性和收敛速度,具体调整公式如下:
Xid(t+1)=Xid(t)+Vid(t+1)
(2)
Vid(t+1)=ωVid(t)+χ·M
(3)
M=C1R1d(t)[Pid(t)-Xid(t)]+C2R2d(t)[Pgd(t)-Xid(t)]
(4)
(5)
(6)
式中:ω为惯性因子,当其值比较大时说明其全局和局部寻优能力强,当其值较小时,全局寻优能力弱,局部寻优能力强;通过调整ω的大小,可以对全局寻优和局部寻优进行调整;χ用来配合ω控制粒子种群之间探索和开拓能力之间的平衡;ωmax、ωmin分别为惯性权重的最大值和最小值;tmax为粒子群算法最大的迭代次数;fitnessgoal为目标适应度;fitness(i)为当前粒子的适应度;C1、C2为加速学习因子,通常设置C1=C2=2,一般取C1=C2∈[0,4];R1d和R2d为随机数,R1d用来改变粒子当前位置与自身历史最优位置的调整分量,R2d为改变粒子当前位置与群体历史最优位置的调整分量;Vid为第i个变量在第d维子空间的速度;Pid为第i个变量的个体极值的第d个参数中的历史最优解;Pgd为全局最优解的第d个参数中的历史最优解。
2.3 改进PSO-小波神经网络进行温度补偿
将压力传感器测定数据按照PSO算法进行初始求解,得到小波神经网络的初始参数,当神经网络的误差达到最小时,PSO算法中适应度函数值达到最大,再根据PSO算法的流程寻找最优函数对应的最佳粒子,并将最佳粒子的参数集合赋值给网络的初始权值和阈值,即对应于小波神经网络的平移因子和伸缩因子,经过改进的PSO算法优化后,小波神经网络经过压力传感器输入样本训练好后即可获得经过温度补偿模型后的输出。PSO优化的小波神经网络流程如图3所示。
图3 改进的PSO-小波神经网络流程图
3 温度补偿实验分析
文中采用课题组的压力变送器标定试验台,使用MCS型电阻应变式压力传感器,用改进的PSO-小波神经网络温度补偿模型进行压力传感器的温度补偿实验。实验包括的器材:PACE5000高精度压力控制器,其精度为0.001%FS;SHT30温度传感器,在本次实验中是用高低温试验箱代替,工作温度范围为-40~140 ℃,准确度为0.1 ℃。首先将该型号的压力传感器放入温箱中,温度依次设置为-30、0、25、50、75、100、125 ℃,测试压力值取0、16、32、48、64、80 bar(1 bar=0.1 MPa)。压力传感器输出电压记为Up,由于压力传感器敏感芯体制造工艺的差异性,导致其同一个类型的压力传感器输出值也有差异,在环境温度的作用下其输出温度漂移较大,因此根据实际的输出对其进行温度补偿校准,实际测得的压力传感器输出值如表1所示。
表1 压力传感器实际输出值
将表1中的数据绘制成曲线,如图4所示,从表1和图4中均可看出,在温度的影响下压力传感器的输出发生了非线性的漂移,对于高精度要求的压力传感器,会造成精度的损失和测量过程中的准确度下降问题。
图4 温度对压力传感器的输出影响
利用本文方法进行温度补偿处理,对于粒子群算法的参数设置,首先初始化粒子的编码长度,根据输入节点个数、隐层节点个数以及输出层节点个数计算粒子的编码长度,初始化粒子的加速学习因子C1=C2=1.494 45,进化次数设置为100,种群规模设置为50,粒子的速度最大值为1,速度最小值设置为-1,个体的最大值设置为5,最小值设置为-5,根据粒子的速度和位置,迭代寻优,通过引进的更新迭代系数,重新初始化粒子,通过迭代找到个体极值和群体最优解,然后把最优初始权值阈值赋值给网络,进行网络的训练。将BP神经网络和PSO优化的小波神经网络进行对比训练,样本的训练曲线如图5和图6所示。
图5 BP网络的训练曲线
图6 PSO优化的小波网络训练曲线
BP网络训练经过30次迭代后,最小误差为2.411 7×10-4,而本文设置的目标误差为10-5,可以看出BP神经网络在训练时陷入了局部极小值,而图6是将改进PSO优化好的权值和阈值作为小波网络的初始权值和阈值,经过40次迭代后,训练误差达到了2.288 6×10-5,并且从图6可以看出,经过PSO优化的小波网络初始训练收敛速度很快,可以有效避免局部最小的问题,同时从PSO算法的适应度曲线(图7)中可以看出,经过25次左右,PSO粒子可以找到最优解。
图7 PSO算法的适应度曲线
将表1中的42组样本数据通过改进PSO优化的小波神经网络温度补偿后的压力传感器的输出如表2所示。与标准的压力值相比,经过温度补偿后的输出几乎接近标准压力值。将表2的数据绘制成曲线如图8所示,从图8可以看出,在压力传感器工作的全温区范围内,在某一数值压力下,其输出几乎不会受到温度的影响,由经过补偿后的压力值计算可知,全温区的最大绝对误差为0.109 1,其准确度为0.136 4%,使用该方法温度补偿达到了高精度的要求,同时也提高了压力传感器的稳定性和准确性。
表2 补偿后压力传感器的输出
图8 温度补偿后的结果
为了验证本文算法的优化性能,通过对原始的小波神经网络及经过PSO优化的BP神经网络等不同网络模型进行对比分析,结果如表3所示,从训练时间、补偿后的准确度以及训练误差方面可知,采用PSO优化的小波神经网络模型收敛速度更快,其平均训练时间相比传统BP网络模型缩短了一半左右,全温区的准确度提升到了0.136 4%,训练误差相比传统BP模型提升了一个数量级。
表3 网络模型结果对比
4 结论
通过分析电阻应变式压力传感器受工作环境温度造成的温度漂移问题,提出采用基于改进的PSO优化的小波神经网络进行温度补偿处理,并建立网络模型验证了该方法的有效性和准确性。通过改进的粒子群算法优化的小波神经网络,克服了传统网络容易产生局部极小问题,使用小波函数构成的小波神经网络对网络的整体推广能力有更进一步的提升。从补偿效果可以看出,该方法可以有效地消除温度对压力传感器输出的非线性影响,全温区的准确度提升到了0.136 4%,同时相较于其他的网络模型,本文温度补偿模型,从全温区准确度和训练时间上更能保证压力传感器的准确性和高效性。