1、 1 PSO算法结合BP神经网络在传感器静态非线性校正中的应用 张媛媛1,2,徐科军3,4,许耀华2,黄胜初2 (1. 合肥工业大学仪器科学与光电工程学院,安徽 合肥,230009; 2,安徽大学电子科学与技术学院,安徽 合肥,230039; 3,合肥工业大学电气与自动化工程学院,安徽 合肥,230009; 4,工业自动化安徽省工程技术研究中心,安徽 合肥,230009) 摘要:本文提出将粒子群优化(PSO)算法与BP神经网络相结合,应用在传感器静态非线性特性的校正中。将PSO算法所得到的全局最优值作为BP神经网络的初始权值,而后训练BP神经网络,训练结束后的神经网络作为传感器的静态特性校正器
2、。结果表明,该方法可以提高BP神经网络的精度,并且该神经网络具有良好的泛化能力。以空气质量流量传感器为对象进行了实验,实现了传感器静态非线性特性的线性化,取得了满意的效果。 关键词:计量学;静态非线性校正;粒子群优化算法;空气质量流量传感器;BP神经网络 中图分类号:TB97 文献标识码:A 文章编号: Application of PSO and BP Neural Network in Static Nonlinear Corrector for Sensor Zhang YuanYuan1,2,Xu KeJun3,Xu Yaohua2,Hang Shengchu2 (1, School
3、of Instrument Science and Photoelectric Engineering, Hefei University of Technology, Hefei 230009 2,School of Electronic Science and Technology, Anhui University, Hefei 230039 3,School of Electrical and Automation Engineering ,Hefei University of Technology ,Hefei 230009 4,Engineering Technology Res
4、earch Center of Industrial Automation, Anhui Province, Hefei 230009) Abstract: A correcting static nonlinear errors method of sensors based on BP Neural Network using Particle Swarm Optimization(PSO) is introduced. The global best value of particle swarm are used to initialize the weights of BP neur
5、al network , then BP neural network is trained. Then neural network that has been trained is regarded as corrector of sensor. The results shows that this method can improve precision of BP neural network, meanwhile the generalization capability of the neural network is all right. PSO-BP is used to c
6、orrect static nonlinear errors of mass air flow sensor. It is proved to that the method is effective. Key words: Metrology;static nonlinear calibration ;Particle Swarm Optimization(PSO); Mass Air Flow(MAF) sensor;BP neural network 1 前言 绝大多数传感器具有静态非线性特性,需要设计校正器串联在其后,对其进行校正。若传感器输入信号u和输出信号y的静态非线性特性为 (
7、)y f u ,所设计的校正器特性为其逆模型,满足1( )z f y ,即校正后输出1 1( ) ( ( )z f y f f u u 可以无失真地反映传感器的输入。但是该非线性逆函数很难直接求出,可利用神经网络所具有的可逼近任意连续非线性函数的优点,使其逼近1(.)f。BP神经网络是目前应用最广泛的神经网络模型,但由于它收稿日期: ;修改日期: 基金项目:安徽省青年教师基金资助项目(2006jql035) 作者简介:张媛媛(1977-),女,安徽淮北人,安徽大学电子科学与技术学院讲师,合肥工业大学博士研究生,主要从事传感器非线性建模及其动态非线性补偿的研究。徐科军(1956-),男,江苏无锡
8、人,合肥工业大学电气与自动化工程学院教授,博导,主要从事传感器技术、自动化仪表和数字信号处理的研究。 2 采用基于梯度下降的局部优化搜索,且基于经验风险最小化原则,容易出现过学习问题,收敛精度较低,难以避免陷入局部极小值。而粒子群优化算法(Particle Swarm Optimization, PSO)近年来在许多领域取得了广泛的应用。它是一种基于群体进化的全局优化算法,程序实现简单、规模小、速度快、鲁棒性强;同时又具有深刻的智能背景,即适合科学研究,又适合工程应用1。但是其局部寻优能力较差,常收敛到最优解附近的空间。文献2利用PSO算法进行传感器静态非线性校正。文献35将PSO算法与BP神
9、经网络相结合,首先利用PSO算法进行全局寻优,所得到的粒子位置的全局最优值作为BP神经网络的初始权值,而后训练BP神经网络,实验结果证实其收敛精度优于单纯的BP神经网络,并在预测问题和人脸识别中取得良好的应用效果。本文则将两者结合起来应用于传感器的静态非线性校正中,取得了令人满意的效果。 2 PSO算法和BP神经网络相结合 2.1 BP神经网络 本文采用的BP神经网络5是由三层前向网络组成,即输入层、隐含层、输出层组成,神经元数目为1、3、1,如图(1)所示。神经网络的输入值是传感器正行程静态标定实验数据中的36个输出值y,神经网络的目标输出值是传感器正行程静态标定实验数据中的36个输入值u。
10、同层中的神经元之间没有相互联系,而层间的信息传递只向前传送,层间权值调整采用误差逆向传播。隐含层采用S型激活函数tansig,输出层采用线性激活函数purelin。网络的实际输出记为 A,网络的均方误差定义为2( ), 36A uNNmse 。网络的权值沿着mse梯度下降的方向修正,采用基于LM算法的训练函数trainlm进行网络的训练。此外,还需利用函数premnmx对神经网络的输入和输出数据进行归一化处理,将数据范围压缩到 1,1 ,防止神经元迅速饱和而麻痹,导致网络训练无法继续进行。 输出u输入y隐层图1 BP神经网络结构 2.2 PSO算法 PSO算法79是由美国社会心理学家Kenne
11、dy和电气工程师Eberhart于1995年共同提出的。该算法将寻优的参数组合成群体,通过对环境的适应度来将群体中的个体向好的区域移动。将个体看成是d维寻优搜索空间的一个没有体积的粒子,结合粒子的个体当前最优位置和群体历史最优位置信息,以一定的速度向目标值逼近。目标值为所设定的适应度函数的最优值。第i个粒子可以表示成d维向量,i i1 i2 id= X , X , ., X X 。粒子的速度表示成i i1 i2 id= V , V , .,V V 。这个粒子的当前最优位置(对应于该粒子的当前最好适应度函数值)表示为pbesti pbesti1 pbesti2 pbestid= X , X ,
12、., X X 称为个体当前最优位置pbestiX 。群体中所有粒子经历的最好位置表示为gbest gbest1 gbest2 gbestd= X , X , ., X X ,称为群体历史最优位置gbestX 。第i个粒子从n代进化到n+1代,通过式(1)进行速度、位置更新。 3 1 1 2 21max1max max1 1( ) ( ),| | |n n n n n n n nid id id id gd idn n nid id id dn nid d id dn n nid id idv wv c r p x c r p xv v v vv v v vx x v (1) 式中i=1,2,p
13、opsize。popsize为粒子群所包含粒子的个数。w为惯性权重,它使粒子具有扩展搜索空间的趋势。1 2c ,c 均为正实数,称为加速度因子。n n1 2r ,r 为在区间0,1变化的随机数。参数1 2w,c ,c 动态参数的PSO算法具有更好的全局搜索能力,加速度因子和惯性权重分别如式(2)、式(3)变化。 12C ,2max0.8tCt (2) maxmax( )start end endt tw w w wt (3) 式中 0.95, 0.4start endw w ,maxt 为最大迭代次数,t为当前迭代次数。 2.3 算法 本文将PSO算法和BP神经网络结合起来,对传感器进行静态非
14、线性校正,发挥PSO算法全局寻优的优点,以及BP算法适合局部寻优的特点,以此提高BP神经网络的收敛精度。第一步,BP神经网络的权值作为粒子的位置,利用PSO算法寻优,以均方误差最小作为寻优目标;第二步,将PSO算法得到的粒子群体最优位置gbestX 作为BP神经网络的初始权值,然后利用LM算法进一步训练神经网络,使神经网络真实输出逼近目标输出,满足校正的目的。具体算法如下: Step1:利用函数newff建立如图(1)所示结构的BP神经网络,利用函数premnmx对神经网络的输入和输出数据进行归一化处理。 Step2:初始化粒子群,popsize=25,加速度因子如式(2),惯性权重如式(3)
15、。限制粒子速度的最大值maxv 为3,maxt 为100。粒子速度为(0,3)范围内均匀分布的随机值;粒子位置的每一维可根据已有经验设置不同的随机值范围,以提高搜索精度和速度。粒子的维数为7(即BP神经网络中权值的个数)。 Step3:利用BP神经网络计算每个粒子对应的网络真实输出A,根据式(4)得到每个粒子的适应度函数值J,令其为粒子的个体最优适应度函数初始值pbest-fit(含25个元素),对应的粒子位置为个体最优位置pbestiX ;选取粒子群中最小的适应度函数值初始化为全局最优适应度函数值gbest-fit,对应的粒子位置为全局最优位置gbestX 。 2( )( 36)A uN m
16、inNJ 为 (4) Step4:根据式(1)对粒子进行速度和位置更新,根据式(4)计算更新后的每个粒子的适应度函数值J。 Step5:将更新后适应度函数值与pbest-fit比较,如果此次的结果更小,则将pbest-fit更新为现在的适应度值,否则保持不变;将此次迭代后pbest-fit的每个元素与gbest-fit比较,如果有小于gbest-fit的值,则以其更新gbest-fit,其对应的粒子位置更新为全局最优位置gbestX ,否则保持不变。 4 Step6:PSO算法结束后,将gbestX 作为BP神经网络相应的初始权值,初始化网络的最大迭代次数500次,精度要求为-610 ,而后训
17、练BP神经网络。当达到最大迭代次数或精度满足要求时,算法终止。 Step7:利用postmnmx函数恢复归一化的数据,比较网络真实输出值和目标输出值,验证静态非线性校正效果。 Step8:利用传感器反行程静态标定实验数据,验证网络的泛化能力和静态非线性校正效果。 3 应用与实验 将上述算法用于汽车空气质量流量(Mass Air Flow, MAF)传感器的静态非线性校正,该传感器的正反行程静态标定实验在合肥工业大学汽车与机械学院完成。根据MAF传感器的36组正行程的静态标定实验数据,绘制它的静态特性如图(2)所示。设计静态非线性校正器,以正行程的静态标定实验的输出电压值作为神经网络的输入值,以
18、正行程的静态标定实验的输入流量值作为神经网络的目标输出值,使网络真实输出逼近目标输出,真实输出与目标输出比较(两者的均方差mse为0.0126 /g s)及校正器特性如图(3)所示。 0 50 10001234流量(g/s)电压(v)0 1 2 3 4020406080100电压(v)流量(g/s)真实输出目标输出图2 MAF传感器的静态特性 图3 MAF传感器的校正器特性 单独BP网络训练误差变化如图(4)所示,PSO算法结合BP神经网络的训练误差变化如图(5)所示,神经网络从解的最优空间开始搜索,初始误差就较小,为2-10 左右,该算法取得了更高的精度。并且由图(4)、(5)可见BP网络后
19、期的精度改善较小,即单纯增加迭代次数,无法取得更高的精度。综合而言,PSO算法结合BP神经网络提高了单纯BP网络的收敛精度。 图4 单独BP网络的误差曲线 5 图5 PSO_BP混合算法的误差曲线 将36个MAF传感器的反行程静态标定实验的输出数据,带入上述算法得到的BP神经网络,得到静态非线性校正结果,其与反行程静态标定实验的输入数据的比较如图(6)所示,两者之差如图(7)曲线所示,误差不超过量程的千分之三,最大误差为0.2g/s。神经网络的输出值和MAF传感器的反行程静态标定实验输入值非常接近,说明网络的泛化能力强,静态非线性校正的效果良好,实现了传感器静态非线性特性的线性化,输出值几乎无
20、失真地反映了输入值。 0 50 100020406080100流量(g/s)流量(g/s)校正结果传感器输入0 50 100-1-0.500.51流量(g/s)流量(g/s)图6 实验输入值与校正结果比较 图7 实验输入值与校正结果的误差曲线 4 结论 PSO算法被用于对BP神经网络的权值进行优化,所得到的全局最优值作为BP神经网络的初始权值,而后继续训练BP神经网络,提高了神经网络的精度。并将该方法用于传感器静态非线性校正中,取得了良好的效果。PSO算法是一种不断发展的进化算法,将此与传统的神经网络相结合,将在许多领域具有广阔的应用空间。 参考文献 1冯奇峰,李言.改进粒子群优化算法在工程优
21、化问题中的应用研究J.仪器仪表学报, 2005,26(9):984-990 2程继红,刘益剑.微粒群优化算法在传感器非线性自校正中的应用J.传感器技术, 2005,24(10):74-76 3YANG BO,SU XIAO-HONG, WANG YA-DONG.BP NEURAL NETWORK OPTIMIZATION BASED ON AN IMPROVED GENETIC ALGORITHMC.Proceedings of the First International Conference on Machine Learning and Cybernetics,Beijing,4-5
22、November 2002:64-68 4Guo Wen,Qiao Yizheng,Hou Haiyan.BP neural network optimized with PSO algorithm and its application in forecastingC.Proceedings of the 2006 IEEE International Conference on 6 Information Acquisition August 20-23,2006,Weihai,Shangdong,China:617-621 5Du Lei,Jia Zhenhong, Xue Liang.
23、Human Face Recogniton Based on Principal Component Analysis and Particle Swarm Optimization BP Neural NetworkC.Third International Conference on Natural Computation,2007,IEEEE 6丛爽.面向MATLAB工具箱的神经网络理论与应用M.中国科学技术大学出版社,1998,34-54 7张更新,赵辉,王红君.基于动态参数的微粒群算法(PSO)的研究J.天津理工大学学报,2005,21(4):42-44 8林卫星,张惠娣,刘士荣等.应用粒子群优化算法辨识Hammerstien模型J.仪器仪表学报, 2006,27(1):75-79 9Shi Y H,Eberhart R. Parameter selection in particle swarm optimizationA.Proc of the 7th Annual Conf on Evolutionary ProgrammingC.Washington D C,1998.591-600