一种无线传感器网络中能耗均衡的分簇算法的制作方法

文档序号:15498652发布日期:2018-09-21 22:09阅读:321来源:国知局

本发明涉及一种无线传感器网络中能耗均衡的分簇算法,可用于在无线传感器网络中进行能耗均衡的节点聚类,以达到延长网络生命周期的目标。



背景技术:

无线传感器网络由部署在监测区域内大量廉价的微型传感器节点组成,通过无线通信的方式形成一个自组织的网络系统,其目的是相互协作地感知、采集和处理监测区中感知对象的信息,并发送给观察者。依据拓扑结构的不同,无线传感器网络的路由协议可以分为平面路由协议和分簇路由协议。由于平面路由协议扩展性差网络规模小,应用受到局限。而分簇路由协议拓展性、容错性和节能等方面表现优异从而应用广泛。

无线传感器网络中,分簇算法的簇头选举机制主要有以下几种。leach(low-energyadaptiveclusteringhierarchy)和teen(thresholdsensitiveenergyefficientsensornetworkprotocol)算法的簇头选举是节点随机生成0-1的随机数,只要大于阈值就可以成为簇头,阈值是通过簇头选举概率和网络当前运行的轮数计算出来的。该方法缺点为簇头选举完全随机,不能保证所选择簇头最为合适,没有考虑节点的能量和位置信息,簇头数目没有实际的理论依据求出。leach-c(low-energyadaptiveclusteringhierarchycentralized)算法的簇头选取不是随机的,而是完全由基站控制。基站通过收集全局性的节点位置和能量信息,计算出网络中的能量均值,利用模拟退火算法进行分簇,并且为各个簇选择簇头。该方法缺点为只适用于小规模系统,遇到大规模网络泛洪将会导致消耗很多能量甚至是网络阻塞;heed(hybridenergyefficientdistributedclustering)算法是依据节点的剩余能量,节点到邻居节点的临近度和节点密度,通过多次迭代计算确定簇头。该方法的缺点为循环迭代选取簇头消耗能量大。

在成簇方式方面,heed(hybridenergyefficientdistributedclustering)算法,节点根据接收到的簇头消息中携带的amrp(averageminimumreachabilitypower)平均可到达能量,来决定加入哪一个簇,这解决了一个节点同时被多个簇头覆盖后最终加入哪个簇的问题。没有收到簇头消息的节点认定自己为“孤立节点”,并声明自身为簇头。缺点为会产生孤立节点,而且没有考虑邻居节点到簇头节点的距离因素,网络中大簇较多,容易造成网络的某些节点死亡过快,从而影响网络的稳定性。

在簇间路由方面,teen(thresholdsensitiveenergyefficientsensornetworkprotocol)算法,通过硬和软两个阈值决定节点间的通信。上一级节点向下一级节点广播硬和软两个阈值,用于决定该节点向上一级节点发送数据的条件,即当传感器节点感知的数据第一次超过硬阈值时,节点向上一级节点发送数据,并保存该监测值;之后只有当感知数据超过硬阈值且与监测值之差大于或等于软阈值时,节点才会上传数据给上一级节点,并保存新的监测值。缺点:如果感知数据没有达到阈值,节点间不会进行通信,用户不能从该网络获取任何数据,也无法判断节点是已经失效,还是阈值设定出错。

以上算法为均匀分簇算法,都是将网络划分成多个大小相似的簇,由于节点的均匀分布,簇内的成员个数也大致相同。在各个簇内,所有节点的能量消耗之和大致相等。然而在簇头和基站通信的时候就会因为各个簇头距离基站的远近不同,而产生能量消耗不均匀的问题。对于簇间单跳的网络而言,远离基站的节点会因为使用了较大的数据发射功率而产生较多能量消耗。对于簇间多跳的网络而言,基站附近的簇头节点会因为参与多次数据转发而消耗大量的能量。在簇间多跳转发时,基站附近的簇头节点承担较多的转发任务,从而消耗较多的能量,造成网络能耗不均匀的问题,研究人员称之为″热区″问题。

