陈斌,杨俊杰
(上海电力学院电子与信息工程学院,上海 200090)
自从无线传感器网络(W ireless Sensor Networks,WSN)技术诞生以来,就一直受到国内外的广泛关注,而伴随着通信技术、计算机技术等各类技术的快速发展,无线传感器网络的系统功能也变得日益强大,到目前为止,无线传感器网络已运用于多种环境,可以为各类监测提供帮助.[1]无线传感器网络节点的类型主要包括汇聚节点(Sink节点)、任务管理节点和终端节点3种.[2]自传感器网络节点部署开始,经过较长时间运行后可能会发生故障,但是由于传感器网络处在无人监控和检查的状态,它本身运行的状态无从得知,为了更好地了解节点状态,就需要对节点进行故障诊断.目前,虽然有各种故障诊断算法的研究,但对诊断系统的设计却很少,因此本文提出一种无线传感器网络故障诊断系统的设计方案.
WSN故障诊断系统由节点定位模块、故障诊断模块和终端处理模块3部分组成.系统整体结构如图1所示.
图1 系统整体结构
(1)节点定位模块在部署无线传感器网络节点后,系统可以在计算机终端界面上显示出各节点的大致位置.
(2)故障诊断模块系统的核心部分,计算机终端通过Sink节点发布一条故障监测指令,使各节点开始进行故障监测,然后作出故障诊断,再将诊断结果发回计算机终端.
(3)终端处理模块针对无线传感器网络发回的各种信息进行提取,然后按照步骤进行处理,最终将结果显示在计算机界面上.
当无线传感器网络节点随意部署在无人监控的环境中时,系统需要对节点进行定位,然后在系统界面上显示出各节点的大致位置,便于诊断出故障后,在界面上显示故障节点.
在传感器网络的定位技术中,可以分为两类节点:一类称为信标节点,它表示节点已经知道自身的位置;另一类则是不知道自身位置的节点,称为未知节点.在无线传感器网络中信标节点的数量较少,为了确定信标节点的位置,通常可以使节点携带GPS定位设备等来进行定位.[3]未知节点则通过参考信标节点的位置来确定自身位置.
基于三边测量法的实用性,本系统采用此方法实现节点的定位.已知a,b,c 3个节点的坐标为(x1,y1),(x2,y2),(x3,y3),它们到未知节点d的距离分别为d1,d2,d3.假设节点d的坐标为(x,y),则可以得到:
因此,通过上述方法,在已知3个无线传感器网络节点的坐标位置的情况下,就可以求出未知节点的位置.
无线传感器网络的节点故障可以分为硬故障和软故障两类.[4]当传感器节点的某一模块发生故障(如节点能量由于运行到一定时间耗尽或者其通信模块由于某些因素发生故障等),导致其不能与附近节点通信的,称之为硬故障;传感器节点虽然发生故障,但其通信模块正常,并且可以继续工作,与其他节点正常通信,只是节点感知或者传送的数据不正确的,称之为软故障.[5]本文的设计主要针对的是节点的软故障.
无线传感器网络故障诊断技术根据其诊断过程集中与否,可以分为集中式和分布式两种.
目前,无线传感器网络故障诊断技术大部分采用基于Sink节点的集中式诊断机制,在这些诊断技术中每个传感器节点定期向基站传送控制数据分组以汇报其状态信息.文献[6]提出了一个管理体系结构MANNA,该体系结构创建一个管理中心,通过掌握整个网络的全局信息,如网络覆盖图、能量损耗图等,实现对网络的实时检测.文献[7]通过收集传感器网络节点的邻居列表来生成可视化的网络拓扑图,并以此来判断网络连接的可靠性.集中式的诊断方法由于能够获得完整的网络状态信息,因而能够得到较为准确的诊断结果.但它会占用过多的通信开销,影响网络的正常应用.
分布式故障诊断方法是通过每个节点自行判断状态,并依靠邻居节点的辅助信息进行故障诊断.由于分布式故障诊断方法能够有效减小由诊断所引起的通信开销,因此本系统主要采用此诊断方法.此外,文献[8]提出的Distributed Fault Detection(DFD)算法,其主要思想是被检测节点通过与邻居节点比较测量值来判断自身状态,该算法充分利用节点的分布式特性,具有很强的灵活性和自组织能力,因此本系统采用DFD故障诊断方法来实现节点的故障诊断.
故障诊断程序是在节点内部运行的,程序包括诊断触发和诊断方法执行两个阶段,并且最终由故障节点向Sink节点发送故障信息,并由Sink节点通过串口向计算机终端转发信息,计算机终端读取信息后进行判别,确定是故障信息后再通过系统主界面显示.
本系统内无线传感器网络节点采用的路由协议为汇聚协议,在节点部署初期,各节点即可得知其邻节点,因此设计基于DFD方法的故障诊断程序更符合需求.
3.3.1 诊断触发机制
分布式故障诊断算法适用于节点部署较多且密集的场合,此时节点间的距离较为接近,节点间同一时刻测量的值(本系统测量的是温度值)相差不多,其差值dtij应该小于所设定的阈值θ,我们将阈值θ设为节点测量值的正常波动范围.如果某个节点发生故障,其与相邻节点间的测量值的差dtij可能会超过θ,由此可知启动诊断过程的触发机制为dtij大于θ.根据实际需要的不同来设定阈值θ的大小,这样可以更加精确地确定无线传感器网络的故障.
3.3.2 诊断方法执行过程
(1)更新节点间的状态关系首先使各节点执行故障监测,Sink节点发布一条命令,通知网络中所有节点更新节点间的状态关系Cij.当一个节点收到执行故障监测的信息后,与周围邻节点协调后开始执行故障监测.第一步,收到故障监测信息的节点Si和它的一个邻节点Sj,先设置其状态关系Cij=0,如果,则Cij=1,否则Cij= 0.第二步,将节点Si与每个邻节点进行上述操作,并保存测试结果.
(2)初步确定节点自身状态为了初步确定节点自身状态,需要执行如下计算.
一是计算各个Cij值的和,如果:
则节点状态Ri=LT(可能故障),否则Ri=LG(可能正常).式中的Num(N(Si))为节点i的邻居节点总数.
二是对N(Si)中的每个节点重复前面的步骤判断其状态.
(3)最终判定节点是否故障对N(Si)中每个节点Sj而言,其实际状态可能正常也可能是故障,所以利用Cij来判定Si的初步结果可能是错误的,不能就此立刻判定节点Si是否故障,因此需要进行第3次计算来真正确定节点Si是否故障.第1步,计算N(Si)中初步诊断状态为LG且与节点Si间测试结果为Cij=0的节点数a;第2步,计算N (Si)中初步诊断状态为LG且与节点Si间测试结果Cij=1的节点数b;第3步,计算a-b的值,若:
则Ri=GD(节点正常),否则Ri=FT(节点故障).
系统工作流程如图2所示.
图2 系统工作流程
系统启动时,计算机终端通过Sink节点发布一条请求节点定位的命令,节点通过自身设计好的定位功能模块测量出与3个信标节点的距离d1,d2,d3,并发送回计算机终端,由终端计算出未知节点的坐标,然后在系统界面上显示.如果计算机终端想知道是否有节点发生故障,则需要发布一条故障监测命令使节点启动检测,检测完成后发回检测结果,再由计算机终端在系统界面显示检测结果.
终端处理模块的界面设计基于.NET框架的智能客户端技术,使用了pictureBox控件显示节点的具体位置.首先将节点的坐标按照一定比例缩小为图形上的坐标,然后利用Graphics类中的画图方法将节点的图像画在pictureBox控件的相应位置.系统主界面如图3所示.
图3 系统主界面
本文在研究无线传感器网络节点故障诊断方法的基础上设计了节点故障诊断软件,结合三边测量定位方法,利用.NET框架的智能客户端技术,对整个无线传感器网络故障诊断系统进行设计.该系统只要知道了3个节点的位置,就可对其余节点进行定位,而且用户可以根据需要自主查询是否有节点出现故障,所有关于节点位置和故障的信息都可以在系统主界面上显示,用户可以直观地了解节点的分布及故障情况.因此,本系统的设计开发具有良好的应用前景.
[1]李晓维.无线传感器网络技术[M].北京:北京理工大学出版社,2007:7-9.
[2]霍梅梅,郑增威,周晓伟.移动传感器网络及其路由协议研究进展[J].计算机应用研究,2009,26(11):4 010-4 013.
[3]傅明磊,董慧颖.无线传感器网络节点定位技术研究[J].科技咨询导报,2007(3):28-29.
[4]CHESSA S,SANTI P.Crash faults identification in w ireless sensor networks[J].Computer Communications,2002,25 (14):1 273-1 282.
[5]季赛,袁慎芳,李含光.WSN中故障诊断性能与平均节点度研究[J].计算机工程,2010,36(7):14-16.
[6]RUIZ L B,SIQUERIA I G,WONG H C,et al.Fault management in even-driven w ireless sensor network[C]∥Proceedings of the 7th ACM Internetional Sysmposium on Modeling,Analysis and Simulation of W ireless and Mobile Systems,ACM,2004:149-156.
[7]WOO A,TONG T,CULLER D.Tam ing the underlying challenges of reliablemultihop routing in sensor network[C]∥Proceedings of the 1st Internetional Conference on Embedded Network Sensor Systems,ACM,2003:14-27.
[8]CHEN J,KHER S,SOMANIA.Distributed fault detection of w ireless sensor networks[C]∥Proceedings of the 2006Workshop on Dependability Issues in W ireless ad Hoc Networks and Sensor Networks,ACM,2006:65-72.
(编辑胡小萍)