APP下载

无线传感器网络数据融合算法的改进与实现

2016-01-18边鹏飞何志琴

自动化与仪表 2016年6期
关键词:梯度神经网络能量

边鹏飞,何志琴,唐 杰

(贵州大学 电气工程学院,贵阳 550025)

无线传感器网络WSN(wireless sensor network)是由部署在监测区域内大量的微型传感器节点组成,通过无线通信的方式形成的一个多跳的自组织网络系统,感知、采集和处理网络覆盖区域中感知对象的信息,并发送给观察者[1]。多传感器无线网络通过分布式处理大量的采集信息,提高了检测的准确度,降低了对于单个节点精度的要求和单一节点失效对检测结果造成的不良影响[2]。

多传感器网络大量冗余节点的存在,导致传感器节点采集的大量冗余数据在无线网络中传递,大大增加了传感器节点的能量损耗[3],降低了网络的生命周期。相对于节点接收、空闲、睡眠等状态,传感器节点在发送数据时能耗最大。在多数情况下并不需要这些原始的冗余数据,而只需要监测的结果[4]。因此在条件允许时尽量进行片上数据处理,可以有效减少传感器节点的能量消耗。

传感器节点部署的环境复杂,恶劣环境对传感器节点的干扰、造成的节点失效或传感器失效,导致从传感器节点获得的信息可靠性难以保证。针对多传感器无线网络存在的以上问题,本文首先采用改进的BP神经网络对采集的冗余数据进行处理,提取有效信息,无线网络的拓扑控制采用改进的基于节点平均能量的LEACH算法,将经过数据融合处理的数据通过无线网络传至汇聚节点,并最终传至监控终端,完成无线传感器网络对于监测区域的动态数据监测。

1 BP神经网络的数据融合

1.1 BP神经网络

BP神经网络是1986年D.ERumelhart和J.L.McClelland提出的一种利用误差反向传播训练算法,简称BP网络。BP神经网络的结构主要包括输入层、隐含层和输出层。BP神经网络算法的基本原理是采用梯度最速下降法,调整网络权值使网络的误差达到最小[5]。多层BP神经网络包含了正向和反向传播2个阶段,正向传播过程中,输入信息从输入层经隐含层逐层处理,并传向输出层,每一层的神经元的状态只影响下一层神经元的状态。如果在输出层不能得到期望输出,则转入反向传播,将误差信号沿原来的连接通道返回,通过修改各层神经元的权值,最终达到误差最小的目标。

BP神经网络的结构如图1所示,神经网络的输入层有M个输入节点,分别为 x1,x2,x3,…,xm,输出层有L个节点,分别为 y1,y2,y3,…,yL,隐含层有 q 个神经元,输入层到隐含层的连接权值为Wij,隐含层到输出层的连接权值为 Wki,其中 0<i<q,0<j<M,0<k<L。

图1 BP神经网络结构Fig.1 BP neural network structure

1.2 改进的BP神经网络学习算法

BP神经网络的优点在于如果有足够的隐含层和隐节点,BP神经网络可以逼近任意的非线性映射关系,适用于处理各种非线性问题。但是实际的网络结构中隐含层和隐节点的个数是有限的,BP神经网络也存在收敛速度慢、训练时间长、局部极值问题、隐含层和隐节点的个数没有明确的量化方法等缺点。

典型的改进方法主要有引入惯性项、引入动量项、共轭梯度法、变尺度法、变步长法等。其中引入动量项如式(1)所示,能够有效减少在学习过程中的振荡,改善神经网络算法的收敛性,提高样本训练效率。

式中:D(k)为 k 时刻的负梯度;D(k-1)为 k-1 时刻的负梯度;η为学习效率;α为动量因子(0≤α<1)。

2 网络拓扑结构

2.1 LEACH算法

低能量自适应分簇路由协议LEACH(low energy adaptive clustering hierarchy),是一种周期性循环的分簇拓扑算法,每轮循环分为簇的建立阶段和稳定的数据通信阶段。在簇的建立阶段,相邻节点动态地形成簇,随机产生簇头;在数据通信阶段,簇内节点把数据发送给簇头,簇头进行数据融合并把结果发送给汇聚节点。

选举簇头根据式(2)确定簇头当选的概率,首先判断节点是否在本轮循环中已经当选过簇头,如果是则将其设置为0,则该节点不会重复当选。如果未被当选为簇头T(n)节点,则以T(n)的概率当选。随着本轮当选簇头的节点增多,簇头在所有节点中所占的百分比P不断增大,T(n)不断趋近于1,表示未被选中的节点被选中的可能性不断趋近于1。

式中:P为簇头在所有节点中所占的百分比;r为选举轮数;rmod(1/P)为这一轮循环中当选过簇头的节点个数;G为这一轮循环中未当选过簇头的节点集合[6]。

