◆郑少雄
(广东生态工程职业学院 广东 510642)
定向天线WSN改进算法RADA的设计与实现
◆郑少雄
(广东生态工程职业学院 广东 510642)
传统的无线传感器网络LEACH算法由于在簇头形成时没有考虑节点的能量和位置,存在着网络能耗过大的缺点,本文利用定向天线能够对射频信号进行定向扩散的特点,对独立节点进行分簇归类,设计改进路由算法,并在NS2网络模拟软件平台上进行仿真,对改进的算法与LEACH算法进行对比分析,结果表明RADA算法使得网络的生命周期更加延长,网络稳定性更好。
无线传感器网络; RADA; 路由算法
无线传感器网络(WSN,Wireless Sensor Network)是一门新兴的科学技术,具有无线感知、监测和控制等功能,也具有成本低、微型化、实时监测、可嵌入等优点,已经得到广泛的应用。本文设计了一种基于定向天线的WSN汇聚节点控制路由算法,该算法通过对WSN节点进行分簇迭代,利用定向天线射频信号定向扩散的特点,对独立节点进行分簇归类,使单独节点进入距离自己最近的簇群,减少了网络簇头形成过程中选择的随机性。采用步进电机驱动定向天线转动,让定向天线WSN汇聚节点能够收集到不同方位的簇头发送来的数据。该算法能够明显降低Leach算法中孤立节点的数目,使其无须参加簇间路由查找,节省了网络节点能量的消耗。
1.1 RADA算法的介绍
定向天线WSN汇聚节点控制路由算法(RADA,WSN aggregation node control routing algorithm based on Directional antenna)最重要的特点就是在无线传感器网络的汇聚节点中利用了定向天线。由于在定向天线WSN汇聚节点的信号覆盖范围内,成员节点能够把远处收集到的监测信号通过通信链路传送给簇头。在数据接收方面,定向天线WSN汇聚节点采用步进电机来驱动定向天线的转动,根据设定的转动周期,实现对定向天线WSN簇头节点的信号覆盖区域监测数据的收集。在定向天线WSN汇聚节点控制路由算法中,能够收集到各个扇形区域内成员节点环境信息的节点成为簇头。这里并非所有的簇头都直接和汇聚节点进行通信,而是根据节点自身与汇聚节点的距离情况决定自身能否成为低一级簇头,只有与汇聚节点在天线的通信范围内才直接和定向天线WSN汇聚节点进行通信。当一个簇头的成员中具有一级簇头的时候,则自身默认成为二级簇头。在定向天线WSN汇聚节点控制路由算法中,簇头节点根据自身能量的剩余情况进行轮换,当具有相同覆盖程度的节点能量下降到一定程度以后,簇头向覆盖程度低一级别的节点进行轮换。
1.2 RADA算法网络初始化
在基于定向天线的WSN中,将定向天线配置在WSN汇聚节点上,而用全向天线配置在其他成员节点上。在网络初始化的时候,所有节点已经得知汇聚节点的位置。由图1所示,汇聚节点位于网络边缘的正下方,汇聚节点以α角度为辐射角向成员节点方向发出广播信号,此时WSN汇聚节点的天线信号辐射范围为直径d。
由图1可以看到,网络覆盖区域中灰色节点成为覆盖它所在区域白色节点的簇头(一级簇头)。但是,有时候也会存在一级簇头的监测区域中节点的被覆盖程度较低,没有节点会被挑选为簇头。这些节点和一级簇头都采用相同的模式向汇聚节点信号的辐射方向定向地发出广播信号。根据信号覆盖程度,在离汇聚节点较近的范围内选出新的簇头,在这类簇头中,如果成员节点有一级簇头的,则自身会成为二级簇头,如图1中所示黑色节点。当成员节点中不存在一级簇头,则将自身定位为一级簇头。这样网络从由远离定向天线WSN汇聚节点的区域到靠近定向天线WSN汇聚节点的区域一层一层地形成簇群,以及相应不同级别的簇头。当节点的发射信号层层覆盖到定向天线WSN汇聚节点后,簇群的形成进入稳定阶段。
图1 定向天线WSN簇头更替流程图
1.3 RADA网络稳定阶段
当网络初始化完成,簇群的分布稳定以后,每个簇内部成员节点开始进行相应的信息收集,并且把收集到的信息定期或者在定向天线WSN汇聚节点的查询要求下把信息数据发送到簇头。一级簇头和LEACH算法中的簇头一样,可以向成员节点发送来自定向天线WSN汇聚节点的查询信息。簇头节点在接收到簇内成员节点的信息后,则对数据进行压缩融合,当数据不能直接传送给簇内汇聚节点时候,则转发给二级簇头或者定向天线WSN汇聚节点。一级簇头向二级簇头发送信息时候在数据包加入一定的标识,以便二级簇头选取。
图2 网络稳定阶段数据流程图
同样,二级簇头有也具备一级簇头的功能,能自身通过辨认而获得来自一级簇头的数据包,而不对此数据包做压缩和融合处理。这样不仅能够减小二级簇头的处理负载程度,而且能够减少二次压缩所到来的数据丢失的风险。在WSN大面积监测的应用情况下,WSN则可能出现三级或者以上的簇头。更高一级的簇头和二级簇头的工作原理相类似。图2是利用定向天线WSN汇聚节点控制路由算法的WSN网络稳定阶段的数据流程图。
1.4 RADA算法的簇头轮换策略
当定向天线WSN网络完成初始化并运行一段时间后,充当簇头节点的能量会下降到较低等级,此时如果继续充当簇头节点,则簇头节点会很快进入死亡状态,使得网络不能正常工作。因此算法中所设定的簇头能量下降为原来的1/2时候,网络重新轮换簇头。
RADA算法簇头轮换方式有以下两种,第一种轮换条件是在具有相同被覆盖程度时候进行,另外一种轮换情况是在具有不同被覆盖程度时候进行。而无论哪种情况下的簇头,只要能量下降到原来的1/2时候,则开始寻找能够替代该簇头功能的邻节点。当WSN网络在判断靠近簇头区域内没有存在被汇聚节点覆盖程度相同的邻节点时,由图1能够看到中间2个灰色的节点被相同的成员节点所覆盖。当满足这种条件时候,则将邻居节点轮换为簇头,把信号发送至原来的子节点,并通知其他成员节点将数据发送给新的簇头。
而靠近原簇头较近距离范围内没存在与邻节点相同覆盖程度时,网络会重新初始化并继续寻找覆盖程度低于原簇头的邻节点,并把该邻节点更换为新簇头。新簇头会覆盖新的簇群,完成一次簇头轮换后,网络就会进入下一次稳定的运行阶段。第二次轮换是在第一次轮换的基础上进行,新簇头节点的覆盖程度较原簇头节点的覆盖程度低。当WSN网络中节点密度分布较高时候,那么网络区域中有10%的节点被簇头射频辐射信号所覆盖,而当网络中节点的分布密度较低时候,网络区域中有20%的节点被簇头射频信号所覆盖。图3是定向天线WSN汇聚节点路由控制算法中簇头轮换策略的流程图:
图3 定向天线WSN汇聚节点路由控制算法中簇头的轮换策略
由上图可见,当WSN网络经过多次的簇头轮换后没能找到可以正常工作的簇头时,说明WSN节点的能耗过低,不能支持网络的正常运行,需要重新进行初始化。由于WSN节点数目较多,当部分簇头节点能量减少为原来的1/2时候。网络重新进行初始化,能量等级进行重新定义,最终形成新的网络簇群。
2.1 簇头数目比较
上文提到,WSN网络中簇头竞争半径的大小直接和网络的拓扑结构和簇的密度有关。由公式
可以看出,簇头的竞争半径除了由网络中的硬件环境决定外,还由控制参数c以及竞争半径CR共同决定,因此网络中簇头数目受节点的最大发射半径以及控制参数c的影响。
图4 RADA生成的簇头数目与控制参数间的关系
图4为对RADA路由算法生成的簇头数目与控制参数间的关系进行仿真而得到的曲线图,由图4可以看到,在控制参数c不变的情况下,随着竞争半径CR的增大,网络中总的簇头节点数目的下降速度明显较快。在竞争半径CR不变的情况下,c =0时候相当于各簇头均以最大竞争半径分簇,由于要覆盖网络中的全部节点,c =0.5时候网络的簇头数要多于c =0时候网络的簇头数也属必然。
图5 RADA簇头分布数目
从图5可以看出RADA算法的簇头的数目较为集中,因为该算法采用了非随机算法在局部区域进行竞争,从而控制了算法生成簇头的数目。加上算法针对孤立簇头节点采用根据距离选择入簇,或是直接与汇聚节点通信的方式,降低了整个簇头数目的差异性,使整个簇比较稳定地分布在一个相对较小的范围内。仿真后的RADA路由算法与LEACH算法相比具有更为优化的试验结果。
由图5可以看到,簇头数目较少的情况出现的次数较多,表明簇头数目确实有明显的下降现象。由于簇头节点数目减少,使得网络中簇头数目的分布有下降趋势。同时也保证了网络良好的稳定性和连通性,为后续簇头间的轮换通信打下了可靠的基础。
2.2 每轮簇头能耗总和比较
网络的能耗仿真过程主要针对簇头的能量消耗情况进行,是由于簇头的能耗在整个网络中所占的比重较大。图6是对随机挑选的簇头进行10轮迭代分簇后,对簇头节点能量消耗的总和进行对比的仿真图。
图6 RADA算法每轮簇头能耗总和
从图6可以看出,RADA算法比LEACH算法在每轮簇头总能耗上有较好的试验结果,具有较低的能耗总和。RADA算法能够有效处理孤立簇头节点产生的能耗问题,使得簇头数目相对减少。由于降低了分簇阶段簇头的总能耗,能量相应存留在需要能耗更大的簇间通信上,如汇聚节点通信、路由建立、寻路转发等方面的能耗上。
2.3 网络生存时间比较
通过网络仿真,得出RADA 算法和LEACH算法在整个网络存活时间上的差异。图7显示了随着时间的增长,RADA 算法和LEACH算法在网络存活时间里簇头节点数量的变化。通过存活簇头节点的数目变化,能够客观反映整个网络生存周期的长短。