基于LDIW-PSO算法的BP神经网络在压力传感器中的应用
2014-08-02温阳东李龙剑
温阳东 李龙剑
(合肥工业大学电气与自动化工程学院,合肥 230009)
迅速发展的工业信息技术对社会经济发展具有重要作用,作为工业信息技术的重要部件,传感器的发展不容小视,其性能对信息采集的精确性起到了决定性作用。现在传感器的种类很多,其中压力传感器广泛应用于各类工业系统当中。压阻式压力传感器是压力传感器的一种,具有结构简单、使用方便、灵敏度高及动态响应快等诸多优点。但由于压阻式压力传感器是由半导体材料制成,容易受到温度变化的影响,产生温度漂移,降低精确度和可靠性,所以要采用校正系统对其进行温度补偿[1]。目前对压力传感器的温度补偿方法很多,如全桥差动电路补偿法及多项式拟合补偿算法等,这些方法都能在一定程度上对温度进行补偿,但都有其自身缺陷,如全桥差动电路补偿法成本高、精确度低[2]。
随着智能控制技术的发展,BP神经网络为压力传感器的温度补偿提供了新的研究方向,但传统的BP神经网络反传算法有收敛速度慢而且容易陷入局部极小的缺点。鉴于此,笔者使用基于LDIW-PSO算法优化的BP神经网络,将其应用于压力传感器的温度补偿,并通过压阻式压力传感器进行实验,结果表明该方法产生的误差小、补偿精度高,能有效地提高压力传感器的精度和鲁棒性。
1 BP神经网络①
1.1 BP神经网络的结构
BP神经网络的结构如图1所示[3],总体分为3层:输入层、隐含层和输出层,其中隐含层可以包含多层神经元。理论上已经证明,在不限制隐含层神经元个数的条件下,隐含层只有一层神经元的三层BP神经网络可以实现任意的非线性映射。因此,笔者采用的是三层BP神经网络。
图1 BP神经网络结构
BP神经网络各层传输函数可采用logsig、tansig及sigmoidal等非线性函数,输出层也可使用purelin函数。本文中的BP神经网络隐含层使用tansig函数,输出层使用purelin函数。BP神经网络各节点的计算公式如下:
(1)
(2)
1.2 BP神经网络的特点
BP神经网络是多层网络,传输函数为非线性函数,能够实现非线性映射。BP神经网络通过训练和学习算法调整网络的权值和阈值来实现非线性映射,具有一定的泛化、容错、自学习和自适应能力。随着对BP网络的深入研究,其缺点也日益明显,很多BP网络的反传算法收敛速度慢,容易出现局部极小问题。笔者基于LDIW-PSO算法优化的BP神经网络具有收敛速度快的优点,克服了局部极小问题的出现。
2 基于LDIW-PSO算法优化的BP神经网络
2.1 LDIW-PSO算法
粒子群算法来源于对鸟类觅食、迁移行为的研究,缩写为PSO[4]。粒子群算法是一种寻找空间最优解的优化策略。寻找每个问题的解就是搜索空间中的一只鸟,称其为“粒子”。每个粒子都有一个由已优化的函数确定的适应值,还有一个速度决定他们飞行的方向和距离,这样粒子就会在空间中寻找最优解。PSO算法首先初始化所有粒子的位置xi和速度vi,每个粒子根据一对极值(一个是粒子本身搜索到的最优解,称为个体极值pbest;另一个是群体目前搜索到的最优解,称为全局极值gbest),通过下面的公式迭代来更新自己的位置和速度:
vi(k+1)=w(k)×vi(k)+c1×rand×(pbesti(k)-xi(k))+
c2×rand×(gbest-xi(k))
(3)
xi(k+1)=xi(k)+vi(k+1)
(4)
其中,c1、c2是学习因子,取常数2,rand是0到1之间的随机数,k代表当前迭代次数,xi(k)表示第i个粒子第k次迭代时的位置,同理vi(k)是第i个粒子第k次迭代时的速度。w(k)是惯性权值,用如下公式来更新:
w(k)=(wmax-wmin)(kmax-k)/kmax+wmin
(5)
式中kmax——最大迭代次数;
w(k)——第k次迭代的惯性权值;
wmin、wmax——惯性权值的最小值和最大值。
式(3)~(5)构成了LDIW-PSO算法,在该算法的所有可调节参数中惯性权值w尤为重要,权值较大可以提高PSO算法的全局搜索能力,权值较小则可提高算法的局部搜索能力。初期的基本PSO算法是w=1的特殊情况,其刚开始收敛速度快,但局部搜索能力差,而且到后面的迭代收敛速度慢,求出最优解的精度较低。LDIW-PSO算法的惯性权值随着迭代次数增加单调下降,在全局搜索和局部搜索之间取得了良好的协调性。该算法简单、直观、收敛速度快,具有良好的搜索能力,因此应用较为广泛。
2.2 LDIW-PSO算法优化的BP神经网络实现步骤
LDIW-PSO算法优化的BP神经网络主要是改变了原有的BP神经网络的训练和学习算法[5,6],采用收敛速快、搜索能力强的LDIW-PSO算法,以输出值的均方误差作为粒子的适应值,其具体实现步骤如下:
a. 对输入输出样本进行数据归一化处理,取出样本的90%作为训练样本,另外10%作为测试样本。
b. 初始化LDIW-PSO算法优化的BP神经网络。需要初始化的参数有神经网络结构、粒子群数量、每个粒子的初始状态、位置和速度限、最大和最小惯性权值、最大迭代次数kmax及最小误差emin等。
c. 若误差e小于emin则结束;若迭代次数达到kmax,也结束;否则执行步骤d。
d. 把粒子x中的元素分配到BP神经网络的权值和阈值中,让每个粒子在网络中正向传播,计算ei,若ei e. 参照公式(3)~(5)更新每个粒子的位置、速度和算法中的惯性权重。 f. 将迭代次数加1,返回步骤c继续计算。 其中,pei是第i个粒子在以前搜索中的最优适应值,pbesti是第i个粒子在以前搜索中的最优解,ge是粒子群在以前搜索中的全局最优适应值,gbest是粒子群的全局最优解。 理想的压力传感器输出电压Up应该与被测压力成线性关系[7,8],但实际中压力传感器的输出Up是被测压力与温度的二元非线性函数。为了建立被测压力与传感器输出电压的关系,笔者采用三层BP神经网络,输入层有两个输入Up和T,隐含层使用4个神经元,输出层一个神经元,输出为被测压力值p。 笔者以IC Sensors公司的S17-30A型传感器为实验对象[9,10],取了7个不同温度对其进行5个点的压力标定,实验数据见表1。 表1 不同温度、压力下传感器的标定 V 由于压力、温度和电压的单位不同,而且数量级差别很大,所以先按照如下公式将数据进行归一化处理: (6) (7) (8) 其中,Tmax、Tmin表示温度T的最大值和最小值,Upmax、Upmin表示传感器输出电压的最大值和最小值,p0max、p0min表示标定压力的最大值和最小值。T1、Up1、p1表示归一化后的温度、输出电压和标定压力值。 实验使用20个粒子[11,12],每个粒子位置(即权值和阈值)限制在[-1.5,1.5],隐含层使用4个神经元,误差限设为10-4。实验结果见表2。 表2 温度补偿结果 从表2中可以看出最大相对误差为0.39%,将本算法的最大相对误差与其他几种算法的温度补偿最大相对误差作比较: LDIW-PSO算法优化的BP神经网络补偿 0.39% 基于K-聚类算法的RBF神经网络补偿 1.10% RBF神经网络补偿 1.44% BP神经网络补偿 4.7% 可以看出4种温度补偿算法都是很有效果的,LDIW-PSO算法优化的BP神经网络补偿所产生的最大相对误差比较小,对压阻式压力传感器的温度补偿效果最为明显。 压阻式压力传感器由于其制造材料和工艺限制,容易产生温度漂移,使用时需要进行温度补偿。通常的硬件温度补偿方法成本较高,所以提出LDIW-PSO算法优化的BP神经网络补偿。以IC Sensors公司的S17-30A型传感器标定数据为样本,通过LDIW-PSO算法来调整BP神经网络的权值和阈值。LDIW-PSO算法收敛速度快,不易产生局部极小问题,实现了对BP神经网络的优化。通过与其他温度补偿算法比较,可以看出LDIW-PSO算法优化的BP神经网络对温度补偿精度比较高,效果明显。3 在压力传感器校正中的应用
3.1 BP神经网络的温度补偿模型
3.2 S17-30A型传感器标定数据及处理
3.3 温度补偿后的结果及分析
4 结束语