为了解决“热区”问题,非均匀分簇方式应运而生。比较有代表性的非均匀分簇算法为eeuc算法、ucfia算法和udeb算法等。

eeuc算法是一种能量高效的非均匀分簇算法。在该算法的每个成簇周期,节点首先根据概率t选取候选簇头,然后在候选簇头中再根据剩余能量进行簇头的选举。特别的,在候选簇头竞争簇头的阶段,网络中的其它节点都会一直处于休眠的状态,直至竞选结束。eeuc算法为了构建非均匀簇,提出了一个和节点在网络中的位置相关的成簇竞争半径,节点距离sink节点越近,其成簇半径就越小。在数据传输阶段,eeuc算法规定,若簇头到sink节点的距离小于预先设定的阈值,则该簇头采用单跳的路由模型和sink节点进行通信;否则采用多跳的路由模型和sink节点进行通信。在簇头选择其下一跳路由时,要在其邻居簇头中选择剩余能量和转发代价都满足要求的簇头作为其下一跳路由。eeuc多跳路由算法是比较经典的采用非均匀分簇思想的算法,通过成簇竞争半径,把网络划分为大小不均匀的簇,并且在选择路由时考虑了下一跳路由的剩余能量和转发代价,均衡了网络的能量消耗。但由于eeuc算法的用于控制竞争半径的取值范围的参数选择比较困难,制约了其性能的发挥。

ucfia算法是一个分布式的自组织分簇算法。在簇头选举时,ucfia算法将节点的剩余能量、距基站的距离和密度等局部信息作为候选簇头竞选簇头和成簇竞争半径的参考指标,并利用模糊理论模型构建非均匀簇。在数据传输阶段,利用最大-最小蚁群优化算法(adaptivemax-minantcolonyoptimization,aco)选择多跳路由。ucfia算法利用模糊理论和aco构建了一个能量高效利用的wsns,简化了成簇的难度,但是ucfia算法中的许多参数如最大局部密度、最大竞争半径等的选取并不是最优的,还可以进一步对这些参数进行优化,以提高网络的性能。

udeb为动态路由非均匀成簇算法。该算法以sink节点为中心,将网络由内而外分割成均匀间隔的同心圆,圆环间的间隔为δ。通过对单跳路由模型和多跳路由模型能量消耗的分析,算法规定当δ≤d0时,即圆环间隔在网络临界距离d0之内时,圆环间的节点可直接进行多跳通信,圆环内的节点进行单跳通信,以减少不必要的能量消耗。udeb算法对全网的能量消耗进行了理论计算,确定了各环内的最优簇头个数,并根据最优簇头个数计算出了簇头的竞争半径,保证了网络中每个区域都会选举出簇头。udeb算法在选择路由时综合考虑了能量代价和剩余能量,以加权的方式给出了路由选择概率,简化了算法的复杂度。udeb算法通过构建分环的非均匀分簇网络,较好的解决了能量空洞问题,但其簇头节点在选择路由时采用了两个权值参数,却没有对这两个参数做定量的分析和研究,这制约了wsns生存周期的提高。

dcem(delay-constrainedenergymulti-hop)算法是2016年提出的基于时间约束的高能效分簇多跳路由算法。相比经典算法如leach,heed等算法,在能量消耗,存活节点个数等方面具有优势。但是其分簇方法存在的问题是:只要在优势节点的通信距离内,就以其为簇头,导致一定区域内的优势节点占领了整片区域,优势节点会快速衰竭,需要频繁更换簇头,若更新时间稍慢于衰竭时间,则将丢失该簇信息。其簇间多跳路由的选取是基于最小化能耗,这会导致网络中节点能耗不均。



技术实现要素:

本发明解决的技术问题是:很好地利用了能量较大的节点,允许交叉划分区域,而不是找一个优势节点担任簇头,并且负责包揽全部通信区域,这样降低了簇头负担,有助于避免热区内簇头过度消耗,缓解了热区的问题,有效延长了网络生命周期。

本发明技术解决方案的特点在于包括下列步骤:

1)根据簇头选取方法,选取合适的簇头。

2)根据成簇方法,对网络中节点进行分簇。

