APP下载

基于模糊控制的自供能无线传感器网络分簇算法

2020-09-29胡润彦李翠然

计算机应用 2020年9期
关键词:能量消耗消耗无线

胡润彦,李翠然

(兰州交通大学电子与信息工程学院,兰州 730070)

0 引言

无线传感器网络(Wireless Sensor Network,WSN)由部署在监测区域内大量廉价微型传感器节点组成,通过无线通信的方式形成多跳自组织网络系统,其目的是协作地感知、采集和处理网络覆盖区域中感知对象的信息,并发送给观察者[1-4]。因为传感器节点数量多,部署范围广,且部署区域的环境繁杂,通过人工方式来补充节点能量是不现实的[2]。因此降低节点的能量消耗,从而延长网络的工作周期成为当前研究无线传感器网络的关键问题。

随着能量采集技术的不断完善,太阳光照、热力温差、机械振动等传感器节点自身就可以从环境中补充电量,从而拥有了自供能的特点。这种带有能量自供给节点的无线传感器网络可以解决传统传感器网络中由于节点能量受限,而导致其生存时间受限的问题[5]。但是,由于环境能量本身会受诸多因素影响,使得自供能节点的能量补给不稳定,所以如何使网络中的节点能够有效节能进而延长网络寿命,也成为当前无线传感器网络亟须解决的问题,而合理分簇是有效的方法之一[6]。

为了均衡无线传感器网络能耗,延长网络寿命,已提出不少分簇算法[2,6-13],以及带有能量自供给节点的网络分簇算法[5,14-17]。低功耗自适应集簇分层型(Low Energy Adaptive Clustering Hierarchy,LEACH)协议[7]是最早经典分簇算法之一,其基本思想是通过计算概率的方式循环选择簇头,将整个网络的能量负担尽可能地分配到网络中所有传感器节点上,进而降低网络能耗,达到延长网络工作寿命的目的。但是LEACH算法中存在剩余能量较低的节点或离基站较远的节点被选为簇头节点的情况,导致这些簇头节点会过早死亡,使网络出现“断层”的现象。为了克服LEACH 算法的缺陷,具有能量补给的分簇路由(Power-Harvesting Clustering,PHC)算法[14]是在LEACH的基础上,将能量补给功能引入到网络中,并改进了非簇头节点的归属机制和簇头选举机制。改善后的簇头选举机制不仅需要依据每个节点已成为簇头的次数和网络所需簇头节点总数,同时需要考虑节点初始能量、上一轮节点的剩余能量和节点采集能量。文献[15]中提出了基于太阳能补给节点能量的自适应分簇路由算法(Adaptive Clustering routing based on Solar Power replenishment,ACSP),该算法根据太阳光照特点,将网络中节点的能量状态划分为:耗能期、储能期、稳定期,并针对节点所处的不同能量状态设定不同的阈值来参加簇头竞选,并计算出簇间最佳通信距离,通过多跳方式将数据传送到Sink 节点。能耗均衡的自供能无线传感器网络分簇(Energy Balanced Clustering with Self-Energization,EBCS)路由算法[5]通过改进簇头选举机制,使补给能量和节点剩余能量之和较大的节点成为簇头,并增加了部署在能量补给弱区的节点成为簇头的概率,弥补了LEACH算法能量消耗不均匀的缺陷。但在该算法中簇头间的数据传输采用多跳的方式,使得靠近基站的簇头节点负载中继任务过多而提前耗尽能量,产生“能量空洞”现象。上述均匀分簇方法一般适用于节点分布均匀的无线传感器网络,但在实际部署场景中,例如采用飞机抛撒传感器节点方式时,通常传感器节点会分布不均匀。

