一种簇头多重选择能量均衡路由方法
技术领域
本发明主要涉及无线传感器网络领域,特别涉及一种簇头多重选择能量均衡路由方法。
背景技术
无线传感器网络是通过无线通信技术将随机分布在某一监测区域的大量传感器节点以自组织的方式构成网络,节点间协作完成感知、采集和处理目标监测区域内事件的任务。它具有部署灵活,分布式以及成本低等特点,目前已广泛应用在军事、工业和医疗等民用领域,如生态环境监测、基础设施保护,事件定位,目标跟踪等。
传感器节点通常由电池供电,节点能量有限是制约网络寿命的最重要因数之一。为了达到较高的能量效率和保证理想的网络寿命,节点可以采用分层组织成簇的方式。将网络划分为多个簇区,每个簇由若干个普通节点和一个簇头组成,簇头为簇内节点分配TDMA帧,普通节点按照各自的TDMA时隙周期性地在睡眠与工作间切换状态。普通节点在分配的TDMA时隙到来时开启自己的无线通信模块,收集数据,并将收集到的数据发送给簇头节点,此时隙过后,该簇内节点关闭无线通信模块,进入睡眠状态;簇头节点接收到所有簇内成员的数据信息后对它们进行数据融合,再将融合后的数据发送到基站。将网络以簇为单位进行划分,方便管理,提升了网络的可扩展性;同时,簇头对簇内数据的融合以及簇内节点的周期性睡眠能够节省网络能耗,从而延长网络寿命。
低能耗自适应分簇路由协议(Low-Energy Adaptive Clustering Hierarchy,LEACH)是传统分簇路由协议中较著名的一个。协议将网络生命周期以“轮”为单位划分,每一轮分为“成簇”和“稳定传输”两个阶段。在成簇阶段,协议通过簇头随机选举的方式让所有节点以等概率地成为簇头,以达到平衡节点能耗,延长网络寿命的目的。然而,协议的簇头选择算法不能保证簇头的均匀分布,簇头负担不同数量的节点,使全网的负载均衡性下降。同时,协议未考虑网络节点的能耗均衡问题,没有将节点的剩余能量作为簇头选举和普通节点入簇的考虑因素。而且协议采用的簇间单跳通信机制增加了网络的能量消耗和簇头间负载的不均衡。
发明内容
为了解决以上技术问题,本发明提供了一种簇头多重选择能量均衡路由方法。该方法设计一种簇头多重选择(簇头重分布)策略来达到簇头分布的均匀同时使得每轮的簇头数目在一定程度上保持稳定。主要思想为:当簇头初步选举后,在判定簇头稀疏区域与簇头密集区域的基础上对其中的簇头进行增减,从而均匀地分布簇头。同时设计加入了能量因素的簇头选择算法和非簇头节点入簇算法来解决节点间能耗不均衡的问题。主要思想为:根据节点剩余能量的不同来控制其负载(即是否成为簇头和簇的大小),以期达到能量均衡的目标。而且还引入簇间通信的多跳机制,能够减少直接与基站通信的簇头数量,在一定程度上能降低网络能耗,均衡簇头间的负载。主要思想为:各簇头分别采用启发式的方法计算最小能量消耗的转发路径(按自由空间模型),据此各自选择下一跳的转发簇头,通过这种簇头间的分布式计算生成整个网络的多跳路由。并且通过设定基站直接通信范围的方式减轻多跳机制所产生的“热点”问题和延迟问题。
运行本路由方法的无线传感器网络的生命周期以“轮”为单位划分,网络生命周期结束的时间点为网络中首个节点因能量耗尽而死亡。该路由方法每轮的执行包括如下步骤:
步骤1)集合G中的节点将阈值T(n)与一个0到1之间的随机值x做比较,若x < T(n),则该节点成为簇头;每轮初始时集合G中的元素为最近t轮中未成为过簇头的节点。
步骤2)上一步中选出的簇头按各自的时间Ti广播通知给其他所有节点,其中附带簇头剩余能量信息Ei和簇头自身到基站的距离di,BS(下标i表示节点自身);若有还在等待发送通知的簇头收到其他簇头通知的信号强度Prec大于阈值P1,则取消发送通知,并选择成为普通节点。
步骤3)所有节点接收到簇头的广播包后,除了得到其中附带的该簇头到基站的距离dk,BS(下标k(k ≠ i)表示除自身以外的其他节点)外,还可以根据收到广播的信号强度估算出自身与该簇头间的距离di,k,并将上述两个值保存下来;同时所有普通节点对收到的通知,进行如下的判断和选择:首先将收到的通知的信号强度Prec与阈值P2进行比较,若Prec≧ P2,则设定针对该簇头的重选标记CHi_ReSelect为false,否则为true;然后依次对收到的通知信号进行比较,只保留符合条件的通知的发送簇头信息,比较的方式如下:若两者的CHi_ReSelect均标记为false,则保留参数Di最大者,Di为Ei与Prec之积;否则,保留Prec最大者;若本轮首次执行步骤3),转至步骤4);否则跳转至步骤5)。
步骤4)更新集合G中的节点为步骤3)中最后保留下来的簇头信息的重选标记CHi_ReSelect为true的普通节点,跳转至步骤1)。
步骤5)普通节点向步骤3)中最终保留下来的簇头发送入簇申请;簇头根据收到的普通节点入簇申请进行建簇,安排稳定传送阶段的TDMA时序表,广播给簇成员节点。
步骤6)簇头根据步骤3)中保存下来的距离信息,决定自身的下一跳簇头或直接向基站发送信息。具体如下:若簇头自身到基站的距离di,BS小于阈值dth2,则该簇头直接向基站发送信息,不再寻求下一跳的转发;其余簇头选择同时满足如下三个条件的簇头,作为下一跳的待选转发节点:
条件1. 簇头自身到保存信息中的其他簇头的距离di,k小于阈值dth1;
条件2. di,k小于簇头自身到基站的距离di,BS;
条件3. 保存信息中的其他簇头到基站的距离dk,BS小于di,BS。
取其中dk,BS 2 + di,k 2最小的簇头作为下一跳的转发节点。若同时满足上述三个条件的节点不存在则直接向基站发送信息。
步骤7)所有普通节点根据接收到的TDMA时序表,在分配好的时隙将监测到的数据传送给簇头,其他的时间则进入休眠状态;簇头接收到所有簇内成员节点的数据后,进行数据融合,然后以多跳的方式发送到基站;经过设定时间的数据传送之后,在重新开始新一轮之前,所有簇内成员节点在本轮最后一次向簇头发送数据时附带自身的剩余能量信息,簇头经过计算后将该簇内所有节点的平均剩余能量Ecur-aver和最大剩余能量Ecur-max广播给簇内成员节点。
本发明相较与传统方法的优点如下:
1)设计了一种簇头多重选择(簇头重分布)策略来达到簇头分布的均匀同时使得每轮的簇头数目在一定程度上保持稳定。当簇头初步选举后,在判定簇头稀疏区域与簇头密集区域的基础上对其中的簇头进行增减,从而均匀地分布簇头。
2)加入了对节点剩余能量这一因素的考量,设计新的簇头选择算法和非簇头节点入簇算法来解决各节点能量消耗的独立性所产生的节点间能耗不均衡的问题。根据节点剩余能量的不同来控制其负载(即是否成为簇头和簇的大小),以期达到能量均衡的目标。
3)引入了簇间多跳通信机制,各簇头分别采用启发式的方法计算最小能量消耗的转发路径,据此各自选择下一跳的转发簇头,通过这种簇头间的分布式计算生成整个网络的多跳路由。解决了簇间单跳通信引起的能耗过大和不均衡问题。并且通过设定基站直接通信范围的方式来减轻多跳机制所产生的“热点”问题和延迟问题。
4)由于存在以上三方面优点,本路由方法相比传统分簇路由方法,有效地降低了网络的能量消耗,均衡了节点间的能量,显著地延长了网络的生命周期。
5)本路由方法的控制消息开销仅为(1 + 2P) × N,小于或等于传统分簇路由方法,P为簇头比例,N为节点数。同时需要增加的报文长度仅为10bits左右,影响极小。
附图说明
图1为本发明技术采用的无线传感器网络模型示意图;
图2为本发明技术的流程图;
图3为簇间多跳通信机制运作的示意图。
具体实施方式
下面结合附图对本发明做进一步的说明:
如图1所示,本发明采用的无线传感器网络模型为:N个传感器节点(这里N我们设定为100)随机地分布在 的二维平面区域内,基站(sink节点)则设置在监测区域外来接收簇头发送的数据并处理。所有N个节点同构,即节点完全相同,地位相等,且具有相等的初始能量。而且,节点传感器网络部署好之后,不再人为地移动节点,所有节点都静止不动,我们用坐标区域x=(0,X),y=(0,Y)来表示的二维平面(这里我们设定X=100,Y=100)。
在网络部署完后,基站将广播一个“hello”信息到所有节点,在一个已知的固定功率强度,根据收到的基站广播的信号强度,所有节点可以估算出关于节点自身到基站BS距离的一个近似值di,BS。
如图2所示,本发明的网络具体运行流程以“轮”为单位,直至网络生命周期结束。这里网络生命周期结束被定义为网络中首个节点因能量耗尽而死亡。每一轮可以分为两大部分:成簇阶段和稳定传输阶段。其中成簇阶段又可以分为两部分:簇头选择阶段和非簇头节点入簇阶段。
这里将不同的节点身份状态作简略描述:所有节点在每轮的成簇阶段开始时都是处于相同的状态和地位;经过簇头选择阶段之后被划分为簇头节点和非簇头节点(即普通节点);经过非簇头节点入簇阶段后所有非簇头节点加入某个簇头节点所在的簇,成为其中的簇内成员节点。
结合图2中的标记,每一轮的具体步骤如下:
成簇阶段:
簇头选择阶段:
1)集合G中的节点将阈值T(n)与一个0到1之间的随机值x做比较,若x < T(n),则该节点成为簇头;每轮初始时集合G中的元素为最近t轮中未成为过簇头的节点;若本轮首次执行步骤1),T(n)根据下式计算得到:
否则T(n)根据下式计算得到:
T(n) = min{ × P , 1}
t根据下式计算得到:
其中P为簇头比例,r为当前的轮数,Ecur为节点当前剩余能量,Ecur-aver为上一轮结束时簇内成员的平均剩余能量,[x]表示不大于x的最大整数;
2)上一步中选出的簇头按各自的时间Ti广播通知给其他所有节点,其中附带簇头剩余能量信息Ei和簇头自身到基站的距离di,BS(下标i表示节点自身);若有还在等待发送通知的簇头收到其他簇头通知的信号强度Prec大于阈值P1,则取消发送通知,并选择成为普通节点;Ti根据下式计算得到:
其中T为簇头广播通知阶段总的时间间隔,Ecur为节点当前剩余能量,Ecur-max是上一轮结束时簇内成员中节点的最大剩余能量,ki是一个随机时间集合;
P1根据下式计算得到:
P 1 = λ 1 × P brodcast
其中Pbrodcast为簇头广播时所使用的功率大小,λ1为一个根据部署的网络预定义的值;
3)所有节点接收到簇头的广播包后,除了得到其中附带的该簇头到基站的距离dk,BS(下标k(k ≠ i)表示除自身以外的其他节点)外,还可以根据收到广播的信号强度估算出自身与该簇头间的距离di,k,并将上述两个值保存下来;同时所有普通节点对收到的通知,进行如下的判断和选择:首先将收到的通知的信号强度Prec与阈值P2进行比较,若Prec≧ P2,则设定针对该簇头的重选标记CHi_ReSelect为false,否则为true;然后依次对收到的通知信号进行比较,只保留符合条件的通知的发送簇头信息,比较的方式如下:若两者的CHi_ReSelect均标记为false,则保留参数Di最大者,Di为Ei与Prec之积;否则,保留Prec最大者;若本轮首次执行步骤3),转至步骤4);否则跳转至步骤5);P2根据下式计算得到:
P 2 = λ 2 × P brodcast
其中Pbrodcast为簇头广播时所使用的功率大小,λ2为一个根据部署的网络预定义的值;
4)更新集合G中的节点为步骤3)中最后保留下来的簇头信息的重选标记CHi_ReSelect为true的普通节点,跳转至步骤1);
非簇头节点入簇阶段:
5)普通节点向步骤3)中最终保留下来的簇头发送入簇申请;簇头根据收到的普通节点入簇申请进行建簇,安排稳定传送阶段的TDMA时序表,广播给簇成员节点;
稳定传输阶段:
6)簇头根据步骤3)中保存下来的距离信息,决定自身的下一跳簇头或直接向基站发送信息。具体如下:若簇头自身到基站的距离di,BS小于阈值dth2,则该簇头直接向基站发送信息,不再寻求下一跳的转发,dth2表示一个关于簇头到基站距离的阈值;其余簇头选择同时满足如下三个条件的簇头,作为下一跳的待选转发节点:
条件1. 簇头自身到保存信息中的其他簇头的距离di,k小于阈值dth1,dth1表示一个关于两簇头间距离的阈值;条件2. di,k小于簇头自身到基站的距离di,BS;条件3. 保存信息中的其他簇头到基站的距离dk,BS小于di,BS。
取其中dk,BS 2 + di,k 2最小的簇头作为下一跳的转发节点。若同时满足上述三个条件的节点不存在则直接向基站发送信息;
7)所有普通节点根据接收到的TDMA时序表,在分配好的时隙将监测到的数据传送给簇头,其他的时间则进入休眠状态;簇头接收到所有簇内成员节点的数据后,进行数据融合,然后以多跳的方式发送到基站;经过设定时间Tround的数据传送之后,在重新开始新一轮之前,所有簇内成员节点在本轮最后一次向簇头发送数据时附带自身的剩余能量信息,簇头经过计算后将该簇内所有节点的平均剩余能量Ecur-aver和最大剩余能量Ecur-max广播给簇内成员节点。
图3给出了簇间多跳通信机制运作的示意图。如图3所示,簇头a,b与基站的距离在阈值dth2的范围内,因此直接与基站通信;而簇头c,d,e各自通过上述的步骤6)计算判定其下一跳节点,图3中分别选择了a,b,d作为其转发数据的下一跳,相比单跳的通信方式将有效地降低网络的能耗,同时平衡距离基站不同的簇头间的负载。