基于移动汇聚节点固定移动轨迹改进的聚类方法与流程

文档序号:15849465发布日期:2018-11-07 09:37阅读:371来源:国知局
基于移动汇聚节点固定移动轨迹改进的聚类方法与流程

本发明涉及无线传感器网络技术领域,特别是一种基于移动汇聚节点固定移动轨迹改进的聚类方法。

背景技术

无线传感器网络的应用场景变得越来越广泛,它最早是被用在战场上,如今无线传感器网络已经涉及到智能医疗、智能家居和智能交通等多个领域。由于传感器网络是由大量随机分布的微型传感器节点构成的,给每个传感器节点更换电池是不切实际的,当网络中部分节点出现死亡(能量耗尽)时,整个网络就会进入到不稳定阶段,可以导致网络中的局部区域信息传递出现中断。最典型的问题就是基于静态汇点的传感器网络,汇点会将附近的普通节点作为中继站,这样会导致汇点周围的节点在每轮中消耗非常多的能量,从而出现能量空洞的现象。

传统的leach算法在簇头节点的选取上采用随机轮流的方式,没有考虑到节点自身的剩余能量,没有考虑节点之间的能量中立原则,导致了整个传感器网络的稳定阶段被大大缩短,这是它的一个最大的缺陷。另外,leach算法选用的是静态的汇聚节点,汇聚节点周围的节点往往被充当中继节点,这样它们每轮都会消耗更多的能量,这也就是能量空洞现象,其中最大的影响就是网络的生命周期被极大地缩短了。



技术实现要素:

本发明提出了一种基于移动汇聚节点固定移动轨迹改进的聚类方法,解决现有技术。

实现本发明的技术解决方案为:一种基于移动汇聚节点固定移动轨迹改进的聚类方法,具体步骤为:

步骤1、从传感器网络空间中划分出一个最大的规则区域作为感知区域,并从感知区域的中间选取一条汇聚节点的移动轨迹;

步骤2、设定簇头节点数量,根据设定的簇头节点的数量,将感知区域均分为簇头节点数子区域,并计算出每个子区域节点的数量;

步骤3、设置每个子区域对应一个簇,根据节点的剩余能量和到移动路径的最短距离计算每个簇内成员节点的权值,比较簇内节点的权值,选出一个最大值作为它的一个簇头节点,并将节点的id设为簇头符号,同时簇头节点发送一个广播包通知簇内成员节点,簇内成员将数据包发送到簇头节点;

步骤4、根据每个区域内选定的簇头节点,在每个子区域下选取一个距离该区域最近的移动汇点作为移动汇点的逗留位置,同时计算出汇聚节点到达每一个逗留位置前的等待时间,当移动汇聚节点到达子区域的逗留位置时,簇头节点开始向汇聚节点发送本区域内的所有数据包;

步骤5、分别计算本轮簇头节点接收数据包所消耗的能量,簇头节点传输数据包所消耗的能量以及节点转发数据到移动汇点所消耗的能量;

步骤6、重复(3)、(4)、(5)步骤,直到感知区域内节点全部死亡。

本发明与现有技术相比,其显著优点为:(1)本发明能够极大地节约节点的能量,使用本方法每轮消耗的总能量要远小于现有的方法。(2)本发明簇头节点的选取方式确保了感知区域所有节点的能量中立,不会出现部分节点过早死亡的现象。(3)本方法采用延迟发送数据包直到移动汇点到达最佳的逗留位置时,这样不仅可以降低数据传输的延迟还能够减少传输所消耗的能量。

下面结合附图对本发明做进一步详细的描述。

附图说明

图1是无线传感器网络模型图。

图2是将原感知区域划分为多个子区域的原理图。

图3是子区域内簇头节点选取的具体流程图。

图4是簇头节点发送数据包到汇聚节点的原理图。

具体实施方式

一种基于移动汇聚节点固定移动轨迹改进的聚类方法,具体步骤为:

步骤1、从传感器网络空间中划分出一个最大的规则区域作为感知区域,并从感知区域的中间选取一条汇聚节点的移动轨迹;

进一步的实施例中,划分的感知区域为方形区域。

步骤2、设定簇头节点数量,根据设定的簇头节点的数量,将感知区域均分为簇头节点数子区域,并计算出每个子区域节点的数量;

进一步的实施例中,设置的簇头节点数量为2k,k=1,2,3,...。