3)根据簇间多跳路由算法,形成簇间协作传输路由。

4)判断是否存在热区问题,即给热区内的节点设置一个传输数据量的门阈值,当节点的传输数据量超过门阈值,判断为存在热区问题进行步骤5),否则进行步骤6)。

5)解决热区问题,即令能量最大的簇内节点作为备选节点,传输超过门阈值部分的数据。

6)根据簇间多跳路由,进行节点间的数据传输

7)计算簇内节点和簇头节点的能耗,并更新网络中节点的剩余能量。

8)统计网络总能量消耗和网络中的存活节点个数,轮数加1。

9)判断是否有存活节点,若有存活节点进行步骤10),否则结束仿真。

10)计算网络中能量衰竭的簇头节点个数。

11)若能量衰竭的簇头个数小于等于3,进行步骤12),否则进行步骤1)。

12)簇头选择切换,即对于簇头能量衰竭的簇,选取簇中能量最大的簇内节点代替原簇头,继续完成原簇头的工作。之后进行步骤3)。

本发明的原理是:在无线传感器网络中,设计分簇算法时,很好利用了能量较大的节点担任簇头,并设置了动态搜索半径rch,还设计了簇相交区域划分方法及起到衡量作用的f值公式,以达到能耗均衡,延长网络生命周期的目的。

本发明与现有技术相比的优点在于:比dcem算法的基于最小化能耗的簇间路由算法,在能耗均衡上更具优势,可以更好地延长网络生命周期。

附图说明

图1为本发明算法的解算流程图。

图2为示例1

图3为示例2

图4为示例3

图5为角a与l1/l0的关系曲线

图6为示例4

图7为示例5

图8为网络节点分布图

图9为网络总能量消耗图

图10为网络存活节点个数图

具体实施方式

1:簇头选取方法为:网络初始化时,汇聚节点收集全网节点的id信息、位置信息、剩余能量信息并保存,之后仅更新节点的剩余能量。汇聚节点将所有节点,能量排序,取前5%的点为簇头,以半径rch搜索附近节点,成为一个簇。若整个区域不能实现全覆盖,对于剩余未分簇节点,再取能量为前5%的节点为簇头,以半径rch搜索附近节点,成为一个簇。如此循环,直到达到整个区域可通信全覆盖。节点睡眠固定时间后接收汇聚节点广播的网络分簇表。

因为搜索半径rch与节点的剩余能量及距sink节点的距离有关。依据能量越大,距sink节点距离越大,rch越大的原则,设置搜索半径rch的公式为:

α1+β1=1(2)

其中:di_sink为任意簇头节点i到sink节点的距离,dmax为这一次选簇头循环中选出的簇头节点距sink最远的距离,ei为簇头节点i的剩余能量,em,i表示最大的电池容量,d0为无线信道模型中的传输阈值,α1和β1为参数。

2:成簇方法为:位于簇相交区域的节点,分簇时应该考虑距簇头节点的距离,簇头节点的剩余能量,簇头节点距sink节点的距离。由于靠近sink节点的簇头节点需要转发来自其他簇的数据而负担过重,过早耗尽自身能量而失效进入休眠状态,造成网络分割,降低网络存活时间。研究者称这个问题为“热区”问题。

为了避免这个问题,如图2示例1所示,若簇头节点i1和i2距sink节点的距离不超过rch,簇头节点j距sink节点的距离大于rch,那么簇头节点i1和i2分别与簇头节点j相交区域的节点,归为簇头节点j的簇内节点。在簇头节点i1与i2相交区域的节点,分别计算f值,相交区域的节点成为f值大的簇头节点的簇内节点。

如果簇头节点距sink节点的距离均大于rch(如图3示例2所示),相交区域的节点分别计算f值,相交区域的节点成为f值大的簇头节点的簇内节点。f值的计算公式为:

式中,fm_j表示相交区域的节点m到簇头节点j的适应值,ej表示簇头节点j的剩余能量,dm_j表示相交区域的节点m到簇头节点j的距离。α2和β2为权重值,可根据需要调整。

