本发明属于无线传感器网络技术领域,具体涉及一种基于移动汇聚节点的无线传感网络数据传输方法。
背景技术:
随着信息技术的高速发展,掌握即时有效的信息对人们有着至关重要的作用。因而收集信息与数据的手段和技术得到了广泛的开发与应用,很多新兴的信息收集技术与策略也随之诞生。无线传感器网络(wirelesssensornetworks,wsn)就是当前最为热门的数据收集技术之一。无线传感器网络节点有诸多优点:能量消耗低、易于分布在任何环境中、造价成本低廉和可以自组织地形成无线网络等。这些优点使无线信息感知与采集变得空前的简单与方便。因此,其在当今的无线信息感知领域引起了一场变革,无线传感器网络在现实生活中得到了广泛的应用,如在气温、压力、定位等方面对周围环境的检测有着很高的应用前景。
无线传感器网络作为一个整体,为了保证各个传感器节点之间能够相互传递信息,通常在监测区域部署大量的传感器节点,以冗余保证通信,这样做可以避免无线传感器网络被分成几个孤立的网络而无法完成通信。典型的无线传感器网络由密集部署的静态传感器节点和一个静态汇聚节点,各静态传感器节点采用多跳的方式把数据传递给静态汇聚节点。多跳通信方式在节约传感器节点能量的同时也带来了一些问题,例如:距离汇聚节点较近的传感器节点在发送自己数据的同时还要转发其它传感器节点的数据,这些距离汇聚节点较近的传感器节点的能量消耗会比其它传感器节点快,形成能量空洞现象,以致更早地死亡,无法转发其它传感器节点数据,导致大量的传感器节点无法发挥其作用,最终使得整个无线传感器网络处于失效状态。为此,可以在监测区域设置一个可以移动汇聚节点(sink),当移动汇聚节点移动到一个地点,就发出收集信息的命令,收到命令的传感器节点若在移动移动汇聚节点的单跳范围内,就将数据发送给移动移动汇聚节点,由于是单跳通信,该传感器节点不需要转发其它传感器节点的数据从而节省了能量,延长了整个无线传感器网络的生命周期。同时,移动汇聚节点附近的传感器节点随着时间的变化而变化,在某种程度上平衡了整个无线传感器网络的能量消耗,相比了静态汇聚节点大大延长了无线传感器网络的生命周期。
目前,基于移动汇聚节点的路由协议在平衡能量消耗和延长无线传感网络生命周期取得了很好的效果,但是依然存在一些缺陷,例如:第一,有些基于移动汇聚节点的路由协议采用随机移动策略,增加了数据采集路径维护开销,会消耗大量能量;第二,有些基于移动汇聚节点的路由协议采用划分网格或分簇的方法,但没有考虑所划分的网格数或簇数是否为最优,传感器节点在通信过程中会浪费很多不必要的能量;第三,有些路由协议中移动汇聚节点频繁地移出自适应区域,其位置信息则需要在整个网络进行洪泛,位置更新会产生较大的能耗和时延。
技术实现要素:
本发明的目的在于提出一种具有移动汇聚节点的无线传感器网络数据传输方法,消除了能量空洞的现象,减轻了网络流量负载,提高了整个无线传感器网络的吞吐量,延长了传感器网络的生命周期。
为了解决上述技术问题,本发明提出一种具有移动汇聚节点的无线传感器网络数据传输方法,运用粒子群算法将无线传感器网络划分为若干个区域,使用类似聚类算法在每个区域的传感器节点中选出一个传感器节点作为簇头,然后通过hello、message-s和message-h报文三种数据报文确定与移动汇聚节点通信的簇头。
较佳地,选簇头的方法为:
s1根据每个簇中各传感器节点的坐标计算出该簇所在区域的重心坐标,计算簇内各传感器节点到重心坐标的距离;同时计算每个簇内所有传感器节点的平均剩余能量;
s2将与重心距离最近的传感器节点的剩余能量与簇内所有传感器节点的平均剩余能量进行比较,若所述传感器节点的剩余能量大于或等于所述平均剩余能量,则将所述传感器节点选为簇头;否则,丢弃所述传感器节点;
s3在剩余的各传感器节点中找出下一个与重心距离最近的传感器节点,然后重复步骤s2。
较佳地,移动汇聚节点在移动过程中广播hello消息包,接收到hello包的簇头计算其簇内传感器节点的平均剩余能量,并将其簇所对应的区域号以及自身位置信息放入hello包中返回给移动汇聚节点;移动汇聚节点通过收到的hello消息包比较各个簇的平均剩余能量,选择平均剩余能量最大的簇进行数据传输。
较佳地,移动汇聚节点与簇头进行数据传输时,移动汇聚节点广播message-s消息包,message-s消息包包含所选簇头所在的区域号;接收到message-s包的簇头比较message-s包中的区域号和自己的区域号是否相同,如果不同,丢弃该message-s包;如果相同,则向簇内其余传感器节点广播信息,按照时分多址方法分配时隙表;簇内其余传感器节点在时分多址方法分配时隙表分给自己的时隙中发送message-h数据包给自己的簇头,在其余时间关闭自己的电台,处于休眠的状态;簇头对收集到的所有数据信息进行数据累积和融合;当移动汇聚节点移动到该簇头附近时,该簇头把数据传送给移动汇聚节点。
本发明与现有技术相比,其显著优点在于,(1)在构建网络虚拟分簇时,该协议釆用粒子群算法思想,构建若干个均衡的虚拟簇,并考虑了各个簇组均匀度和节点的剩余能量,因此,本发明路由协议可以在尽量减少整体能耗的同时均衡各节点的能耗;(2)在每轮通信时根据类似聚类的算,,结合离簇的重心距离和簇内节点的平均能量选择簇头,以此使各个簇上的节点均衡地消耗能量;(3)考虑到移动汇聚节点和各个簇头直接的通信,减少网络的延时。
附图说明
图1是适用本发明的无线传感器网络示意图;
图2是本发明hello数据报文结构示意图;
图3是本发明中message-s数据报文结构示意图;
图4是本发明中message-h数据报文结构示意图。
具体实施方式
容易理解,依据本发明的技术方案,在不变更本发明的实质精神的情况下,本领域的一般技术人员可以想象出本发明具有移动汇聚节点的无线传感器网络数据传输方法的多种实施方式。因此,以下具体实施方式和附图仅是对本发明的技术方案的示例性说明,而不应当视为本发明的全部或者视为对本发明技术方案的限制或限定。
本发明具有移动汇聚节点的无线传感器网络数据传输方法,首先,运用粒子群算法将无线传感器网络划分为若干个区域,使用类似聚类算法在每个区域的传感器节点中选出一个传感器节点作为簇头,确定簇头时结合传感器节点与簇所在区域重心的距离和簇所在区域内传感器节点剩余能量的大小;然后通过hello、message-s和message-h报文三种数据报文确定与移动汇聚节点通信的簇头。
一、分簇
步骤a、使用粒子群算法对无线传感器网络进行虚拟分簇:
假设整个无线传感器网络共有n个传感器节点,计划将整个无线传感器网络分割为m个簇,则每个簇中含有n/m个传感器节点。分簇前,无线传感器网络中所有传感器节点向基站广播自己的状态报文信息,包括位置信息和能量信息;基站收到状态报文信息后,根据各传感器节点的位置信息和能量信息使用粒子群算法对网络进行分簇。具体过程为:
首先,用分割线将整个无线传感器网络分割成具有相同传感器节点数目的区域,所述分割线表达如公式(1)所示:
l=(x,y,θx,θy)(1)
公式(1)中,x,y,θx,θy分别为粒子的四个参数,(x,y)为位于分割线上的传感器节点的横坐标和纵坐标;θx为分割线与x轴的夹角;θy为分割线与y轴的夹角;
对分割线的四个参数随机赋予k组值,共由式(1)确定k个分割线。
然后,利用粒子群算法在k个分割线中去顶确定一条最优的分割线,过程为:
s1,定义k个粒子,k个粒子代表k个分割线;确定k个不同的适应值f,与上次搜索得到的最小的适应值f进行比较并取最小值,与最小值对应的粒子可以作为全局极值ρgd;同理,比较单个粒子的适应值,取最小适应值对应的粒子作为个体极值ρid,然后通过下式更新四个参数;
xxid(t+1)=xxid(t)+vxid(t)
xyid(t+1)=xyid(t)+vyid(t)(2)
其中,xxid,xyid为粒子的位置;xθid为分割线与x轴的夹角;vxid,vyid,vθid为粒子在x,y,θx,θy四个维度上的搜索速度,t为迭代次数,由下式可以确定:
vxid(t+1)=ωvxid(t)+c1rand()(ρid(t)-xxid(t))+c2rand()(ρgd(t)-xxid(t))
vyid(t+1)=ωvyid(t)+c1rand()(ρid(t)-xyid(t))+c2rand()(ρgd(t)-xyid(t))
(3)
其中,c1,c2为学习因子,通常c1=c2=2;rand()为(0,1)之间的随机数;ρid为局部最小适应值;ρgd为全局最小适应值;ω为权重因子。
s2,粒子得到新的(x,y,θx,θy)后,代入公式(1)进行搜索,直至满足公式(4)值为0或者达到最大搜索次数时退出。此时可以整个无线传感器网络感知区域被最优分割成两个规模相等的子区域。
其中,ci(i=1,2)为无线传感器网络感知区域i中的节点数目,mi为区域i期望的簇头节点数目,esum为传感器节点的总能量,ei为区域i中传感器节点总能量。
s3,将整个无线传感器网络感知区域首次分割成两个规模相等的子区域后,重复步骤s1和s2,直至将整个无线传感器网络感知区域划分为m个子区域,获得m个簇。
二、选簇头
传感器网络被分为m个簇后,需在每个簇中选择一个簇头。具体过程为:
首先,根据每个簇(区域)中各传感器节点的坐标计算出该区域的重心坐标(xc,yc),计算方法如式(6),
其中,(xi,yi)为簇中各个传感器节点的坐标。
其次、计算簇内各传感器节点到重心节点的距离,设簇内各个传感器节点的坐标为(xi,xj),则节点到重心的距离d的计算方法见式(7),
最后、对于k个簇,分别计算各个簇内所有传感器节点的平均剩余能量,取出与重心距离最近的传感器节点,然后将此传感器节点的剩余能量与簇内所有传感器节点的平均剩余能量进行比较,若此传感器节点剩余能量大于或等于簇内所有传感器节点平均剩余能量,则此将此传感器节点选为簇头;否则,放弃该传感器节点,取出下一个与重心距离最近的传感器节点进行前述比较,直至找出一个传感器节点满足其本身剩余能量大于簇内所有传感器节点的平均剩余能量为止,此传感器节点当选簇头;
三、移动汇聚节对簇头的访问
当移动汇聚节点访问完所有的簇头后,则一轮数据传输结束,为了平衡网络能耗,需要在各簇中重新选出簇头,进行下一轮的数据传输。汇聚节点访问到所有簇头的每一轮数据传输周期为t,周期t的计算方法见公式(8),
其中,其中(xi,yi)为簇头坐标,k为簇头的个数,v是移动汇聚节点的移动速度。
这样,一个无线传感网络就构建完成了。
本发明中移动汇聚节点通过以步骤实现数据传输:
1、移动汇聚节点的移动方式:
当移动汇聚节点靠近一个分簇的区间时,移动汇聚节点静止地接收和发送数据;移动汇聚节点采用能量可控移动策略且在有限跳数范围内广播消息;
2、移动汇聚节点广播消息包,将进行如下操作:
移动汇聚节点广播hello消息包,接收到hello包的簇头计算其簇内的平均剩余能量,并将其簇所对应的区域号以及自身位置信息放入hello包中,再返回给移动汇聚节点;
移动汇聚节点通过hello包比较各个簇的平均剩余能量,选择平均剩余能量最大的簇进行数据传输;
3、移动汇聚节点与簇头进行数据传输时,将进行如下操作:
移动汇聚节点广播message-s消息包,message-s消息包包含所选簇头所在的区域号;
接收到message-s包的簇头比较message-s包中的区域号和自己的区域号是否相同,如果不同,丢弃该message-s包;如果相同则进行如下操作:
向该簇内其余普通传感器节点周围广播信息,按照时分多址方法分配时隙表;
簇内成员采集信息,并在时分多址方法分配时隙表分给自己的时隙中,发送message-h数据包给自己的簇头,在其余时间关闭自己的电台,处于休眠的状态;
簇头立即对收集到的所有的数据信息进行数据的累积和融合,将单个信号合成一个整体信号,这样能够加强公共信号和削弱信号间的不相干噪声;
当移动汇聚节点移动到簇头附近时,该簇头把数据传送给移动汇聚节点。