基于Anderson-Darling检验的传感节点故障检测算法
2022-03-26崔远
崔远
(兰州职业技术学院 电子信息工程系,甘肃 兰州 730070)
0 引言
无线通信的快速发展以及电子元器件技术的日渐成熟,使无线传感网络(wireless sensor networks, WSNs)已在智能交通系统、森林防火报警系统、动物跟踪等领域内广泛使用。WSNs由多个微型传感节点组成,这些节点收集环境数据,再传输汇聚节点或者邻近的其他节点。
WSNs常部署于野外或者不便于接入的环境,传感节点需在恶劣环境内长时间工作。因此,传感节点自身状态存在不确定因素。传感节点可能状态良好,能够继续感测/传输数据;传感节点也可能出现故障[1],无法感测/传输数据。
WSNs内节点的故障可分为硬件故障和软件故障两类。因节点能量消耗殆尽或元器件损坏,导致节点无法工作,这类问题称为硬件故障[2];通常将错误计算或者参数匹配错误等行为导致节点不能工作称为软件故障[3]。软件故障可进一步划分为永久性、间歇性和瞬态性软件故障。
为了缓解节点故障对WSNs网络性能的影响,研究人员对检测故障节点策略进行了大量研究,并提出不同的检测算法。例如,文献[4-5]采用神经网络模型诊断节点的故障节点。文献[6-7]结合统计和软件计算策略检测故障节点,并对节点进行分类。
这些检测算法需要训练更多数据,需通过多次迭代才能完成对故障的检测,这无疑增加了节点能耗。众所周知,节点能量属传感节点的有限能量。因此,所设计的检测算法应考虑节点能量问题,尽量降低检测算法的复杂度,减少节点能耗。
为此提出了基于(anderson-darling,AD)检验传感节点软件故障检测的(AD-Soft Fault Detection of sensor node, AD-SFD)算法。AD-SFD算法通过分析传感节点所感测数据的分布规律,判断节点是否为软件故障节点,并通过降低算法的复杂度,减少节点能耗。仿真结果表明,提出的AD-SFD算法提高了软件故障检测率,并减少了节点能耗。
1 系统模型
1.1 网络模型
在e×e区域内部署n个同构节点,每个节点有唯一的ID号。所有节点具有相同的通信半径R。最初,所有节点均无故障。用图G=(V,E)表示网络拓扑,其中V为节点集;E为节点间的边集。如果两个节点(si,sj)间的欧式距离dij小于R,则节点i与节点j间存边界集:
假定任意一对节点间的通信链路是无方向的,即如果(si,sj)∈V,则(sj,si)∈V。节点感测数据,再采用能量有效的媒体接入协议(medium access control,MAC)的策略[8]传输数据。
1.2 Anderson-Darling(AD)检验器
作为杂波拟合检验算法,AD检测器利用样本分布函数和经验概率密度函数间的二次AD距离判断样本是否属于某一特定分布簇[9]。即判断原假设H0是否成立。
假设H0:X1,X2,…,XN同分布。令F(X)为分布函数。因此,利用式(2)计算离散的AD检验统计量:
通过Monte-Carlo仿真实验,可得到在指数分布条件下的阈值,如表1所示。
表1 AD 检验临界值
2 AD-SFD算法
2.1 单个节点的数据统计量
令Si(x)表示在时刻x从节点si收集的数据。用{Si(x)}tx=1表示从时刻1至时刻t所收集的数据,其中x=1,2…,t。将数据Si(x)映射于正态分布N(Ai(x),μi,σ2i),其中Ai(x)表示节点si实际感测的数据;μi为均值;σ2i为方差。使节点si发生错误的噪声与方
因此,任意节点si就依据算法1计算统计量ADi的修正值,具体过程如算法1所示。
算法1:计算节点数据的统计量images/BZ_193_270_1551_1232_2312.png
2.2 节点故障的检测
3 性能分析
利用NS-2.35[10]建立仿真平台,分析AD-SFD算法的性能。在700m×700m区域内部署100个传感节点,传感节点的通信半径为150m。假定节点感知环境的正常温度数据在[20,30]间。为了体现真实的环境数据,在节点感知的数据附加一定的噪声。节点的初始能量为6000 mAh。具体的仿真参数如表2所示。
表2 仿真参数
3.1 故障检测率性能
图1给出AD-SFD算法的FDA随故障率的变化情况。从图1可知,故障率的增加,使FDA呈下降趋势。原因在于:故障率越高,网络内出现故障节点数量越多,这就降低了FDA。相比于DSDA和UPFD,提出的AD-SFD算法的故障检测率得到有效提高。例如,当故障率在0.2时,AD-SFD算法的检测率仍达到0.9,但DSDA和UPFD算法的检测率低至0.84和0.8。
图1 检测率随故障率的变化情况
3.2 虚警率性能
图2给出AD-SFD算法、DSDA和UPFD算法的虚警率随故障率的变化情况。
从图2可知,故障率的增加,增加了虚警率FAR。这主要是因为:故障率的增加,加大了故障节点数。一旦故障节点数增加,就增加了错误判断的概率。相比于DSDA和UPFD算法,提出的AD-SFD算法有效地控制了虚警率。例如,当故障率为0.2时,UPFD和DSDA算法的虚警率分别达到0.0365和0.031。
图2 虚警率随故障率的变化情况
3.3 假阳率性能
图3给出AD-SFD算法、DSDA和UPFD算法的假阳率FPR随故障率的变化情况。从图3可知,FPR随节点故障率的增加而上升。原因与图1、图2相类似。故障率的增加,增加了检测难度,也就提升了假阳率FPR。
图3 假阳率随故障率的变化情况
相比于DSDA和UPFD算法,提出的AD-SFD算法的假阳率得到有效控制。例如,在故障率为0.3时,AD-SFD算法的假阳率低至0.15。而DSDA和UPFD算法的假阳率高达0.242和0.235。
4 结语
考虑到传感节点常部署于野外恶劣环境,节点容易出现软件故障。为此,本文提出AD-SFD检测算法。AD-SFD算法通过观察节点感测数据,判断节点是否出现软件故障,并减少控制开销,降低算法复杂度。仿真结果表明,提出的AD-SFD算法提高了检测精度。