一种虚拟骨干网环境下基于层次结构的移动能量补充方法与流程

文档序号:15296729发布日期:2018-08-31 19:27阅读:221来源:国知局

本发明涉及一种虚拟骨干网环境下基于层次结构的移动能量补充方法,属于无线可充电传感器网络技术领域。



背景技术:

无线传感器网络由大量的传感器节点组成,网络中的传感器节点可以采集其感知半径内的网络环境信息,并将收集到的信息进行数据聚合,处理之后,通过多跳的方式将信息发送给基站节点,然后由基站将信息上传给网络供用户分析,使用。然而无线传感器节点由自身携带的电池供电,受体积,成本,电池容量等技术的限制,也就是说网络中的节点随时都有可能因能量不足而失效,从而导致网络中断,数据丢失,节点感知覆盖空洞,甚至网络瘫痪等。此外,无线传感器网络中节点是随机部署在人类很难达到的环境中,电池能量受限问题阻碍了网络长时间运行,因此,解决网络中节点能量成为关键挑战。

在无线传感器网络中,延长网络生存时间有两个方面,一是降低节点的能量消耗,二是通过外界进行能量补充,减低节点能耗可以通过采用数据聚合,休眠等方式,让其在单位时间内消耗更少的能量。能量补充一般通过移动充电装置进行充电,充电装置可以靠近节点后对其充电,也可以长距离进行充电,但是长距离充电能量损耗比较大,同时稳定性较差。在无线可充电传感器网络中,如何选择充电目标以及mc充电路线直接影响到网络的运行效率。



技术实现要素:

本发明要解决的技术问题是提供一种虚拟骨干网环境下基于层次结构的移动能量补充方法,主要目的在于根据传感器节点能耗差异将网络划分成骨干节点层和普通节点层,分别对应能耗高的传感器节点和能耗低的传感器节点。本发明提出优先为骨干节点层的传感器节点进行充电同时兼顾普通节点层的充电请求,避免了能耗差异导致个别传感器节点快速进入能量饥饿状态,从而延长了网络生存时间。

本发明采用的技术方案是:一种虚拟骨干网环境下基于层次结构的移动能量补充方法,包括以下步骤:

step1、将无线传感器网络根据能耗差异以构建骨干网的方式划分为骨干节点层和普通节点层;

step2、根据step1中构建的层次结构进行能量补充,在通过移动充电装置mc充电前,首先计算充电服务池中每个待充电节点vi的当前最大充电容忍延迟,如待充电节点的最大充电容忍延迟li(t)为:

其中rei为发送充电请求时该节点vi的剩余能量,t为当前时间,tsi是发送充电请求时的时间戳,ψ为传感器节点处理一条信息消耗的能量,ci为发送充电请求时该节点vi的信息交互率,如果节点的当前最大充电容忍延迟小于或等于零,说明节点已经饿死,则从充电服务池队列中删除该节点;

step3、对充电服务池队列中的所有传感器节点根据公式(2)如下:

计算每个传感器节点的优先级,在公式(2)中,cj指传感器节点vj的当前信息交互率,可通过传感器自身得出,tc(i)表示vi被选中成为充电目标到充电结束所需要的时间,它是由移动充电装置(mc)的移动时间t(mc,i)和充电时间tw组成,其中t(mc,i)表示mc移动到传感器节点vi的时间,tw表示mc为节点vi充满电所需要的时间,as(vi)表示节点vi的邻接点集合,从上述公式可以看出,节点的优先级是由它的信息交互率ci和它被选中成为充电目标到充电结束的时间间隔tc(i)决定,针对骨干节点层的节点来说,它的信息交互率ci值是由它的邻居节点的信息交互率的累加值,而对于普通节点层中的节点,它没有邻居节点,它的信息交互率ci代表它自生的信息交互率,具体步骤如下:

step3.1、当tc(i)相同的条件下,也就是说有多个节点完成一次充电需要相同的时间,在这样的情况下,信息交互率大的节点其优先级就越大,mc在实际选择充电目标时,优先选择信息交互率大的传感器节点为其充电,就确定了,ψ表示一次信息交互消耗的能量,也是固定的,所以ci决定了能量的减少值;

step3.2、当ci相同的条件系下,即服务池中有多个提出充电请求的节点具有相同的信息交互率,此时优先为tc(i)值最小的节点优先充电,根据公式(2),可以知道tc(i)越小,节点的优先级越大,如果每次选择tc(i)最小的节点作为充电目标的情况下,这样所有等待充电的节点si等待mc充电的延迟时间td就会最小,那么它们在等待过程中消耗的能量e=ci·ψ·td就会最小,因此,可以保证服务池中的节点不会在等待的过程中能量耗尽而失效;