3:协作有利的不等式关系为:当时,协作有利。其中d1为节点到协作节点的距离,d2为协作节点到sink节点的距离,d3为节点到sink节点的距离。

推导:一个理想的全向天线,自由空间损耗是

式中pt是传输天线的信号功率,pr是接收天线的信号功率,λ是载波波长,d是天线之间的传播距离,c是光速(3*108m/s)。

节点的位置关系如图4示例3所示,设簇头a,b收集到的数据量都为l比特,总数据量为2l比特,那么:

l0=lac+lbc(8)

l1=lab+lbc(11)

由公式(12)可知,令l1/l0<1,那么当时,协作有利。特别是:当d1=d2时,由图5角a与l1/l0的关系曲线可知,当时,l1/l0=1。所以当角时协作有利,再一次证明了结论当时,协作有利。

节点的位置关系如图6示例4所示,设总数据量为2l比特,簇头a的能量比簇头b的能量大,相交区域划分;簇头a收集到的数据量为xl,簇头b收集到的数据量为(2-x)l,那么:

令l1/l0<1,那么当时,协作有利。

4:簇间多跳路由算法:

簇间路由采用“单跳”还是“多跳”的数据传输方式,需要根据簇头节点与sink节点间的距离来判断。距离值dlin作为临界距离,簇头节点i到簇头节点j的距离为di_j,簇头节点j到sink节点的距离为dj_sink,簇头节点i到sink节点的距离为di_sink。当di_sink≤dlin时,采用“单跳”的方式,即簇头节点i直接将信息发送给sink节点。当di_sink>dlin时,若满足不等式关系协作有利,故采用“多跳”的方式。

簇间的多跳路由的伪代码如下:

将所有簇头节点,按照距sink节点的距离降序排序,是为了先为距离sink节点最远的簇头节点寻找下一跳节点,直到形成该节点到sink节点的簇间路由。再为除热区外剩余的距离最远的节点寻找下一跳节点,直到形成该节点到sink节点的簇间路由。以此循环迭代直到所有簇头节点都有明确的路由。

在算法第5行为簇头节点i寻找下一跳节点时,满足条件的节点j为下一跳备选节点,式中di_j为簇头节点i到簇头节点j的距离,dj_sink为簇头节点j到sink节点的距离,di_sink为簇头节点i到sink节点的距离。用公式(18)为每个备选节点都算一个f判断值,降序排序,f判断值最大对应的节点j选为确定的下一跳节点。

从备选下一跳节点j中选择合适的节点,需考虑当前的实时剩余能量,不光考虑能量大的节点,还要考虑帮助其他簇头节点转发的次数。依据能量越大,帮忙转发的次数越少的备选节点为下一跳节点,那么判断值为:

er(j)=leelecnumch(j)(19)

ef(j)=lefusenumch(j)(20)

其中f(j)为判断备选下一跳节点j是否合适的的判断值,每个备选节点都算一个值,降序排序,判断值最大的选定为下一跳节点,e(j)为簇头节点j的剩余能量见,er(j)为簇头节点j收集所有簇内节点数据消耗的能量见公式(19),ef(j)为簇头节点j对收集到的簇内节点数据进行数据融合消耗的能量,见公式(20),数据长度为lbit,numch(i)为属于簇头节点i的簇内节点的个数,nj为记录簇头节点j帮助其他簇头节点转发的次数,λ1为参数,常量eelec=50nj/bit,efuse=5nj/bit。

举例说明:上述提出的簇间多跳路由算法,也考虑和解决的了节点之间协作的竞争关系。如图7示例5所示,节点2,3,4可以作为节点1和节点5的备选下一跳节点,假如根据公式(18)节点1和节点5都选择了节点2作为协作节点,是否会出现竞争关系?根据簇间多跳路由算法可知:先为距sink最远的节点1寻找下一跳协作节点,直到形成该节点到sink节点的簇间路由。再为节点5寻找下一跳协作节点,直到形成该节点到sink节点的簇间路由。因为有排序的先后,所以涉及到了考虑竞争关系。