为解决上述问题,文献[8]中将节点到基站的距离、簇头到节点的距离、节点度和节点剩余能量等因素作为权重,将全网划分为大小不同的簇群。然后簇头节点将依据与基站间的距离和剩余能量构造基于最小生成树的最佳传输路径,通过簇间多跳、簇内单跳的方式将数据传输到基站。上述算法虽然优化了数据传输路径,但对网络进行遍历,消耗了网络的能量。文献[9]中在此基础上提出了一种新的改进算法,通过在“热区”内选取传送节点,缓解了在该区域内的节点负载不均衡的问题。在非“热区”内,会根据节点的残余能量来选取簇头,选取簇头结束后剩下的节点参加到和其距离最小的簇群中。在节点入簇以后,再基于相似数据的收集策略,查找符合条件的相似节点,使部分冗余的节点休眠[9]。改进的算法中每轮结束后重新选举簇头,减少了能量的浪费。文献[10]中提出一种改进的非均匀分簇路由(Wireless sensor networks non-Uniform Clustering Hierarchy,WUCH)算法,将节点到基站的距离和节点残余能量作为性能指标。它将网络分成规模不同的簇群,从规模较大的簇中选举双簇头节点,主副簇头分担不同任务,以此缓解簇头节点能耗过快,然后构造基于改进的最小二叉树进行多跳数据传输,从而减小节点能量消耗。但上述算法采用基于竞争的簇头选举方法会增加网络开销,且簇内多跳、簇间单跳的方式在数据传输阶段增加了更多的信标报文,为网络数据传输增加了复杂度。文献[11]中提出了利用双层模糊控制的簇头选择(Cluster head selection using Two-Level Fuzzy Logic,CTLFL)算法。将节点的能量、相邻节点数、与基站之间的距离等性能参数作为隶属度函数的输入得到网络中当选簇头的最佳节点,从而保证了簇头节点间能量的均衡。

综上所述,既有文献大多采用概率的方式选取簇头节点,但仅是针对节点的某一方面增加当选簇头节点的权重,并未结合影响网络能耗的其他方面进行考虑。虽然CTLFL 算法在选择簇头节点时进行了综合考虑,但是未具体分析在能量补给条件下的网络能量消耗,并且对网络分簇数目设定过于简单,没有对其建立数学模型进行分析,从而影响网络分簇的合理性。同时其建立的网络模型过于简化,对于节点的性能参数和传输模型没有作具体分析。由此本文提出了一种基于模糊控制的自供能无线传感器网络分簇(Energy Harvesting-Fuzzy Logic Clustering,EH-FLC)算法。利用太阳能补给模型,结合单个节点每一轮次消耗的能量模型,通过数学推导的方式得出网络最佳分簇数;再结合双层模糊控制模型将节点剩余能量、节点密度、与Sink节点的邻近度和所属簇的中心度进行综合评判,得出每一个节点当选簇头节点的阈值,最后通过其阈值大小来确定簇头节点。

1 自供能WSN能量消耗模型及最优分簇数

1.1 节点的太阳能补给模型

建立基于能量补给的无线传感器网络的主要目的是要获取稳定持续的能量以保证能量平衡,即采集的能量要大于系统消耗的能量。为便于分析,本文提出了一种简化的太阳能补给模型。此模型中,假设在相同时间段内网络中所有节点采集到的能量都是相等的。为了模拟一天当中日照强度的变化,将一天中不同时间段采集的能量数值大小建模为一个标准的等腰梯形。模型如下:

太阳能补给模型如图1所示。

图1 太阳能补给模型Fig.1 Solar energy replenishment model

其中,k是能量补给时曲线上升的斜率,EMax是节点接收能量的最大功率值,r1和r2是补给能量到达最大值时和能量开始下降时的轮次;r3表示当天能量采集量为0时的轮次。该模型以收发数据轮次来代表时间的变化。由于太阳能收集遵循类似的昼夜模式,因此每轮任意节点(即∀i,1≤i≤100)收集的平均能量为:

1.2 网络模型和节点消耗模型

无线传感器网络的应用环境类型繁多,本文考虑大量节点密集随机分布,Sink 节点固定在部署范围的正中心位置。本文为网络模型作如下合理假设:1)Sink 节点的能量一直是充足的;2)节点拥有GPS 功能,能广播自身的位置信息ID;3)节点初始能量均相同,且具备太阳能补给功能;4)节点之间单次传输的比特数是相同的,是基于单跳的。

在基础无线电模型中,节点i消耗的能量由两部分组成:一部分是功率放大器消耗的能量;另一部分是运行无线电元件消耗的能量。因此节点i向距离d处传输l比特数据所消耗的能量[16]可表示为:

其中:Eelec是发射电路和接收电路传输单位比特数据需要消耗的能量;εfs和εamp分别对应自由空间和多径传输的放大器特性常数;当距离d<d0时采用自由空间传播模型来近似,当距离d≥d0时,采用多径衰落模型。节点i接收l比特信息时消耗的能量[6]为:

1.3 最优簇头数

对于同质传感器网络部署场景,假设总共N个节点随机部署在M×M的待测区域,一共需要分成k个簇。每个簇平均有N/k个节点,其中有一个簇头节点和(N/k)-1 个非簇头节点,则每个簇所占面积为M2/k。普通节点与所属簇头节点间的平均距离[13]表示为:

其中M为待测正方形区域的边长,全网络单位轮次消耗的总能量为:

其中:ECH和EnonCH分别是单位轮次簇头节点消耗的能量和非簇头节点消耗的能量。基于太阳能补给模型,即均匀和周期性的能量采集方案,可以将平均采集能量Ehavg视为网络中任意节点的每轮收集能量。考虑到单位轮次中任意节点的能量耗散都高于平均采集的能量,给出整个传感器网络在单位轮次中的有效能量耗散为:

每个簇头节点会接收簇内节点数据,将收集的数据融合处理后发送给Sink 节点。由于Sink 节点离簇头节点较远,簇头节点的能量消耗遵循多径衰落模型,簇头节点在单位轮次中消耗的能量为:

其中:dtoSink表示簇头节点与Sink 节点之间的距离,EDA是簇头节点进行数据融合处理时消耗的能量。每个非簇头节点只需要在每轮次将收集的数据发送给所属的簇头节点。由于同一簇内的每个非簇头节点不会和簇头节点相距过远,所以普通节点的能量消耗遵循自由传播模型,则非簇头节点在单位轮次中能量的消耗为:

其中dtoCH代表非簇头节点到簇头节点的距离。由式(6)~(10)可得到在该网络在单位轮次中有效消耗的能量为:

由式(11)得到了每一轮含有能量补给的网络能量总消耗ERound与分簇数目k的函数,进而对式(11)中k进行求导可以得出使E′Round=0时的k值,从而得到使ERound为极小值时的k值,因此在太阳能补给下的无线传感器网络最佳分簇数目kopt为:

2 EH-FLC算法设计

2.1 分簇阶段

本文通过模糊决策系统(Fuzzy Inference System,FIS)和太阳能补给模型提出基于模糊控制的自供能无线传感器网络分簇算法EH-FLC 来提高无线传感器网络工作周期并减少网络能量消耗。不同于传统的LEACH 算法,该算法只有在第一次分簇后,有节点死亡时才开始重新分簇,而不是每一轮都进行分簇,节省网络成簇时各个节点广播信息,从而延长网络寿命。结合最佳分簇数,得出如图2 所示的基于太阳能补给的无线传感器网络分簇图。

图2 基于太阳能补给的无线传感网络分簇图Fig.2 Clustering diagram of wireless sensor network based on solar energy replenishment

EH-FLC算法采用了双层模糊决策方法来确定簇头节点,利用常用的Mamdani 模糊控制系统[6,11,13]来计算网络中所有节点成为簇头节点的阈值。其中第一层模糊决策称为能力层,在第一层模糊决策中选择在密集区域并具有充足能量的节点作为备选簇头节点。第二层模糊决策称为协作层,在这一层模糊决策中,需要在备选簇头节点中选出的节点作为最终的簇头节点。

2.2 能力层设计

在能力层的模糊决策过程中,网络中普通节点成为备选簇头节点的资格是根据节点剩余能量和它相邻的节点数来确定的。由于簇头节点不仅需要对所属簇的普通节点发来的数据进行融合,还需要将融合后的数据发送给Sink节点,因此簇头节点必须有充足的能量[5]。此外,如果备选簇头节点的相邻节点相对紧密,则能够缩短节点间数据传输的距离,均衡簇内平均能耗。由此在能力层的模糊决策过程中,本文将节点剩余能量和相邻节点数作为能力层模糊系统的输入,在通过模糊化后,输入的模糊化隶属模糊集均为{low,medium,high}分别对应的是“低”“中”“高”。再结合模糊IF-THEN 规则式得到各个规则下的模糊评分,然后通过集合器得到模糊输出,即成为簇头节点的资格参数,输出的模糊化隶属模糊集为{v-small,small,r-small,med-small,med,med-large,r-large,large,v-large}分别对应的是“非常小”“小”“较小”“一般小”“一般”“一般大”“较大”“大”“非常大”。最后通过解模糊化得到备选簇头节点。能力层的模糊决策系统如图3[11]所示。