step4、规划mc的充电路径:

step4.1、将服务池中的传感器节点划分为骨干节点和普通节点,分别存放到骨干节点集合vset={vb1,vb2…vbk}和普通节点集oset={nvb1,nvb2…nv…nvbk}中;

step4.2、如果服务池中当前只有一个节点提出了充电请求,无论是骨干节点还是普通节点,即|vset|=1或者|oset|=1,此时mc直接为其充电;

step4.3、找出初始充电序列,如果在当前时刻,服务池中存在多个传感器节点,此时存在三种情况,分别是只有骨干节点,只有普通节点,既有骨干节点也有普通节点,即|vset|≥2&&|oset|=0或者|oset|≥2&&|vset|=0或者|oset|≥1&&|vset|≥1,用seq={vset,oset}表示mc的充电序列,此序列分为前后两部分,前面部分代表骨干节点层,后部分代表普通节点层,并对该序列前后两部分分别根据各自节点的优先级大小排序来建立初始的充电序列,序列中后面的节点总是要在前面的所有节点充电完成后才被选择充电,初始的时候骨干节点优先于普通节点进行充电,在充电过程中,随着时间的推移普通节点优先级发生变化,此时普通节点根据具体情况插入到充电序列相应的位置;

step5、根据初始充电序列计算序列中各节点的充电延迟和能量消耗情况:首先引入数据结构map={e1,e2…en},其中ei={key:value}它是一种映射关系,元素ei中的key∈vset&&key∈oset,value=[td,ed]是一个二元组,td表示按照当前充电序列,键值k所指的传感器节点的充电延迟时间,ed则表示mc按照当前充电顺序移动到该节点时节点由于等待充电所消耗的能量,根据充电序列可以计算出充电序列中所有节点的td和ed的值,用t(i)表示mc按照充电序列到达充电序列中第i个节点所需要的时间,seq(i)表示充电序列中第i个节点,则有如下递推公式成立:

ei(t+t(i))=ei(t)-ci·ψ·t(i)(4)

令t(0)=0则有t(1)=t(0)+t(mc,1)成立,t(mc,i)表示mc移动到充电序列第i个节点的时间,ei(t)表示节点提出充电请求时的剩余能量,η表示mc的充电速率,根据公式(5)计算出相应的结果并保存在map集合中,

step6、在step4中得到的充电序列需要约束条件来保证通过该充电序列进行充电能满足服务池中所有节点的充电要求,根据step5得到的传感器节点的充电延迟和能量消耗情况约束充电序列,约束条件如公式(6)要满足:1)对于所有充电序列中的节点充电延迟时间td都要小于其最大容忍延迟时间;2)对于所有序列中的节点,其等待充电消耗的能量ed都要小于其提出充电请求时节点的剩余能量值:

如果初始序列满足上述约束条件则直接按照该充电序列进行充电,如果不满足上述条件,则对充电序列中优先级相近并且靠后的节点向前调整,每调整一次判断一下约束条件,直到约束条件成立为止,如果满足不了对服务池中的所有节点的能量补充,可以牺牲普通节点来保证骨干节点的能量补充,按照上述充电序列进行充电,如果在充电过程中有新的节点加入,根据其优先级大小插入到充电序列相应的位置,然后对新的初始充电序列根据约束条件进行调整,这是一个反复的执行过程。

具体地,所述的step1具体包括如下步骤:

step1.1、寻找最大独立集mis:在图g=(v1,v2,…vn-1,vn)中,用d(i)代表节点vi的度即邻接点的个数,用gi表示去掉图g中节点vi后的子图,用邻域函数ns(vi)表示图g中与节点vi非邻接的顶点集,则寻找最大独立集mis具体流程如下:

第一步:计算所有节点的度d(i),找出度最大的节点;

第二步:利用邻域函数ns(vi)得到初始最大独立集mis,判断gi中顶点的度,如果gi中所有顶点的度都为零则跳到第四步,否则接着执行第三步;

第三步:局部寻找最大独立集mis,在gi中重复第一,二步;

第四步:找到最大独立集mis,结束整个循环;

step1.2、连接最大独立集mis来构建最小连通支配集mcds,由于最大独立集mis中的节点两两互不相连,必须通过额外的传感器节点将其链接起来得到初始连通支配集ocds,再通过裁剪规则得到最小连通支配集mcds,最终将网络划分成骨干节点层和普通节点层;具体构建过程如下:

第一步:在mis中找到度最大的节点vi,如果存在多个则任选一个;

第二步:从mis-{vi}集合中选择度最大的节点vj,计算vi与vj的最短路径shortestpath(vi,vj),如果存在多条最短路径则选择平均节点度最大路径上且不在初始连通支配集ocds中的节点加入初始连通支配集ocds,并更新最大独立集mis=mis-{vi};

第三步:对更新后的最大独立集mis中的节点进行连接,如果更新后的最大独立集中存在节点即|mis|≠0则重复第一,二步,否则直接执行第四步;

第四步:对初始连通支配集ocds中的节点按照节点度由小到大进行裁剪得到最小连通支配集mcds,到此骨干网构建完成,最后将最小连通支配集mcds中的节点划分为骨干节点层,不在最小连通支配集mcds中节点划分为普通节点层。

本发明的有益效果是:使用本发明能够很好的解决节点能耗差异造成的网络运行效率低下的问题。能耗的差异性可能导致充电过程中由于目标节点选择不当而造成节点失效。按照节点的充电优先级进行能量补充能够很好的解决以上问题,从而有效的延长网络的生存时间。

附图说明

图1是网络模型图;

图2是骨干网构建说明图;

图3是mc充电路线图;

图4是充电算法流程图。

具体实施方法

下面对本发明的具体实施方法进行描述,以便更好的理解本发明。

实施例1:如图1-4所示,一种虚拟骨干网环境下基于层次结构的移动能量补充方法,将无线传感器网络分为骨干节点层和普通节点层。骨干节点层负责将普通节点层感知到的信息中继给基站。由于信息传递能耗大,因此骨干层节点层负载也相对较大。在整个充电过程中优先为骨干节点层补充能量。

具体包括以下步骤:

step1、将无线传感器网络根据能耗差异以构建骨干网的方式划分为骨干节点层和普通节点层,其实现该划分的具体步骤如下:

step1.1、寻找最大独立集(mis),在图g=(v1,v2,…vn-1,vn)中,用d(i)代表节点vi的度即邻接点的个数,用gi表示去掉图g中节点vi后的子图,用邻域函数ns(vi)表示图g中与节点vi非邻接的顶点集,则寻找最大独立集(mis)具体流程如下:

第一步:计算所有节点的度d(i),找出度最大的节点;

第二步:利用邻域函数ns(vi)得到初始最大独立集(mis),判断gi中顶点的度,如果gi中所有顶点的度都为零则跳到第四步,否则接着执行第三步;

第三步:局部寻找mis,在gi中重复第一,二步;

第四步:找到mis,结束整个循环;

step1.2、连接最大独立集(mis)来构建最小连通支配集(mcds),由于最大独立集(mis)中的节点两两互不相连,必须通过额外的传感器节点将其链接起来得到初始连通支配集(ocds),再通过裁剪规则得到最小连通支配集(mcds),最终将网络划分成骨干节点层和普通节点层。具体构建过程如下:

第一步:在mis中找到度最大的节点vi,如果存在多个则任选一个;

第二步:从mis-{vi}集合中选择度最大的节点vj,计算vi与vj的最短路径shortestpath(vi,vj),如果存在多条最短路径则选择平均节点度最大路径上且不在初始连通支配集(ocds)中的节点加入初始连通支配集(ocds),并更新最大独立集mis=mis-{vi};

第三步:对更新后的最大独立集(mis)中的节点进行连接,如果最大独立集中存在节点即|mis|≠0则重复第一,二步,否则直接执行第四步;

第四步:对初始连通支配集(ocds)中的节点按照节点度由小到大进行裁剪得到最小连通支配集(mcds),到此骨干网构建完成。最后将最小连通支配集(mcds)中的节点划分为骨干节点层,不在最小连通支配集(mcds)中节点划分为普通节点层。

step2、根据step1中构建的层次结构进行能量补充,在通过移动充电装置(mc)充电前,首先计算充电服务池中每个待充电节点vi的当前最大充电容忍延迟,例如待充电节点的最大充电容忍延迟li(t)为:

其中rei为发送充电请求时该节点vi的剩余能量,t为当前时间,tsi是发送充电请求时的时间戳,ψ为传感器节点处理一条信息消耗的能量,ci为发送充电请求时该节点vi的信息交互率。如果节点的当前最大充电容忍延迟小于或等于零,说明节点已经饿死,则从充电服务池队列中删除该节点。