步骤3、设置每个子区域对应一个簇,根据节点的剩余能量和到移动路径的最短距离计算每个簇内成员节点的权值,比较簇内节点的权值,选出一个最大值作为它的一个簇头节点,并将节点的id设为簇头符号,同时簇头节点发送一个广播包通知簇内成员节点,簇内成员将数据包发送到簇头节点;

进一步的实施例中,每个簇内成员节点的权值的计算公式为:

e(m)为上轮节点m的剩余能量,distancetopath(m)为节点m到移动路径的最短距离。

优选地,上轮节点m的剩余能量计算公式为:

式中,e0为节点m的初始能量,consumption为节点转发数据到移动汇点所消耗的能量,r为当前的轮数,er(j)为簇头节点接收数据包所消耗的能量,et(j)为簇头节点传输数据包所消耗的能量。

优选地,节点m到移动轨迹最短距离的计算公式为:

式中,xm,ym为第m个节点的坐标,sxi,syi为在第i个子区域下,移动轨迹上距节点最近的汇聚节点坐标。

步骤4、根据每个区域内选定的簇头节点,在每个子区域下选取一个距离该区域最近的移动汇点作为移动汇点的逗留位置,同时计算出汇聚节点到达每一个逗留位置前的等待时间,当移动汇聚节点到达子区域的逗留位置时,簇头节点开始向汇聚节点发送本区域内的所有数据包;

步骤5、分别计算本轮簇头节点接收数据包所消耗的能量,簇头节点传输数据包所消耗的能量以及节点转发数据到移动汇点所消耗的能量;

进一步的实施例中,本轮节点转发数据到移动汇点所消耗的能量以及簇头节点接收数据包所消耗的能量和传输数据包所消耗的能量的能量计算公式为:

er(j)=l·eelec·packet(j)

其中l表示为传感器节点m发送的数据包的大小,d表示节点到逗留位置的距离,eelec表示为节点发送或接收每一位数据需要消耗的能量,cc为数据包的融合率,packet(j)表示为第j个区域的节点的数量,εfs和εmp分别表示发送器和放大器的信道条件,distancetoch(m)为节点m到该区域内簇头节点的距离,表示为最大阈值距离。

优选地,节点m到该区域内簇头节点的距离的计算公式为:

式中,xm,ym为第m个节点的坐标,(chxj,chyj)表示簇头节点坐标。

步骤6、重复(3)、(4)、(5)步骤,直到感知区域内节点全部死亡。

下面结合实施例对本发明做进一步说明。

实施例1

一种基于移动汇聚节点固定移动轨迹改进的聚类方法,具体步骤为:

步骤1、从传感器网络空间中划分出一个最大的规则区域作为感知区域,并从感知区域的中间选取一条汇聚节点的移动轨迹。本实施例中,感应区域选用的是一个方形区域,结合图1所示,在一个区域内分布着很多传感器节点,图中白色圆点点为普通节点,黑色圆点为设定的簇头节点,白色矩形表示为汇聚节点,其中中间两条线表示汇聚节点的移动轨迹。

