余修武,梁北孔,周利兴,谢晓永,范思柔,王宇琴,刘 琴
(1.南华大学 环境与安全工程学院,湖南 衡阳 421001;2.金属矿山安全与健康国家重点实验室,安徽 马鞍山 243000)
矿物资源消耗的增长使得浅部矿物逐步殆尽,导致地下采矿向更深水平推进[1]。深部矿井因高温高湿、高地应力、供电线路长及人员设备密集等因素造成复合型灾害事故频发[2],对深井开采的安全工作造成巨大威胁。由于现有的有线矿井安全监测系统不能满足深井的安全需求[3],有必要把无线传感网络引入深井生产中。传感器网络的应用相关性强,随着应用环境的不同,路由算法差距或许会很大,尚不存在通用的路由算法[4],且目前适用深部矿井应用环境的路由算法较少。因此,开展深部矿井无线传感器网络路由算法的研究意义重大。
无线传感器网络是1个由大量节点构成的,具有数据采集、融合与传输的自组织网络[5]。为解决无线传感器网络能耗低效及“热区”问题,许多路由算法被提出。其中,LEACH算法[6]簇首节点的选择是随机的,且以单跳方式传输数据,会产生簇首节点不均匀地分布和当前能量较少的节点也成为簇首等问题;钱开国等针对路由算法中簇首节点分布不均问题提出HNDCRA[7]算法,均衡了簇首分布,但其算法的簇首竞选机制未加入节点当前能量,导致部分簇首节点能量被过快地消耗;张文梅等提出改进的无线传感器网络非均匀分簇路由算法[8],把节点当前能量引入簇首竞选机制中,使簇首能量均衡地消耗,该算法一定程度上能减少并均衡节点能量消耗,但没有对“热区”问题提出解决方案;彭铎等针对无线传感网“热区”问题提出EUCP[9]算法,能在一定程度上改善“热区”问题。然而,上述路由算法多适用于典型大面积监控领域,在深部矿井特殊的应用环境中,狭长的带状巷道使其具有局限性。为此,王伟等针对带状网“热区”的出现提出CRLDB[10]算法,引入非均匀分簇概念,使用候选簇首竞争策略;刘佳针对矿井下巷道应用环境提出CHPBN[11]算法,仅分簇1次,数据多跳转发;林启中等提出HEED-EELD(Dual-cluster-head routing algorithm based on location information)[12]算法,以单跳距离构建层次,采用双簇首并将节点位置及其当前能量引入路由选择机制。然而,以上算法大多运用非均匀分簇思想,竞选簇首并以多跳方式传输簇间数据,但均未考虑数据传输过程中路径通信代价及跳数问题。因此,本文提出1种基于网络分区和路径能耗的带状无线传感器网络多簇首簇路由算法(NPPEC),算法采用跳数泛洪方式建立带状网络分区结构,将节点分布密度加入簇首竞选机制中,通过主簇首和副簇首的分工配合,使簇首能量更均衡地消耗;依据路径能耗、节点当前能量及位置计算路径选择概率,并通过控制跳数改善数据传输的实时性。
采用无线通信模型First order radio model[13]获取某节点发送和接收数据包的能量消耗值。假设从节点A发送lbit的数据到节点B,A和B之间的距离为d,则其能量消耗值求解如下:
(1)
节点B接收lbit数据所消耗的能量求解如下:
ERx(l,d)=l×Eelec
(2)
式(1)中的限值d0为:
(3)
式中:Eelec表示节点发送或接收1 bit数据的能量消耗值;εfs表示在自由空间模型下1 bit数据的能耗;εamp表示在多路径模型下发送1 bit数据的能耗;d0表示通信距离限值;d小于d0时,r=2;当d大于或等于d0时,r=4。传感器节点有传感器模块、处理器模块及无线通信模块,其中无线通信模块消耗了绝大部分能量,如图1所示。
图1 网络节点能耗情况Fig.1 Energy consumption of network nodes
节点布置在深井巷道里面,区域长度L一般远大于宽度W,构成带状无线传感网。假设有nall个节点组成此网络,第i个节点为Si,则节点集S={S1,S2,,Snall}。此带状网络存在如下特点:①网络中所有节点均已完成定位算法,位置坐标已知,忽略定位误差对路由算法的影响;②除了汇聚节点的能量不受限制之外,其余节点能量有限并存在相同属性及功能;③因节点的无线通信模块消耗了大部分能量,忽略其余模块的能耗;④普通节点数据传播延迟远小于数据采集周期,不会造成网络拥堵;⑤因深井环境复杂多变,节点能根据实际情况调节信号发射强度;⑥信息接收节点能基于接收信号强度计算与发射节点之间的距离。
采用跳数泛洪方式建立网络分区结构,其主要步骤如下:
1)汇聚节点广播1个初始消息PA给其邻居节点,初值为0。
2)收到该PA信号的节点就将自己的分区值设置为PA+ 1,接着该节点将自身分区值PA(PA=PA+1)再广播给其邻居节点。
3) 收到新PA消息的节点再把自己的分区值设置为PA+1,因为可能会收到来自前1分区多个节点的PA值,这里规定PA值只设置1次。
消息依照这样的规律在监测区域扩散,区域内节点随机分布,且都能获得对应的分区值,即全网建成了分区结构,如图2所示。
图2 深井巷道网络分区结构Fig.2 Deep mine tunnel network partition structure
节点根据网络分区结构获得与自身位置对应的分区值,该值可应用于簇首竞选及数据转发过程。数据按分区值减少的方向逐跳转发,路由按分区值增加的方向依次建立,构成带状网络分区结构。该算法分为3阶段:簇首竞选、簇的形成、能量多路径路由。
簇首竞选分为主簇首竞选和副簇首竞选。其中,主簇首负责簇内数据的收集与融合;副簇首负责簇间数据转发,包括转发来自其主簇首的数据。
2.1.1 主簇首竞选
以文献[4]的阈值公式为基础,将节点当前能量、节点分布密度以及节点到汇聚节点的距离引入该阈值公式中,如式(4)所示。
(4)
(5)
式中:n表示第r轮中没有担任主簇首的某1节点;T(n)表示节点n的阈值;P指主簇首在全网节点中所占比例,P=n/nall;r是选举轮数;rmod(1/P)指第r轮中担任过主簇首节点的个数;G是第r轮中没有担任过主簇首的节点集合;α,β,γ是参数,且α+β+γ=1;Ecur是在第r轮中某节点的当前能量值,该值在式(4)中影响较大;Et表示第r轮网络能量总和;di指节点到汇聚节点的距离;dave指第r轮中所有存活节点到汇聚节点的平均距离;dmax指第r轮中范围的最大距离值;Qn指节点分布密度,第r轮初始阶段,以R为半径的范围中,节点进行信息交互并采集存活节点信息,由此可得Nei(n)a;Na表示网络存活节点数量,由汇聚节点获取并向全网广播。节点随机产生1个0~1范围内的数,当该数值小于T(n)时,节点成为候选主簇首;候选主簇首向同1分区内的所有节点广播其当前能量信息,并将自身的当前能量与同1分区其余候选主簇首的当前能量相比较,假如该候选主簇首的当前能量比同分区的其余任1候选主簇首的当前能量都要大,则该候选主簇首当选该分区的主簇首,反之则竞选失败。最后,当选分区主簇首的节点向整个分区内的所有节点广播其竞选成功的消息。
该阈值公式的理论依据论述如下:首先,节点当前能量是主簇首竞选机制中的重要因素,如果竞选主簇首时不考虑节点当前能量,则可能发生当前能量过少的节点担任主簇首的情况,会导致部分节点因能耗过快而失效,节点当前能量越高,成为主簇首的概率就应越高;相反,节点当前能量越低,被选举为主簇首节点的概率也就越低。其次,在深部矿井中,各工作区域的环境及功能存在差异,节点分布密度是不同的,节点分布密度大的区域,增加其节点担任主簇首的概率;反之,节点分布密度小的区域,减少其节点成为主簇首的概率。最后,从能耗角度来说,节点到汇聚节点的距离对主簇首竞选有直接关联,如果距汇聚节点较远的节点成为主簇首,网络的能耗就会比距汇聚节点较近的节点更大,假如网络中经常出现这种情况,则会使网络生命周期更早地结束。
2.1.2 副簇首选取
文献[14]论证了簇首节点数量占比k为5%左右时,网络的能量消耗最为理想。在主簇首竞争范围内,基于能量情况选取副簇首。首先,计算某簇所需副簇首的数量,计算方法如下:
nv=(nall×k-n)×f
(6)