崔遠(yuǎn)
(蘭州職業(yè)技術(shù)學(xué)院 電子信息工程系,甘肅 蘭州 730070)
無線通信的快速發(fā)展以及電子元器件技術(shù)的日漸成熟,使無線傳感網(wǎng)絡(luò)(wireless sensor networks, WSNs)已在智能交通系統(tǒng)、森林防火報(bào)警系統(tǒng)、動(dòng)物跟蹤等領(lǐng)域內(nèi)廣泛使用。WSNs由多個(gè)微型傳感節(jié)點(diǎn)組成,這些節(jié)點(diǎn)收集環(huán)境數(shù)據(jù),再傳輸匯聚節(jié)點(diǎn)或者鄰近的其他節(jié)點(diǎn)。
WSNs常部署于野外或者不便于接入的環(huán)境,傳感節(jié)點(diǎn)需在惡劣環(huán)境內(nèi)長(zhǎng)時(shí)間工作。因此,傳感節(jié)點(diǎn)自身狀態(tài)存在不確定因素。傳感節(jié)點(diǎn)可能狀態(tài)良好,能夠繼續(xù)感測(cè)/傳輸數(shù)據(jù);傳感節(jié)點(diǎn)也可能出現(xiàn)故障[1],無法感測(cè)/傳輸數(shù)據(jù)。
WSNs內(nèi)節(jié)點(diǎn)的故障可分為硬件故障和軟件故障兩類。因節(jié)點(diǎn)能量消耗殆盡或元器件損壞,導(dǎo)致節(jié)點(diǎn)無法工作,這類問題稱為硬件故障[2];通常將錯(cuò)誤計(jì)算或者參數(shù)匹配錯(cuò)誤等行為導(dǎo)致節(jié)點(diǎn)不能工作稱為軟件故障[3]。軟件故障可進(jìn)一步劃分為永久性、間歇性和瞬態(tài)性軟件故障。
為了緩解節(jié)點(diǎn)故障對(duì)WSNs網(wǎng)絡(luò)性能的影響,研究人員對(duì)檢測(cè)故障節(jié)點(diǎn)策略進(jìn)行了大量研究,并提出不同的檢測(cè)算法。例如,文獻(xiàn)[4-5]采用神經(jīng)網(wǎng)絡(luò)模型診斷節(jié)點(diǎn)的故障節(jié)點(diǎn)。文獻(xiàn)[6-7]結(jié)合統(tǒng)計(jì)和軟件計(jì)算策略檢測(cè)故障節(jié)點(diǎn),并對(duì)節(jié)點(diǎn)進(jìn)行分類。
這些檢測(cè)算法需要訓(xùn)練更多數(shù)據(jù),需通過多次迭代才能完成對(duì)故障的檢測(cè),這無疑增加了節(jié)點(diǎn)能耗。眾所周知,節(jié)點(diǎn)能量屬傳感節(jié)點(diǎn)的有限能量。因此,所設(shè)計(jì)的檢測(cè)算法應(yīng)考慮節(jié)點(diǎn)能量問題,盡量降低檢測(cè)算法的復(fù)雜度,減少節(jié)點(diǎn)能耗。
為此提出了基于(anderson-darling,AD)檢驗(yàn)傳感節(jié)點(diǎn)軟件故障檢測(cè)的(AD-Soft Fault Detection of sensor node, AD-SFD)算法。AD-SFD算法通過分析傳感節(jié)點(diǎn)所感測(cè)數(shù)據(jù)的分布規(guī)律,判斷節(jié)點(diǎn)是否為軟件故障節(jié)點(diǎn),并通過降低算法的復(fù)雜度,減少節(jié)點(diǎn)能耗。仿真結(jié)果表明,提出的AD-SFD算法提高了軟件故障檢測(cè)率,并減少了節(jié)點(diǎn)能耗。
在e×e區(qū)域內(nèi)部署n個(gè)同構(gòu)節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)有唯一的ID號(hào)。所有節(jié)點(diǎn)具有相同的通信半徑R。最初,所有節(jié)點(diǎn)均無故障。用圖G=(V,E)表示網(wǎng)絡(luò)拓?fù)洌渲蠽為節(jié)點(diǎn)集;E為節(jié)點(diǎn)間的邊集。如果兩個(gè)節(jié)點(diǎn)(si,sj)間的歐式距離dij小于R,則節(jié)點(diǎn)i與節(jié)點(diǎn)j間存邊界集:

假定任意一對(duì)節(jié)點(diǎn)間的通信鏈路是無方向的,即如果(si,sj)∈V,則(sj,si)∈V。節(jié)點(diǎn)感測(cè)數(shù)據(jù),再采用能量有效的媒體接入?yún)f(xié)議(medium access control,MAC)的策略[8]傳輸數(shù)據(jù)。
作為雜波擬合檢驗(yàn)算法,AD檢測(cè)器利用樣本分布函數(shù)和經(jīng)驗(yàn)概率密度函數(shù)間的二次AD距離判斷樣本是否屬于某一特定分布簇[9]。即判斷原假設(shè)H0是否成立。
假設(shè)H0:X1,X2,…,XN同分布。令F(X)為分布函數(shù)。因此,利用式(2)計(jì)算離散的AD檢驗(yàn)統(tǒng)計(jì)量:

通過Monte-Carlo仿真實(shí)驗(yàn),可得到在指數(shù)分布條件下的閾值,如表1所示。

表1 AD 檢驗(yàn)臨界值
令Si(x)表示在時(shí)刻x從節(jié)點(diǎn)si收集的數(shù)據(jù)。用{Si(x)}tx=1表示從時(shí)刻1至?xí)r刻t所收集的數(shù)據(jù),其中x=1,2…,t。將數(shù)據(jù)Si(x)映射于正態(tài)分布N(Ai(x),μi,σ2i),其中Ai(x)表示節(jié)點(diǎn)si實(shí)際感測(cè)的數(shù)據(jù);μi為均值;σ2i為方差。使節(jié)點(diǎn)si發(fā)生錯(cuò)誤的噪聲與方

因此,任意節(jié)點(diǎn)si就依據(jù)算法1計(jì)算統(tǒng)計(jì)量ADi的修正值,具體過程如算法1所示。

算法1:計(jì)算節(jié)點(diǎn)數(shù)據(jù)的統(tǒng)計(jì)量images/BZ_193_270_1551_1232_2312.png

利用NS-2.35[10]建立仿真平臺(tái),分析AD-SFD算法的性能。在700m×700m區(qū)域內(nèi)部署100個(gè)傳感節(jié)點(diǎn),傳感節(jié)點(diǎn)的通信半徑為150m。假定節(jié)點(diǎn)感知環(huán)境的正常溫度數(shù)據(jù)在[20,30]間。為了體現(xiàn)真實(shí)的環(huán)境數(shù)據(jù),在節(jié)點(diǎn)感知的數(shù)據(jù)附加一定的噪聲。節(jié)點(diǎn)的初始能量為6000 mAh。具體的仿真參數(shù)如表2所示。

表2 仿真參數(shù)
圖1給出AD-SFD算法的FDA隨故障率的變化情況。從圖1可知,故障率的增加,使FDA呈下降趨勢(shì)。原因在于:故障率越高,網(wǎng)絡(luò)內(nèi)出現(xiàn)故障節(jié)點(diǎn)數(shù)量越多,這就降低了FDA。相比于DSDA和UPFD,提出的AD-SFD算法的故障檢測(cè)率得到有效提高。例如,當(dāng)故障率在0.2時(shí),AD-SFD算法的檢測(cè)率仍達(dá)到0.9,但DSDA和UPFD算法的檢測(cè)率低至0.84和0.8。

圖1 檢測(cè)率隨故障率的變化情況
圖2給出AD-SFD算法、DSDA和UPFD算法的虛警率隨故障率的變化情況。
從圖2可知,故障率的增加,增加了虛警率FAR。這主要是因?yàn)椋汗收下实脑黾樱哟罅斯收瞎?jié)點(diǎn)數(shù)。一旦故障節(jié)點(diǎn)數(shù)增加,就增加了錯(cuò)誤判斷的概率。相比于DSDA和UPFD算法,提出的AD-SFD算法有效地控制了虛警率。例如,當(dāng)故障率為0.2時(shí),UPFD和DSDA算法的虛警率分別達(dá)到0.0365和0.031。

圖2 虛警率隨故障率的變化情況
圖3給出AD-SFD算法、DSDA和UPFD算法的假陽率FPR隨故障率的變化情況。從圖3可知,F(xiàn)PR隨節(jié)點(diǎn)故障率的增加而上升。原因與圖1、圖2相類似。故障率的增加,增加了檢測(cè)難度,也就提升了假陽率FPR。

圖3 假陽率隨故障率的變化情況
相比于DSDA和UPFD算法,提出的AD-SFD算法的假陽率得到有效控制。例如,在故障率為0.3時(shí),AD-SFD算法的假陽率低至0.15。而DSDA和UPFD算法的假陽率高達(dá)0.242和0.235。
考慮到傳感節(jié)點(diǎn)常部署于野外惡劣環(huán)境,節(jié)點(diǎn)容易出現(xiàn)軟件故障。為此,本文提出AD-SFD檢測(cè)算法。AD-SFD算法通過觀察節(jié)點(diǎn)感測(cè)數(shù)據(jù),判斷節(jié)點(diǎn)是否出現(xiàn)軟件故障,并減少控制開銷,降低算法復(fù)雜度。仿真結(jié)果表明,提出的AD-SFD算法提高了檢測(cè)精度。