劉志光
摘要:隨著無線傳感器在環(huán)境監(jiān)測、醫(yī)療、軍事等領(lǐng)域的廣泛應(yīng)用,無線傳感器故障檢測成為重中之重?,F(xiàn)有無線傳感故障診斷基于無線傳感器傳感數(shù)據(jù)的時空相關(guān)性進行,當無線傳感器分布密集且故障較少時,能達到很好的診斷精度。提出一種基于距離加權(quán)的算法,將鄰居節(jié)點的數(shù)據(jù)加權(quán)平均后與待檢測點進行比較,提高了故障診斷的精度,且能對具有正常診斷的節(jié)點狀態(tài)進行擴散,減少能量消耗,延長網(wǎng)絡(luò)壽命。
關(guān)鍵詞:無線傳感器;故障診斷;時空相關(guān)性;距離加權(quán)
DOIDOI:10.11907/rjdk.181168
中圖分類號:TP312
文獻標識碼:A文章編號文章編號:16727800(2018)009010604
英文標題Fault Diagnosis in Wireless Network Sensor Fault Based on Distance Weighting Algorithm
--副標題
英文作者LIU Zhiguang1,2
英文作者單位(1.Fujian Institute of Scientific and Technological Information;2.Key Laboratory of Fujian Information Network,F(xiàn)uzhou 350003,China)
英文摘要Abstract:With the extensive application of wireless sensors in environmental monitoring,medical treatment and military,fault detection in wireless sensor becomes more and more important.The existing wireless sensor fault diagnosis is based on spatiotemporal correlation of wireless sensor sensing data,and when the wireless sensor is densely distributed and the number of faults is small,good diagnostic accuracy can be achieved.In this paper,a distanceweighted algorithm is proposed.The data of neighboring nodes are weighted averagely and compared with the test points for diagnosis.The diagnostic accuracy of the fault is improved,and the state of the node with normal diagnosis is diffused to reduce the energy consumption and extend network life.
英文關(guān)鍵詞Key Words:wireless sensor networks; fault detection; spatiotemporal correlation; distance weighted
0引言
無線傳感器因其低成本、低功耗、小體積、短距離通信且能通過自組織形成無線傳感器網(wǎng)絡(luò)的特點,被廣泛應(yīng)用到軍事、交通、環(huán)境監(jiān)測和預(yù)報、衛(wèi)生保健等各個領(lǐng)域,備受關(guān)注[1]。無線傳感器一般被部署在環(huán)境惡劣、人跡稀少的環(huán)境中,通過多跳將傳感器檢測到的數(shù)據(jù)傳輸給基站,基站人員對接收到的傳感數(shù)據(jù)進行分析并作出正確決策。但由于無線傳感器極易發(fā)生故障,致使基站接收到錯誤的傳感數(shù)據(jù)而作出錯誤決策,會導(dǎo)致一系列無法估計的連鎖反應(yīng)。因此,在無線傳感器網(wǎng)絡(luò)中對無線傳感器節(jié)點進行故障診斷至關(guān)重要。
現(xiàn)有的無線傳感器故障診斷算法主要分為集中式故障診斷算法和分布式故障診斷算法。在集中式故障診斷算法中,網(wǎng)絡(luò)存在一個具有較強計算能力和通信能力的節(jié)點,且該節(jié)點有足夠大的能量供應(yīng)。待檢測節(jié)點通過多跳鄰居將待檢測數(shù)據(jù)傳輸?shù)交?,基站通過對傳感數(shù)據(jù)分析得出待檢測節(jié)點的狀態(tài)。文獻[1]中心節(jié)點通過對接收節(jié)點的歷史數(shù)據(jù)堆積從而對下一時刻傳感數(shù)據(jù)進行預(yù)測,對比預(yù)測值與真實值之間的相似性以診斷節(jié)點狀態(tài)。該算法中,節(jié)點要將傳感數(shù)據(jù)通過多跳發(fā)送給基站,消耗大量能量,降低了網(wǎng)絡(luò)壽命。分布式檢測算法中,所有傳感器都具有相同的能量和傳輸半徑,每個節(jié)點處于平等地位,都具有采集、計算能力,節(jié)點之間利用時空相關(guān)性,對節(jié)點狀態(tài)進行判斷。文獻[2-3]中提出分布式無線傳感器故障檢測算法,基于節(jié)點的時空相關(guān)性,通過計算節(jié)點與其鄰居節(jié)點數(shù)據(jù)的相似性進行故障診斷。
文獻[4]是基于多數(shù)投票策略的算法,網(wǎng)絡(luò)中每個節(jié)點先根據(jù)自身數(shù)據(jù)對節(jié)點狀態(tài)進行判斷,再根據(jù)鄰居節(jié)點的決策判斷自身決策是否正確,進而判斷節(jié)點的真實狀態(tài)。該算法具有復(fù)雜度低、能耗低等優(yōu)點,但故障診斷精度一般,尤其當故障節(jié)點數(shù)較高時,故障診斷精度會迅速降低。文獻[5-8]使用神經(jīng)網(wǎng)絡(luò)進行故障診斷,通過對數(shù)據(jù)進行分類找到故障節(jié)點。文獻[9-11]基于聚類中值的方法對文獻傳感器進行故障檢測,通過對節(jié)點進行聚類,再選取中值,比較節(jié)點數(shù)據(jù)間的相似度,判斷節(jié)點的最終狀態(tài)。文獻[12-13]利用無線傳感器中數(shù)據(jù)的相關(guān)性對無線傳感器節(jié)點進行狀態(tài)診斷。文獻[14]基于圖論知識,構(gòu)造故障診斷定位集確定節(jié)點狀態(tài)。
本文通過改進分布式故障診斷算法,在計算鄰居節(jié)點相似性時,不再只簡單計算兩節(jié)點間的歐幾里得距離,通過判斷歐幾里得距離判斷節(jié)點的相似性,而是對其鄰居節(jié)點數(shù)據(jù)進行距離加權(quán)處理之后再計算兩節(jié)點間的相似性。在基于距離的基礎(chǔ)上對數(shù)據(jù)進行處理,進一步提升無線傳感器故障診斷精度,并將診斷正常的節(jié)點狀態(tài)進行擴散,減少節(jié)點間的通信,降低能量消耗。
1無線傳感器網(wǎng)絡(luò)模型
無線傳感器網(wǎng)絡(luò)由若干個無線傳感器節(jié)點以自組織方式組成(見圖1),無線傳感器包含傳感器、CPU、無線通信和電源等4個模塊。節(jié)點間在一定通信范圍內(nèi)能夠通信,相互之間能進行信息的傳輸與交換,傳感器還具有簡單的計算功能。
無線傳感器網(wǎng)絡(luò)節(jié)點狀態(tài)分為正常和故障兩種,正常傳感器能夠監(jiān)測到正常的傳感數(shù)據(jù)且能傳輸給基站,而故障傳感器則無法進行上述過程。無線傳感器故障可分為硬故障和軟故障。硬故障指無線傳感器因電量不足或其它原因無法進行數(shù)據(jù)采集或無法與其它節(jié)點進行通信。軟故障是指傳感器節(jié)點采集數(shù)據(jù)和通信功能正常,但采集到的數(shù)據(jù)與真實值之間有一定誤差。
在本文中,無線傳感器具有如下性質(zhì):①所有節(jié)點都是靜態(tài)的,即節(jié)點位置是固定的;②所有節(jié)點具有相同的通信范圍;③每個節(jié)點都有唯一的標識;④傳感器節(jié)點都是同種性質(zhì)的;⑤匯聚節(jié)點比一般節(jié)點具有更多的初始能量和更大的通信范圍。
1.1硬故障檢測
無線傳感器網(wǎng)絡(luò)中所有節(jié)點間的通信都使用多信道時分多址(TDMA)作為MAC協(xié)議共享數(shù)據(jù),能夠使發(fā)送的數(shù)據(jù)包最小化,減少數(shù)據(jù)發(fā)送沖突。時分多址(TDMA)是一種為實現(xiàn)共享傳輸介質(zhì)或者網(wǎng)絡(luò)的通信技術(shù),允許多個傳感器在不同時隙使用相同的傳輸信道。它把時間分割成周期性的幀,每一個幀再分割成若干個時隙向基站發(fā)送信號,在滿足定時和同步的條件下,基站可以分別在各時隙中接收到各無線傳感器的信號而不混擾。
TDMA調(diào)度的MAC協(xié)議包括兩個階段:控制階段和數(shù)據(jù)階段。圖2顯示了通信信道及其不同的階段。控制階段用于保留源與目的地之間的數(shù)據(jù)通信時間表。數(shù)據(jù)階段用于數(shù)據(jù)通信,然后是控制時段時間表??刂茣r段被分成許多小時隙{C1,C2,…,Cn},其中時隙大小取決于RTS / CTS分組大小。數(shù)據(jù)階段被分成一些時隙{D1,D2,…,Dm},時隙大小取決于數(shù)據(jù)包的大小。RTS / CTS分組尺寸比數(shù)據(jù)分組的尺寸小,RTS / CTS分組在交換階段進行。RTS分組包含接收者節(jié)點ID和數(shù)據(jù)階段的所選數(shù)據(jù)時隙號。具有數(shù)據(jù)的節(jié)點將RTS分組發(fā)送到其相應(yīng)的目標節(jié)點,并且目標節(jié)點會發(fā)送包含源ID和選擇數(shù)據(jù)槽號的CTS分組。
在初始狀態(tài)下,控制階段的所有節(jié)點都處于蘇醒狀態(tài),節(jié)點選擇任意通道的隨機時隙并設(shè)置一個定時器。當定時器值為零時,節(jié)點發(fā)送RTS數(shù)據(jù)包,接收器接收到RTS數(shù)據(jù)包后,在超時周期內(nèi)重新發(fā)送一個CTS。RTS / CTS分組的成功將影響到其它節(jié)點數(shù)據(jù)調(diào)度。如果接收器接收到RTS分組并且知道所選擇的數(shù)據(jù)時隙被另一個節(jié)點占用,則它發(fā)送否定的CTS以通知源節(jié)點,并且在數(shù)據(jù)階段中選擇另一個時隙。
發(fā)生硬故障的節(jié)點無法與其它節(jié)點進行通信,所以在硬故障診斷過程中,匯聚節(jié)點發(fā)送請求數(shù)據(jù)包,等待其通信范圍內(nèi)節(jié)點回復(fù),若在時間t內(nèi)收到回復(fù),則說明節(jié)點能夠進行正常通信,沒有發(fā)生硬故障。若在時間t內(nèi)匯聚節(jié)點沒有收到回復(fù),則說明節(jié)點發(fā)生了硬故障(見圖3)。
其中等候時間t=Rc, R為匯聚節(jié)點的通信半徑,c為數(shù)據(jù)包的傳輸速度。
1.2軟故障檢測
無線傳感器軟故障指無線傳感器節(jié)點所感知的數(shù)據(jù)與真實數(shù)據(jù)有偏差,使管理者接收到錯誤數(shù)據(jù)而得出錯誤結(jié)論。無線傳感器軟故障根據(jù)數(shù)據(jù)故障類型可分為如下4種:①永久性故障。節(jié)點所感知數(shù)據(jù)不會隨時間變化而變化,所感知數(shù)據(jù)為一個固定值;②暫時性故障。節(jié)點在某段時間內(nèi)感知數(shù)據(jù)異常,但在其它時間內(nèi)感知數(shù)據(jù)正常;③瞬時故障。在某一個時刻節(jié)點感知有誤,其它時間感知數(shù)據(jù)正常;④偏移故障。感知數(shù)據(jù)在每個時刻都比真實數(shù)據(jù)大或小于一個固定值。
在無線傳感器網(wǎng)絡(luò)軟故障診斷中,網(wǎng)絡(luò)中相鄰范圍內(nèi)傳感器節(jié)點同一時刻采集到的數(shù)據(jù)應(yīng)該是相同或者相似的。因此為了判斷節(jié)點是否處于正常狀態(tài),需要對采集到的節(jié)點數(shù)據(jù)進行分析處理。
假設(shè)將n個傳感器節(jié)點隨機部署在設(shè)定的檢測范圍內(nèi),這些傳感器節(jié)點均為自身攜帶GPS定位設(shè)備的信標節(jié)點[15]。用(x0,y0)表示檢測節(jié)點s0坐標,用(x1,y1),(x2,y2),…表示周圍鄰近節(jié)點si(1≤i≤n-1)的坐標,定義有效臨近節(jié)點的距離范圍,記為R,且僅當節(jié)點i、j間的距離dij=(xi-xj)2+(yi-yj)2小于通信半徑R時,兩節(jié)點互為鄰居節(jié)點。在不同檢測節(jié)點范圍內(nèi)用N表示臨近節(jié)點的個數(shù)。
反距離加權(quán)插值法[16]基于相近相似原理(即兩個傳感器節(jié)點離得越近,其數(shù)值就越接近,反之離得越遠則相似性越小),以測量節(jié)點與鄰近節(jié)點間的距離為權(quán)重進行加權(quán)平均。同一時刻,在檢測節(jié)點s0的R范圍內(nèi),利用鄰近節(jié)點的檢測值,運用距離加權(quán)對s0進行預(yù)測,則:
Z*(s0)=∑Ni=1λiZ(si)(1)
其中,Z*(s0)為檢測點s0處的預(yù)測值,λi為預(yù)測計算過程中各鄰近節(jié)點的權(quán)重,該值隨著鄰近節(jié)點與檢測節(jié)點之間距離的增加而減少,Z(si)是在鄰近節(jié)點si處獲得的測量值。關(guān)于權(quán)重的計算:
λi=d-Ri0/∑Ni=1d-Ri0,∑Ni=1λi=1(2)
其中,R為指數(shù)值,即有效距離范圍;di0是檢測點s0與各個鄰近點si之間的距離,通過距離公式計算。
di0=(xi-x0)2+(yi-y0)2(3)
檢測點預(yù)測值計算過程中,鄰近點所占權(quán)重的大小受到參數(shù)R影響,說明檢測點與鄰近點的距離越大,鄰近點對預(yù)測結(jié)果影響的權(quán)重越呈指數(shù)規(guī)律減少。在預(yù)測檢測點數(shù)據(jù)過程中,各個鄰近點對預(yù)測值作用的權(quán)重大小是呈比例的,這些權(quán)重值的總和是1。
將得到檢測節(jié)點s0的預(yù)測值Z*(s0)與其測量值Z(s0)進行比較,設(shè)定閾值為θ,滿足:
|Z*(s0)-Z(s0)|<θ(4)
閾值θ為節(jié)點測量值的正常波動范圍。如果節(jié)點未發(fā)生故障,則式(4)成立。如果差值絕對值大于設(shè)定的閾值,就可判斷所測量的節(jié)點為故障節(jié)點。
2仿真與分析
使用Python軟件對所提算法進行仿真,并分析結(jié)果。在仿真實驗中,將300個傳感器節(jié)點隨機分布在100m×100m的待檢測區(qū)域內(nèi),且所有節(jié)點都具有相同的傳輸半徑與性質(zhì)。當網(wǎng)絡(luò)中模擬節(jié)點故障率分別為0.1、0.2、03、0.4、0.5時,再虛擬算法的節(jié)點故障檢測情況。
2.1算法節(jié)點準確性
目前衡量無線傳感器故障檢測算法好壞的標準是計算節(jié)點故障檢測率與節(jié)點故障虛警率。其中:節(jié)點故障檢測率能準確診斷出故障節(jié)點個數(shù)占總節(jié)點個數(shù)的比重;節(jié)點故障虛警率是正常狀態(tài)節(jié)點被診斷為故障的個數(shù)與實際正常節(jié)點個數(shù)之比。
部署在待監(jiān)測區(qū)域的無線傳感器自己形成的網(wǎng)絡(luò)可簡化為一個無向圖G(v,e),其中G(v)為傳感器節(jié)點,G(e)為網(wǎng)絡(luò)中的邊。若節(jié)點i、j為鄰居節(jié)點,則邊eij∈G(e)。
將基于距離加權(quán)的無線傳感器算法與傳統(tǒng)分布式故障診斷算法進行對比,結(jié)果見圖4、圖5。
由圖4可知,基于距離加權(quán)的無線傳感器故障檢測算法在節(jié)點故障率較高時,仍有較高的故障診斷率;當節(jié)點故障率超過40%時,DFD算法故障診斷精度急劇下降,而基于距離的無線傳感器故障診斷算法診斷精度仍高達90%以上。
2.2能量消耗
無線傳感器被部署在環(huán)境惡劣的監(jiān)測區(qū)域,且無線傳感器節(jié)點的能量有限,盡可能減少無線傳感器網(wǎng)絡(luò)的能量消耗至關(guān)重要。傳統(tǒng)的分布式無線傳感器故障診斷算法中,每個傳感器節(jié)點都需要與其鄰居節(jié)點進行一次通信才能確定節(jié)點的準確狀態(tài)。在基于距離加權(quán)的無線傳感器故障檢測算法中,將已經(jīng)確定狀態(tài)正常的節(jié)點向鄰居節(jié)點進行擴散,只需與一個節(jié)點進行一次通信,就能準確判斷鄰居節(jié)點的狀態(tài),減少節(jié)點間的通信,尤其是對無線傳感器節(jié)點故障率較低的網(wǎng)絡(luò),能更多地減少能量消耗,從而延長無線傳感器網(wǎng)絡(luò)的壽命。
3結(jié)語
基于距離加權(quán)的無線傳感器網(wǎng)絡(luò)故障檢測算法,運用無線傳感器數(shù)據(jù)間的空間相關(guān)性,將鄰居節(jié)點數(shù)據(jù)進行加權(quán)后與待測節(jié)點數(shù)據(jù)進行比較,從而判斷出鄰居節(jié)點準確狀態(tài),并將正常的節(jié)點狀態(tài)向鄰居節(jié)點傳遞。仿真結(jié)果表明,該算法在故障檢測上有較好的準確度,且當無線傳感器網(wǎng)絡(luò)故障率較低時能有效減少能量消耗,延長網(wǎng)絡(luò)壽命。
參考文獻參考文獻:
[1]任豐原,黃海寧,林闖.無線傳感器網(wǎng)絡(luò)[J].軟件學(xué)報,2003,14(7):12821291.
[2]季賽,袁慎芳,吳鍵,等.基于時空特性的無線傳感器網(wǎng)絡(luò)節(jié)點故障診斷方法[J].傳感器與微系統(tǒng),2009,28(10):117120.
[3]陳歡歡,黃劍,王楷,等.基于節(jié)點相似性的WSNs故障檢測方法研究[J].傳感器與微系統(tǒng),2014,33(4):1013.
[4]KRISHNAMACHARI B,IYENGAR S.Distributed faultbayesian algorithms for faulttolerant event region detection in wireless sensor networks[J].Computers IEEE Transactions ,2004,53(3):241250.
[5]孫寅秋.無線傳感器網(wǎng)絡(luò)故障診斷算法設(shè)計[D].西安:西安電子科技大學(xué),2012.
[6]孫凌逸,黃先祥,蔡偉,等.基于神經(jīng)網(wǎng)絡(luò)的無線傳感器網(wǎng)絡(luò)數(shù)據(jù)融合算法[J].傳感技術(shù)學(xué)報,2011,24(1):122127.
[7]鈕永勝,趙新民,孫金瑋.采用基于神經(jīng)網(wǎng)絡(luò)的時間序列預(yù)測器的傳感器故障診斷新方法[J].儀器儀表學(xué)報,1998,19(4):383388.
[8]蒲天銀,饒正嬋.基于神經(jīng)網(wǎng)絡(luò)的無線傳感器網(wǎng)絡(luò)故障診斷方法[J].現(xiàn)代電子技術(shù),2015(23):3436.
[9]張成.基于聚類中值比較的WSNs故障檢測算法[J].傳感器與微系統(tǒng),2014,33(4):135138.
[10]張鵬,馮欣,周建國.無線傳感器網(wǎng)絡(luò)中基于空間關(guān)聯(lián)性的聚類異常檢測算法[J].計算機應(yīng)用研究,2013,30(5):13701372.
[11]李平,李宏,吳敏.WSNs分布式事件區(qū)域容錯算法[J].計算機工程,2009,35(14):142144.
[12]劉藝蕾,尹長川.一種基于時空相關(guān)性的傳感器網(wǎng)絡(luò)節(jié)點故障檢測方法[D].北京:北京郵電大學(xué),2016.
[13]YAO B,CHEN Q.On the temporalspatial correlation based faulttolerant dynamic event region detection scheme in wireless sensor networks[J].Lecture Notes in Computer Science,2007(1):511523.
[14]肖勇,連春雨,朱祥和.基于故障定位集的無線傳感器網(wǎng)絡(luò)故障檢測[J].計算機測量與控制,2010,18(5):971973.
[15]陳斌,楊俊杰.基于DFD算法的無線傳感器網(wǎng)絡(luò)故障診斷系統(tǒng)的設(shè)計[J].上海電力學(xué)院學(xué)報,2014,30(3):269272.
[16]陽文銳,王如松,黃錦樓,等.反距離加權(quán)插值法在污染場地評價中的應(yīng)用[C].中國青年生態(tài)學(xué)工作者學(xué)術(shù)研討會,2006:20132018.
責(zé)任編輯(責(zé)任編輯:何麗)