由于被当选的簇头需要完成接收簇内其他节点的数据、完成片上数据融合、与汇聚节点通信等工作,所以能量消耗比较大。LEACH算法能够保证簇内各节点等概率地担任簇头,使得网络中的节点相对均衡地消耗能量,有效避免了单个节点反复当选簇头,造成簇内部分节点能量耗尽而造成的节点失效。但是LEACH簇头轮询算法仍存在不足之处,由于传感器节点在监控区域内随机部署,部分节点分布位置远离汇聚节点,该部分节点当选为簇头时,簇头与汇聚节点通信时广播所需的能耗较大,能量消耗快,造成该部分节点相对于簇内其他节点过早失效,减少了网络存在寿命[7]。

2.2 改进的LEACH算法

改进的LEACH算法针对传统的LEACH算法存在的簇头在监测区域分配不均导致的能量消耗不均衡的问题进行了改进。以簇内节点的平均能量作为节点能否参与簇内竞争的标准。

在进行簇头竞争前,簇内所有节点以广播的形式发送自身的剩余能量,上次当选的簇头收集簇内节点剩余能量 Eresident(i),并根据式(3)计算剩余能量的平均值Eaverage,并广播给簇内其他节点,簇内其他节点在接收剩余能量平均值后进行判断,若自身剩余能量高于簇内剩余能量的平均值则参与簇头竞争,根据式(4)和式(5)确定簇头当选的概率,以TR(n)概率当选簇头,反之则不参与簇头竞争。

式中:Eaverage为簇内所有节点的平均能量;N为簇内节点的个数;Eresident(i)为第i个节点的剩余能量。

R(i)=1,则第 i个节点可以参与簇头竞选;R(i)=0,则第i个节点不可以参与簇头竞选。

式中:TR(n)为当选簇头的概率;PR为簇头在所有满足簇头竞选的节点中所占的百分比;GR为这一轮循环中未当选过簇头的节点集合;r为选举轮数;rmod(1/PR)为这一轮循环中当选过簇头的节点个数。

改进的LEACH算法在传统LEACH算法簇头轮询的基础之上,将节点剩余能量也作为参与簇头竞争的条件,这样能够有效避免能量相对较少的节点在簇头轮询的过程中当选为簇头节点,使簇内节点的能量消耗趋于均衡,避免了部分节点由于能量耗尽造成的节点失效,从而达到延长网络寿命的目的。

3 数据融合的Matlab仿真

3.1 仿真环境

采用Matlab仿真软件,利用一个三输入二输出的3层BP神经网络对输入的样本进行仿真。仿真参数为学习效率η=0.05;期望误差最小值Emin=0.005;最大训练次数epochmax=10000。

3.2 仿真结果及分析

图2(a)所示为采用梯度下降法对样本进行训练的训练过程误差曲线,训练次数7905次;图2(b)为采用动量梯度下降法对样本进行训练的训练过程误差曲线,训练次数2670次;图2(c)为变学习速率法对样本进行训练的训练过程误差曲线,训练次数381次;图2(d)为变学习速率结合动量梯度法对样本进行训练的训练过程误差曲线,训练次数213次;图2(e)为共轭梯度法对样本进行训练的训练过程误差曲线,训练次数54次;图2(f)为近似二阶梯度法对样本进行训练的训练过程误差曲线,训练次数8次。

图2 训练过程误差曲线Fig.2 Training process error curve

通过比较分析以上6种仿真结果,梯度下降法的训练误差曲线较为平滑,但是收敛速度缓慢;动量梯度下降法的收敛速度有所提高;变学习速率法收敛速度较快,但是训练过程中振荡较为频繁;共轭梯度法与近似二阶梯度法收敛速度快,但容易陷入局部最优。因此综合考虑采用变学习速率结合动量梯度法的BP神经网络算法。

4 系统硬件平台

系统硬件平台主要包括部署在监测环境中的传感器节点和汇聚节点。其中,传感器节点的主要功能是监测数据的采集和数据融合,汇聚节点的主要功能是接收簇头节点的数据,并与监控终端进行数据通讯。

传感器节点采用意法半导体公司的STM32 Cortex-M3 32位微处理芯片,性能高、成本低、功耗低,非常适合低电压、低功耗的场合,哈佛体系架构,支持Thumb指令集,工作频率可达72 MHz,工作电压3.3 V。功能模块包括12位AD转换、定时器、支持 SPI、I2C、USART、CAN 等通信方式[8],能够完成传感器节点的数据采集,并且具有很强的处理数据的能力,能够完成片上的数据融合任务。

同时在传感器节点上配置了CC2530射频SoC,是基于2.4 GHz IEEE802.15.4的一个片上系统。CC2530内部集成了增强型8051微处理器内核和IEEE802.15.4兼容无线收发器,支持德州仪器的Z-Stack协议栈,能够充分利用ZigBee协议中的API函数,缩短了开发周期。ZigBee具有成本低、功耗低、可靠性高、安全性高、网络容量大等特点,广泛应用于智能家居、楼宇自动化、工业控制和监控医疗等许多领域。

