一种无线传感器网络分簇路由算法研究
0 引 言 随着微电子工艺和无线通信技术的飞速发展,无线传感器网络(WSN)的研究越来越受到人们的重视。传感器网络(sensor network)是由部署在观测环境附近的大量微型廉价低功耗传感器节点组成,通过无线通信方式组成一个多跳的无线网络系统。由于无线传感器网络通常部署在人无法接近或者高危险区域,且数量众多,这使得随时更换节点能量变得非常困难。在监测区域内传感器节点采集的相关信息,通常携带一次性电池且能量有限,在经过一段时间的数据采集后,无线传感器网络存在严重的能量约束问题。所以,传感器网络协议的首要设计目标就是要高效地使用传感器节点的能量,延长网络的存活时间。将传感器节点组织成簇的形式,以有效地减少能量消耗,许多能量高效的路由协议都是在簇结构的基础上进行设计的。 LEACH是一个典型的自适分簇协议,网络中节点通过随机方式自组织形成簇,在分配给的时隙向簇首发送数据,簇首对收到的数据融合后在每帧结束后直接与基*通信。节点轮流担任簇首,均衡了网络的能耗,但簇首在当选时,没有考虑节点的能量高低,若节点能量很低,仍要担当簇首时,会加速它死亡。另外,数据直接发送到基*,会使距基*较远的节点能耗很大,导致局部节点提前死亡,产生监控盲点。 由于LEACH算法没有考虑节点的剩余能量及与基*的距离等因素,很多文献提出了相应的改进算法,如EBAC胡是在LEACH协议的基础上,周期性地选用当前轮剩余能量最大的节点担任下一轮簇头。LEACH-D是基于LEACH的多跳路由算法。文献[6]提出了构建能量均衡簇群的方法,LEACH-L综合考虑了节点的位置和能量的多跳路由算法。 本文在LEACH协议的基础上,以降低簇头直接和基*远距离通信的能量损耗为首要目标,同时在二层簇头选择时综合考虑了节点的剩余能量和基*的距离.并且改进了簇头间的多跳路径,避免使用低能量的节点。通过Matlab仿真表明,该算法能进一步均衡簇头节点的能量消耗,延长网络的生命周期。
1 系统模型 N个传感器节点随机均匀分布在一个正方形区域内,周期性地收集周围环境信息,并且具有如下性质: (1)所有传感器节点部署后不再移动,且都有1个惟一的标识ID; (2)基*惟一,且位于离采集区域较远的一个固定位置; (3)所有节点具有相似的能力(处理/通信),都具备数据融合功能; (4)若已知对方的发射功率,节点可以根据接收信号的强度计算出发送方离它的近似距离; (5)节点的能量不能补充,节点的发射功率可控。 这里采用与文献[2]相同的无线通信模型:根据距离阈值d0,分别采用自由空间模型和多路衰减模型。发送方发送k比特的数据到距离为d的接收方所消耗的能量为:
2 CAED算法描述
在LEACH基础上,提出一个基于能量和距离的分簇算法(clustering algorithm based on energy anddistance)。该算法按轮运行,每轮分为二层簇头的建立,簇内节点数据转发和稳定数据的传输。 2.1 二层簇头的建立 在簇建立阶段,首轮担任簇头的节点由基*随机确定。簇头的个数根据监测区域的位置、大小及网络规模来确定。被选中担任簇头的ID由基*依次在网络中进行广播,网内节点对逐次收到的ID与自己的进行对比,相同的即为本轮的簇头。簇头全部选出以后,再向全网广播簇头ID。簇内节点在每轮数据传输的最后一帧,把剩余能量等信息一起发送至各自簇头。簇头对各簇内节点的剩余能量进行比较,选举剩余能量最大的节点作为下一轮簇头,这样建立了第一层簇头。 第二层簇头的建立和通信模式与LEACH有较大的区别。每轮选出的第一层簇头成为第二层簇头的普通节点,在LEACH中这些节点直接与基*通信。由式(1)可以看出,放大器能耗远大于电路能耗,且放大器能耗中与通信距离d有直接关系,因此在产生第二层簇头时,充分考虑了节点的剩余能量和节点与基*间距离等因素。产生第二层簇头的阈值按如下公式计算:
式中:Eresidual(i)标识为i的簇头的剩余能量;BSdistance(i)标识为i的簇头与基*之间的距离。每轮在产生完第一层簇头且簇头能量高于某一个值Eth(若节点低于Eth就认为节点失效)时,各簇头比较Tch值,找出其中Tch最大值为第二层簇头。因此,第二层簇头既有较高的能量,又距基*较近,这样既能减少转发数据时所消耗的能量,又能保证节点能量不会很快耗尽,而影响数据的采集。 2.2 簇内节点数据转发 每轮第一层簇头选出来后,节点依据收到广播信号的强度选择要加入的簇,此时簇内通信采用自由空间模型。与第一层簇内节点数据通信不同,由于第二层簇内节点距离簇头较远,有些可能远远超过了d0值,而数据通信采用的自由空间模型不一定正确,另外,直接与簇头通信的能量消耗较大。因此,假设远离簇头的节点可与临近的、能量高于自己的节点通信,且数据经过多路转发直至簇头,满足上述假设条件如式(4)所示:
由于每一轮每个簇头在簇中的位置以及簇内节点的个数会发生动态变化,为便于分析式(4)的最佳临近节点,在图1中列出了某种状态下4种典型的数据转发方式。 图1(a)出现在数据收集的前期阶段,由于节点能量充足,靠近基*的节点采用直接传输方式,而远离基*的节点通过式(4)选择下一跳节点进行数据转发;经过多轮数据采集之后,靠近基*的节点因过多参与数据的转发能量迅速降低,依据式(4)出现了图1(b)或图1(c);在数据收集的后续阶段,由于靠近基*的节点整体能量下降,它们分别采用单跳的方式直接与基*通信,同时依据式(4)出现了图1(d)。整个数据采集阶段远离基*的节点都是通过多跳的方式与临近节点通信,说明通过多跳的数据转发能耗要小于直接发送到簇首,同时转发数据的节点能量较高,保证了转发数据时有足够的能量,均衡了网络的能量。
2.3 稳定数据传输 在稳定数据传输阶段,普通节点与第一层簇头通信方式和LEACH相同,但是数据的采集、融合工作完成之后不是将数据包直接发送到基*,而是在给定的时隙内发送给第一层各自的簇头。第二层的节点依据能量和距离选出下一跳节点进行数据转发,直至第二层的簇头或直接与基*通信,第二层簇头节点经过二次数据融合后,发送数据至基*。
3 算法分析和仿真结果 利用Matlab工具对LEACH,EBAC和CAED算法进行仿真比较,各项参数设置如下:假设无线传感器网络由300个相同的节点组成,随机抛撒在200 m×200 m的区域内,远程基*的坐标是(x==100 m,y=350 m)。每个节点的初始能量为E0=1 J,发送和接收电路的损耗为ETX=ERX=50 nJ/b,数据融合消耗为EDA=5 nJ/b,εfs=10 pJ/(b·m-2)时dd0。其中,d0为常数,数据包长度为4 200 b,广播包长度为60 b,簇头个数kopt=5。节点能量低于Eth=0.000 1 J时,认为其死亡,假设数据融合率为100%,且在转发过程中无数据包丢失。没有误码率。 图2是存活的节点数与轮数关系图。可以看出,LEACH在整个生命周期曲线比较陡峭,网络中节点的存活数量随时间的推移变化急剧,网络中节点的能量不均衡。EBAC曲线在1 000轮前比LEACH平滑,由于在选举簇头节点时考虑了剩余能量,故性能明显优于LEACH,但是EBAC中簇头直接与基*通信,增加了簇头节点远程通信能量损耗,当运行到某一时刻(大约在1 094轮后),大量节点在轮数相差不多的情况下失效。CAED综合考虑了剩余能量和距离,并且在第二层簇中使用多跳方式转发数据。CAED的曲线比EBAC平滑,进一步延长了网络的生命周期。
表1统计出网络运行这3个算法时,发生首个节点失效时的轮数,网络有30%的节点失效时的轮数和网络运行800轮时节点的失效个数。表中数值都是经过多次运行相应算法得出的平均值,这里用首节点死亡轮数来衡量网络稳定周期,用30%节点失效来衡量网络生命周期。
由表1可见,相对于LEACH来说,CAED网络的稳定周期延长了570%以上,同时将网络生命周期延长了458%以上。相对于EBAC来说,CAED网络的稳定周期延长了67%以上,网络生命周期延长了20%以上。3种算法在800轮时,节点的失效个数分别占节点总数的81.7%,11.7%和3.7%,网络的节点能耗进一步均衡,避免了“盲节点”过早的发生。 图3显示了网络在运行3种算法时,网络总的剩余能量情况,仿真实验中每隔50轮做1次采样记录。从图3可以看出,对网络总的剩余能量而言,CAED明显高于LEACH和EBAC,说明CAED能很好地节省网络能量,延长网络的生命周期。
4 结 语
提出一种基于能量和距离的分簇多跳算法。第一层簇头选择时考虑了节点的剩余能量,第二层簇头充分考虑了节点能量和到基*的距离,并且改进了簇内节点的数据转发方式。仿真结果表明,与LEACH算法相比,该算法均衡了网络的能量消耗,明显延长了网络的生命周期。
|