一种高可用无线传感器网络移动数据收集方法与流程

文档序号:11437867阅读:380来源:国知局
一种高可用无线传感器网络移动数据收集方法与流程

本发明属于无线传感器网络数据收集技术领域,具体涉及一种高可用无线传感器网络移动数据收集方法。



背景技术:

随着微机电系统、片上系统、无线通信和低功耗嵌入式技术的飞速发展,无线传感器网络(wsn,wirelesssensornetworks)的应用日趋广泛,其中数据收集为其基础应用之一。人们在相关区域部署大量传感器节点,通过传感器节点对周围环境的监测以获取所需要的数据,如温度、湿度、图像、声音、视频等。在传感器网络中部署的节点通常情况下不具备移动性,传统的sink位置固定的数据收集方法,存在有热区问题、通信开销大、漏斗效应等限制,无法很好地满足应用需求。因此,在实现应用需求,收集足够数据的同时,实现网络的能量高效、均衡,延长网络生命周期成为了一个十分重要的数据收集方法设计问题。

如今,无线传感器网络相关领域通过对采用移动sink乃至多移动sink进行数据收集来平衡能耗、延长网络寿命的相关研究也取得了一定的进展。jae-wankim等人在2010年的《ieeetransactionsonconsumerelectronics》发表的论文“anintelligentagent-basedroutingstructureformobilesinksinwsns”,该算法中移动sink利用代理节点进行数据收集,首先sink选择距离自身最近的节点定位代理节点,通过代理节点将查询信息以洪泛的方式在全网进行广播,节点将数据上传到代理节点后移动sink即能实现数据收集。同时,sink在移动过程中会不断进行代理节点的选择,为防止多次更新代理节点后数据的传输路径不是最优,算法还通过初始路径与新路径的长度比较来进行传输路径的更新。该算法保证了数据传输的路径始终相对较短,然而,代理节点处工作负担较大,易出现热区问题,代理节点在进行路径选择时仅考虑到距离的远近,没有考虑到路径中节点能量的限制。

miaozhao等人在2015年的《ieeetransactionsonmobilecomputing》发表的论文“mobiledatagatheringwithloadbalancedclusteringanddualdatauploadinginwirelesssensornetworks”,提出lbc-ddu算法,该算法将无线传感器网络分为感知层、簇头层和sencar(移动数据收集器)层,首先将网络中的传感器节点进行分簇操作,并在每个簇之中基于节点剩余能量选取出两个簇头,簇内两簇头之间通过信标信息进行时钟同步,之后通过对已在网络中预先设置的轮询点进行选择,找到sencar访问每个簇进行数据收集的最佳路径,最后sencar通过采用mu-mimo的上行传输系统同时对一个簇内两个簇头的进行数据收集。该算法给sencar装备两根天线,使其能够同时接受两个簇头的数据,减少了数据上传的时间,但是采用两根乃至多根天线带来了成本大幅度的上升,同时对于轮询点的选择问题计算复杂度较高,时间代价较大。

yaowang等人在2014年的《hindawipublishingcorporation》中发表的论文“lpta:locationpredictiveandtimeadaptivedatagatheringschemewithmobilesinkforwirelesssensornetworks”,提出了一种位置预测与时间自适应的数据收集算法,lpta。该算法通过令sink以恒定速度按固定轨迹移动与全网范围的时间同步实现节点对于移动sink的位置预测。lpta将网络划分为四个象限,将驻留点均匀分布在sink的移动轨迹上,为应对各区域产生的数据量不同的问题,移动sink将根据每轮收集到的各区域的数据量的不同,在各区域内的驻留点分别分配不同的驻留时间。节点通过同步时钟计算移动sink的位置,将数据包以最短路径向移动sink进行传输。该算法利用了节点主动对移动sink进行位置预测,减少了频繁更新移动sink位置信息带来的能量开销,同时对各区域驻留点分配不同驻留时间也平衡了网络中节点的能耗;但是单个移动sink进行数据收集可能会造成数据上传路径过长,反而带来大量的能量消耗。

