无线传感器网络自愈修复方法及系统与流程

文档序号:11846120阅读:718来源:国知局
无线传感器网络自愈修复方法及系统与流程
本发明涉及无线传感
技术领域
,尤其是涉及一种无线传感器网络自愈修复方法及系统。
背景技术
:无线传感器网络常被部署在条件恶劣的环境中,因此网络容易发生各种故障。当部署之后的网络发生局部故障,如关键节点故障等,将可能影响网络的正常工作,此时需要有效的机制对故障的网络进行修复。在单个节点故障的情况下,当网络中的其他节点可移动时,可采用移动节点的方式来修复网络连接。采用移动节点的修复方法,一方面无需部署新的节点,节省了购买设备的开销;另一方面,这种方法可以由预先制定的修复算法自动完成,无需人工干预,节省了人工修复成本。但采用这种方法进行修复也面临着两方面的挑战。第一,这种修复方法的一般步骤是将故障节点的邻居节点往故障节点的位置移动,目的是让邻居节点完全替代故障节点,从而修复网络连接。但邻居节点的移动可能会导致其他连接断开,带来新的网络故障问题。因此,如何适当地移动邻居节点而不引起新的网络故障是本发明需要解决的一个问题。第二,与节点处于静止状态相比,节点的移动需要耗费额外的能量。若原本能量剩余不多的节点耗费过多的能量进行移动,则该节点可能在到达指定位置之前便失效,或者在移动到指定位置之后不久便失效。节点失效也可能带来新的网络故障问题。因此,如果适当地移动各个节点,使得移动之后的节点还能较长久地在网络中提供服务是本发明需要考虑的另一个问题。现有方法主要注重于修复网络的连接,并未同时考虑上述两方面问题。Younis等人提出的RIM算法的修复步骤为:当网络中某个关键节点故障时,其所有邻居节点同时向故障节点方向移动,直到邻居节点之间可以相互通信为止。邻居节点的移动若导致其他连接的断开,则这些断开的连接也通过节点同时移动的方法进行修复。也就是说,当网络中某个关键节点故障时,通过所有节点一起向故障节点位置移动的方式来达到修复网络连接的目标。这种方法虽然修复了网络连接,但导致了网络中大部分节点都需要移动。Abbasi等人在RIM算法的基础上进行改进,提出了DARA算法。当网络中某个关键节点故障时,DARA算法将节点度最小的邻居节点移动到故障节点位置。若邻居节点的移动带来了新的网络连接的断开,则其他节点通过级联移动的方式来修复网络连接。尽管该算法修复了网络连接,但当移动的节点也处于网络中的关键位置时,这种移动方法同样导致了较多节点的移动。此外,Abbasi等人还提出了LeDiR算法,该算法假设当网络中某个关键节点故障时,网络至少被分为两个子块。该算法首先找到所有分块中的最小子块,并在最小子块中找到故障节点的邻居节点。其次,将邻居节点移动到故障节点位置,代替故障节点执行指定功能。若邻居节点的移动带来了新的网络连接的断开,则其邻居节点向故障节点方向移动,直到修复网络连接为止。与RIM和DARA算法相比,LeDiR算法相对地减少了移动节点的数目。Tamboli等人提出的ECR算法通过轮流将故障节点的邻居移动到故障节点的位置来达到修复网络连接和维持原有覆盖的目的,但从该算法开始执行之后,节点一直处于轮流移动状态,整个网络十分不稳定。上述算法均是在单个节点故障的情况下对网络连接进行修复,并要求网络中的其他节点可移动。通过移动网络中的其他节点,可在无需人工干预的情况下,网络自行修复连接,不仅节约人工修复的成本,也节约了购买设备的成本。但是上述算法均未考虑节点的能量问题。若节点本身剩余能量较少,却仍要按照算法的要求进行移动,则很可能导致节点在没有移动到指定位置之前,就因能量耗尽而死亡,进而导致更严重的网络故障。因此,对于单个节点故障的情况,在制定修复策略时,需要同时考虑节点的能量问题。技术实现要素:本发明所要解决的技术问题是:提供一种无线传感器网络有效的自愈修复方法,以平衡节点能耗,延长网络生存周期。为了解决上述技术问题,本发明采用的技术方案为:提供一种无线传感器网络自愈修复方法,包括:获取无线传感器节点的位置坐标以及关键节点;在检测关键节点发生故障后,根据节点能量,朝故障关键节点方向移动其对应的邻居节点;在移动邻居节点后,检测是否修复网络连接;若未修复,则朝故障关键节点方向移动节点最小块,直至所有子块可相互通信。为解决上述问题,本发明还提供一种无线传感器网络自愈修复系统,包括:目标获取单元,用于获取无线传感器节点的位置坐标以及关键节点;节点移动单元,用于在检测关键节点发生故障后,根据节点能量,朝故障关键节点方向移动其对应的邻居节点;连接检测单元,用于检测在移动邻居节点后,检测是否修复网络连接;子块移动单元,用于若未修复,则朝故障关键节点方向移动节点最小块,直至所有子块可相互通信。本发明的有益效果在于:区别于现有技术,本发明确定故障关键节点后,根据其邻居节点能量,朝故障关键节点方向进行移动,并初次检测是否修复网络连接;若未修复,则朝故障关键节点方向移动节点最小块,直至所有子块可相互通信。通过上述方式,本发明不仅最大程度地保持了节点原有的连接,还有效地平衡了节点的能耗,延长了网络的生存周期。附图说明图1为本发明具体实施例的操作流程示意图;图2为本发明具体实施例中无线传感器网络示意图;图3为本发明具体实施例中ni+1节点故障后进行相切移动示意图;图4为本发明具体实施例中的SER算法与现有的LeDiR算法的总移动距离对比曲线图;图5为本发明具体实施例中的SER算法与现有的LeDiR算法的总能耗对比曲线图;图6为本发明具体实施例中的SER算法与现有的LeDiR算法的总移动节点数目对比曲线图;图7为本发明具体实施例中的SER算法与现有的LeDiR算法的能量方差对比曲线图。具体实施方式为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。本发明最关键的构思在于:确定关键节点发生故障后,根据邻居节点能量,向关键节点方向移动,以检测是否修复网络连接。本发明实施例一提供一种无线传感器网络自愈修复方法,包括:获取无线传感器节点的位置坐标以及关键节点;在检测关键节点发生故障后,根据节点能量,朝故障关键节点方向移动其对应的邻居节点;在移动邻居节点后,检测是否修复网络连接;若未修复,则朝故障关键节点方向移动节点最小块,直至所有子块可相互通信。区别于现有技术,本发明确定故障关键节点后,根据其邻居节点能量,朝故障关键节点方向进行移动,并初次检测是否修复网络连接;若未修复,则朝故障关键节点方向移动节点最小块,直至所有子块可相互通信。通过上述方式,本发明不仅最大程度地保持了节点原有的连接,还有效地平衡了节点的能耗,延长了网络的生存周期。其中,每个节点定期向其邻居节点发送心跳消息;邻居节点判断在特定时间段内是否接收到心跳消息,若是,则表示该节点正常;反之,则表示该节点发送故障,并判断该节点是否为关键节点,若是,则朝故障关键节点方向移动其对应的邻居节点;反之,则忽略该节点。在移动时,需要预先获取发生故障的关键节点的邻居节点的初始能量,并按照能量高低进行排序;按照初始能量高低,依序为每个邻居节点计算相切距离及允许移动距离;取相切距离及允许移动距离中的较小值,作为该邻居节点的移动距离;朝故障关键节点方向移动该邻居节点的所述移动距离后,判断是否修复网络连接;若是,则表示修复成功,并结束流程;反之,则为初始能量第二大的邻居节点计算相切距离及允许移动距离,并进行移动;直至关键节点的所有邻居节点都进行移动为止。若未修复,则朝故障关键节点方向移动节点最小块,直至所有子块可相互通信,具体为:通过关键节点,对无线传感器节点划分若干个子块;比较各个子块包含的节点数目,获取无线传感器节点的最小块;向故障关键节点方向移动最小块的邻居节点,直到邻居节点可以与故障节点的其他邻居节点进行通信。若最小快邻居节点的移动造成新的连接断开,则将其他节点朝故障关键节点方向移动,直至完成网络连接的修复。对应地,本发明实施例二提供一种无线传感器网络自愈修复系统,包括:目标获取单元,用于获取无线传感器节点的位置坐标以及关键节点;节点移动单元,用于在检测关键节点发生故障后,根据节点能量,朝故障关键节点方向移动其对应的邻居节点;连接检测单元,用于检测在移动邻居节点后,检测是否修复网络连接;子块移动单元,用于若未修复,则朝故障关键节点方向移动节点最小块,直至所有子块可相互通信。其中,每个节点定期向其邻居节点发送心跳消息;邻居节点判断在特定时间段内是否接收到心跳消息,若是,则表示该节点正常;反之,则表示该节点发送故障,并判断该节点是否为关键节点,若是,则朝故障关键节点方向移动其对应的邻居节点;反之,则忽略该节点。所述节点移动单元还用于:获取发生故障的关键节点的邻居节点的初始能量,并按照能量高低进行排序;按照初始能量高低,依序为每个邻居节点计算相切距离及允许移动距离;取相切距离及允许移动距离中的较小值,作为该邻居节点的移动距离;朝故障关键节点方向移动该邻居节点的所述移动距离后,判断是否修复网络连接;若是,则表示修复成功,并结束流程;反之,则为初始能量第二大的邻居节点计算相切距离及允许移动距离,并进行移动;直至关键节点的所有邻居节点都进行移动为止。所述子块移动单元具体用于:通过关键节点,对无线传感器节点划分若干个子块;比较各个子块包含的节点数目,获取无线传感器节点的最小块;向故障关键节点方向移动最小块的邻居节点,直到邻居节点可以与故障节点的其他邻居节点进行通信。若最小快邻居节点的移动造成新的连接断开,则将其他节点朝故障关键节点方向移动,直至完成网络连接的修复。为方便理解,以下结合附图1~7,通过一个具体实施例进行说明。本发明的无线传感器网络能量有效的自愈修复方法。该方法大体上可分成移动邻居节点以及移动最小块两个步骤。在移动邻居节点步骤中,节点最终移动的距离取决于节点与其邻居之间的覆盖重叠情况以及节点本身的能量情况。若所有邻居节点移动后均未能修复网络连接,则移动最小块。在移动最小块步骤中,节点移动的首要目标是修复网络连接,因此这个步骤并未考虑节点的能量问题,而是将处于最小块的节点进行移动以修复网络连接。该方法不仅最大程度地保持了节点原有的连接,还有效地平衡了节点的能耗,延长了网络的生存周期。首先假设无线传感器网络中的节点均可移动,并且发生故障的节点为关键节点。当把一个节点及其相关的边都移除,若整个网络被分割成2个或2个以上的子块,则称该节点为关键节点,因此关键节点包括至少2边。图2中,当节点n5及其相应的边被移除时,整个网络被分割成三个子块,因此,节点n5称为关键节点。类似的,n2、n3和n7也均为关键节点。相反地,节点n1、n4、n6和n8称为叶子节点。相比于关键节点,叶子节点发生故障时,对整个网络的影响相对较小。因此在单节点故障的问题中,本发明主要关注的是某个关键节点故障时,如何适当地移动网络中其他节点来修复网络连接,使得修复之后的网络可以正常通信。无线传感器网络中的节点通常随机部署,导致部署之后节点与节点之间存在较大的覆盖重叠区域。因此,当网络中某个节点需要移动时,本发明采用的方法之一是将该节点移动到与其邻居节点相切的位置,这样既维持了节点的原有连接,也扩大了覆盖面积。但是,若节点与其邻居节点的覆盖重叠区域较大,则节点需要移动较长的距离才能到达与邻居节点相切的位置,这将导致节点需要耗费较多的能量。但节点所拥有的能量并不一定能提供节点的较长移动。因此,为了维持节点原有连接,同时使得节点在移动之后可以继续提供服务,本发明为节点设置了一个能量阈值,只有节点的能量大于阈值才进行移动。所以,在本发明中需要为每个即将移动的节点计算两个值:节点从初始位置移动到与邻居节点相切的位置的移动距离(相切距离),以及节点拥有的能量所能提供节点移动的距离(最大距离),并取其中较小的一个值为节点的最终移动距离。以图3为例,当节点ni+1故障时,需要移动ni+1的邻居节点ni或ni+2去修复网络连接。假设ni和ni+2现有的能量均大于阈值,并且ni的能量大于ni+2的能量。首先将ni朝ni+1方向移动。ni可移动的距离取决于ni与其邻居节点ni-1之间的覆盖重叠情况以及ni自身的能量值。下面分别计算ni的相切距离和最大移动距离。在图3中,假设节点ni、ni-1和ni+1的初始坐标分别为(xi,yi)、(xi-1,yi-1)和(xi+1,yi+1),ni移动到与节点ni-1相切的位置之后的坐标为(x,y)。各个节点的初始坐标已知,(x,y)未知。因为ni往ni+1方向移动,所以有yi+1-yixi+1-xi=y-yix-xi---(1-1)]]>ni与ni-1相切,有(x-xi-1)2+(y-yi-1)2=(2×R)2(1-2)联立(2-1)和(2-2)两个等式即可求解(x,y)。通过(x,y)可求得节点ni的移动距离,即相切距离,为dtani=(x-xi)2+(y-yi)2---(1-3)]]>此外,还需计算ni的最大移动距离。假设节点ni所具有的能量为ei,可用于移动的能量(称为额外能量)为ei-et(ei>et)。并假设节点每移动单位距离需要耗费的能量为ed,则ni可以移动的最大距离为dmaxi=ei-eted---(1-4)]]>最后取dtani和dmaxi二者之中的较小值为节点的最终移动距离。这样既保证了节点之间的原有连接不被破坏,也保证了节点在移动之后还能有足够的能量继续为网络提供服务。如图1所示,本发明所述的无线传感器网络能量有效的自愈修复算法(SER)步骤如下:步骤1.初始化。在节点部署之后,假设节点可以通过GPS等技术获取自己所在的位置坐标。通过解析路由表,每个节点都知道网络中哪些节点为关键节点。步骤2.故障检测。每个节点定期地向其邻居节点发送心跳消息。一旦某个节点的邻居节点在一段时间内没有收到该节点发送的心跳消息,则认为该节点发生故障。故障节点的邻居节点判断故障节点是否为关键节点,若为关键节点,则执行以下步骤。步骤3.移动邻居节点。假设故障节点为nF,该节点有m个邻居节点,每个邻居节点具有不同的初始能量ei。设nF的邻居节点集合为Snb={n1,n2,…,nm}。当邻居节点检测到nF发生故障时,邻居节点中具有最大能量值的节点ni计算自己的dtani和dmaxi的值(ei>et),并选择其中较小的一个值为其移动距离。若dtani值较小,则说明ni需要朝故障节点方向移动到与其邻居节点相切的位置;反之,若dmaxi值较小,则说明ni朝故障节点方向移动dmaxi距离。无论节点移动dtani或dmaxi距离,都不会破坏节点与其邻居节点之间的连接。移动结束之后,ni判断自己是否修复了网络连接。若已经修复完成,整个网络可以正常通信,则终止修复算法;若ni移动之后网络连接还未修复完成,则具有第二高能量值的节点nj计算自己的dtanj和dmaxj的值后,执行与ni相同的步骤。若nF所有的邻居节点都移动之后,网络连接仍未修复完成,即对应图1中,按照能量大小,逐一移动故障关键节点的邻居节点,并逐一从该Snb={n1,n2,…,nm}中删除,直到邻居节点均移动(即集合Snb={n1,n2,…,nm}为空时),若网络连接仍未修复,则执行步骤4。步骤4.移动最小块。最小块指的是在由故障节点断开而导致的所有分块当中具有节点数目最少的子块。当故障节点的邻居节点都移动完毕之后网络连接还未被修复,此时需要找到所有分块中的最小块,将处于最小块的节点向故障节点方向移动,直至所有子块能够相互通信。具体做法为:处于最小块中的故障节点对应的邻居节点向故障节点移动,逐一移动整个最小块的所有节点,直到邻居节点可以与故障节点的其他邻居节点进行通信。若邻居节点的移动带来了新的连接的断开,则将其他节点朝故障节点方向移动,直至完成网络连接的修复。在本发明的步骤3中,所有满足能量阈值的节点在连接修复完成之前均需要向故障节点方向移动。算法通过设置阈值的方式,避免某个节点将能量提前耗尽,也通过这种方法使得参与修复的每个节点的能量达到相对的均衡。步骤4表明,一个节点的移动可能导致一批节点都需要移动,但因为这些节点均处于最小块(节点数目最少的子块),所以总的移动的节点数目将不会太多。此外,从修复算法的各个步骤中可以看出,不管是移动邻居节点或是移动最小块,节点之间的最短路径都没有被延长。令为节点在修复过程中移动的总距离。假设修复算法执行完毕后共有个节点进行移动,则这些节点的总的移动距离为Dsum=Σi=1kdi---(3-1)]]>由于每个节点移动单位距离需要耗费的能量为,因此这些节点需耗费的总能量为Esum=ed×Dsum=ed×Σi=1kdi---(3-2)]]>每个节点初始的能量为,移动之后剩余的能量为ei-ed×di(3-3)每个节点移动之后的平均剩余能量为Ea=1kΣi=1k(ei-ed×di)---(3-4)]]>剩余能量的方差为V=1kΣi=1k(ei-ed×di-Ea)2=1kΣi=1k(ei-ed×di-1kΣi=1k(ei-ed×di))2---(3-5)]]>修复之后,这些移动的节点所能存活的时间为T=min{ei-ed×di}es,1≤i≤k.---(3-6)]]>将本发明与LeDiR算法进行比较。在仿真实验中,节点部署的区域为固定大小。图4描述的是固定区域内节点的数目与节点总移动距离之间的关系。从图4中可以看出,随着节点数目的增大,两种修复算法的总移动距离均随之减小。这是因为当区域面积固定时,部署的节点数目越多,节点越密集,节点之间相隔的距离越小。当某个节点发生故障时,其邻居节点所需移动的距离也将缩短。另一方面,从图4也可以看出,本发明的SER算法总移动距离小于LeDiR算法。这是因为LeDiR直接移动整个最小块,这种方法等同于让单个邻居节点移动较长的距离来修复网络连接。单个节点移动较长距离很大程度上引起了新的连接的断开,此时需要其他单个节点也移动较长的距离来修复。也就是说,LeDiR算法的修复过程像是单个节点的移动修复,而本发明的SER算法类似于各个邻居节点之间协同工作来实现网络连接修复,邻居节点之间的协同工作能更好地缩短移动距离,因此本发明的SER算法比LeDiR算法的节点总移动距离更短。从公式可以看出,所有移动节点所消耗的能量与节点所移动的距离成正比,因此图5的曲线类似于图4的曲线。也就是说,当一个固定区域内部署的节点数目增加时,节点之间的距离变小,当某个节点发生故障后,参与修复的所有节点所移动的总距离变小,节点所消耗的总能量也变小。从图5中可以看出,本发明的SER算法的节点所耗费的总能量小于LeDiR算法。这是因为,本发明的SER算法的节点所移动的总距离小于LeDiR算法节点移动的总距离。图6描述的是固定区域内节点的数目与总移动节点数之间的关系。在实际应用中,固定区域中部署的节点数目越多,节点之间的距离便随之减小。当某个节点发生故障时,修复过程中所需移动的节点数目便减少了。图6的曲线趋势符合实际应用情况。从图6中也可以看出,本发明的SER算法移动的节点数目多于LeDiR算法。这是因为LeDiR算法在进行网络连接修复时,直接移动处于最小子块的邻居节点。在最坏的情况下,LeDiR算法需要移动的节点数目为最小子块中所有节点的个数,而本发明的SER算法在最坏的情况下需要移动的节点数目为最小子块中所有节点的个数与故障节点的所有邻居节点个数之和。因此从最坏的情况来看,本发明的SER算法所移动的节点数目将会大于LeDiR算法所移动的节点数目。而一般的情况下,本发明的SER算法因为需要几乎所有邻居的协同合作,而LeDiR算法只需移动最小块的部分节点,所以从一般情况下来看,本发明的SER算法所需移动的节点数目也会大于LeDiR算法。节点的能量方差反映的是节点的能量均衡情况。当网络中各个节点所拥有的能量越均衡时,网络越不容易因为单个节点的能量耗尽而产生新的网络故障问题,网络的存活时间就越长。因此,节点的能量方差间接地反映了网络的生存周期。由方差的定义可知,方差越小表示各个数值越均衡。所以,节点的能量方差越小,代表了节点的剩余能量越均衡,网络的生存周期便越长。从图7中可以看出,与LeDiR算法相比,本发明的SER算法修复之后的网络具有更小的方差值,说明在本发明的SER算法修复之后的网络中,各个节点所具有的能量更均衡,网络能够有更长的生存周期。本发明提供的无线传感器网络能量有效的自愈修复方法,可以平衡节点能耗,延长网络生存周期。以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的
技术领域
,均同理包括在本发明的专利保护范围内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1