基于水下无线传感网络的能量平衡和深度控制的路由协议的制作方法

文档序号:14575186发布日期:2018-06-02 01:46阅读:342来源:国知局
基于水下无线传感网络的能量平衡和深度控制的路由协议的制作方法
本发明属于水下无线传感网络领域,尤其涉及一种基于水下无线传感网络的能量平衡和深度控制的路由协议。
背景技术
:随着海洋探索与研究的不断深入,水下无线传感网络(UWSN)越来越受到关注。水下传感网络有着极其广泛的应用,通过布置大量的传感节点,实现军事监测、地震监测、污染监测、辅助导航等功能。水下无线传感网络包含大量的传感节点和汇聚(sink)节点。通常汇聚(sink)节点部署在水面上,而传感节点部署在水下不同的位置上。传感节点从周围环境收集有用的数据,接收来自其他节点的数据,并通过多跳的方式将数据传输给水面上的汇聚(sink)节点。最后,汇聚(sink)节点再将收集到的数据通过卫星通讯等方式传输到数据中心。由于无线电信号在水下衰减快,水下传感节点通常使用声波进行数据传输。而声波有着传输延迟高、信噪比高、带宽低等特点,因此基于地上无线传感器网络的路由协议并不适合水下传感网络。在水下无线传感网络中,传感节点的电池容量有限,更换电池难度大且费用高,因此提高网络生存时间是一个重要的问题。由于每个传感节点转发的数据量不同,导致传感节点的能量消耗不均匀,大大影响了网络生存时间,因此均衡传感节点之间的能量消耗是提高网络生存时间的重要方法之一。目前有学者提出了在节点在转发数据时根据其邻居节点的剩余能量选择下一跳的算法,实现其邻居节点的能量均衡并提高网络生存时间,但是并没有考虑到离汇聚节点近的节点(上层节点)与离汇聚节点远的节点(下层节点)之间的能量均衡。离汇聚节点近的节点有更多的数据需要转发,能耗比离汇聚节点远的节点更大,这种能耗不均匀降低了网络生存的时间。综上所述,亟需一种基于水下无线传感网络的能量平衡和深度控制的路由协议。技术实现要素:为了解决现有技术的不足,本发明提供了一种基于水下无线传感网络的能量平衡和深度控制的路由协议,其以解决水下传感网络中节点能量消耗不均的问题,提高网络的生存时间,使水下传感网络能够长时间得进行赋予给它的任务。本发明实施例提供了一种基于水下无线传感网络的能量平衡和深度控制的路由协议,包括:步骤1,网络初始化阶段:根据传感节点及sink节点的地理位置,分别计算和比较传感节点及其邻居节点与各自相对应最近的sink节点之间的欧氏距离Ds,构建出转发节点候选列表;步骤2,数据转发阶段:传感节点收集数据并转发给自己的转发节点,转发节点接收数据包并发送给自身的转发节点,最终传递到sink节点;其中,转发节点选取原则为:首先,每个传感节点从转发节点候选列表中选择具有最小欧氏距离Ds的邻居节点作为其转发节点;之后,选择具有最大剩余能量的邻居节点作为其转发节点;步骤3,节点替换阶段:传感节点依据其ID与数据包转发方ID相同的原则,转发数据包并将数据包转发方添加到子节点列表中;当传感节点的能量消耗大于预定的阈值时,该传感节点执行节点替换策略,从子节点列表中选择替换节点并调整其深度以替代该传感节点的转发功能。进一步的,在所述步骤1中,sink节点通过定位系统获得其地理位置并发送给AUV辅助定位系统。其中,AUV辅助定位系统,具体地可采用无缆水下机器人,习惯称为自主式水下潜器(AutonomousUnderwaterVehicle,简称AUV);无缆水下机器人具有活动范围不受电缆限制,隐蔽性好,活动范围大、机动性好、安全、智能化等优点。进一步的,在所述步骤1中,传感节点使用AUV辅助定位系统和自带的压力传感器来获得各自的地理位置;在AUV辅助定位系统的定位过程中,AUV辅助定位系统不断向传感节点广播sink节点的地理位置。进一步的,在所述步骤1中,传感节点周期性地向其邻居节点广播其自身的信息。进一步的,所述传感节点的自身信息包括传感节点ID、坐标、剩余能量和欧氏距离Ds。进一步的,在所述步骤1中,当传感节点从其邻居节点接收到广播信息包时,若其邻居节点的欧氏距离Ds小于其自身的欧氏距离Ds,则意味着该邻居节点比其更靠sink节点,传感节点可以将数据包转发到该邻居节点,以将数据包传送到sink节点。传感节点将该邻居节点的信息(如ID,坐标,剩余能量)记录到转发节点候选列表中。进一步的,在所述步骤2中,每个传感节点使用贪婪转发策略,从转发节点候选列表中选择具有最小Ds的邻居节点作为其转发节点。贪婪转发策略在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解。选择的贪婪策略必须具备无后效性,即某个状态以前的过程不会影响以后的状态,只与当前状态有关。进一步的,在所述步骤2中,每个传感节点周期性地检查转发节点候选列表中邻居节点的剩余能量。这样是为了平衡转发节点候选列表中的邻居节点的能量消耗。进一步的,在所述步骤2中,数据包将通过多跳的形式传递到sink节点。进一步的,在所述步骤3中,传感节点执行节点替换策略的过程中,在替换节点选择开始时,传感节点向其所有子节点发送请求包,子节点将记录在其子节点列表中的信息发送到传感节点。与现有技术相比,本发明的有益效果是:(1)本发明中不但考虑了同层节点之间的能量均衡,还通过节点替换策略对上下层节点之间的能量进行均衡,更加延长了网络的生存周期。(2)在选择替换节点时,考虑节点替换对于网络延时和数据转发的影响,尽量选择影响低的节点,降低对网络非替换部分的影响,尽可能保证网络的正常工作。附图说明构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。图1是本发明的基于水下无线传感网络的能量平衡和深度控制的路由协议流程图;图2(a)是传感节点的信息包格式;图2(b)是转发节点接收的数据包格式;图3(a)是替换之前的拓扑;图3(b)是选择节点b作为替换节点;图3(c)是选择节点c作为替换节点。具体实施方式应该指出,以下详细说明都是例示性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属
技术领域
的普通技术人员通常理解的相同含义。需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。图1是本发明的基于水下无线传感网络的能量平衡和深度控制的路由协议流程图。如图1所示,本发明实施例提供了一种基于水下无线传感网络的能量平衡和深度控制的路由协议,包括步骤1~步骤3。其中,步骤1,网络初始化阶段:根据传感节点及sink节点的地理位置,分别计算和比较传感节点及其邻居节点与各自相对应最近的sink节点之间的欧氏距离Ds,构建出转发节点候选列表。具体地,在部署好所有节点后,sink节点通过定位系统(例如GPS)获得它们的位置(Xsi,Ysi,Zsi)并发送给AUV(AutonomousUnderwaterVehicleAutonomousUnderwaterVehicle)。其中,AUV辅助定位系统,具体地可采用无缆水下机器人,习惯称为自主式水下潜器(AutonomousUnderwaterVehicle,简称AUV);无缆水下机器人具有活动范围不受电缆限制,隐蔽性好,活动范围大、机动性好、安全、智能化等优点。水下传感节点使用AUV辅助定位系统和自带的压力传感器来获得各自的位置。在AUV辅助定位过程中,AUV不断向传感节点广播sink节点的位置。因此每个传感节点都有自己的坐标(Xi,Yi,Zi)和所有sink节点的坐标,然后每个传感节点通过这些坐标计算自身与其最近的sink节点之间的欧氏距离(Ds)。之后,传感节点周期性地向邻居节点广播自身的信息,包括ID,坐标,剩余能量和Ds。传感节点自身的信息包的格式如图2(a)所示。当传感节点从其邻居节点中接收到信息包时,它将其Ds与邻居的Ds进行比较。如果邻居节点的Ds较小,则意味着该邻居节点比其更靠sink节点,传感节点可以将数据包转发到该邻居节点,以将数据包传送到sink节点。传感节点将该邻居节点的信息(如ID,坐标,剩余能量)记录到转发节点候选列表中。转发节点候选列表的格式如表1所示。在该阶段的最后,传感节点对转发节点候选列表进行排序,并从转发节点候选列表中选择具有最小Ds的邻居节点作为自身的转发节点。表1转发节点候选列表步骤2,数据转发阶段:传感节点收集数据并转发给自己的转发节点,转发节点接收数据包并发送给自身的转发节点,最终传递到sink节点;其中,转发节点选取原则为:首先,每个传感节点从转发节点候选列表中选择具有最小欧氏距离Ds的邻居节点作为其转发节点;之后,选择具有最大剩余能量的邻居节点作为其转发节点。具体地,在数据转发阶段,所有传感节点收集数据并转发给自己的转发节点。起初,每个传感节点使用贪婪转发策略,从转发节点候选列表中选择具有最小Ds的邻居节点作为转发节点。之后,为了平衡转发节点候选列表中的邻居节点的能量消耗,每个传感节点周期性地检查转发节点候选列表中邻居节点的剩余能量,并选择具有最大剩余能量的邻居节点作为其转发节点。转发节点接收数据包并发送给自身的转发节点。最终数据包将通过多跳的形式传递到sink节点。其中,贪婪转发策略在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解。选择的贪婪策略必须具备无后效性,即某个状态以前的过程不会影响以后的状态,只与当前状态有关。步骤3,节点替换阶段:传感节点依据其ID与数据包转发方ID相同的原则,转发数据包并将数据包转发方添加到子节点列表中;当传感节点的能量消耗大于预定的阈值时,该传感节点执行节点替换策略,从子节点列表中选择替换节点并调整其深度以替代该传感节点的转发功能。如图2(b)所示,数据包包括发送方ID,转发方ID,发送方坐标,发送方剩余能量和数据五部分。当传感节点发送数据包时,所有的邻居节点都可以接收到数据包。为了避免冗余数据包并节省能量,传感节点接收到数据包时会检查转发方ID。如果其ID与转发方ID相同,则转发该数据包。同时,传感器节点将发送者的信息添加到子节点列表中。子节点候选列表的格式如表2所示。发送方ID,坐标和剩余能量可以从数据包直接获取,而发送方的数据流量(定义为Ps)可以通过对单位时间内从发送方接收到的数据包进行计数来获得。表2SenderIDCoordinatePsResidualEnergy(J)3(12,20,7)79010(10,15,27)1080当传感节点的能量消耗大于预定的阈值时,该节点执行节点替换策略,从子节点中选择替换节点。其中,预定的阈值E为该节点在计算阈值时的剩余能量,x为预定义的正数,L为该节点发送数据包到sink节点的理想最小跳数,R为节点通信距离;Ds为该节点与其最近的sink节点的欧氏距离。由于传感节点只可以调整深度,而传感节点在水平方向上位于不同的位置,所以传感节点很难找到一个可以通过调节深度达到该节点位置的子节点。当选择一个子节点作为替换节点并调整其深度以替代传感该节点的转发功能时,替换节点无法保证与其所有的子节点进行通信。因此,节点替换后替换节点的数据流量小于等于节点替换前被替换节点的数据流量。将节点替换后替换节点的数据流量定义为保留数据流量(Pr)。为了减少节点替换对网络其他部分的影响,考虑选择保留数据流量(Pr)尽可能大的子节点作为替换节点。为了计算Pr,传感节点需要知道其子节点的子节点的信息,例如坐标和数据流量(Ps)。在替换节点选择开始时,传感节点向其所有子节点发送请求包,子节点将记录在其子节点列表中的信息发送到传感节点。之后,传感节点计算其子节点的Pr并根据Pr和剩余能量选择替换节点。并且在计算Pr过程中,传感节点和替换节点新的深度同时被计算出来。替换节点选择算法:在替换节点选择中,替换节点选择算法的符号定义如表3所示。表3替换节点选择算法的符号定义如表4所示,传感节点n首先检查每个子节点(第1行)。如果其子节点c具有比节点n更少的能量,节点n将检查下一个子节点(因为如果节点c替换节点n,节点c会降低网络生存时间)。否则,节点n初始化节点c的Pr为节点c产生的数据流量(Pc(c)),并计算节点c直接与节点n的转发节点f进行通信的深度范围(S(c,f))。同时,将节点c的最佳深度范围(D(c))初始化为S(c,f)(第3-4行)。然后节点n根据节点的数据流量Ps(按降序排列)(第5行)对其子节点进行排序,按照降序在节点n的子节点集合中检查每个节点(定义为k),并计算节点c与节点k进行通信的深度范围(S(c,k))(第6行)。如果最佳深度范围D(c)和S(c,k)具有交集,则表示节点c可以将节点k的数据包转发给节点n的转发节点,因此更新节点c的最佳深度范围D(c)和Pr(行8-11)。在遍历节点n的所有子节点之外,除了节点c之外,D(c)是节点c可以更多地从节点n的子节点转发分组的适当范围。然后确定节点c的新深度,其使节点c移动距离最小化(第13行)。根据节点c的新深度,节点n计算自身的最佳深度范围,其中节点n尽可能多地将节点c的子节点转发到节点c(行14-23)。确定节点n的新深度(行24),更新节点c的Pr(行25)。然后可以计算节点n和节点c在更换后的剩余能量(线26-27)。如果替换后节点c的剩余能量大于替换前的节点n的能量,并且节点n的寿命通过替换延长,则节点n将节点c添加到Candidates中(行28-30)。最后,节点n从Candidates中选择Pr最大的子节点作为替换节点。表4替换节点选择算法在选择好替换节点之后,传感节点(节点A)广播了替换节点(节点B)的新深度和替换节点B的ID。除替换节点B之外的每个A的子节点将检查替换节点B是否可以在新的深度与它们进行通信。如果替换节点B可以转发从子节点发送的数据包,则子节点将使用替换节点B作为新的转发节点,并从转发节点候选列表中删除原始转发节点(节点A)。否则,子节点将从转发节点候选列表中删除原始转发节点(节点A),并从转发节点候选列表中选择具有最大剩余能量的邻居节点作为新的转发节点。类似地,替换节点B向其子节点广播传感节点A的新深度。替换节点B的子节点根据它们是否可以与传感节点A通信来选择它们的转发节点。假设通信范围R为10m,调整能耗为1J/m,所有节点创建的数据流量为1。如图3(a)所示,节点o是节点a的转发节点,节点b和节点c是节点a的子节点。节点b有两个子节点:节点d和节点e;节点c有两个子节点:节点f和节点g。所有节点的信息如表5所示。表5所有节点的信息NodeCoordinatePsResidualEnergy(J)o(10,10,10)1160a(10,6,19)1050b(9,3,25)480c(10,10,25)575d(8,0,30)275e(11,2,31)178f(9,10,34)380g(12,15,33)174假设节点a剩余能量低,需要选择其子节点之一作为替换节点。首先,它检查节点b的能量,节点b具有比节点a更大的能量,可以作为替换节点。D(b)被初始化为:然后计算深度范围:因为D(b)与S(b,c)的交集为空,所以节点b不能转发节点c发送的数据包。因此,节点b的最佳深度范围为[3,17],其新深度为17.因此,将D(a)设置为:因为节点d具有比节点e更多的数据包要发送,所以首先计算深度范围S(a,d)=[23,37]。并且D(a)∩S(a,d)=[23,26],所以Pr(a)更新为Pc(a)+Ps(d)=1+2=3,且D(a)=[23,26]。然后计算深度范围S(a,e)为[22,40]且D(a)与S(a,e)有交集,所以节点a可以将节点d和e的数据包转发到节点b,节点a的保留数据流量Pr(a)为Pc(a)+Ps(d)+Ps(e)=1+2+1=4,节点a的新深度为23.因此,如果选择节点b作为替换节点,则可以转发节点a,节点d和节点e的数据包(如图3(b)所示)。节点b的保留数据流量是Pr(a)+Pc(b)=5。类似地,计算节点c的新的深度和Pr。S(c,o)=[0,20]和S(c,b)=[18,32],所以节点c可以同时与节点b和节点o通信。D(c)为[18,20],节点c的新深度为20。因此,D(a)被初始化为S(a,c’)=[11,29]。首先计算S(a,f)=[25,43],并将D(a)更新为D(a)∩S(a,f)=[25,29]。由于S(a,g)=[30,36]且D(a)∩S(a,g)为空,所有节点a不能与节点g通信。所以节点a只能转发来自节点f的数据包(如图3(c)所示),其新的深度为25,Pr(a)=Pc(a)+Ps(f)=4。因此,节点c的保留数据流量为Ps(b)+Pc(c)+Pr(a)=4+1+4=8。如果选择节点b作为a的替换节点,则深度调整后节点b的剩余能量为80-(25-17)=72J,节点a的剩余能量为50-(23-19)=46J。如果选择节点c作为a的替代节点,则节点c的剩余能量为70J,深度调整后节点a的剩余能量为44J。无论选择节点b还是节点c作为替换节点,节点a的生存时间都会延长(46J/(4·Ef)>50J/(10·Ef),44J/(4·Ef)>50J/(10·Ef))。由于节点c比节点b能转发更多的数据包(Pr(c)>Pr(b)),所以节点a选择节点c作为其替换节点。由此,网络中得节点按照本发明的节点替换策略实现上下层节点的替换,本发明的实施例仿真结果表明,采用本发明的方法,与现有其他技术相比,实现了网络中上下层节点的能量均衡,提高了网络生存时间。上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1