leishi等人在2015年的《internationaljournalofcommunicationsystem》中发表的论文“anefficientdistributedroutingprotocolforwirelesssensornetworkswithmobilesinks”,提出了适用多移动sink的数据收集方法,lvrp算法。该算法中每个移动sink以自身为中心独自创建分层的泰森多边形区域,并利用锚节点来减少移动sink位置更新带来的通信开销。移动sink根据在泰森多边形区域移动的位置进行区域的局部动态更新,减少了通信开销。节点将数据包向存储在路由表中的目标sink传输,同时为因泰森多边形区域更新造成传输路径过长,节点还能够以监听的方式更新路由表以获得更短的数据传输路径。lvrp减少了数据传输的路径长度,同时也减少了sink位置更新的通信开销,但是,多个移动sink所构建的泰森多边形交界区域的分层划定很模糊,移动sink之间的协同问题也难处理。

综上,本发明人发现目前利用移动sink对无线传感器网络数据进行收集时普遍存在的问题是:

1、大多数移动sink利用驻留点进行数据收集的协议,要求sink每到一个驻留点即广播一次自己的位置信息,广播带来了额外的能量开销;

2、大多数多个移动sink进行数据收集的协议,易带来多移动sink移动轨迹、数据收集区域等协同工作的问题;

3、目前大多数论文未考虑到移动sink发生故障的可能性,因移动sink进入环境相对复杂的区域进行数据收集,实际不能忽视移动sink故障的问题,而一旦移动sink发生故障,网络就将瘫痪。



技术实现要素:

本发明的目的在于克服现有技术中的不足,提供了一种高可用无线传感器网络移动数据收集方法,移动sink根据在驻留点处收集到的邻居节点的能耗情况对移动轨迹大小进行调整,同时考虑移动sink出现故障的可能性,实现移动sink故障后网络拓扑的调整与修复后网络拓扑的恢复。

为解决上述技术问题,本发明提供了一种高可用无线传感器网络移动数据收集方法,包括:

无线传感器网络包括部署在网络区域的多个移动sink和普通传感器节点;移动sink和传感器节点间松散时间同步;移动sink沿移动轨迹移动至每个驻留点收集全网普通传感器节点的感知数据;

移动sink根据驻留点周围节点的能耗信息,调整其移动轨迹;

移动sink之间互相发送心跳包以监听其健康状态,当移动sink未接收到某移动sink发送的心跳包时,则判断此某移动sink发生故障,相应健康的移动sink全网广播调整网络拓扑,当故障移动sink修复完成后,此移动sink全网广播恢复网络拓扑;

普通传感器节点上传感知数据时,计算移动sink节点在网络中的坐标信息,并选择位于驻留点且距离自身最近的健康移动sink进行数据包的路由。

进一步的,根据驻留点周围节点的能耗信息调整移动轨迹的具体步骤如下:

1)驻留点附近的节点在还将自身的剩余能量信息eres上传到移动sink;

2)移动sink在当前数据收集周期的最后一个驻留点完成数据收集,离开驻留点前将计算节点的平均能耗δe;当平均能耗δe超过阈值δeth时,此时移动sink向全网广播一个adj包,adj包包含移动sink新一轮数据收集周期的起始点sr(xr,yr)、新的移动轨迹长度lr和新的移动速度vr,该移动sink在完成当前数据收集周期后在调整时间ta内移动至新的起始点,并在ta时间后开始进行新一轮的数据收集周期;如果δe未超过阈值δeth时,移动sink则维持上一轮的移动轨迹进行数据收集;

3)未调整轨迹的移动sink接受到该adj包后,根据下式调整其移动速度:

4)普通节点在接收到adj包后,更新保存的各移动sink相关参数。

进一步的,移动sink新的起始点位置sr(xr,yr)与其原起始点位置so(xo,yo)关系为:

其中d为新起始点与原起始点间距离,新轨迹比原轨迹大则取“+”号,反之取“-”号;

对应的,新的移动轨迹长度lr与其原移动轨迹长度lo关系为:

新的移动速度vr与其原移动速度vo关系为:

进一步的,平均能耗δe为当前数据收集周期的平均剩余能量减去上一周期的平均剩余能量,此平均剩余能量为所有驻留点附近节点的剩余能量的平均值。

