基于wsns分布式节点故障诊断算法的研究_第1页
基于wsns分布式节点故障诊断算法的研究_第2页
基于wsns分布式节点故障诊断算法的研究_第3页
基于wsns分布式节点故障诊断算法的研究_第4页
基于wsns分布式节点故障诊断算法的研究_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于wsns分布式节点故障诊断算法的研究

0wsns节点故障诊断无线传感器网络(wtss)广泛应用于环境评估、农业生产、医疗、智能家居、军事和其他领域。它通常用于检测温度、湿度、压力和其他环境数据。WSNs节点会出现各种故障,降低或失去监控功能,造成严重的经济损失。通过故障诊断,它能及时地、正确地对各种异常状态或故障状态给出诊断,预防或消除故障,提高网络运行的可靠性。WSNs节点故障也可以分为两类:硬故障和软故障。硬故障是指传感器节点在部署或长时间的工作中电源模块、CPU、传感器、通信模块发生损坏以至于产生不可自行修复的故障;软故障是指节点虽然能够继续工作并与其他节点通信,但节点所感知或发送的信息不准确,影响整个网络的监测效果。典型的WSNs节点故障诊断算法有:分布式故障诊断(distributedfaultdetection,DFD),加权中值故障诊断(wei-ghtedmedianfaultdetection),分布式Bayesian算法(distributedbayesianalgorithms)。DFD算法对每个节点及其邻节点都进行一次数据融合,存在大量的冗余计算,节点自身的感知、通信或是自身的数据融合都会耗费大量的能量,进行故障检测必须尽可能地减少功耗。文献提出了一种用时间冗余技术来诊断传感器网络的通信和故障,但是容易在数据传输的过程中出现错误。文献建立了一个WSNs节点应用神经网络和粗糙集故障诊断方法,算法复杂性大,不适合节点数量大、耦合密切的网络。本文针对DFD节点故障检测算法计算冗余量大的缺点,提出适合故障检测的分簇算法,各个簇可以选取优化的分割阈值,提高诊断精度和效率。1wsns节点分簇WSNs中的拓扑控制技术主要可以分为2个方面:层次性拓扑结构和节点功率控制。在分层路由协议中,网络一般是由多个簇组成,节点分为两类:终端节点和簇头节点。处于同一簇内的终端节点和簇头节点共同维护所在簇的路由信息。簇头节点负责所管簇内的拓扑信息的压缩和摘要处理。在保证整个网络的联通度的情况下还会存在一些休眠节点,整个簇内的节点通过一跳或多跳向簇头节点汇聚信息。比较有代表性的算法有GAF,LEACH(lowenergyadaptiveclusteringhierarchy),HEED,TEEN等。WSNs节点分簇的基本要求:1)一个簇只能有一个簇头,簇内的所有终端节点都能和簇头节点通过一跳或多跳和簇头节点进行通信;2)簇头节点和簇头节点之间不互为邻居;3)簇头和簇头之间通过网关节点链接。图1描述了WSNs分簇的方式,簇头节点可以接收该簇内所有的终端节点的信息,值得指出的是其中还包括一些超过其通信范围的节点,这些节点通过多跳的方式把信息传送给簇头节点。2节点si诊断WSNsDFD节点故障诊断算法是由ChenJinran等人提出的,针对网络中邻节点测量数据的比较测试进行故障诊断的方法。对于随机分布在一定区域内的WSNs节点,每个节点都会实时的检测各种数据,例如:温度、压力、湿度等。由于长时间的工作,节点很容易发生异常,对于不能去实地检测或是检测的工作量比较大的地方,通过检测得到的数据进行故障分析是一个很好的办法。DFD节点故障诊断算法的诊断过程为:对于一个该区域中的节点Si和它的某一个邻节点Sj它们都会获取到不同的感知数据,因为它们是相邻节点,距离很近,在某一时刻t所感知的数据也应该比较接近,其差dtij不超过阈值;并且在另一时刻t+1,两相邻节点感知的数据差dtij+1和dtij的差值Δdtij也不会超过另一阈值θ2。如果以上2个条件都满足,那么,可以初步断定诊断的2个节点都为正常节点,令测试结果Cij为0,只要有一条没有满足,那么,Si或Sj之中至少有一个发生了故障,令测试结果Cij为1。对于节点Si可获得它与其所有的邻节点的测试结果,如果与Si的测试结果为1的节点数大于邻节点数目的一半,则认为节点Si的初步诊断状态为可能故障,否则,认为是可能正常。对于网络中所有节点进行遍历后可获得每个节点的初步诊断状态。对于初步的诊断状态,并不能准确地确定节点的真正工作状态,根据Cij得到的诊断结果是不准确的。所以,对节点Si进行诊断时需要进行如下考虑:如果节点Si的所有邻节点诊断状态为可能正常的节点数减去与Si减去测试结果为1的节点数,结果大于或等于Si的所有邻节点数的一半,那么认为最终的诊断结果为正常,反之,Si的诊断结果为故障。假设每一个节点的故障率为p,对于任意节点Si通过节点自身的通信半径检测,寻找其邻节点的节点标号和节点数目,以此计算出平均邻居节点数k表示所有节点的邻节点求平均数然后取整。对节点的故障检测可能分为以下4种情况:实际状态为正常的节点诊断为正常节点、实际状态为正常的节点诊断为故障节点、实际状态为故障的节点诊断为正常的节点、实际状态为故障的节点诊断为故障的节点。令以上4种情况的概率分别为Pg/g,Pglf,Pflg,Pflf。它们的计算方法为DFD节点故障诊断的精度为由公式(5)可以计算出整个网络的诊断精度,随着节点故障率的提升,整个网络的故障节点也会增多,发生故障的节点可能会提供更多的错误信息,这样会导致节点诊断精度的下降。3簇头节点的选取要应用分簇的节点故障诊断算法进行WSNs的故障检测,必须要建立适合DFD节点故障诊断算法的分簇方法,本文中采取了一种适合DFD算法的改进LEACH的分簇算法并将其命名为LEACH-DFD算法。DFD节点故障诊断算法是根据邻居节点之间的数据检测进行诊断,所以,诊断时节点间的物理位置对诊断有着重要的影响,将节点完成分簇后,同一簇内的节点根据簇头节点来完成故障信息融合。LEACH算法给了一个“round”的概念,在每一轮都有簇建立和稳定运行2个阶段。在簇建立阶段,会自适应的进行分簇,选出较为均匀分布的簇头节点,然后就会进入稳定运行阶段进行各种数据的传输和处理。本文中改进LEACH算法的簇形成阶段,提出一种适合DFD故障检测的分簇算法LEACH-DFD。每个节点都要生成0~1之间的随机数,如果生成的随机数小于阈值T(n),那么该节点就成为簇头。阈值T(n)的大小由公式(6)确定式中p为网络中簇头所占的比例,r为目前进行的轮数,G为在过去的1/p轮中没有成为簇头的节点且是在以往轮故障监测中确定为正常的节点集合。在节点被选为簇头后,就向外广播信息,告知其他节点自身的簇头地位。终端节点接收到广播信息后,根据广播信息信号的强弱决定要加入的簇,并向簇头发送加入该簇的信息。簇头节点接收到请求信息后,根据TDMA方式与簇内节点进行通信。DFD节点故障诊断中是根据中心节点的数据来进行检测,所以,簇头节点的数据必须具有较高的置信度,假如:簇头节点的数据是错误的,那么,诊断精度势必受到很大影响。所以,选定簇头的时候一定要确保簇头节点是正常节点,假如根据本文的分簇算法分簇后,根据簇头根据DFD算法检测出过多的节点数据异常,那么就极可能是簇头自身发生异常,所以要迅速进入下一轮重新分簇,直到选出的所有簇头节点都为正常节点。具体的流程图如图2。在某一时刻某一区域内,节点所提供的数据可能会有以下4种情况:正常的节点提供正常的数据,正常的节点提供错误的数据,故障的节点提供正常的数据,故障的节点提供错误的数据。第二,第四种情况是指在某些区域,由于该区域本身的特殊性数据的跳动性比较大,这可能是因为该区域内环境恶劣,测得的数据之间相差较大,这种情况下可以引入图像分割中的多阈值分割概念,根据先验知识库,对各个区域选取动态阈值,这样可以有效的提高诊断精度。分簇式节点故障诊断算法步骤如下:1)应用LEACH-DFD算法完成分簇。2)分簇完之后进行一下故障检测,确定所有簇头都是正常节点,如果不是重新进行分簇。3)计算第一个簇头与该簇内所有节点的数据差dt1ij。如果dt1ij>θ11,则Cij1=1,然后计算下一个节点。如果dt1ij≤θ11,然后就计算Δdt1ij,如果Δdt1ij>θ12,则Cij1=1。然后计算下一个节点。4)由于簇头节点是经过检测被证明是正常的节点,可以直接通过合适的阈值来判定在该簇头节点所属簇内的所有终端节点的工作状态。5)诊断完第1个簇可以顺序检测完其余剩下的所有簇,完成对整个网络的检测。6)经过稳定工作阶段后,整个网络将回到第1步重新分簇,以达到均匀消耗能量的效果,避免簇头节点不仅要进行故障检测也要与汇聚节点进行通信消耗太多能量而过早死亡的热点效应。4dfd节点故障诊断算法的改进本文应用基于ZigBee无线通信协议的传感器节点进行实验,场景如下:在一个环境较为恶劣的目标区域内随机部署了50个不可移动节点用以检测该区域内的温度值,节点带有温度传感器、ZigBee无线通信模块、电源模块和低功耗MCU。针对前面的算法描述,对检测到得温度数据进行分析,由于在原DFD节点故障诊断算法中,要对所有分布在目标区域的节点进行遍历,所以产生了大量的冗余计算,举例说明:假如节点1和节点6是邻居节点,在对节点1进行故障检测时,要和节点6进行一次比较,在对节点6进行故障检测时,又要对节点1进行一次比较。对于密集分布的网络节点,这种算法产生了大量的冗余计算,如果多个采样时间进行检测,那么势必产生大量的计算,浪费能源。而应用改进的分簇式节点故障诊断算法,用于故障检测只需簇头节点就能完成对其簇的诊断,避免了计算的冗余,减少了大量的计算,也相应的减少了对节点能源的使用,而且只用簇头进行诊断,避免了很多冗余信息所造成的误判。本实验中采用节点的无线通信模块发送电路和接收电路消耗的能量均为50nJ/bit。节点的初始能量为0.5J,且不可移动。发送信号的放大器能量功耗为100nJ/bit/m2,每轮每个节点的数据包为450bit。此外,无线通信时,两节点之间的距离也会对功耗产生较大的影响。当节点间的距离较大时适用于多径衰落信道模型,如公式(7);两节点通信距离较远时适用于自由空间信道模型,如公式(8)式中λ为发送或接收数据包的比特数,E为发送或接收电路所损耗的能量,是传输的距离,ε为发送信号时放大器的功率,σ为无线信号受外界影响的常量,本文中选2。本文根据节点自身性能和所选目标区域大小,使用后者作为本文的发送信号功耗模型。由于本文中方法减少了大量的冗余计算,所以,节点消耗的能量有了较大的降低,具体如图3。从图3中可以看出:分簇式节点故障诊断算法比DFD节点故障诊断算法所消耗的能量有了显著的减少,因为DFD算法与节点分布的状态有着较大的关系,所以进行了五次随机分布,从结果中可以看出:分簇式算法降低了很多能耗,相应的可以延长网络寿命。除了消耗能量的约简,诊断精度也是WSNs节点故障诊断的一个重要的影响因素,本文选取了优化的阈值矩阵,每一簇都选取不同的阈值。阈值的选取是由先验知识获得,对各个簇使用有效的阈值进行故障检测。原来DFD节点故障算法使用全局的静态阈值,对于某些局部区域会达不到较好的分类效果,所以,分簇之后整个网络的诊断精度也有了一定的改进,结果如图4。从图4中可以看出:随着节点的故障率的增高,DFD节点故障诊断的诊断精度受错误节点数据的影响就更大,诊断精度会随之降低。分簇式DFD算法由于在计算时先是选定了正确地节点作为簇头节点,并且每一簇都选用了更加优化的局部分割阈值,诊断精度有了显著的提高,受节点故障率的影响也降低很多。5节点故障诊

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论