图3 能力层决策系统Fig.3 Capability level decision system

该层的模糊决策的输入隶属度函数如图4、5 所示,输出的隶属度函数如图6所示;模糊IF-THEN规则如表1所示。

图4 节点剩余能量的隶属度函数Fig.4 Membership function of node residual energy

图5 相邻节点数的隶属度函数Fig.5 Membership function of the number of adjacent nodes

图6 能力层的隶属度函数Fig.6 Membership function of capability level

表1 能力层的IF-THEN规则Tab.1 IF-THEN rules for capability level

2.3 协作层设计

在协作层的模糊决策过程中,寻找网络位置合理的节点以平均网络能耗,因此以下两个方面将作为决策评判条件:

1)簇头节点必须位于所属簇的中心位置,当簇中的普通节点发送数据给簇头节点时,可以均衡该簇的平均能耗以此延长节点的工作周期。

2)为了有效降低簇头节点的平均能量消耗,簇头节点需要邻近Sink节点,使其处于合适的位置。

所以,将中心度参数ρ和Sink节点邻近度参数θ作为第二层模糊控制系统的输入,在通过模糊化后它们的模糊化隶属模糊集均为{low,medium,high}分别对应的是“低”“中”“高”。在经过对应的模糊IF-THEN 规则后,通过集合器得到最终评估成为簇头节点的模糊输出,它的模糊化隶属度函数的模糊集为{v-small,small,r-small,med-small,med,med-large,r-large,large,v-large}分别对应的是“非常小”“小”“较小”“一般小”“一般”“一般大”“较大”“大”“非常大”。

同时,为了避免各个簇头节点相邻紧密,导致网络分簇覆盖面积过小,网络覆盖重叠过多;簇头节点间相距过远导致传输能量时消耗过多,在进行第二层模糊决策时设定的簇头节点间的距离μ应在如式(13)所示的区间值内:

其中:xm和ym分别对应无线传感器网络部署区域的长和宽。

在协作层的模糊决策过程中,节点位置的中心度参数ρ由各簇内节点到簇头节点的距离总和来度量,具体如式(14)所示:

同样,与Sink 节点的邻近度θ通过簇头节点到Sink 节点的距离总和来度量,具体如式(15)所示:

其中:xBS和yBS分别对应Sink 节点所在无线传感器网络的横坐标与纵坐标。

综上所述,通过第一层模糊决策评估后的备选簇头节点会在协作层再次被评估。网络中的节点在通过两层模糊决策后将会得到一个综合评估阈值α,当α大于等于设定的当选簇头节点最低阈值时,该节点将进入簇头节点列表。最后通过最佳分簇数kopt的指导来确定需要多少分簇,并从列表中择优选取,被选出的簇头节点将自己的位置ID 广播到网络中,使其邻近的落选节点加入进来。

协作层的模糊决策系统如图7所示。

图7 协作层决策系统Fig.7 Collaboration level decision system

该层的模糊决策的输入隶属度函数如图8、9 所示,输出的隶属度函数如图10所示;模糊IF-THEN规则如表2所示。

图8 节点中心度的隶属度函数Fig.8 Membership degree function of node centrality

图9 Sink节点邻近度的隶属度函数Fig.9 Membership function of proximity of Sink node

图10 协作层的隶属度函数Fig.10 Membership function of collaboration level

表2 协作层的IF-THEN规则Tab.2 IF-THEN rules for collaboration level

EH-FLC算法伪代码如下。

3 仿真结果及性能分析