步骤2、设定簇头节点数量,根据设定的簇头节点的数量,将感知区域均分为簇头节点数子区域。结合图2所示,对于感知区域的划分主要是根据对等划分的原则,保证每个区域的面积相等。汇聚节点的移动路径设置在方形感知区域的中心位置,为了确保每个子区域都有簇头节点,本实施例中设置的簇头节点的数量为2k((k=1,2,3,...),则相应区域分割线的横坐标为:

其中i(1≤i≤k)为簇头节点对应的序列号,s为方形区域的边长。

感知区域内的传感器节点总量为n,各自的编号为nm(m=1,2,3,...,n),第i个子区域表示为ai,第m个节点的坐标表示为(xm,ym)。有下列公式可知,如果ym≤s/2,则nm∈ai,否则nm∈ai+k。packet(j)表示为第j个子区域中节点的数量,其中j(1≤j≤2k),即:

nm∈ai||ai+k,ifxm∈(xi,xi+1)

packet(i)=packet(i)+1,ifnm∈ai

packet(i+k)=packet(i+k)+1,ifnm∈ai+k

步骤3、设置每个子区域对应一个簇,根据节点的剩余能量和到汇聚节点的距离计算每个簇内成员节点的权值,比较簇内节点的权值,选出一个最大值作为它的一个簇头节点,并将节点的id设为簇头符号,同时簇头节点发送一个广播包通知簇内成员节点,簇内成员将数据包发送到簇头节点;

如图3所示,子区域内簇头节点选取的具体流程图。在选择簇头节点的前提下,必须要保证该节点的能量em>0。节点m的权值表示为weight(m),计算公式为:

e(m)为上轮节点m的剩余能量,distancetopath(m)为节点m到移动路径的最短距离。

其中:

上轮节点m的剩余能量计算公式为:

式中,e0为节点m的初始能量,consumption为节点转发数据到移动汇点所消耗的能量,r为当前的轮数,er(j)为簇头节点接收数据包所消耗的能量,et(j)为簇头节点传输数据包所消耗的能量,首轮时节点m还未消耗能量,em即为节点的初始能量。

节点m到移动轨迹最短距离的计算公式为:

distancetopath(m)=abs(ym-yp)

式中,ym为第m个节点的纵坐标,abs()函数为求绝对值函数,yp表示为移动路径线性方程y=yp中的参数。

由此得到已知簇头节点ch(j)的坐标,用(chxj,chyj)表示。节点m到该区域内簇头节点的距离的计算公式为:

为了保证节点能量的中立原则,在选择簇头节点时,必须要考虑到节点自身的剩余能量。在每个簇内每轮都选择簇内的一个最大权值的节点作为该簇的簇头节点,簇头节点的选择综合考虑了其自身的能量和到汇聚节点的距离。相比于其他的聚类方法,它不仅保证了能量的中立原则,同时也节省了传输过程所需要的能量,从而极大地延长了网络的生命周期。

步骤4、根据每个区域内选定的簇头节点,在每个子区域下选取一个距离该区域最近的移动汇点作为移动汇点的逗留位置,同时计算出汇聚节点到达每一个逗留位置前的等待时间,当移动汇聚节点到达子区域的逗留位置时,簇头节点开始向汇聚节点发送本区域内的所有数据包;

如图4所示,移动汇聚节点在接收上一个簇内的数据包后,开始移动并要接收下一个簇内的数据包。图中有两个逗留点分别为o和t,由图中的两条虚线可知,到达t点的距离要远小于到达o的距离。由前面所提到的能量消耗公式可知,传输距离与所需要消耗的能量是成正比的,所以选择t点作为汇聚节点的逗留点最为合适,它是簇头节点到移动路径的一条最短路径。在汇聚节点到达t点前,簇头节点一直在发送数据包,则会造成能源的浪费。另外簇头节点一直处在等待阶段,还会增加整个网络的延迟。因此通过延迟发送数据包直到移动汇聚节点到达t点时,可以减少信道资源的占用。簇头节点需要等待的时间用w表示。

o的坐标(xo,yo),t的坐标为(xt,yt),移动汇聚节点的移动速度用vsink表示,distance为点o到点t的距离。

步骤5、分别计算本轮簇头节点接收数据包所消耗的能量,簇头节点传输数据包所消耗的能量以及节点转发数据到移动汇点所消耗的能量;

普通节点传输整个簇内的数据包到该区域下的逗留位置所消耗的能量consumptino(m)以及簇头节点接收数据包所消耗的能量er(j)和传输数据包所消耗的能量et(j)的能量计算公式为:

er(j)=l·eelec·packet(j)

其中j(1≤j≤2k)为子区域的序列号,l表示为传感器节点m发送的数据包的大小,d表示节点到逗留位置的距离,,eelec表示为节点发送或接收每一位数据需要消耗的能量,cc为数据包的融合率,packet(j)表示为第j个区域的节点的数量,εfs和εmp分别表示发送器和放大器的信道条件,表示为最大阈值距离。

本方法的分簇方法是通过等量的划分感知区域来决定簇的规模和数量,分簇的方式不同于其他算法里的分簇方法。如传统的leach算法,在构建网络中的簇时,普通节点选择一个距离自身最近的簇头节点作为该簇头节点的簇内成员,因此整个网络每轮都需要进行一次重构,造成了计算资源的严重浪费。

本专利提出的一种子区域下基于移动汇聚节点固定移动轨迹改进的聚类方法,通过计算每个节点的权值来判断该节点是否可以当选为簇头节点,其中权值的大小是由节点的剩余能量和到汇聚节点的距离所决定的。因此它不仅可以减少传输过程所消耗的能量,还能保证节点间能量的均衡消耗。最后就是数据包的延迟发送机制,可以减少数据转发的延迟,避免簇头节点占用整个网络的信道资源。总之,相比于其他的路由方法,本专利提出的聚类方法不仅可以延长网络的生命周期,同时也能极大地减少网络传输的延迟。

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