随着无线网络以及硬件技术,特别是超大规模集成电路技术的发展,将感知、通信、计算能力集成在一个传感器节点成为可能。无线传感器网络(以下简称传感器网络)就是由成千上万个这样的节点构成的。
它集感知、通信功能于一身,其目的就是实现对恶劣环境或者是人所不易到达的环境中各种参数(如温度、湿度、目标位置等)的监测和对某些敏感数据的采集。传感器网络如今已经得到了广泛的应用,包括用以分析远距离无人地区的环境情况(如依靠采集温度来实现对森林火警的监测);将感知节点安装在特定的交通工具上以分析本地区的通信流量并由此设计出从源点到目标点的最佳交通路线;军事上可用于监测、定位和跟踪目标点的运动;在高污染区还可以收集相关的信息以便于灾后重建。由于这些传感器节点受自身规模的限制,而且能源有限,要给网络内大量的节点重新补充能源几乎是不可行的,这就需要考虑如何在能源有限的情况下最大限度地降低节点能耗以延长传感器网络的连续工作时间。
1.准备工作
传感器节点按其功能可分为以下三个模块
①感知模块。假定数据源的产生速率为r,则节点单位时间的感知耗能为Psense=a3r,a3为一常数(单位为J/bit);②通信模块。给定发送节点u和接收节点v,发送数据的速率为r,两个节点间的距离为d。有Ptrans(u,v)=(a11+a2dk)r,Prec=a12r。Ptrans(u,v)表示节点u单位时间的传输能耗,Prec表示节点v单位时间的接收能耗。其中,k为路径衰减指数(k一般取2或4),而a11,a12和a2均为无线通信常数(其中a2的取值与k有关)。③计算模块。相比于感知模块和通信模块来说,节点的计算模块能耗很小,通常可以忽略不计。
本文假设:
①传感器网络被应用于目标跟踪的场景下。②如图1所示,E为网络内某一时刻的数据源节点,而传感器节点主要用于对指定目标点的监测并将采集到的结果以多跳的方式传输给远端的收集节点B,这里我们认为节点B的能量充分大,即不考虑节点B的能耗。假设传感器网络中节点数量为N。③节点随机的分布在有限区域R内,节点的通信半径为rt,节点间的数据传输是双向的,即对于网络中的任意两个节点u和v,若节点u可与节点v直接通信,则节点v也可与节点u直接通信,如图1,节点的感知半径为ds,即感知节点只有在距数据源ds之内才能感知到它的存在。④传感器网络内所有的感知节点天线位于同一个水平线上,并且天线是全向的。⑤利用GPS技术传感器节点可获取自己的位置信息,目前GPS的精度可达5 m左右。
由文献[3]可知,给定一个二维空间R,传感器节点的感知半径ds,能耗参数a11,a12,a2,a3和路径衰变指数k,感知节点的数量N,每个节点的初始能量E,并且假定数据源运行轨迹遵循某个均匀分布的概率分布函数lsource(x,y),则可得到网络生存时间T的上限值为
2.算法思想
传感器网络实际上就是以数据为中心的自组织网络,但在以前的关于传感器网络生存时间的研究中都是假定周围环境是可靠的,即感知节点只有在能量完全耗尽时才会失效,这并未考虑环境对感知节点的影响。
在传感器网络中,由于距数据源ds内的节点均能采集到数据并将数据进行转发,因而如何保证这些节点尽可能的长时间持续运行是我们所关注的问题,针对该问题我们借鉴了容错冗余的概念引入了备份的感知节点,使得某个感知节点的失效并不会影响整个网络的正常工作。因而在本文中,我们提出了一个基于备份的分布式算法以延长网络的连续工作时间,仿真结果表明在节点失效环境下通过合理的控制节点数量,该算法的持续工作时间要长于文献[3]中的方法。
3.算法描述
在算法的实际运行中,可分为三个阶段,分别为初始化阶段、数据传输阶段和任务接管阶段。
在初始化阶段,网络中的每个节点需要确定自身到收集节点B的最小跳数。每个节点的初始状态先置为工作态。收集节点首先以通信半径rt广播一个HOP消息。除收集节点之外,每个节点的初始跳数设置为无穷大。HOP消息的初始跳数设置为0。当某个节点收到HOP消息后,它将检查是否已经接收过该消息。如果未曾收到过,则该节点将把发送节点的信息(包括发送节点的ID号)放入其路由表中并把发送节点设为自己的上游节点,将HOP消息的跳数加1并将其值设置为自己的跳数,之后便以通信半径rt将新的HOP消息转发给邻居节点;否则(即某个节点以前曾收到HOP消息)该节点将退避一段时间后再发送该HOP消息。并且,该节点只会考虑在退避时间内所收到的最小跳数的HOP消息。
经过退避时间后,节点将对所收到的HOP消息的跳数与节点以前曾保存的跳数进行比较:如果前者比后者小于1,则节点将把发送者的信息也放人路由表中作为自己的另一个不同的上游节点;如果前者小于后者且二者之差大于1,则发送者将成为该节点的新的上游节点。相应的,路由表中的节点跳数以及消息跳数均需更新,修改后的HOP消息将继续被该节点中转;如果前者不小于后者,则节点将丢弃这新收到的HOP消息。注意在以上的描述中,节点仅在收到第1个HOP消息时才会立即进行转发。这一策略的好处在于可以加快HOP消息的传输速率,也缩短了初始化阶段的执行延迟。另一方面,引入退避时间的好处在于可以让节点处于等待状态以便可以从其邻居节点接收到更多的HOP消息。虽然较长的退避时间会增加此阶段的完成时间,但该方法是有效的,因为该阶段对静止的传感器网络来说只需执行一次,并且也可以避免由于额外的转发消息而增加的能耗。毕竟,能源问题是传感器节点最宝贵的资源。可以看到,在初始化阶段执行之后,每个节点将准确的获知自己的最小跳数以及其所有的上游节点。
当指定要监测的目标出现后即进入了数据传输阶段。感知到该目标的多个节点利用信息交互尽可能的挑选出跳数最小且自身能量最大的节点作为目标的感知节点,而其他感知到该目标的节点作为备份节点,这些备份节点将进入休眠状态以降低节点能耗。在数据真正传输之前,真正的感知节点利用Rodoplu等人提出的MECN算法和节点的上游节点信息建立一条从源节点到收集节点B的最小能耗路径。