-
随着传感技术与无线通信的发展,无线传感器网络由于其组网方便、可靠性强等优点引起了人们较为广泛的关注[1]. WSN由大量的微型传感器节点组成[2],然而由于传感器节点大都是电池供电,其能量供给有限,导致了节点在数据处理和通信范围方面的局限性[3]. WSN一般部署于相对恶劣的环境之中,当网络中大量节点失效时,网络的应用便受到限制[4]. 如何降低节点的能耗和延长网络的生存周期,成为近年来研究的热点问题.
大量研究表明,WSN中分层路由协议能够优化网络布局,更好地均衡节点能耗. 文献[5]提出了一种低功耗自适应集簇分层型协议(Low Energy Adaptive Clustering Hierarchy,LEACH)路由,将网络中的节点进行分簇,并采用随机循环的方式选取簇头,但距离基站较远的簇头在数据传输过程中会因能耗较高而过早死亡. 文献[6]提出了一种功率有效聚集路由协议算法,是基于LEACH算法的改进算法,通过采用贪婪算法在网络中建立节点链来代替分簇,解决了LEACH算法在分簇过程中产生的重叠区域问题. 文献[7]提出了一种地域自适应保真(Geographical Adaptive Fidelity,GAF)路由算法,该算法根据地理位置将监测区域划分为不同网格,每个网格的节点组成一个簇,使簇均匀分布. 文献[8]提出了一种确定性簇头选择(Deterministic Cluster-Head Selection,DCHS)协议算法,改进了LEACH算法的阈值计算方法,引入了剩余能量因素,使得剩余能量较多的节点更有可能被选为簇头,延长了网络寿命. 文献[9]提出了一种基于LEACH的改进算法,该算法在汇聚节点进行分簇,考虑全局信息挑选簇头,解决了LEACH协议中簇头分布不佳的情况. 文献[10]提出了一种混合节能分布式(Hybrid Energy-Efficient Distributed,HEED)聚类算法,根据节点自身剩余能量值及节点与邻居节点的接近程度来确定簇头. 文献[11]提出了一种K-LEACH (Kmedoids-LEACH)算法,采用K中心点算法形成簇,可以确保对簇头的有效选择并得到均匀的簇集. 文献[12]提出一种EE-LEACH(Energy-Efficient LEACH)算法,选择剩余能量最高的节点转发数据到sink,该算法提高了数据包传送率,优化了资源配置,降低了能耗. 但是,现有的分层路由算法不能同时考虑地理位置和节点能量信息,无法有效地对网络进行分簇和选择簇头,因此,迫切需要设计一种有效的算法来选择最优簇头,并减少处理量.
本文在研究WSN中现有分层路由协议的基础上,提出了一种基于集中控制分簇的能量感知路由(Centralized Control Clustering based Energy-Aware routing,CCCEA),在充分考虑节点分布基础上,通过将网络划分区域,基站采用集中控制方法来分簇,形成均匀分布的簇,同时根据能量和位置信息选择簇头,保证簇头节点有足够的能量传送数据至基站,该算法不仅计算复杂度低,而且能够降低网络总能耗,提高网络的生存周期.
全文HTML
-
能量消耗模型如图 1所示.
从图中可以看出,传感器网络中的节点能量消耗模型包括发送和接收能耗模型2部分,其中发送能耗模型又包括发送能耗和驱动电路能耗. 该模型中,如果发射机和接收机之间的距离小于给定的阈值d0,则遵循自由空间信道模型(d2能耗损失). 否则,遵循多径信道模型(d4能耗损失). 发送和接收能耗如下:
其中,d是传感器节点双方的通信距离,l是接收和发送数据的位数,Eelec是驱动电路的能耗,εfs和εmp分别是自由空间信道模型和多径信道模型对应的放大器能耗系数.
-
本文提出的基于集中控制分簇的能量感知路由其网络模型假设如下:
1) 所有的传感器节点随机分布在一个稳定的二维网络中,并且知道它们的地理位置和剩余能量;
2) 在不限制能量供应情况下,传感器网络区域内或外都有一个静态基站;
3) 传感器节点是簇头或者簇成员节点;
4) 传感器节点具有功率控制功能,可以改变其传输功率;
5) 传感器节点可以是同构的,也可以是异构的.
1.1. 能量消耗模型
1.2. 网络模型
-
CCCEA算法采用集中控制方法来分簇,所有传感器节点将能量信息和位置信息发送到基站,基站基于这些信息将网络区域划分为4块,根据传感器节点发来的信息,基站确定传感器节点位于哪个区域. 然后经过数轮的簇头选择、簇形成和数据传输过程,以较低的网络能耗和较高的生存周期实现数据传输.
-
CCCEA路由算法的流程图如图 2所示.
图 2中BS表示基站,CH表示簇头,SN表示传感器节点,R表示轮数. 本文提出的CCCEA路由算法分为两步:
第一步:基站基于节点发送的信息将网络区域划分成4个部分. 为了提供均匀分布的簇头,基站将网络划分为4个区域:r1,r2,r3,r4,若网络大小假定为M×M,则各个区域大小根据下列式子得到:
第二步:算法经过数轮的操作,以较低能耗和较高的生存周期将数据传送至基站. 每轮3个阶段,分别是簇头选择、簇形成和数据传输.
1) 簇头选择. 所有传感器节点发送当前的剩余能量信息和位置信息到基站. 假定传感器节点总数量为N,每个区域的传感器节点数量为n. 基站根据式(7)计算平均能耗,根据式(8)计算传感器节点到基站的平均距离.
其中,E(SNi)是传感器节点i的剩余能量,d(SNi,BS)是传感器节点i到基站的距离. 对每个区域而言,本轮中应能保证能量水平高和距离基站近的传感器节点可以被选为簇头,即传感器节点的能量水平高于平均能量(E(SN)≥Eavg)且距离小于到基站的平均距离(d(SN,BS)≤Davg),则可被当做簇头备选节点. 所有备选的簇头节点定义为集合K,簇头的最优数量Kopt根据式(9)得到,在每个区域都满足式(10)和式(11)的簇头将被选做簇头集合.
因此,根据式(13)可以计算整个网络中的簇头数,随后基站将广播簇头的ID.
2) 簇形成. 在簇形成阶段,所有传感器节点的接收器均处于打开状态. 通过使用波侦听多路访问(Carrier Sense Multiple Access,CSMA)协议,本轮中每一个被选中的节点都会向所有的传感器节点广播一条消息,根据接收到的信号强度(Received Signal Strength,RSS),非簇头节点决定加入哪个簇,并通过向簇头发送此消息来通知所选的簇头,它将成为该簇的成员节点. 当接收到该簇中所有传感器节点发送的消息后,簇头创建时分多址(Time Division Multiple Access,TDMA)调度来告知簇中的每个成员何时能够传送数据,然后将此调度广播回簇成员节点.
3) 数据传输. 假设传感器节点需要感知并发送数据,在分配的传输时隙内,可以将数据发送至簇头. 为了最小化非簇头节点的能耗,当节点的传输时间分配后关闭无线电. 一旦簇头接收到非簇头发送的所有数据,执行信号处理功能,将这些数据压缩成单个信号,并发送至基站.
-
CCCEA算法的可行性和优越性从以下3个方面进行论证:
1) 使用集中控制算法选择簇头,避免了簇头选择的随机性. 如果使用分布式算法选择簇头,将导致簇头选择的随机性,易产生簇头没有足够的能量到达基站的情况发生,从而导致成员节点发送给簇头的数据丢失. 在集中控制算法中,每个区域中基站根据接收到的传感器节点发来的消息,基于式(7)和式(8)计算传感器节点的剩余平均能量和到基站的平均距离. 同时满足E(SNi)≥Eavg且d(SNi,BS)≤Davg的节点当选簇头. 在这些合格的簇头节点中,根据式(10)和式(11)选择一个最优簇头,即有足够的能量到达基站,能耗少且到基站距离短.
2) 优化簇头的数目,降低了路由开销,提高数据收集的可靠性. 对所选簇头的大量枚举,将产生较少的成员节点. 这里,簇头的最优数目取决于区域中传感器节点的数目、传感器区域的维数及簇头到基站的平均距离,根据式(9)计算得到. 假设500个节点随机分布到网络区域中,在r1中的节点数目为150,从簇头到基站的平均距离为0.765,因此r1中簇头的最优数目为:
$K_{o p t\left(r_{i}\right)}=\sqrt{\frac{150}{2 \pi}} \times \frac{2}{0.765} \cong 13 $ .3) 进行网络分区,避免产生分离节点. 簇头的随机选择导致了大量的分离节点,这些节点远离簇头,与基站通信耗费大量的能量. 假设网络区域M×M中随机分布N个节点,基站将网络区域划分为4个区域(r1,r2,r3,r4),根据式(3)-(6)计算各个区域的大小. 根据传感器节点发送至基站的消息,基站决定传感器节点属于哪个区域. 每个分区执行该操作,确定每个传感器节点是簇头或者成员节点,保证了在整个网络区域统一选择簇头. 此外,为了形成一个簇,簇头将向所有的传感器节点广播一个广告消息. 由于非簇头节点将根据广告消息的RSS来决定是否加入该簇,所以应该保证每个节点都能接收到该广播消息.
2.1. CCCEA路由方案设计
2.2. CCCEA算法论证
-
设置本文实验环境:基站坐标为(0,0),将100个传感器节点随机部署在100 m×100 m的区域内,实验运行时间设定为1 000轮,其他实验参数见表 1.
本文实验模拟在笔记本电脑上进行,使用仿真平台NS-2.35,将本文所提算法CCCEA与LEACH算法、EE-LEACH算法进行比较,分别在生命周期、网络剩余能量以及网络时延方面进行对比. 图 3给出了3种算法的生命周期对比图,从第一个节点死亡时间来看,LEACH算法的运行时间是300轮,EE-LEACH算法的运行时间是400轮,CCCEA算法的运行时间是500轮. 相对节点存活个数为80时,LEACH算法的运行时间是380轮,EE-LEACH算法的运行时间是570轮,CCCEA算法的运行时间是700轮. 从全部节点死亡的时间可以看出,LEACH算法和EE-LEACH算法的运行时间分别是620轮和830轮,CCCEA算法的运行时间是920轮. CCCEA算法提高了网络的生命周期,因为该算法利用集中控制的方法优化簇头选择和簇的划分,形成了更加均匀的簇,网络能耗更加均衡,网络周期性能得到了提高.
图 4给出了网络剩余能量对比图. 从图 4中网络剩余能量全部耗尽的时间来看,本文所提CCCEA算法的运行时间为920轮,优于LEACH算法的620轮和EE-LEACH算法的830轮. CCCEA算法的网络剩余能量和运行时间的关系曲线变化相对其他2种算法更平缓,这是由于算法将网络分区域,并根据剩余能量和距离信息选择簇头,均衡了簇头的分布,使得节点能耗更均衡.
图 5给出了不同算法的网络时延. 网络时延可定义为sink发送数据包至特定接收端的平均时延,是由路由获取、重传延时以及在中间节点处的数据处理产生的. 图 5显示了本文算法由于簇分布均匀而使得数据聚合时间更短,网络时延更小.
-
无线传感器网络中路由协议设计的主要思想是使传感器节点尽可能长时间地运行,进而使传感器节点能耗均衡,延长网络的生存期. 本文提出了一种CCCEA算法,采用基于集中控制分簇的方法形成均匀分布的簇,并根据节点能量和位置信息来进行簇头的选择和簇的形成,以均衡网络中节点的能耗,延长网络的寿命. 实验结果和性能分析表明,与LEACH算法和EE-LEACH算法相比,CCCEA算法在网络寿命、网络总能量和网络时延方面具有更优越的性能,但仍存在需要深入研究和优化的地方,未来工作将研究所提算法的自主分簇功能,进一步优化网络性能.