进一步的,普通节点计算任意时刻移动sink在网络中的位置的过程为:

已知移动sink的速度为vi,移动sink在驻留点处的驻留时间为ts,在两驻留点间移动的时间为tt,移动sink各自移动轨迹边长为li,移动sink因故障等原因离开网络的次数为c,移动sink完成一轮数据收集周期所用时间tr=4n(ts+tt);

当前数据收集周期移动sink经过的时间移动sink在当前数据收集周期经过的驻留点数量节点根据计算所得tc、b信息计算出各个移动sink在网络中的位置;

1)当0<tc-(ts+tt)b≤tt时,表示sink节点正在移动中,此时,移动sink经过的路程为:

[tc-(ts+tt)b]vi+bttvi=(tc-tsb)vi

此时移动sink的坐标(xi,yi)为:

2)当tt<tc-(ts+tt)b≤ts+tt且b≤4n时,表示移动sink正在驻留点处,此时,移动sink经过的路程为:

此时移动sink的坐标(xi,yi)为:

3)当节点接收到adj包,b=4,且tt<tc-(ts+tt)b≤ta+tt时,表示有移动sink准备进行轨迹调整并正前往新的驻留点;

节点在计算得到各移动sink节点的位置后,判断移动sink处于移动还是驻留状态,若移动sink在驻留点处,计算节点到移动sink的距离,坐标为(xj,yj)的节点j到移动sink(xi,yi)的距离为:

节点根据到各移动sink的距离选择最近的健康移动sink以多跳的形式将感知数据按照最短路径的原则进行路由;

若移动sink正在移动,则:

1)当τ≤tt时,节点直接把数据传输至sink前往的驻留点一跳范围的邻居处进行等待;

2)当τ>tt时,节点根据τ计算出sink在不超过τ的时间内会经过的驻留点,并分别计算出到这些驻留点的距离;节点根据计算结果选择距离自己最近的驻留点,传输至该驻留点一跳范围的邻居处进行等待。

与现有技术相比,本发明所达到的有益效果是:本发明实现了在网络松散时间同步下,传感器节点预测多移动sink的位置信息,并选择距离更近的移动sink进行感知数据的上传;移动sink可以独立调整自身的移动轨迹,均衡了整个网络节点的能量消耗,延长了网络的生命周期;加入移动sink发生故障的实际问题,并针对移动sink发生故障与修复后对网络拓扑进行调整与恢复,更加具有实际意义。

附图说明

图1为本发明实施例中多移动sink传感器网络的网络模型;

图2为本发明移动sink工作流程图;

图3为本发明中移动sink高可用协作流程图;

图4为本发明中网络节点工作流程图。

具体实施方式

下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。

在网络中随机部署多个同构的传感器节点,对网络进行全部覆盖,其中包括多个移动sink和普通传感器节点,其他普通传感器节点不具备移动性且地理位置信息已知。

本发明的一种高可用无线传感器网络移动数据收集方法,包括:

无线传感器网络包括部署在网络区域的多个移动sink和普通传感器节点;移动sink和传感器节点间松散时间同步;移动sink沿移动轨迹移动至每个驻留点收集全网普通传感器节点的感知数据;

移动sink根据驻留点周围节点的能耗信息,调整其移动轨迹;

移动sink之间互相发送心跳包以监听其健康状态,当移动sink未接收到某移动sink发送的心跳包时,则判断此某移动sink发生故障,相应健康的移动sink全网广播调整网络拓扑,当故障移动sink修复完成后,此移动sink全网广播恢复网络拓扑;

普通传感器节点上传感知数据时,计算移动sink节点在网络中的坐标信息,并选择位于驻留点且距离自身最近的健康移动sink进行数据包的路由。

本发明的数据收集方法,移动sink可以根据驻留点周围节点的能耗独立调整自身的移动轨迹,均衡了整个网络节点的能量消耗,延长了网络的生命周期;加入移动sink互相监听是否发生故障,并针对移动sink发生故障与修复后对网络拓扑进行调整与恢复。

实施例

