基于精英反向学习的GA-BP神经网络的压力传感器校准
2022-12-01吴凯枫张立新王军昂王赛凌云
吴凯枫,张立新,王军昂,王赛,凌云
(南京信息工程大学 自动化学院,江苏南京,210044)
0 引言
随着物联网时代到来,传感器将作为基础设施得到先行发展,传感器的应用已渗透进到消费电子、医疗诊断、工业自动化、汽车电子、环境监测等领域[1]。传感器作为一种测量装置,可以将一种不可直接获取的信息按照某一种传感机理转化为电信号或者其他某种可以测量并且量化标定的指标。相较于传统工艺制作的传感器,MEMS 传感器(微机电系统)在质量、体积、线性度、灵敏度、功耗、集成性方面均占据优势,并日益受传感器领域的学者、市场和企业的重视与青睐。
其中MEMS压阻式压力传感器具有灵敏度高、测量精度高、稳定性好等优点,但是它有相应弊端即输出压力会受到温度变化的影响,其中高温与低温区域影响很大。开发厂家通常会通过硬件补偿、最小二乘法多项式拟合补偿法来对传感器进行精度校准,但校准出来的结果依旧不尽如人意[2~3]。近些年,市面上出现了通过BP神经网络的方法对传感器输出进行精度校准,而校准精度确实相对于之前的方法有了一定的提高。本文通过遗传算法来优化BP神经网络并且在遗传算法部分加入精英反向学习的思想来获得更高质量的种群,并导入采集的一万组数据进行仿真实验,仿真结果表明,改进的GA-BP神经网络在压力传感器输出误差上比BP神经网络法有一定的提高。
1 压力传感器的数据采集
1.1 压力传感器工作原理
本文采用的是硅-硅键合结构的 MEMS 压阻式压力传感器,采用N型衬底、P型压阻形成惠斯顿全桥。压阻式压力传感器内部的压阻元件遵循半导体材料的压阻效应,当它受到外力的作用时,其内部的电子迁移率会发生变化导致它的压阻率也随着发生变化从而输出压力[4~5]。由于压力传感器本身对温度的变化也十分敏感,因此本文需要采集统一时刻的压力ADC值、温度ADC值以及期望输出压力值进行实验分析。压力传感器模组数据采集框图如图1所示。
1.2 Labview上位机搭建
Labview是NI公司推出的一款上位机图形化编程软件,其内部采用图形化编程语言,相较于VC而言,它不仅能实现同样功能,而且更加通俗直观易懂[6]。Labview软件的各种应用非常契合嵌入式开发,它可以通过使用者在单片机中构造的协议来实现单片机与上位机的通讯,并通过图形编程的方式使得原本需要耗时耗力地工作在短时间内完成。本文所需要采集的是由单片机所发出的压力ADC、温度ADC两种数据,分别为24位十六进制数。通过此上位机分别采集2850组数据,其中数据的温度量程为-20℃~100℃,压力量程为50kPa~150kPa。
本文制作的上位机前面板如图2所示。
2 相关算法介绍
2.1 BP神经网络
BP神经网络是一种按误差反向传播算法训练的多层前馈网络,通常用来进行数据的分类与预测。BP神经网络就是不断优化系统本身的权值和阈值,一般通过正向传输和误差反向传输两种方式对权值与阈值进行优化更新。BP神经网络通过不断的学习与更新参数,最终让误差减小在最初设定的范围内[7~8]。神经网络模型图如图3所示。
设BP神经网络有i个输入层神经元,j个隐含层神经元,k个输出层神经元,输入层和隐含层的权值为ijω,隐含层和输出层的权值为 jkω,隐含层第m个神经元的阈值mθ,输出层第n个神经元的阈值为nb,隐含层的激活函数为1f,输出层的激活函数为2f,并且通过梯度下降法来更新权值与阈值。
隐含层第m个节点输出为:
输出层第n个节点输出为:
均方误差为:
2.2 遗传算法
遗传算法是模拟生物在自然环境下的遗传和进化过程的一种自适应的全局优化搜索算法,其本质是选择—交叉—变异算子的循环过程,直到找到最优结果或者满足终止条件。
遗传操作主要是根据适应度函数来“选择”适应性强的染色体;对染色体之间进行“交叉”操作;单个染色体本身也会因为突变而“变异”成一个新的染色体。
选择算子为根据染色体的适应度,从第n代中挑选出一些优质的染色体遗传到下一代(n+1)群体之中。而染色体的适应度越高,它被挑选中的概率也就越大。
交叉算子为将这一代群体中的每个染色体通过一定概率随机搭配交叉,从而产生新的染色体,而这一操作也是可以提高整体算法的全局搜索能力。
变异算子为针对这一代群体中的每个染色体,都以一定概率来对它们进行基因变异操作,从而产生新的染色体,这一操作同样可以提高算法的搜索能力。
通过遗传算法的特性,可以找到一对最适合的初始值作为BP神经网络的初始权值与阈值,从而提高整理算法的全局寻优能力,也加快了算法的计算时间。
2.3 精英反向学习策略
精英反向学习是通过当前问题以求得的可行解来构造反向解,从而达到增加种群多样性的目的,最后在当前可行解与反向解中挑选出部分最优解来构建下一代高质量种群[9]。
2.4 精英反向学习的GA-BP神经网络
BP神经网络虽然自身有比较好的学习能力,可以利用它去发掘输入输出数据样本之间的非线性关系,但是它在优化过程中使用的是梯度下降法的方式来寻找全局最优解,这使得模型的初始权值与阈值对模型的影响很大,当初始权值与阈值越好,那么BP神经网络将会越快到达全局最优解,这能加快算法本身的计算速度,获得的结果也将更精确有效。由于BP神经网络的初始权值与阈值是通过取随机数的方式确定的,这样的初始值很可能使得BP神经网络不但运算速度要慢,而且还容易陷入局部最优解,这样将导致所得的结果并不是理想的结果。因此本文利用遗传算法能提高全局寻优能力的优势来优化BP神经网络,通过遗传算法的帮助可以寻找到一组最适合的初始权值与阈值,这组初始值相比于原有的权值和阈值随机性更小,从而有效地克服了其容易陷入局部最优解的缺陷,并且在遗传算法地构建新一代种群阶段结合精英反向学习的思想,利用适应度函数来判断一般解与反向解的优劣势来进行染色体选择,从而达到获得更高质量种群的目的。算法整体流程图如图4所示。
首先用Labview制作数据采集上位机来采集压力传感器模组的压力ADC、温度ADC数据作为输入,所受压力作为输出存储在excel表中。
建立BP神经网络的拓扑结构,对初始权值、阈值进行编码,将已经进行归一化操作后的输入样本进行计算适应度函数,并在种群个体经过选择、交叉、变异后,将此刻的个体利用精英反向学习策略进行反向解的求解,因为GA-BP神经网络算法中的适应度函数是一个误差函数,即求解的是最小值问题,故挑选所得的解中误差较低的部分来组成下一代新种群。当满足迭代次数等条件后,算法将会找到一组最合适的初始权值与阈值,并赋给BP神经网络,接着通过梯度下降法来不断地减小误差,不断地更新权值和阈值,最后得出训练模型并且计算平均绝对误差MAE、平均绝对百分比误差MAPE来验证模型的精度。
3 实验测试
本实验仿真采用Matlab R2019b编程软件平台,将采集到的2850组数据导入到Matlab软件中进行仿真实验。
如图5、图6、表1所示,BP神经网络的预测平均绝对百分比误差为2.1038%,改进BP神经网络的预测平均绝对百分比误差为0.13623%,从结果可以看出基于精英反向学习的GA-BP神经网络的预测误差比BP神经网络预测误差小一个量级,从而可证明加入精英反向学习策略的GA-BP神经网络的方法可以明显提高压力传感器输出的精度。
表1 测试实验结果数据
4 结论
为了提高压力传感器模组的精度,本文采用基于精英反向学习的GA-BP神经网络的方法,利用精英反向学习策略,可以找到质量更高的染色体来组成新种群的优势,确实达到了实验目的。相较于市场上常用的最小二乘法拟合而言,这种方法精度有了显著的提高。