基于二维虚拟网格的动态分簇水声网络路由方法与流程

文档序号:11235529阅读:439来源:国知局
基于二维虚拟网格的动态分簇水声网络路由方法与流程

技术领域:

本发明属于水声传感器网络通信技术领域,具体的说是一种按照预定成簇规则以全局能量最优为目的的水声传感器网络路由方法。根据各节点剩余的能量,由sink节点统一确定每一轮传输时的簇头位置,其它节点按照预先分配的虚拟网格直接成簇,解决了传感器网络中簇头广播所带来的广播风暴问题和节点入簇时的碰撞问题,有效地节省了能耗,提高了路由效率。



背景技术:

海洋是人类维持生存繁衍和社会实现可持续发展的重要基地。开发海洋、发展海洋经济是整个人类生存和社会发展极为现实的必由之路。水声通信网络具有传输速率低、传播距离短、传输时延高、节点能量有限等诸多问题。目前,世界各国对海洋权益日益重视,开发利用海洋的热潮正在全球兴起,这使得研制具有高效率、短时延、长网络生命周期的水下无线传感器网络路由协议已经成为研究的热点。水下传感器网络是指将能耗很低、具有较短通信距离的水下传感器节点部署到指定海域中,进而建立起网络。网络中的节点利用传感器实时监测、采集网络分布区域内的各种监测信息,经数据融合等信息处理后,通过具有远距离传输能力的sink节点将实时监测信息送到近岸基站或卫星将实时信息传递给用户。因为电磁波在水中传播时,被大量吸收而快速衰减,作用距离十分有限;而声波在水下有着良好的传播性能。因此现阶段,以声波为载体的水声通信是实现水下无线通信的主要形式。

水声传感网络从陆地无线传感网络延伸而来,但两者却有很大的不同:

(1)移动性,水下的节点会随着水流的运动而移动,因此水声传感网络必须是能够自组织的自主网络,遵循一定的网络路由方式;

(2)动态性,水声传感网络的拓扑结构可能会因为出现故障或电能耗尽造成传感节点失效,造成通信环境的实时变化的特点;

(3)电池能量有限,在水下环境中,节点要想通过更换电池的方式来补充能源是不现实的,所以如何更高效的使用能量并尽可能的延长网络生命周期是很大的挑战。

针对水声传感网络的这些特点,现有的水声传感器网络路由协议研究主要以地理路由协议为主。这一类协议利用节点的地理信息实现路由,带来的优点是路由效率较高。最理想的情况是水下各个节点的地理位置信息是互相知道的,转发节点可以自己选择一条理想的转发路径,但是在水下是很难实现的。原因在于水下无法通过gps进行定位,从而节点只能通过定位算法来解算其位置,而这则需要各个节点定期交换位置信息,严重消耗节点的能量,对网络生存时间影响巨大。

本发明是基于与节点位置对应的虚拟网格图,由sink节点根据各节点的能耗对整个网络进行统一地分簇操作组网,在此基础上进行路由的方法。理论分析表明,该方法可最大程度上节省网络中各个节点的能量,实现能量均衡。



技术实现要素:

本发明针对水下同构传感器节点组成的平面网络,提供一种由sink节点统一规划传感器网络分簇,从高层进行统筹的能量均衡水声通信方法。为了充分利用水声通信的特点,算法基于水下传感器节点的相互位置,虚构一个能够覆盖整个传感器网络的由小方格组成的网格图,网格图中的小方格赋予不同的功能定义,有的定义为采集方格,有的定义为簇头方格。用网格图覆盖传感器节点网络,处于采集方格下面的节点行使采集功能,处于簇头方格下面的节点行使汇聚、融合、转发功能。由于簇头节点耗能很快,为了延长其生命周期,一段时间以后,系统要重新分派节点任务,根据节点与虚拟网格的对应关系,由sink节点指定簇头轮换移动方向,便于统筹和后期管理;为了降低整个网络的能耗,尽可能使网络存活时间最长,sink节点基于接收的数据进行节点的剩余能量计算,进而确定移动方向,此方式可合理地确定最适合传感器网络的簇头统一轮换方式,有效节省各节点能耗,实现能量均衡,提高网络存活时间。