传感器节点如图3所示,主要包括对于三相电压电流的检测,采用电压互感器SPT204、电流互感器SCT254作为电压电流的检测元件,经过信号调理电路将其转化为0~3.0 V的电压信号,温湿度传感器采用数字式温湿度传感器DHT11,是一款含有已校准数字信号输出的温湿度复合传感器,响应速度快、抗干扰能力强。此外还有为各模块供电的稳压电源。

图3 传感器节点的硬件结构Fig.3 Hardware structure of the sensor node

汇聚节点硬件主要由STM32 Cortex-M3处理器模块和CC2530射频处理器2部分组成,CC2530接收传感器节点发送的数据,并将其发送至STM32,STM32将接收的收据通过串口通讯发送至监控终端。

5 系统软件监控平台

5.1 节点的软件设计

节点的软件设计包括传感器节点和汇聚节点的设计。传感器节点的主要功能包括各功能模块初始化、网络初始化传感器数据采集、节点组网、簇头选举、当节点当选为簇头时进行数据融合、无线通信、人机交互、时钟控制等。汇聚节点的功能包括接收传感器节点的数据、与监测终端数据通信[9]。传感器节点与汇聚节点的软件流程如图4、图5所示。

图4 传感器节点软件流程Fig.4 Flow chart of sensor node software

簇内的传感器节点通过改进的LEACH协议进行簇头竞争,竞选为簇头的节点接收来自簇内其它普通节点的数据,并在片上进行神经网络数据融合,并将处理后的数据转发至汇聚节点。竞选簇头失败后的普通节点进行数据采集并将数据发送至簇头节点,并广播自身剩余能量,准备进行下一轮的簇头竞选。汇聚节点接收各个簇头节点的数据,并通过串口通信发送至监控终端。

5.2 监控终端的软件设计

系统监控终端的上位机采用VB6.0编写无线网络节点的监控软件。Visual Basic 6.0是Microsoft公司面向对象的可视化开发编程工具,是一种结构化的程序语言[10]。监控终端主要通过MSComm串口通信控件实现上位机监控终端与汇聚节点的通讯。ADO数据库访问控件实现了上位机对数据库的操作。

如图6所示为上位机监控终端实现了与汇聚节点的数据通信,实时接收监控区域的采集信息,并且以实时数据曲线的形式予以显示,更加直观。同时将采集到的数据同数据库相连,并将实时数据同步至数据库。

图5 汇聚节点软件流程Fig.5 Flow chart of convergence node software

图6 监控终端Fig.6 Monitoring terminal

6 结语

通过无线传感器节点实现数据的采集,采用改进的神经网络数据融合算法进行数据处理,并通过无线网络传至与上位机相连的汇聚节点,实时地通过上位机监控终端实现对电网变量及环境变量的监测,将采集到的数据实时输出更新至数据库中,实现了电网数据的远距离传输,通过上位机监控终端对无线网络节点采集数据进行汇总,具有良好的灵活性和可扩展性。

[1]孙凌逸,黄先祥,蔡伟,等.基于神经网络的无线传感器网络数据融合算法[J].传感器技术学报,2011,24(1):122-127.

[2]孙利民,李建中,陈渝,等.无线传感器网络[M].北京:清华大学出版社,2010.

[3]徐洁,丁国强,熊明.低功耗无线传感器终端网络系统设计与实现[J].自动化仪表,2015,36(1):59-62.

[4]周观民,李荣会.基于神经网络的传感器网络数据融合技术研究[J].计算机仿真,2011,28(10):118-120.

[5]李国勇.智能控制及其Matlab实现[M].北京:电子工业出版社,2005.

[6]陈雪东,陈硕红.无线传感器网络功率控制的路由协议改进[J].自动化仪表,2015,36(1):66-69.

[7]韩红芳,孙守昌,邹凌.无线传感器网络能量均衡分簇路由算法的改进[J].自动化仪表,2012,33(3):31-34.

[8]黎冠,马婕,卜祥丽.STM32单片机在室内环境监测系统中的应用[J].自动化仪表,2014,35(7):29-31.

[9]宗学军,宋国库,陈斌,等.基于无线传感器网络的楼宇环境监测系统设计[J].自动化与仪表,2011,26(4):23-26.

[10]李全江,汤智辉,朱东芹.Visual Basic数据采集与串口通信测控应用实战[M].北京:人民邮电出版社,2010.

猜你喜欢

梯度神经网络能量
基于递归模糊神经网络的风电平滑控制策略
一个带重启步的改进PRP型谱共轭梯度法
一个改进的WYL型三项共轭梯度法
随机加速梯度算法的回归学习收敛速度
能量之源
神经网络抑制无线通信干扰探究
一个具梯度项的p-Laplace 方程弱解的存在性
基于神经网络的中小学生情感分析
诗无邪传递正能量
开年就要正能量