基于PSO-BP模型的扩散硅压力传感器温度补偿
2019-12-14崔萌洁卢文科
崔萌洁,卢文科,左 锋
(东华大学信息科学与技术学院,上海 201620)
0 引 言
扩散硅压力传感器是一种以半导体硅膜片为基础将压力信号转换为电信号的测量装置,被广泛应用于生产生活的各个领域,它具有安装方便、抗干扰能力强、稳定性好、分辨力高等特点。
在国内,学者们根据该传感器的工作原理,通过设计以8位微处理器为核心的高稳定数控恒流源[1]、开发新型数字温度补偿系统[2],设计信号调理电路[3]等手段提高其工作的性能以及测量的精确度。国外对于该传感器也进行了大量研究,如通过对惠斯通电桥结构的改善[4]、研发薄型触力传感器等方式对该传感器进行输出精度以及应用层面上的改进。
由于扩散硅压力传感器使用的场景较多,存在环境温度大幅变化的情况[5]。作为半导体材料硅,其电导率易受温度影响;因此,必须对该传感器进行温度补偿。一般来说,温度补偿的方法主要分为硬件补偿和软件补偿。硬件补偿成本较大,而且补偿的效果不够稳定,相比较下,软件补偿的补偿效果更加优异,而且成本较小。常用的软件补偿方法有插值法、最小二乘法、曲线拟合法、支持向量机等[6],本文采用粒子群算法(PSO)优化的BP神经网络,BP神经网络算法相比于常见的软件补偿算法,具有较强的非线性映射能力及自学习和自适应能力,而PSO算法主要是对于BP神经网络算法的权值以及阈值进行优化,提高BP神经网络的整体性能。该算法用于对二维标定后的数据进行温度补偿,从而达到减小温度对扩散硅压力传感器影响的目的。
1 扩散硅压力传感器的工作原理
压力传感器是一种把压力转变成电信号的器件,扩散硅压力传感器结构如图1[7]所示,以单晶硅为基体,采用扩散或离子注入等工艺形成电阻即硅膜片,硅膜片由硅环固定在产生力学应变基体上,当基体受力发生应力变化时,硅膜片也会随之发生形变[8]。
扩散硅压力传感器的测量建立在惠斯通电桥的基础上。硅膜片上有4个阻值相同的电阻R1、R2、R3、R4形成惠斯通电桥[9],如图2所示。图中,R3两端的电压为
图1 扩散硅压力传感器结构
图2 惠斯通电桥
同理,R2两端的电压为
可得电压Vout为
一般来说,R1、R2、R3、R4变化的程度相同。当R1、R3增大时,R2、R4减小;当R1、R3减小时,R2、R4增大。当硅膜片不受力时,电桥保持平衡,输出电压为0;而当硅膜片发生形变时,R1、R2、R3、R4的阻值发生变化,输出电压Vout也会发生改变。因此,压力值的改变转化为电阻值的改变,电阻值的改变转化为输出电压。压力不同时,输出的电压也不相同,可以通过测量输出电压求得输入压力[10]。
2 PSO-BP模型的原理
2.1 粒子群算法原理
粒子群优化算法(particle swarm optimization,PSO)是基于群体进行优化的方法,将系统初始化为一组随机解,通过迭代搜索最优值[11],因此PSO算法多用于寻找全局最优解问题[12]。
本文使用标准粒子群优化算法,在速度进化方程中引入惯性权重:
式(5)代表粒子i在j维子空间中的运动速度。式中:i=1,2,···,M,i表示第几个粒子,M为粒子总数;j表示粒子的第j维;t表示此时优化的次数;w为惯性权重因子,其大小影响整体的寻优能力;vij(t)为t时刻i在j维子空间的速度,即每次迭代中粒子移动的距离;xij(t)为t时刻i在j维子空间的位置;c1、c2为加速因子;r1j和r2j为相对独立的随机函数,r1j用来改变粒子当前位置与自身历史最优位置的调整分量,r2j用来改变粒子当前位置与群体历史最优位置的调整分量;pij(t)为i在{所优}化的第j个参数中的历史最优解;pgj(t)=minpij(t)为所有粒子在所优化的第j个参数中的历史最优解。
粒子的最好位置由以下关系决定,f(x)为最小化的目标函数:
2.2 BP神经网络算法原理
BP神经网络是一种多层前馈神经网络,其权值采用反向传播,可以实现输入到输出的任意非线性映射。实际应用中,多采用3层BP神经网络,如图3所示,其中Xi为输入,Yk为输出,Iωij为输入层第i个节点与隐层第j个节点的连接权值,Lωjk为隐层第j个节点与输出层第k个节点的连接权值[13]。
图3 BP网络模型示意图
BP神经网络训练过程如下:
1)为连接权值、阈值、学习速度、态势因子随机赋予初始值;
2)输入学习样本和序号;
3)计算隐层单元输出值,隐层选用对数 S型函数;
4)计算输出层单元的输出值,输出层选用对数S型函数;
5)计算隐层和输出层的训练误差;
6)修正权值;
7)判断均方差是否满足给定允许偏差,不满足则重复步骤5)~7),若满足则结束训练。
2.3 PSO-BP模型原理
BP神经网络实质是求解误差函数的最小值,再按误差函数逆向来修正权值,具有简单易行等优点,但也存在学习效率低,易陷入局部极小值的缺点。主要是因为初始权值和阈值的选取会在一开始确定网络收敛的方向,但在BP神经网络中初始权值和阈值却是随机设定,使收敛方向具有不确定性。而PSO算法被广泛用于寻找全局最优问题[14],因此本文采用PSO优化BP算法。首先利用PSO算法为BP选择合适的权值和阈值,再利用BP算法可实现从输入到输出的任意非线性映射,最终实现扩散硅压力传感器的温度补偿功能,尽可能减小神经网络的输出与预测输出之间的误差。
PSO-BP算法步骤如下:首先确定BP各层的结构,初始化粒子的速度、位置及个体历史最优和全局最优;更新粒子的速度和位置,再计算粒子适应度及确定个体历史最优和全局最优;判断全局最优适应值是否小于设定精度值,若小于则输出粒子的位置序列,否则判断迭代次数是否小于最大迭代次数,若小于则重新更新粒子的速度和位置,重复计算至全局最优适应值小于设定精度值或大于最大迭代次数。然后输出全局最优粒子位置,利用结果初始化BP的权值和阈值,对BP神经网络输入样本,计算各层输出及误差,样本完成后计算所有的样本误差,判断是否达到要求误差,若没有则计算反向误差更新权值阈值,直至达到要求误差或大于最大迭代次数。算法流程图如图4所示。
3 二维标定实验
对扩散硅压力传感器进行温度标定实验,实验装置如图5所示。
实验装置上部分为传感器模块,P1和P2为压力传感器的活塞,调节两个活塞即可在气压计中显示数值;下部分为信号处理电路,可将测得的电压值经过放大等处理,输出标准信号。由扩散硅压力传感器试验模块和温度传感器实验模块获得二维标定实验的数据,扩散硅压力传感器模块输出为UP,温度传感器模块输出为UT。温度选取在20~55 ℃之间,每5 ℃记录一次UT。在同一温度下施加不同压力,压力选取在 0~0.09 MPa之间,每 0.01 MPa记录一次UP。
首先对压力传感器和温度传感器进行调零,调节压力传感器两个气室的活塞,使两个气室的相对气压为0 MPa,然后将两个传感器一起放置于恒温箱,每5 ℃ 记录一次UT和UP;取出实验装置,使恒温箱内温度恢复至室温,此后每次增加0.01 MPa直至0.09 MPa,然后重复上述实验。二维实验数据标定如表1所示。
根据二维标定实验可绘制出扩散硅压力传感器的输入输出特性曲线,如图6所示,可以明显看出,随着温度的变化,特性曲线发生了温度漂移。
由二维标定实验数据可求出补偿前的零位温度系数 α0和灵敏度温度系数 αs,用来衡量温度对该传感器的影响。
1)零位温度系数 α0为零位值随温度漂移的速度,计算如下:
式中:∆T为工作温度变化范围,为20.2~55.0℃;∆U0m为在工作温度变化范围内,零位值的最大改变量,为4.8 mV;UFS为压力传感器满量程的输出值,为4.8~71.5 mV。由此可得:
2)灵敏度温度系数 αs为灵敏度随温度漂移的速度,计算如下:
式中Umax和Umin为在工作温度范围内,同一压强下传感器输出电压的最大值与最小值,由实验数据可得,压力最大为0.09 MPa时,Umax为 71.5 mV,Umin为60.1 mV。由此可得:
图4 PSO-BP算法流程图
图5 扩散硅压力传感器实验装置示意图
表1 扩散硅压力传感器二维实验数据标定
图6 温度补偿前的输入输出特性曲线
4 温度补偿
本文采用PSO-BP算法对传感器进行温度补偿[15],补偿原理如图7所示,首先在二维标定实验中,记录压力传感器的输出Up和相对应温度传感器的输出UT,每个Up和它对应的UT作为BP神经网络算法的一组输入,共有80组数据,每组输入对应一个输出,输出为预测压力值。PSO算法为BP算法选取好权值和阈值之后,就可以将输入放入BP算法中,每组数据放入之后,计算每个隐层的输出及误差;将所有数据遍历完成后计算所有样本误差,若小于要求误差,即可输出得到的预测压力值,若大于要求误差,则计算反向误差后更新权值和阈值,再重复放入所有数据,计算误差,直至误差小于要求误差。
选取部分数据作为神经网络的学习样本,全部数组作为测试样本,压力值为期望输出,即0~0.09 MPa。网络训练结束后,可得到预测的压力值,此压力值可消除温度影响及对零点进行补偿。
图7 温度补偿原理图
本文使用Matlab对数据进行仿真融合,需设置PSO算法中的初始值,最大迭代次数为200次,加速因子c1和c2为1.44,种群规模为10,权重因子w为1,经软件补偿后得到的预测压力值如表2所示,其适应度曲线如图8所示,可以从图8中看出迭代至20多次时即可得到BP算法中权值的较优解。
根据表2可求出补偿后的零位温度系数 α0和灵敏度温度系数 αs,衡量此次软件补偿的效果。
零位温度系数 α0为
式中 ∆P0m为零点压力最大偏差,取在45.3 ℃时,为1.245 2 kPa;PFS为满量程下压力值,为 90 kPa;∆T为工作温度变化范围。由此可得:
灵敏度温度系数 αs为
表2 融合后传感器在不同温度下输出的压力值
图8 适应度曲线
式中 ∆Pm′为同一压强下,预测输出最大差值,取在10 kPa 时,为 (10-8.541 3) kPa,由此可得:
对比式(7)与式(9)可得,零度温度系数从2.07×10-3℃-1到3 .97×10-4℃-1,减小了一个数量级;灵敏度温度系数从 4.58×10-3℃-1到 4.63×10-4℃-1,减小了一个数量级。由此可得出:基于粒子群算法优化BP神经网络对扩散硅压力传感器温度及零点的补偿具有一定效果。
由表2经过处理后的数据可绘制温度补偿后的拟合效果图,如图9所示,图中横坐标为实验中的输入压力,纵坐标为经过软件补偿后的预测压力,与图6进行对比可得,经过软件补偿后的效果图,无明显噪声点,不同温度下的预测压强基本在一条直线上,输出受温度的影响较小。软件补偿不仅减小了温度的影响,同时也对非线性及零点漂移进行了一定程度的补偿。
图9 温度补偿后拟合压力效果图
5 结束语
半导体材料硅的电导率,容易受温度影响,因此,扩散硅压力传感器的特性一定会受到环境温度变化的影响,必须对该传感器进行温度补偿,以提高测量的准确度。
论文利用PSO算法优秀的寻优能力,优化选取BP神经网络算法的权值和阈值,实验证明,经过PSO-BP算法的温度补偿后,零度温度系数以及灵敏度温度系数均提高了一个数量级,说明基于粒子群优化BP神经网络算法的温度补偿效果较好。