本文利用Matlab 仿真平台测试所提出的EH-FLC 算法性能,并将它和LEACH 算法、WUCH 算法、CTLFL 算法进行比较。网络由100个节点组成,随机分布在100 m×100 m的待测区域内,Sink 节点位于待测区域的正中心。表3 具体地给出了仿真环境参数的设置。

表3 仿真参数Tab.3 Simulation parameters

将EH-FLC 算法分别在网络存活节点数、网络总能量消耗和网络数据包传输总和这3 个方面与LEACH、WUCH 算法和CTLFL 算法进行对比。在传感器网络分簇算法中,簇头的选取是算法的核心。在本文提出的算法中,由高等数学理论,根据网络能量总消耗E与分簇数目k的函数关系式,对其求导后得到k值,该值使网络能量消耗最小。而在其他文献提出的算法中,簇头数目占总节点数的比值通常是预设的。LEACH 算法和CTLFL 算法中的簇头数占比分别为10%和5%,这种预设的方式会限制网络性能的提升。甚至WUCH 算法并没有对簇头数目进行设定,这样可能出现网络中簇头节点数大于普通节点数的情况,严重影响网络生存时间。图11为四种算法下网络中存活的节点数随时间(轮次)变化的关系,可以看出在四种待比较算法中,EH-FLC 算法的节点死亡的速度明显低于其他三种算法。在EH-FLC 算法中,第80 轮次之前的太阳能补给率较低,节点存活数存在下滑趋势;随着太阳能补给率的提高,部分节点在充能过后重新加入到网络中继续工作。与LEACH 算法、WUCH 算法和CTLFL 算法相比,EH-FLC算法在相同路由的情况下,网络更加稳定,工作寿命提高了约1.4倍、0.4倍和0.6倍。图12反映了网络消耗的总能量随时间(轮次)变化的关系,可以看出EH-FLC 算法在约第320 轮次之前,网络的总能量消耗比LEACH 和WUCH 算法消耗低,由于EH-FLC 算法的网络工作周期比另外三个算法长,所以在约380 轮之后,EH-FLC 算法所属网络消耗的总能量仍然在增加。尽管在该算法运行的后期其网络消耗的总能量要高于其他三种算法,但是由于本文设计的网络系统具有能量补给功能,所以能量消耗的增长对网络的影响不大。从展示的网络数据传输随轮次变化的图13 中可以清晰地看到:在网络数据传输的过程中,EH-FLC 算法的数据传输量显著优于LEACH 算法、WUCH 算法和CTLFL 算法,与这三种算法相比,数据传输量提高了约20 倍、1.5 倍和1.28 倍。综上所述,本文所提出的EH-FLC 算法在延长网络寿命和提高网络吞吐量两方面明显优于LEACH 算法、WUCH 算法和CTLFL算法。

图11 网络存活节点数随轮次变化Fig.11 Number of network surviving nodes varying with round

图12 网络消耗总能量随轮次变化Fig.12 Total energy consumption of network varying with round

图13 网络吞吐量随轮次变化Fig.13 Network throughput varying with round

4 结语

本文提出了一种基于太阳能补给和模糊控制的分簇算法。太阳能补给模型降低了节点传输数据消耗的能量,有利于网络整体能耗的均衡;通过双层模糊决策的方式,节点剩余能量、邻近节点密度、与Sink节点的邻近度和所属簇位置的中心度来选择簇头节点,提高网络的吞吐量,有效延长了网络生存时间。Matlab 仿真结果表明EH-FLC 算法在网络生存周期和网络吞吐量方面相较于LEACH 算法、WUCH 算法和CTLFL算法有明显优化。下一步将在隶属度函数的选择上深入研究,并且继续研究EH-FLC 算法,以降低其节点的能量损耗,进一步改进和完善所提出的方案。

猜你喜欢

能量消耗消耗无线
如此消耗卡路里
玉钢烧结降低固体燃料消耗实践
太极拳连续“云手”运动强度及其能量消耗探究
中年女性间歇习练太极拳的强度、能量消耗与间歇恢复探究分析
《无线互联科技》征稿词(2021)
降低钢铁料消耗的生产实践
没别的可吃
我们消耗很多能源
无线追踪3
基于ARM的无线WiFi插排的设计