而且在根据公式(18)寻找下一跳协作节点时,公式(18)考虑了nj(其为记录簇头节点j帮助其他簇头节点转发的次数),依据能量越大,帮忙转发的次数越少的备选节点为下一跳节点。因为考虑了帮忙转发次数,所以也考虑了竞争关系。

节点2同时为节点1和节点5的协作节点的可能性只能是:节点2已经帮了节点1后,依据公式(18)还是优于节点3和4,那么节点2作为节点5的协作节点也是合理的。

5:能耗计算

由于簇内节点只需要将采集到的数据发送给簇头节点,每个簇内节点的能耗为:

其中dj为簇内节点j到其簇头节点的距离,数据长度为lbit,常量eelec=50nj/bit,εfs=10pj/(bit·m2)。

由于簇头节点需要融合所有簇内节点的数据,将综合数据传输下去。每个簇头节点的能耗为:

ech(i)=er(i)+ef(i)+etx(i)(22)

er(i)=leelecnumch(i)(23)

ef(i)=lefusenumch(i)(24)

其中,er(i)为簇头节点i收集所有簇内节点数据消耗的能量,ef(i)为簇头节点i对收集到的簇内节点数据进行数据融合消耗的能量,numch(i)为属于簇头节点i的簇内节点的个数,etx(i)为簇头节点i传输lbit数据到其他簇头节点或者sink节点的能量消耗。eelec为发送和接收单位比特信息的损耗能量;若传输距离小于阈值d0,功率放大器损耗采用自由空间模型;如果传输距离大于阈值d0,则采用多径衰减模型。εfs和εamp分别为这两种模型中发送放大器每发送单位比特信息所需能量,d0为功率放大损耗采用不同模型时的距离阈值,d为两节点间距离。d0越小采用多径衰减模型的概率越大,消耗能量越大,网络生存期和保持正常路由性能的时间缩短。

下面介绍这种无线传感器网络中能耗均衡的分簇算法的具体实施步骤:

1)根据簇头选取方法,选取合适的簇头。

2)根据成簇方法,对网络中节点进行分簇。

3)根据簇间多跳路由算法,形成簇间协作传输路由。

4)判断是否存在热区问题,即给热区内的节点设置一个传输数据量的门阈值,当节点的传输数据量超过门阈值,判断为存在热区问题进行步骤5),否则进行步骤6)。

5)解决热区问题,即令能量最大的簇内节点作为备选节点,传输超过门阈值部分的数据。

6)根据簇间多跳路由,进行节点间的数据传输

7)计算簇内节点和簇头节点的能耗,并更新网络中节点的剩余能量。

8)统计网络总能量消耗和网络中的存活节点个数,轮数加1。

9)判断是否有存活节点,若有存活节点进行步骤10),否则结束仿真。

10)计算网络中能量衰竭的簇头节点个数。

11)若能量衰竭的簇头个数小于等于3,进行步骤12),否则进行步骤1)。

12)簇头选择切换,即对于簇头能量衰竭的簇,选取簇中能量最大的簇内节点代替原簇头,继续完成原簇头的工作。之后进行步骤3)。

仿真环境为:100个节点在100*100区域内随机均匀分布,sink节点位于(100,50),如图8所示。100个节点的能量为[10μj,120μj]随机分布。数据包长度为1bit,efuse=5nj/bit,d0=87m,eelec=50nj/bit;εfs=10pj/(bit·m2);εamp=0.0013pj/(bit·m4),em,i=120μj,簇间多跳临界距离dlin=60m,参数α1=β1=α2=β2=0.5,λ1=1。

在仿真过程中,网络总能量消耗是评价无线传感器网络分簇算法的一个重要指标。本发明提出的方法简称为ebcr,与dcem算法的网络总能量消耗如图9所示,可见ebcr在网络的每一轮的运行中,网络节点总能量消耗都低于dcem,网络生命周期明显长于dcem,有效延长了网络生命周期。dcem与ebcr的存活节点个数如图10所示,节点死亡轮数对比表如下表所示。可见ebcr由于在成簇方式和簇间路由方面的优化,使得网络节点负载均衡,不会过早产生衰竭节点,网络生命周期明显延长。

节点死亡轮数表

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1