step3、对充电服务池队列中的所有传感器节点根据公式(2)如下:

计算每个传感器节点的优先级,在公式(2)中,cj指传感器节点vj的当前信息交互率,可通过传感器自身得出,tc(i)表示vi被选中成为充电目标到充电结束所需要的时间,它是由移动充电装置(mc)的移动时间t(mc,i)和充电时间tw组成,其中t(mc,i)表示mc移动到传感器节点vi的时间,tw表示mc为节点vi充满电所需要的时间,as(vi)表示节点vi的邻接点集合。从上述公式可以看出,节点的优先级是由它的信息交互率ci和它被选中成为充电目标到充电结束的时间间隔tc(i)决定。针对骨干节点层的节点来说,它的信息交互率ci值是由它的邻居节点的信息交互率的累加值。而对于普通节点层中的节点,它没有邻居节点,它的信息交互率ci代表它自生的信息交互率。在绝大多数情况下普通节点的优先级明显小于骨干节点的优先级,只有在普通节点距离mc足够近的情况下才有可能有较大的优先级,在这种情况下优先给它充电仍然是合理的。

step3.1、当tc(i)相同的条件下,也就是说有多个节点完成一次充电需要相同的时间。在这样的情况下,信息交互率大的节点其优先级就越大,mc在实际选择充电目标时,优先选择信息交互率大的传感器节点为其充电。就确定了,ψ表示一次信息交互消耗的能量,也是固定的,所以ci决定了能量的减少值。

step3.2、当ci相同的条件系下,即服务池中有多个提出充电请求的节点具有相同的信息交互率,此时优先为tc(i)值最小的节点优先充电。根据公式(2),可以知道tc(i)越小,节点的优先级越大,如果每次选择tc(i)最小的节点作为充电目标的情况下。这样所有等待充电的节点si等待mc充电的延迟时间td就会最小,那么它们在等待过程中消耗的能量e=ci·ψ·td就会最小。因此,在很大程度上可以保证服务池中的节点不会在等待的过程中能量耗尽而失效。

step4、规划mc的充电路径,在step3中,选择服务池中优先级最大的节点进行充电只能保证服务池中部分骨干节点的能量供应,不能保证所有骨干节点的能量供应。因此在这一步中,我们需要根据优先级大小规划mc的充电路线。虽然在网络运行过程中,节点的信息交互率随时间发生变化。大多数情况下,传感器节点的优先级相差并不是很大,也就是说要么节点的信息交互率值很接近,要么时间间隔tc(i)的值很接近。虽然这些节点单位时间的能量消耗很接近,但是充电选择顺序对网络的影响很大。为了让mc以最快的速度到达充电目标节点来保证节点的能量供应并减小了mc的移动成本需要合理规划充电路径。

step4.1、将服务池中的传感器节点划分为骨干节点和普通节点。分别存放到骨干节点集合vset={vb1,vb2…vbk}和普通节点集oset={nvb1,nvb2…nvbk}中。

step4.2、如果服务池中当前只有一个节点提出了充电请求,无论是骨干节点还是普通节点,即|vset|=1或者|oset|=1,此时mc直接为其充电。

step4.3、找出初始充电序列,如果在当前时刻,服务池中存在多个传感器节点,此时存在三种情况,分别是只有骨干节点,只有普通节点,既有骨干节点也有普通节点。即|vset|≥2&&|oset|=0或者|oset|≥2&&|vset|=0或者|oset|≥1&&|vset|≥1。我们用seq={vset,oset}表示mc的充电序列,此序列分为前后两部分,前面部分代表骨干节点层,后部分代表普通节点层,并对该序列前后两部分分别根据各自节点的优先级大小排序来建立初始的充电序列。序列中后面的节点总是要在前面的所有节点充电完成后才被选择充电。初始的时候骨干节点优先于普通节点进行充电。在充电过程中,随着时间的推移普通节点优先级发生变化,此时普通节点根据具体情况插入到充电序列相应的位置。

step5、根据初始充电序列计算序列中各节点的充电延迟和能量消耗情况。为了方便描述,首先引入这样一个数据结构map={e1,e2…en},其中ei={key:value}它是一种映射关系。元素ei中的key∈vset&&key∈oset,value=[td,ed]是一个二元组。td表示按照当前充电序列,键值k所指的传感器节点的充电延迟时间,ed则表示mc按照当前充电顺序移动到该节点时节点由于等待充电所消耗的能量。根据充电序列可以计算出充电序列中所有节点的td和ed的值,用t(i)表示mc按照充电序列到达充电序列中第i个节点所需要的时间,seq(i)表示充电序列中第i个节点。则有如下递推公式成立:

