一种基于模糊逻辑的WSN能量中性分簇路由方法与流程

文档序号:17090114发布日期:2019-03-13 23:21阅读:202来源:国知局
一种基于模糊逻辑的WSN能量中性分簇路由方法与流程

本发明属于通信技术领域,涉及一种基于模糊逻辑的wsn能量中性分簇路由方法。



背景技术:

在传统的无线传感器网络(wsn)中,节点最终都会不可避免地耗尽能量,传感器进入死亡状态进而停止运作。为了满足未来对传感器节点不断增长的应用需求,开始为节点配备各种环境能量获取装置,这种传感器节点构成的wsn称为能量获取无线传感网络(energyharvestingwirelesssensornetwork,en-wsn)。

ep-leach算法利用一个能量势能函数来估算每个节点的能量获取能力和剩余能量的大小,并以此计算节点成为簇头的概率,协议最终延长了网络的生存周期,同时增加网络吞吐量。对于eh-wsn,路由协议的目标已经不仅仅是延长网络工作时长了,由于节点具有能量获取装置,当收集到足够的能量时死亡的节点将恢复运作。通过维护网络中的每个传感器节点来保持能量中性状态,理论上能够使eh-wsn永久地运行下去。

当为eh-wsn设计分簇算法时,节点能量、节点获取能量能力以及周围节点能量情况等因素都要考虑进去。因此,如何在多种条件下选择合适的簇首对整个网络的稳定性影响很大。type-2模糊逻辑能够处理由于输入不精确和复杂造成的不确定性,所以很适合用在分簇路由协议中,可以综合多种因素,更加合理的模拟人做出决策选择簇头,更具合理性。



技术实现要素:

有鉴于此,本发明的目的在于提供一种基于type-2模糊逻辑的eh-wsn能量中性分簇路由方法,利用马尔科夫链模型预测节点获取能量,构建动态簇头群组,在能量中性约束下通过凸优化得到最优分簇数量,type-2模糊逻辑系统不仅考虑节点剩余能量和获取能力,而且额外考虑邻居节点平均势能,提升簇头选取合理性,能够达到理论上无限长的网络工作时长,同时提升系统吞吐量。

为达到上述目的,本发明提供如下技术方案:

一种基于type-2模糊逻辑的eh-wsn能量中性分簇路由方法,包括以下步骤:

步骤1)基于获取能力预测构建能量中性约束;

步骤2)构建动态簇头群组,根据最大化基站吞吐量得到最优分簇数量;

步骤3)设计type-2模糊逻辑推理系统,传感器节点根据模糊系统计算出当选簇头概率。

进一步,所述步骤1)具体包括以下步骤:

步骤11)太阳能量收集曲线上相同时刻节点收集到的能量与各自的下一时刻收集的能量的比值具有随机序列的特性,基于这个序列构建markov能量获取预测模型。能量收集曲线上面一共有t+1个时刻具有能量获取,一共可以建立成t条马尔科夫链。定义当前马尔科夫链状态集为s,对于第i条markov链,将链中各值划分为不同的状态,定义其状态集为si,状态个数为si,则各个状态转移概率为:进而求出第i条markov链的状态转移概率矩阵:定义收益是能量的函数,对于第i条马尔科夫链,存在以下si×1收益向量:根据markov预测公式第一个能量收集时刻的获取能量值,可得知rt1,可以预测下一收集时刻的能量值。

步骤12)对于簇头节点i一轮时间消耗的能量要小于等于当前周期的收获能量和节点之前积累的剩余能量之和,即:对于簇成员节点消耗的能量要小于等于当前周期收获的能量,即为了最大化可利用能量达到最优的网络性能,节点的能量中性约束为:

所述步骤2)具体包括以下步骤:

步骤21)动态簇头集群机制,集群内的节点轮流当选为活跃簇头(active-ch,ach),其它簇头节点为备用簇头(standby-ch,sch)。当成为ach时,节点就跟传统ch节点角色一样,否则就进入睡眠状态补充能量。在簇k中成员节点在能量中性约束下传输给簇头节点的最大信息量为:为了确保簇头集群的能量中性状态,在簇k中簇头集群内节点的数量必须满足以下约束条件:在簇形成之后,簇成员节点向簇头节点发送自身能量状态,由簇头节点根据本簇内节点汇报的能量信息,根据上面约束条件得到簇头集群数量。

