刘 苗,钟晓曦,孙振兴,徐 迪,贺 庆
(1.东北石油大学秦皇岛校区 电子信息工程系,河北 秦皇岛 066004;2.东北石油大学 物理与电子工程学院,黑龙江 大庆 163318)
物联网(IoT:Internet of Things)技术在无线传感器网络(WSN:Wireless Sensor Network)多通道传感网络的数据聚合和传输规划方面具有巨大的潜力[1]。WSN由大量的传感器节点组成,使其电池供电受到限制。传感器节点随机分布在监测区域内,其收集数据并通过单跳或多跳将信息传输到基站(BS:Base Station)[2-3]。数据经通信链路(如卫星或互联网)由BS传输到终端系统[3-4]。由于其实施成本低,WSN被广泛应用于各种领域,如工业、交通、农业、医疗、环境监测和智能家居等[5]。由于电池供电的传感器节点能量有限,从而影响了WSN的质量、性能和寿命[6]。因此,降低传感器能耗是WSN的热点问题之一。
最初传感器节点收集数据并直接向基站输送数据,但这需要长距离通信,并导致较高的能量消耗,距离基站较远的节点会过早死亡,严重影响网络寿命[7-8]。因此,Singh等[9]和Heinzelman等[10]提出了层次型路由协议LEACH(Low Energy Adaptive Clustering Hierarchy),首次引入了节点聚类分簇的思想。该协议通过一个概率阈值选举簇头节点,通过周期循环的方式让所有的节点都轮流充当簇头节点。针对LEACH算法的缺点,学者们提出了LEACH-C、LEACH-E和CGA-LEACH等改进算法[11-12]。由于单跳传输存在能耗过高的缺点,目前通常大多采用多跳通信以节省能量[13]。然而,在多跳通信中,离基站较近的簇头将承担更多的转发任务,这将导致簇头的能耗过大,而且这些簇头会比其他簇头更快地耗尽能量,这就是网络中的“热区”问题。针对“热区”问题,有学者提出了非均匀分簇(EEUC:Energy Efficient Uneven Clustering)方案[14],该方案采用节点间竞争方式,在算法初期随机选出部分候选簇头,根据候选簇头与基站的距离设置竞争半径,与基站间的距离越小,竞争半径越小,簇群规模越小,从而降低了簇头的簇内通信能耗,实现能耗均衡。但EEUC在计算节点竞争半径时只考虑了节点与基站的距离,成簇效果不理想,“热区”问题仍未解决。近几年学者们还引入了能量采集(EH:Energy Harvesting)技术改善网络的寿命问题[15]。
针对上述问题,笔者提出了一种基于能量采集的非均匀分簇算法,该算法在设置节点竞争半径时,充分考虑了节点剩余能量、节点与基站的距离、节点密度以及节点与能量收集源的距离,显著提升了非均匀成簇效果。为均衡簇头能耗,在同一簇中选举了双簇头,主簇头负责簇内通信,副簇头负责数据中继。为延长网络寿命,网络还引入了能量采集技术。
传感器节点随机分布在一个二维平面内,基站位置固定不变且拥有无限能量;所有传感器节点位置固定,并且能确定自身位置,节点自带能量有限,可根据通信距离调整发射功率以节约能量;所有传感器节点具有无线能量采集功能,可随时补充能量;每个簇中分别选举主、副簇头节点,其余为普通节点。
笔者采用文献[16-17]中的能耗模型,通过发送和接收节点之间的距离d判断信道属于自由空间还是多径衰弱信道。当距离d小于阈值d0时,信道采用自由空间模型;当距离d大于阈值d0时,信道采用多径衰弱模型。传感器节点发送和接收数据能耗为
(1)
ERx(k)=Eeleck
(2)
其中ETx(k,d)表示将k比特数据传输距离d所耗能量,k表示发送比特数,d表示数据传输的距离,Eelec表示通信模型中发射机电路所耗能量,Efs和Emp表示功率放大器的能耗参数;ERx(k)表示接收k比特数据消耗的能量。传输阈值d0由Efs和Emp决定,公式如下
(3)
笔者认为传感器节点可从附近环境的射频源中收集能量。传感器节点收集的能量大小取决于射频源的发射功率,收集电路和环境的传播特性。在地球环境中,传感器节点i从射频源u收集的能量EHi,u为[18]
(4)
经典非均匀分簇算法EEUC是一种分布式竞争算法,是针对“热区”问题提出的一种解决方案。在EEUC中,越靠近基站,簇头节点的簇规模就越小,因此节省的能量即可用于簇间通信。EEUC首先按照一定的概率在网络中选出一定数目节点成为候选簇头,参与簇头选举,没有成为候选簇头的节点进入睡眠状态以节省能量。设Ci为任意一个候选簇头,Ci根据自身到基站B的距离计算竞争区域。Ci竞争区域半径Rc计算公式如下
(5)
由于EEUC在计算节点竞争半径时只考虑了节点与基站的距离,成簇效果不理想,“热区”问题仍未解决。因此笔者在EEUC的基础上提出了一种基于能量采集的非均匀分簇路由算法,将无线能量采集技术引入非均匀分簇方案中,在计算节点竞争半径时,充分考虑了节点剩余能量、节点与基站B的距离、邻居节点密度以及节点与能量收集源R的距离,以提升非均匀分簇的效果。文中节点竞争半径设置如下
(6)
其中权重参数a,b,c,d∈[0,1]且a+b+c+d=1,Ec表示节点当前能量,Emax表示节点最大能量,dRmax,dRmin分别表示网络中节点与能量收集源R的最大值和最小值,d(Ci,R)表示Ci到能量收集源R的距离。
在网络分簇完毕后,需要在每个簇群中选举簇头。“热区”问题主要是导致网络能耗不均衡,其首先体现在距离基站较近簇头与较远簇头之间的能耗不均衡,这是因为距离基站较近簇头不仅需要进行簇内通信,还需中继来自较远簇头的数据。若在处理簇内通信时消耗相同的能量,距离基站较近簇头的能耗将远高于较远簇头,因此网络采用了非均匀分簇的方案,通过减小距离基站较近簇群的规模,降低簇头的簇内通信能耗,从而将节省的能量用于中继来自较远簇群的数据。其次,能耗不均衡还体现在簇头节点与普通节点之间,由于簇头节点一直处于工作状态,且相对于普通节点,还需要承担大量的数据接收、聚合和中继等任务,因此簇头节点能耗远大于普通节点。为降低簇头节点的能耗压力,笔者在一个簇群中同时选举一个主簇头和一个副簇头,主簇头负责簇内通信,即接收并处理簇内信息,副簇头负责簇间通信,主要是中继来自较远簇的数据。此外,主簇头的数据将上传到副簇头,由副簇头将数据传输到基站或下一个中继簇头。簇头节点选举是否合适将直接影响网络能耗及寿命。下面给出簇头选择标准。
对于簇头选择,主要考虑节点的剩余能量、与簇中其他节点的平均距离、与基站的距离以及节点到能量收集源的距离这4个因素。目标函数
(7)
其中E(c)表示簇头的能量,E(ni)表示簇内节点i的能量,m表示簇内节点个数,dic表示节点与簇头之间的距离,m表示簇内节点个数,diB表示节点i与基站B之间的距离,diR表示节点i与能量收集源R之间的距离,α,β,γ,η为自适应参数,α,β,γ,η∈[0,1]且α+β+γ+η=1。当f取最小值时,选择对应的节点作为主簇头,次最小值对应的节点作为副簇头。
所有簇头确定后,簇头将消息发布到网络中,普通节点选择距离最近簇头加入构成簇,然后通过单跳传输将数据发送给簇头。若簇头距离基站较近,则簇头将采用单跳传输,若距离较远则选择多跳传输。采用多跳传输时,需要选择一个中继节点,先把数据传至中继节点,再通过中继节点把数据上传到基站。若有M和N两个簇头节点,基站为B,距离之间关系如下
d2(M,B)>d2(M,N)+d2(N,B)
(8)
其中d(M,B)、d(M,N)和d(N,B)分别表示簇头M到基站B的距离、簇头M和簇头N的距离以及簇头N到基站B的距离。
能耗之间的关系为
E(M,B)>E(M,N)+E(N,B)
(9)
其中E(M,B)表示将数据从簇头M发送到基站B的能耗,E(M,N)表示将数据从簇头M发送到簇头N的能耗,E(N,B)表示将数据从簇头N发送到基站B的能耗。由式(9)可知,多跳传输消耗的能量小于单跳传输。因此,如果任意两个簇头之间的距离满足式(8),则簇头将采用多跳传输。
实验采用Matlab 2018B仿真软件将LEACH算法和LEACH-E算法与所提算法做对比仿真,主要观察各种算法的网络能耗与网络生命周期。实验中,200个节点均匀分布在400×400 m2大小的平面上,基站坐标为(200,450),能量收集源的坐标为(200,200)。该实验传感器节点的位置分布如图1所示。图2给出了笔者所提的非均匀分簇算法的成簇效果。如图2所示,越靠近基站的簇规模越小,反之越大。这是为了降低基站附近的簇头用于簇内通信的能耗,避免簇头过早死亡。
图1 节点位置分布图 图2 算法成簇效果Fig.1 Distribution of node locations Fig.2 Algorithm clustering effect
图3给出了各算法在每轮工作周期后,网络中存活节点数目的对比。LEACH算法在第157轮出现了第1个死亡节点,LEACH-E在第200轮出现了第1个死亡节点,而笔者所提算法在第719轮才出现第1个死亡节点,显著延长了网络寿命。
图3 网络生命周期 图4 网络剩余能量Fig.3 Network Lifetime Fig.4 Network residual energy
图4给出了各算法所在网络的剩余能量。由图4可知,笔者所提算法降低了网络能量消耗的速度,这是由于该算法通过非均匀分簇以及采用在同一簇内选举双簇头方案,均衡了网络能耗。同时通过多跳路由算法,大幅降低了单个节点的数据传输距离,使该节点不会过早耗尽能量,从而影响网络生存周期。
笔者提出了一种基于能量采集的油气物联网非均匀分簇算法。在非均匀分簇阶段引入了能量采集技术,改善了簇头竞争半径的计算方式。同时在数据传输阶段,分别提出了簇间和簇内的数据传输方案。仿真实验表明,相对于LEACH算法和LEACH-E算法,该算法能更有效地降低网络能耗,延长网络寿命。下一步,将尝试在分簇过程引入动态分簇阈值,以降低频繁分簇造成的能量浪费,提高物联网能量的利用率。