ei(t+t(i))=ei(t)-ci·ψ·t(i)(4)

令t(0)=0则有t(1)=t(0)+t(mc,1)成立。t(mc,i)表示mc移动到充电序列第i个节点的时间,ei(t)表示节点提出充电请求时的剩余能量,η表示mc的充电速率。根据公式(5)计算出相应的结果并保存在map集合中。

step6、在step5中得到的充电序列需要约束条件来保证通过该充电序列进行充电能满足服务池中所有节点的充电要求。因为序列中存在多个优先级大小很接近的节点,他们的充电顺序对网络存在很大的影响。所以有必要动态调整充电序列。在step5中我门根据初始充电序列得到了传感器节点的重要信息,根据这些信息来约束充电序列。其约束条件如公式(6)要满足:1)对于所有充电序列中的节点充电延迟时间td都要小于其最大容忍延迟时间;2)对于所有序列中的节点,其等待充电消耗的能量ed都要小于其提出充电请求时节点的剩余能量值。

如果初始序列满足上述约束条件则直接按照该充电序列进行充电,如果不满足上述条件,则对充电序列中优先级相近并且靠后的节点向前调整,每调整一次判断一下约束条件,直到约束条件成立为止。在极端的条件下,如果满足不了对服务池中的所有节点的能量补充,可以牺牲普通节点来保证骨干节点的能量补充。按照上述充电序列进行充电,如果在充电过程中有新的节点加入,根据其优先级大小插入到充电序列相应的位置,然后对新的初始充电序列根据约束条件进行调整,这是一个反复的执行过程。从上面的步骤可以看出在保证对骨干节点层优先充电的情况下兼顾了普通节点层的充电请求。从而保证了网络中绝大部分传感器能够得到能量补充。

对附图的具体说明:图1中展示了本发明要考虑的网络的模型,本发明的网络模型是由成百上千的传感器节点,基站,移动充电装置等组成。并在该模型中简单呈现了网络中信息的转发与接收情况。图3展示了移动充电装置根据本发明提出的充电方法得到的充电路线。图4主要描述了整个充电目标选择算法的流程图。图2骨干展示了通过构建骨干网对传感器节点进行层次划分。在图2中,节点v2的度d(2)=3是最大的,利用邻域函数ns(v2)可得独立集为{v2,v4,v6},在去掉顶点v2的图中,节点v4的度d(4)=2最大,得到独立集{v2,v3,v4,v6}是矛盾解,所以当前独立集仍为{v2,v4,v6},在去掉v4的图中,节点v6的度d(6)=2最大,利用领域函数ns(v6)得到独立集为{v1,v2,v4,v6}是矛盾解,故独立集仍然为{v2,v4,v6},在去掉v6的图中,节点v1,v3,v5的度相等且都为零,即d(1)=d(3)=d(5)=0,此时得到mis={v2,v4,v6}。d(v2)=3最大,在集合mis-{v2}中v4,v6的度相等即d(v4)=d(v6)=2,我们可以找到v2,v4的最短路径shortestpath(v2,v4)有两条即|shortestpath(vi,vj)|=2分别是v2→v1→v4和v2→v5→v4,前者平均节点度为7/3,后者平均节点度为8/3,故将节点v2,v4,v5加入到ocds中,更新mis后得到mis={v4,v6}且mis-{v4}不为空,重复上述工作,此时需要加入节点v4,v5,v6到ocds中,但ocds中存在v4,v5故只加入节点v6,更新mis={v6}但mis-{v6}为空,找到初始连通支配集ocds={v2,v4,v5,v6},对初始连通支配集中的节点按照节点度由小到大进行裁剪,根据该规则,节点v4,v6被裁剪掉,最终得到mcds={v2,v5},骨干网构建完成。最后将集合mcds={v2,v5}中的节点划分为骨干节点层,不在集合mcds={v2,v5}中的节点划分为普通节点层。

本发明根据能耗差异将网络中的传感器节点分成骨干节点层和普通节点层,分别对应能耗大的传感器节点和能耗小的传感器节点。并优先为骨干节点层补充能量同时兼顾普通节点层的能量补充。有效的避免了节点因能量耗尽而失效。本发明为虚拟骨干网环境下基于层次结构的无线传感器网络提供了一种新的解决方法,实现了网络的长生存周期和可持续运行。

以上结合附图对本发明的具体实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。

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