本发明采用的技术方案是:

第一步:水下传感器网络节点布设,通过锚链对水下传感器网络节点进行锚定,其运动范围相对固定,节点近似均匀分布,给每个节点分配一个独有的id;

第二步:根据传感器网络中的节点实际分布,虚构一个能够覆盖整个传感器网络的由小方格组成的网格图,虚拟网格图中每个小方格对应一个节点,且大小与节点的运动范围一致;

第三步:将虚拟网格图中的相邻小方格划分为不同的簇单元,根据虚拟网格图的规模,确定分簇的大小,所有簇的节点数目一致为n,这样,在虚拟网格中定义每个簇单元的大小为为奇数,簇头则处于每个簇单元的中心位置,此时的簇单元我们定义为初始簇单元;

第四步:对虚拟网格图中的小方格和初始簇单元进行编号,簇单元用数字编号,簇内方格用字母编号;

第五步:设计广播帧、控制帧和数据帧三种帧类型,广播帧的作用是便于系统在还未分簇的情况下对传感器网络进行初始化,完成初始簇单元分配,控制帧的作用是控制整个传感器网络进行统一的簇头轮换;数据帧是从节点发送给主节点的采集数据,其中需包含各节点的id,便于在后期sink节点对各节点的剩余能量进行准确地预测;

第六步:传感器网络初始化,sink节点向传感器网络内各节点进行广播,确定各节点对应的小方格、所属簇单元及簇头所在位置;

第七步:各节点将收集到的信息传送到自身所属簇单元的簇头,簇头则进一步将簇内信息进行融合发送至sink节点,簇头按照公式(1)计算簇内节点能耗,并将信息传给sink节点,sink节点根据公式(2)计算簇头能耗,设所有节点的初始能量一致,均为e0;

ecm=l*eelec+l*εcm_amp*d2toch(1)

其中,l代表帧长,eelec为每发出或接收1bit数据电路消耗的能量,εcm_amp为簇成员到簇头间信号放大器内消耗的能量比例系数,dtoch为簇成员到该簇头的距离;

其中,n为簇单元内节点总数,ea为融合1bit数据消耗的能量,数据融合比例为l:1,εch_amp为簇头到基站间信号放大器内消耗的能量比例系数,dtobs为簇头到sink节点的距离;

第八步:sink节点计算各节点剩余能量进行下一轮簇单元分配,经过t时间后,将簇单元中相同位置的小方格对应节点的剩余能量进行叠加用于轮换位置判断,如公式(3)所示;

其中,s为初始簇单元中节点相对位置,i为初始簇编号;

第九步:依据公式(3)所计算出的簇单元内各个位置对应节点的剩余能量叠加之和,选择出剩余能量叠加之和最大的簇内位置,在所有簇单元中均选定该位置小方格对应的节点作为下一轮簇头,各簇头轮换移动范围不能超出自己所属的初始簇单元,且当选过簇头的节点不参与选举,这两点由设立的小方格编号确保;

第十步:选定簇头后,再依据各节点的id来进行这一轮的簇单元分配。每个簇单元的大小依旧为簇内节点数为n;

第十一步:sink节点计算所有节点的平均能量作为判断整个传感器网络是否死亡的判断标志,若则跳转至第十四步,否则进行第十二步;

第十二步:sink节点将第六步中计算所得簇头移动方向进行广播,确定簇头,以及这一轮中各节点所属簇单元;

第十三步:重复第七步至第十二步的步骤;

第十四步:当进行到此步骤时,说明整个网络的剩余能量已经不足初始能量的x倍,基本上已经无法正常有效地进行信息的探测与传输,判定整个传感器网络死亡。

