1.一种基于覆盖率进行生存性分析的无线传感网选簇方法,其特征在于,协议包括以下流程:S1、将整个协议的流程分为若干轮;S2、Sink节点内计算网络覆盖率;S3、每个节点以半径Ri发送消息,同时每个节点以半径Ri接收消息以确定邻节点表NeighborTable;S4、从邻节点表NeighborTable中统计邻节点个数neighborCount;S5、节点产生0-1的随机数,并根据簇首选择公式提供的阈值选择簇首节点,随机数小于阈值则当选为簇首节点;S6、簇首节点以相同功率广播消息,其余节点根据收到广播消息的强度选择加入哪一簇,并发送消息给簇首从而完成分簇;S7、进行簇内TDMA时隙分配;S8、进行数据传输,一段时间后进入新的一轮循环;其中,所述网络覆盖率的公式为:式子中,Si是第i轮存活节点的总覆盖面积,S0是网络中的所有节点的最大覆盖面积;其中,所述第i轮存活节点的总覆盖面积通过以下步骤获得:S9、对目标监测区域进行离散化,即以d间隔距离分别在目标区域的x、y轴方向上选取离散点;S10、计算该离散点到所有存活节点的距离,其中,如果到存活节点的距离中至少有一个距离小于该节点的感知半径,则认为该离散点是被覆盖的;S11、count加1,遍历所有离散点得到满足条件的个数count,然后计算第i轮存活节点的总覆盖面积Si=count*d*d。
2.根据权利要求1所述的一种基于覆盖率进行生存性分析的无线传感网选簇方法,其特征在于,所述簇首选择公式为:式中,i表示节点,T(i)为选择簇首的阈值,n为网络节点总个数,p表示簇头节点占这个传感网络所有节点的百分比,r是当前的轮数,mod是求模运算符,neighborCount_i表示节点i的邻节点个数,G是在过去1/p轮中未当选簇头的节点集合。
技术领域
本发明涉及一种无线传感网络的选簇协议,尤其是一种基于覆盖率来进行生存性分析的选簇协议。
背景技术
无线传感器网络是由大量的传感器节点构成的一种自组织网络。这种网络系统可以被广泛应用于环境监测、医疗护理、军事国防、智能家居等领域。通过在感知区域放置大量的密集部署的传感器节点,用户可以通过无线完成对指定区域的监控。无线传感器网络的系统构架通常是由传感器节点(即所有簇内节点)、汇聚节点(Sink)以及任务管理节点组成。传感器节点,是一个微型的嵌入式系统,它的处理能力、存储能力和通信能力相对较弱,通过携带能量有限的电池供电。汇聚节点(Sink)连接传感器网络与Internet等外部网络,实现两种协议栈之间的通信协议转换,同时发布管理节点的监测任务,并把收集的数据转发到外部网络上。因此汇聚节点的处理能力、存储能力和通信能力相对比较强。
目前,基于分簇的协议是无线传感器网络的主要节能手段之一。在分簇路由协议中,将部分存在一定关联的节点划分成一个集合,称为簇。在该集合中推选某个节点作为中心节点,称为簇首节点,简称簇首;其余节点则为簇成员节点。簇首节点对簇内成员节点进行管理从而实现协同工作,并负责收集簇内的信息和簇间信息转发。通过将无线传感器网络的传感器节点分簇,能够有效地组织网络拓扑,采用多跳传输的方式进行通讯,可以减少长距离的传输,因此能够有效减少能源的消耗,进而延长网络生命期。但是无线传感器网络是一种节点数目分布密集的网络,在一些现有的协议[6,7,8,9,10]中是对LEACH协议的各种改进,以上协议性能的评估都是基于节点的存活个数、网络总能耗和sink节点接收数据总量。目前为止没有协议是用网络的覆盖率来对网络进行性能评估。节点的存活个数只是片面的说明了网络中存活的节点数目,但是不能说明这些存活的节点都是高效的节点,都是有用的节点,有可能存活的节点冗余度很大,对监测区域的覆盖率很小。而通过用网络的覆盖率来对网络进行性能评估能够利用节点的冗余度来使网络的监测区域达到最大。
一些文献提出对覆盖问题的研究以及应用,它们都是通过覆盖率来对工作节点进行布置优化从而使工作的节点冗余度能够达到最小,也就是通过减少工作节点的数目来延长网络的生存周期,是利用覆盖率来减小节点的冗余度来达到节能的目的。对网络的生存性评估并没有改变,还是通过存活节点的数目,网络的能耗和sink节点的接收数据量等来进行评估。
针对LEACH协议及以上协议中生存性分析存在问题,我们提出了本发明的协议。在LEACH协议中,最耗能的节点就是簇首节点,所以当选为簇首的节点更容易死亡,考虑到这个问题,本发明协议通过对LEACH协议的改进,通过选取邻节点数(NeighborNodes)较多的节点作为簇首,充分利用传感器节点的冗余问题,选取冗余度较大的节点作为簇首,通过计算网络的覆盖率来分析网络的生存性能。冗余度大的节点相对冗余度小的节点的死亡对网络覆盖率来说影响较小,有些节点死亡甚至不影响网络的覆盖率。用neighborCount_i表示节点i的邻居节点数目,用CR表示每轮中的覆盖率。对于节点密集的传感器网络,用覆盖率作为网络的生存性分析更为准确直观。
发明内容
为解决上述问题,本发明提供了一种基于覆盖率作为生存性分析的选簇无线传感网选簇方法,解决了LEACH协议中簇首选举方法随机性弱点和仅仅利用存活节点个数作为生存性分析的不足。在LEACH协议中,最耗能的节点就是簇首节点,所以当选为簇首的节点更容易死亡,考虑到这个问题,本协议采用选取邻节点最多的节点作为簇首节点,并采用覆盖率来对网络进行生存性分析,即以存活节点所覆盖面积与全部节点所覆盖面积的比值作为依据来衡量网络生存性,使得网络保证覆盖率的有效生存时间更长。
为实现上述目的,本发明采取的技术方案为:
一种基于覆盖率进行生存性分析的无线传感网选簇方法,协议包括以下流程;
S1、Sink节点内计算网络覆盖率;
S2、每个节点以半径Ri发送消息,同时每个节点以半径Ri接收消息以确定邻节点表NeighborTable;
S3、每个节点以半径Ri发送消息,同时每个节点以半径Ri接收消息以确定邻节点表NeighborTable;
S4、从邻节点表NeighborTable中统计邻节点个数neighborCount;
S5、节点产生0-1的随机数,并根据簇首选择公式提供的阈值选择簇首节点,随机数小于阈值则当选为簇首节点;
S6、簇首节点以相同功率广播消息,其余节点根据收到广播消息的强度选择加入哪一簇,并发送消息给簇首从而完成分簇;
S7、进行簇内TDMA时隙分配;
S8、进行数据传输,一段时间后进入新的一轮循环。
其中,所述协议流程被分为若干轮。
其中,所述网络覆盖率的公式为:
其中,,Si是第i轮存活节点的总覆盖面积,S0是网络中的所有节点的最大覆盖面积。
其中,所述第i轮存活节点的总覆盖面积通过以下步骤获得:
S11、对目标监测区域进行离散化,即以d间隔距离分别在目标区域的x、y轴方向上选取离散点;
S12、计算该离散点(即小网格中心点)到所有存活节点的距离,其中,如果到存活节点的距离中至少有一个距离小于该节点的感知半径,则认为该离散点是被覆盖的;
S13、count加1,遍历所有离散点得到满足条件的个数cound,然后计算第i轮存活节点的总覆盖面积Si=count*d*d。
其中,所述簇首选择公式为:
式中,i表示节点,T(i)为选择簇首的阈值,n为网络节点总个数,p表示簇头节点占这个传感网络所有节点的百分比,r是当前的轮数,mod是求模运算符,neighborCount_i表示节点i的邻节点个数,G是在过去1/p轮中未当选簇头的节点集合。
本发明具有以下有益效果:
本发明用网络的覆盖率来进行生存性评估更为准确和全面,并且基于邻节点个数来选择簇首能充分利用节点冗余、延长网络生存时间。
附图说明
图1为本发明实施例一种基于覆盖率进行生存性分析的无线传感网选簇方法中覆盖面积计算示意图;
图2为本发明实施例一种基于覆盖率进行生存性分析的无线传感网选簇方法的时间划分示意图;
图3为本发明实施例一种基于覆盖率进行生存性分析的无线传感网选簇方法的流程图。
具体实施方式
为了使本发明的目的及优点更加清楚明白,以下结合实施例对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例中传感器网络在部署时有如下假设:
(1)传感器节点随机部署在指定的长方形监测区域中,该区域的长为,宽为,网络一经部署不再移动。Sink节点位于观测区域外。
(2)在指定的长方形监测区域内随机部署n个传感器节点。
(3)网络链路是对称的。
(4)所有传感器节点通信模型和感应模型都是圆盘模型,即通信范围和感应范围都是呈圆盘状;采用的感知模型是全向的圆形覆盖模型,即传感器节点的感知半径分别为,当物体位于感知半径的圆形区域内,物体就能被传感器感应,该模型可分别表示为:
其中,j为目标区域中的某一点,i为该异构传感器网络中的传感器节点,i和j两点之间的欧式距离为d(i,j),r1和r2为不同节点的感知半径。假设i和j两点在二维空间中的坐标为(xi,yi)和(xj,yj),则d(i,j)可表示为:
相关定义及计算公式:
定义1如果某个区域内任一点至少被一个节点覆盖,就称这个区域是覆盖的。
定义2网络生存性覆盖率的定义,本轮覆盖面积是本轮中存活节点的总覆盖面积,网络生存性覆盖率则是本轮所有存活节点的覆盖面积与网络中所有节点的最大覆盖面积的比值。
网络覆盖面积及覆盖率的计算:
覆盖面积的计算。(该部分是在sink节点内进行的,不影响簇首的选取速率)
我们把传感器节点对目标监测区域的覆盖面积离散化分析。首先对目标监测区域进行离散化,即以d间隔距离分别在目标区域的x、y轴方向上选取离散点。得到的每个x和y上的离散点对应成一个小的网格区域,将每个小的网各区域看成离散的点。计算该离散点(即小网格中心点)到所有存活节点的距离,如果到存活节点的距离中至少有一个距离小于该节点的感知半径,则认为该离散点是被覆盖的,count加1。用这种方法遍历所有的监测区域,最后覆盖面积S=count*d*d。如图1所示,按照上述方法,方格i不被覆盖,方格j,k被覆盖。
网络覆盖率用CR表示,公式如下:
其中,,Si是第i轮存活节点的总覆盖面积,S0是网络中的所有节点的最大覆盖面积。
实施例
从本发明协议开始运行到网络中节点全部死亡的全过程,可以用“轮”来划分。其中每一轮又分为两个阶段,分别是簇的形成阶段和稳定的数据传输阶段。与此同时,sink节点内进行覆盖率的计算,这并不影响簇首选择速度。本发明协议的时间划分如图2所示,本协议的过程流程图如图3所示。
本发明假定网络中有n个节点均匀分布在一个的区域中,网络中的节点静止不动或者很少移动。在本发明协议中,网络中的所有节点配置有相同的能量,即网络是同构网络。它将网络的运行时间分为若干“轮”,在本发明的协议中,每个节点需要保存一张邻居表Neigbhor Table,存储其邻居节点的ID和当前状态。网络中每个节点ID用全网唯一的整数值标识,即节点ID表示该节点在网络中的唯一身份。在一开始所有节点都要将自己的位置信息和ID号发送给sink节点,以后便不再发送。每一轮中所有存活节点都发送一个“HELLO”信息给sink节点,通知sink节点哪些节点还活着,sink节点根据上述提到的方法计算网络的覆盖率。
簇的形成阶段:
在每轮开始时,每个节点首先以半径Ri广播消息Msg,Msg消息包括该节点的ID和状态(存活节点用“1”表示状态).任何一个节点Si半径Ri内的所有其他节点被看作是节点Si的邻居,每个节点根据所有邻居节点发送的Msg更新其邻居表NeigbhorTable。在每轮开始时节点都要从NeigbhorTable中统计自己的邻居节点个数neighborCount_i,邻节点个数多的节点更有机会当选为簇首。
此外,在仿真LEACH协议时,我们发现在随机选取簇首时,没有簇首或者簇首数目过多都会加速节点的死亡,因此,在本发明中加入了限制簇首数目的条件,在每轮当中必须保证至少有一个簇首,最大簇首数目不能超过预先设定值MaxClusterNum,在n个节点的网络中,我们一般设定最优簇首数目是2%~5%,所以在此可以设定MaxClusterNum的值是5%.这样可以避免没有簇首或者簇首数目过多导致节点的快速死亡情况。
本发明协议的簇首选择公式如下式所示:
式[2]中,i表示节点,T(i)为选择簇首的阈值,n为网络节点总个数,p表示簇头节点占这个传感网络所有节点的百分比,r是当前的轮数,mod是求模运算符,neighborCount_i表示节点i的邻节点个数,G是在过去1/p轮中未当选簇头的节点集合。
当簇首节点选定之后,簇首们应用CSMA/MAC协议以相同的发射功率向剩余节点们广播自己成为簇首的消息,称为ADV,剩余节点在聚类广播阶段必须将接收器持续打开以接听簇首们的ADV消息,当剩余节点接收完簇首的ADV消息之后,根据接收到的ADV消息的能量强度来决定加入哪个簇首,。由于信道对称且ADV消息是以相同的发射功率发送,,簇首发出的ADV报文信号越强,则其和该普通节点进行通信时能耗越小,在无障碍物影响下,该簇首是离普通节点最近的节点。从而加入此簇首的聚类相对可以节省能量。在传感器节点确定加入哪个簇首的聚类之后,传感器节点用CSMA/MAC协议发送Join-REQ到相应的簇首。簇首接收所有的Join-REQ消息。到此,无线传感器网络节点的簇已经形成。
数据传输阶段:
一旦簇建立起来了,TDMA时隙分配以后,就开始了数据传输阶段。簇内成员节点将在各自的TDMA时隙内传送数据到簇头,由于它们选择广播信号最强的节点作为自己的簇头,因此在这个数据传输阶段它们将消耗较少的能量发送数据。在没有轮到普通节点发送数据的时间内,它们可以关闭各自的收发器,尽可能地降低它们的能量损耗。而簇头节点必须时刻保持其收发器处于工作状态,用来接收各个成员节点发送的数据。当接收到所有成员节点的数据后,簇头节点执行信号处理程序,把数据压缩成一帧信息。最后再将这帧信息发送至汇聚节点。经过一段时间的数据传送后,进入下一轮。
综上所述,本具体实施用网络的覆盖率来进行生存性评估更为准确和全面,并且基于邻节点个数来选择簇首能充分利用节点冗余、延长网络生存时间
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。




评论
全部评论
共{{commentCount}}条{{rs.Msg_Content}}