已知现有技术中多移动sink传感器网络的网络模型,包括多个移动sink节点和多个普通传感器节点,在实际应用中移动sink的数量范围可以依据实际需求进行确定。本发明实施例中以两个移动sink节点为例,其网络模型如图1所示,网络大小为l*l的正方形区域,在网络中随机部署普通传感器节点,对网络进行全覆盖,这些节点地理位置信息已知,除了两个sink节点外其他节点不具备移动性,通过此两个移动sink节点进行数据收集。网络区域中心记为原点o(0,0),以原点为中心,两个移动sink节点所在的位置以原点为中心形成两个边长分别为l1和l2的正方形,分别作为两个移动sink的理想移动轨迹。sink节点能够以固定速度匀速移动,移动速度分别记为v1、v2。移动sink在网络中进行数据收集的位置为虚拟的驻留点,每个正方形轨迹上的驻留点个数为4n(n=1,2……n),且均匀分布在移动轨迹上,如本实施例图1中驻留点为8个(驻留点标记分别为a1~h1;a2~h2)。在一轮数据收集过程中,各sink节点沿各自的移动轨迹原点依次移动至每一个驻留点,进行数据收集。

移动sink在网络中进行数据收集的工作流程图,如图2所示,具体包括以下步骤:

步骤s01,全网节点进行初始化:初始化是移动sink进行时钟同步和相关网络参数广播的过程。各移动sink与节点均保存有一张记录网络中所有节点的sinkid与其工作状态的sink表,多移动sink的时钟以sinkid最小的移动sink时钟为基准时钟,其余移动sink均和基准时钟保持同步。多移动sink进入各自起始点,向网络广播hello包进行时钟同步和相关参数的广播,完成全网节点和移动sink之间的松散时间同步;hello包中内容为基本网络参数,所述基本网络参数为:sinkid、驻留点数目4n、sink的移动方向、sink在驻留点处的驻留时间ts、网络的延迟要求τ。其中主移动sink广播的hello中还包括用于同步时钟的起始时间t0。

步骤s02,两移动sink进入网络中各自的数据收集起始点a1、a2。

步骤s03,移动sink进行数据收集准备:数据收集准备是多移动sink进行数据收集之前向全网广播一些可变参数的过程。移动sink向全网广播prepare包,prepare包中内容为用于轨迹调整的基本参数,所述基本参数包括sink的起始位置si(xi,yi)、sink的移动速度vi、移动轨迹的边长li,i代表第i个sink节点,本实施例中i=1,2,在实际应用中i的取值范围可以依据实际中移动sink节点数量进行确定。

步骤s04,多移动sink进行常规数据收集:这个过程中,多移动sink在网络部署区域中沿着各自轨迹进行移动,并在驻留点处驻留以收集节点上传的感知数据。

步骤s05,移动sink进行移动轨迹的调整:由移动sink对移动轨迹进行适时地更新调整,均衡网络的能量消耗,在轨迹调整完成后继续进行常规数据收集。

该过程中移动sink为防止驻留点附近节点能耗过大而对移动轨迹进行调整,均衡网络的能量消耗。移动sink根据收集到的驻留点附近节点的剩余能量信息,计算并得到这些节点的能耗情况。由于移动sink沿固定轨迹进行数据收集时,在驻留点附近的节点能耗将比网络中其他节点更多,易导致驻留点附近区域内节点过早死亡而产生“热区”问题,为减缓这个问题,移动sink将适时地对移动轨迹进行动态调整,使网络中节点能量消耗更加均匀以延长网络的生命周期。

根据驻留点附近节点剩余能量信息不断调整移动轨迹的具体步骤如下:

1)驻留点附近的节点在将缓存的来自事件区域节点的感知数据上传到移动sink时还将附加自身的剩余能量信息eres;