附图说明

图1为节点分布示意图;

图2为虚拟网格初始簇单元划分示意图;

图3为初始化后节点与虚拟网格对应关系示意图;

图4为以节点id号实际建立的分簇示意图;

图5为图4状态向左一格轮换过后的分簇示意图;

具体实施方式:

本发明采用的技术方案是:

第一步:水下传感器网络节点布设,通过锚链对水下传感器网络节点进行锚定,其运动范围相对固定,节点近似均匀分布,给每个节点分配一个独有的id;

第二步:根据传感器网络中的节点实际分布,虚构一个能够覆盖整个传感器网络的由小方格组成的网格图,虚拟网格图中每个小方格对应一个节点,且大小与节点的运动范围一致;

第三步:将虚拟网格图中的相邻小方格划分为不同的簇单元,根据虚拟网格图的规模,确定分簇的大小,所有簇的节点数目一致为9,簇头处于每个簇单元的中心位置,此时的簇单元我们定义为初始簇单元;

第四步:对虚拟网格图中的小方格和初始簇单元进行编号,簇单元用数字编号,簇内方格用字母编号;

第五步:设计广播帧、控制帧和数据帧三种帧类型,广播帧的作用是便于系统在还未分簇的情况下对传感器网络进行初始化,完成初始簇单元分配,控制帧的作用是控制整个传感器网络进行统一的簇头轮换;数据帧是从节点发送给主节点的采集数据,其中需包含各节点的id,便于在后期sink节点对各节点的剩余能量进行准确地预测;

第六步:传感器网络初始化,sink节点向传感器网络内各节点进行广播,确定各节点对应的小方格、所属簇单元及簇头所在位置;

第七步:各节点将收集到的信息传送到自身所属簇单元的簇头,簇头则进一步将簇内信息进行融合发送至sink节点,簇头按照公式(1)计算簇内节点能耗,并将信息传给sink节点,sink节点根据公式(2)计算簇头能耗,设所有节点的初始能量一致,均为e0。

ecm=l*eelec+l*εcm_amp*d2toch(1)

其中,l代表帧长,eelec为每发出或接收1bit数据电路消耗的能量,εcm_amp为簇成员到簇头间信号放大器内消耗的能量比例系数,dtoch为簇成员到该簇头的距离;

其中,n为簇单元内节点总数;ea为融合1bit数据消耗的能量,数据融合比例为l:1,εch_amp为簇头到基站间信号放大器内消耗的能量比例系数,dtobs为簇头到sink节点的距离;

第八步:sink节点计算各节点剩余能量进行下一轮簇单元分配,经过1小时后,将簇单元中相同位置的小方格对应节点的剩余能量进行叠加用于轮换位置判断,如公式(3)所示;

其中,s为初始簇单元中节点相对位置,i为初始簇编号;

第九步:依据公式(3)所计算出的簇单元内各个位置对应节点的剩余能量叠加之和,选择出剩余能量叠加之和最大的簇内位置,在所有簇单元中均选定该位置小方格对应的节点作为下一轮簇头,各簇头轮换移动范围不能超出自己所属的初始簇单元,且当选过簇头的节点不参与选举,这两点由设立的小方格编号确保;

第十步:选定簇头后,再依据各节点的id来进行这一轮的簇单元分配。每个簇单元的大小依旧为9;

第十一步:sink节点计算所有节点的平均能量e,作为判断整个传感器网络是否死亡的判断标志,若则跳转至第十四步,否则进行第十二步;

第十二步:sink节点将第六步中计算所得簇头移动方向进行广播,确定簇头,以及这一轮中各节点所属簇单元;

第十三步:重复第七步至第十二步的步骤;

第十四步:当进行到此步骤时,说明整个网络的剩余能量已经不足初始能量的10%,基本上已经无法正常有效地进行信息的探测与传输,判定整个传感器网络死亡。

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