步骤22)通过最大化网络吞吐量的方法得到最优的分簇数目,问题描述如下:

b(a)表示在时隙a内成员节点传输给簇头集群的平均信息量,那么有ech为时隙内ch节点平均可用能量,

那么有求解上面最优化问题,可以得到最优的分簇数量,分簇数量选择最接近最优解的正整数。所述步骤3)具体包括以下步骤:

步骤31)定义语言变量节点剩余能量eres、节点获取能量ehav和邻居节点的平均势能eaepar作为模糊系统的输入,模糊系统输出为簇头当选概率,设计对应输入和输出语言变量的隶属度函数;

步骤32)根据输入变量和输出变量建立模糊系统规则库;

步骤33)采用集合中心法(centerofsets,cos)进行模糊降型,将输出二型模糊集合降型为一型模糊集合。cos使用质心代替二型模糊输出集并且找到找到这些质心的加权平均值,第l(l=1,2…27)个质心权重是第l条规则的激励度,即激励区间分别由二型模糊集合下限隶属度函数和上限隶属度函数得到:其中合并激励区间和与之对应的规则结论部分之后,完成降型操作,

在解模糊化中,选择取ycos(x)的中点:

本发明的有益效果在于:本发明提供的一种基于type-2模糊逻辑的eh-wsn能量中性分簇路由方法,以及通过能量预测构建中性约束,构建动态簇头群组保证了簇头能量中性状态降低了因频繁分簇造成的控制信息开销,利用凸优化通过最大化吞吐量得到最优分簇数量,进而达到减少簇失败次数的目的。

附图说明

为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步的详细描述,其中:

图1为输入变量的隶属度函数

图2为输出变量的隶属度函数

图3为type-2模糊系统图

表1为type-2模糊规则库

具体实施方式

下面将结合附图,对本发明的优选实施例进行详细的描述。

本发明提供的一种基于type-2模糊逻辑的eh-wsn能量中性分簇路由方法,如图1所示该方法包括以下步骤:步骤1)根据经验设计模糊逻辑推理系统;步骤2)传感器节点根据模糊逻辑推理系统计算出簇头当选概率;步骤3)传感器节点广播竞争当选簇头;步骤4)簇头节点根据本簇能量状态构建动态簇头群组。

步骤1)根据经验设计type-2模糊逻辑推理系统;

进一步,步骤1)包括以下几个步骤:

步骤11)定义输入语言变量:节点剩余eres,取值为“少(low)”、“中(medium)”、“高(hight)”,其隶属度函数如图1(a)所示;

步骤12)定义输入语言变量:节点的邻近区域平均势能eaepar,取值为“低(low)”、“中(medium)”、“高(hight)”,其隶属度函数如图1(b)所示,“低”,“高”服从梯形函数,“中”服从三角函数;在网络初始化时,网络中所有的节点以ri为半径广播和接收hello消息,hello消息中包含节点的剩余能量、获取能量预测、位置等信息。ri的计算公式如下:

ri=λrnavg(ri>rnavg)

其中,λ为邻近区域半径因子,其值为一常数。rnavg根据网络范围内n个节点平均所占网络面积来求得:

节点i利用接收到的hello消息统计出自己的邻近区域中节点的总数nbi,然后节点i根据自身和邻近区域节点的能量状况,计算出邻近区域平均势能,计算方式如下:

步骤13)定义输入语言变量:获取能量ehav,取值为“低(low)”、“中(medium)”、“高(hight)”,其隶属度函数如图1(c)所示。根据真实太阳能数据构成能量收集曲线,曲线上相同时刻节点收集到的能量与各自的下一时刻收集的能量的比值具有随机序列的特性,基于这个序列构建markov能量获取预测模型。假设能量收集曲线上面一共有t+1个时刻具有能量获取,根据能量收集过程一共可以建立成t条马尔科夫链的模型。定义当前马尔科夫链状态集为s,对于第i条markov链,将链中各值划分为不同的状态,定义其状态集为si,状态个数为si,则可根据下式:

计算出各个状态转移概率,进而求出第i条markov链的状态转移概率矩阵:

定义收益是能量的函数,对于第i条马尔科夫链,存在以下si×1收益向量:

根据markov预测公式:

根据前一个能量收集时刻的获取能量值,可得知rt1,可以预测下一收集时刻的能量值;

步骤14)定义输出语言变量:pchance,其输出规则如表1所示,隶属度函数如图2所示。根据输入语言变量和输出语言变量建立模糊系统的规则库如表1所示。

步骤2)传感器节点根据模糊逻辑推理系统计算出簇头当选概率;

进一步,步骤2)包括以下几个步骤:

步骤21)节点将自身的剩余能量、获取能量预测和邻居节点的平均势能输入到模糊系统中如图3所示。

步骤22)模糊降型和解模糊化,采用集合中心法(centerofsets,cos)进行模糊降型,将输出二型模糊集合降型为一型模糊集合。cos使用质心代替二型模糊输出集并且找到找到这些质心的加权平均值,第l(l=1,2…27)个质心权重是第l条规则的激励度,即激励区间分别由二型模糊集合下限隶属度函数和上限隶属度函数通过下式计算得到:

其中合并激励区间和与之对应的规则结论部分之后,完成降型操作,表达式如下:

区间二型模糊逻辑系统的降型过程就是计算yl(x),yr(x)的过程。在解模糊化中,选择取ycos(x)的中点:

步骤3)传感器节点广播竞争当选簇头;

进一步,步骤3)包括以下几个步骤:

步骤31)假定所有的簇都是理想状态下的,那么平均每个簇的半径r为:

每个节点在半径r范围内广播自身当选簇头的概率,节点获取其所有邻居节点的簇头概率,如果本节点的簇头概率大于其所有邻居节点概率,则节点成为簇头节点,否则成为普通节点。

步骤32)随着簇头选取的完成,簇头节点将开始广播“joincluster”消息。这个消息包含一个“簇id”字段,值为簇头节点的id。如果普通节点只接收到一个“joincluster”消息,那么这个节点就选择加入发送此消息的簇头形成簇。如果普通节点在最后截止时间之前收到了多个“joincluster”消息,则比较收到信号的强度,选择加入接收到信号最强的那个簇头形成簇。

普通节点在确定了自己要加入的簇头节点之后,随机选择一个时间发送“enter”消息,消息包含簇头节点的id、该节点的剩余能量值、模糊系统簇头概率输出、预测获取能量值、与基站之间的距离和簇头节点之间的距离,这些信息主要用来计算本簇内簇头集群的数量,进行簇头集群构建和调度。

收到这些“enter”消息后,簇头将检查消息中包含的簇id字段的值是否等于自身的id。如果这个簇头是预期的接受者,将会记录下“enter”信息字段下的值。否则,此簇头不是“enter”消息的接收者,将丢弃此消息。

步骤4)簇头节点根据本簇能量状态构建动态簇头群组;

进一步,步骤4)包括以下几个步骤:

步骤41)簇头将计算本簇内簇头集群的数目并且构建动态簇头集群,首先要保证,在任何给定的时间段中,在簇头集群中都有且仅有一个ach节点,并且有足够的能量,这样才能保证数据的不间断传输。在簇k中cm节点的数量用表示,用nk表示簇k内节点总数,那么可以用下式表示:

步骤42)在簇k中成员节点在能量中性约束下传输给簇头节点的最大信息量可以用下式表示:

为了确保簇头集群的能量中性状态,在簇k中簇头集群内节点的数量必须满足以下约束条件:

上式约束了簇头集群所能处理的信息量要大于等于成员节点在能量中性约束下传输给簇头节点的最大信息量。每一个簇在成簇之后由中心簇头节点根据本簇内节点的能量状况,计算本簇内的数量,当值增大时,根据上面不等式将会有更多的节点加入到簇头集群中,同时会造成由于更多的传感器被加入到集群中来处理信息。但是另一方面,会造成簇成员节点数量的降低,系统的吞吐量会下降。所以,簇头集群的规模要由每个簇的簇头节点计算出满足上面不等式的最小正整数值。这样在满足能量中性的条件下,可以使系统感知信息量最大化。

最后说明的是,以上优选实施例仅用以说明本发明的技术方案而非限制,尽管通过上述优选实施例已经对本发明进行了详细的描述,但本领域技术人员应当理解,可以在形式上和细节上对其作出各种各样的改变,而不偏离本发明权利要求书所限定的范围。

表1规则库

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