2)移动sink在收集感知数据的同时还将得到驻留点附近节点的剩余能量信息eres,移动sink在当前数据收集周期的最后一个驻留点完成数据收集,离开驻留点前将计算驻留点附近节点的平均剩余能量eares(即所有驻留点剩余能量的平均值),并减去上一轮得到平均剩余能量信息得到节点的平均能耗δe(即平均能耗为当前数据收集周期的平均剩余能量减去上一周期的平均剩余能量)。当平均能耗δe超过阈值δeth时,表示驻留点附近节点消耗较大,此时移动sink向全网广播一个adj包,adj包包含移动sink新一轮数据收集周期的起始点sr(xr,yr)、新的移动轨迹长度lr和新的移动速度vr。该移动sink在完成当前数据收集周期后在调整时间ta(常数)内移动至新的起始点,并在ta时间后开始进行新一轮的数据收集周期;如果δe未超过阈值δeth时,移动sink则维持上一轮的移动轨迹进行数据收集。

其中新的起始点位置sr(xr,yr)与其原起始点位置so(xo,yo)关系为:

其中d为新起始点与原起始点间距离,本发明中为一常数,新轨迹比原轨迹大则取“+”号,反之取“-”号。

对应的,新的移动轨迹长度lr与其原移动轨迹长度lo关系为:

新的移动速度vr与其原移动速度vo关系为:

3)未调整轨迹的移动sink接受到该adj包后,为保证各移动sink完成一轮数据收集周期的时间是相同的,根据下式调整其移动速度:

4)普通节点在接收到adj包后,计算并更新保存的各移动sink相关参数。移动sink在完成当前数据收集周期后,等待ta时间后进行新一轮的数据收集周期。

步骤s06,移动sink判断网络是否终结,若网络终结,则移动sink结束数据收集工作;若网络未终结,则移动sink继续进行下一轮常规数据收集。

各移动sink存在概率为p的故障率,在移动sink发生故障后即失去包含移动、数据收集等功能,但可由基地派出工作组进行修复工作,使其回到网络重新正常工作。当移动sink工作中发生故障时网络拓扑可进行调整,移动sink修复完成后网络拓扑也可恢复。以图1中移动sink1和移动sink2为例,具体步骤为:

步骤s401,移动sink1将自身sink表中保存的移动sink2的初始状态设置为故障;同理移动sink2将自身sink表中保存的移动sink1的初始状态设置为故障;

步骤s402,移动sink1与移动sink2之间时钟始终保持同步,并且在网络中进行数据收集时,sink1与sink2以频率f互相发送心跳包以宣告各自的健康状态;

步骤s403,移动sink1在一定时间判断是否接收到移动sink2的心跳包,若接收到,即判断移动sink2状态为健康,将sink表中移动sink2状态改为健康;继续下一个循环的心跳包发送;如果没接收到,则进入下一步;

步骤s404,移动sink判断在其sink表中移动sink2状态是否为故障,若为故障,则进行下一个循环的心跳包发送;若为健康,说明移动sink2上一循环是有心跳包而此循环没有心跳包,则判定sink2出现故障,即将移动sink2状态改为故障,并进入下一步;

步骤s405,移动sink1广播fault包,通知全网移动sink2发生故障,并通知基地对故障的sink2进行修复工作。

步骤s406,基地对故障的移动sink2进行修复工作,修复工作完成后,移动sink2向全网广播back包,back包包含已修复故障的移动sink2的id、移动sink2的起始点s2(x2,y2)、轨迹边长l2、移动速度v2。修复完成的移动sink2将在新一轮的移动数据收集周期开始时进入网络重新进行移动数据收集。

部署在网络区域的普通传感器节点(以下简称节点),计算移动sink节点在网络中的坐标信息,并选择距离自身最近位于驻留点的移动sink进行数据包的路由。普通传感器节点在数据收集过程中工作流程如图4所示,具体步骤为:

步骤1)网络中节点等待来自移动sink的hello包、prepare包;

步骤2)网络中节点转发hello包、prepare包;

步骤3)网络中节点将保存的sink表中移动sink状态定为健康;

节点初始将各自维护的sink表中移动sink状态均设置为健康,当节点接受到fault包后,将sink表中移动sink状态改为故障;当节点接收到back包,则在下一轮数据收集周期中将移动sink状态改为健康。

步骤4)节点判断是否有感知数据(感知数据以数据包的形式上传,也可说直接判断是否有数据包)要上传或转发到移动sink,若有,则进入步骤5);若无,则节点等待一段时间后重新判断是否有数据包需进行上传或转发;

步骤5)节点判断自身距离移动sink的距离是否小于等于节点通信距离r,若是,则进入步骤7);若否,则进入步骤6);其中节点通信距离r是指,一个无线传感器节点,其硬件所具备的通信能力范围,节点的通信范围为以节点为中心,以r为半径所构成的圆形区域。在该区域内,其他无线传感器节点将可以与该节点成功进行通信(相互发送数据)。当无线传感器网络在硬件制造时,该值便已经由硬件特性确定了。

步骤6)节点将数据包向下一跳节点转发,下一跳节点继续重复步骤4);

步骤7)节点判断健康状态的移动sink是否位于驻留点处,若是,则进入步骤8);若否,则进入步骤5);

步骤8)节点将数据包向最近的健康移动sink转发。

普通节点为确定任意时刻移动sink在网络中的位置,需根据同步的时钟对移动sink进行位置的预测。移动sink的速度为vi,移动sink在驻留点处的驻留时间为ts,在两驻留点间移动的时间为tt,移动sink各自移动轨迹边长为li,移动sink因故障等原因离开网络的次数为c,移动sink完成一轮数据收集周期所用时间tr=4n(ts+tt)。当前数据收集周期移动sink经过的时间移动sink在当前数据收集周期经过的驻留点数量节点根据计算所得tc、b信息计算出各个移动sink在网络中的位置(以图1中sink1和sink2从各自起始点a1、a2出发为例);

1)当0<tc-(ts+tt)b≤tt时,表示sink节点正在移动中,此时,移动sink经过的路程为:

[tc-(ts+tt)b]vi+bttvi=(tc-tsb)vi

此时移动sink的坐标(xi,yi)为:

2)当tt<tc-(ts+tt)b≤ts+tt且b≤4n时,表示移动sink正在驻留点处,

此时,移动sink经过的路程为:

此时移动sink的坐标(xi,yi)为:

3)当节点接收到adj包,b=4,且tt<tc-(ts+tt)b≤ta+tt时,表示有移动sink准备进行轨迹调整并正前往新的驻留点。

节点在计算得到各移动sink节点的位置后,判断移动sink处于移动还是驻留状态,若移动sink在驻留点处,则如步骤6)中所述,计算节点到移动sink的距离,坐标为(xj,yj)的节点j到移动sink(xi,yi)的距离为:

节点根据到各移动sink的距离选择最近的健康移动sink以多跳的形式将感知数据按照最短路径的原则进行路由。

若移动sink正在移动,则:

1)当τ≤tt时,节点直接把数据传输至sink前往的驻留点一跳范围的邻居处进行等待;

2)当τ>tt时,节点根据τ计算出sink在不超过τ的时间内会经过的驻留点,并分别计算出到这些驻留点的距离。节点根据计算结果选择距离自己最近的驻留点,传输至该驻留点一跳范围的邻居处进行等待。

综上可知,本发明移动数据收集方法中,通过多移动sink在初始化阶段广播hello包,告知传感器节点网络参数与同步时钟起始时间t0,使得节点和移动sink间实现松散时间同步;传感器节点结合hello包中参数、移动sink在数据收集准备阶段广播的prepare包和自身时钟判断各个移动sink当前的位置,选择距离最近的移动sink将感知数据(数据包)以多跳的方式按照最短路径原则路由至sink,移动sink不需要频繁广播自己位置信息,从而减少了能量开销;当移动sink进行移动时,传感器节点仍能在延迟要求范围内做出选择,向最合适的移动sink路由感知数据,从而在满足数据收集延迟要求的同时进一步减少了长路径带来的能耗;移动sink通过收集驻留点附近节点能量信息并计算得到这些节点平均能耗适时对移动轨迹进行调整,均衡了网络的能量消耗,延长了网络生命周期;此外针对移动sink发生故障的问题,提供移动sink发生故障与修复后网络拓扑的动态调整与恢复,延长了网络的使用寿命,同时具备更强的实际意义。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变型,这些改进和变型也应视为本发明的保护范围。

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