金華明,郭倩倩,史明泉,赫佳星,崔麗珍
(內(nèi)蒙古科技大學(xué) 信息工程學(xué)院,內(nèi)蒙古 包頭 014010)
煤礦井下環(huán)境惡劣,存在諸多安全隱患,對井下人員及設(shè)備進行實時監(jiān)測、跟蹤對煤礦安全管理、礦難營救等工作具有重大意義??紤]到礦井下的環(huán)境特點,無線傳感器網(wǎng)絡(luò)(Wireless Sensor Network,WSN)體積小、成本低、自組織等特點更適用于井下目標(biāo)跟蹤[1]。近年來雖然WSN目標(biāo)跟蹤問題得到了一定的研究成果,如文獻[2]提出的一種基于最優(yōu)探測的移動代理WSN目標(biāo)跟蹤算法來采集當(dāng)前時刻最優(yōu)探測結(jié)果的節(jié)點數(shù)據(jù)集合;文獻[3]根據(jù)Fisher信息矩陣的思想提出的UKF-F節(jié)點分簇算法等,但是受到了煤礦井下的環(huán)境限制而不能達到預(yù)期的效果。文獻[4]提出了一種能耗均衡跨層WSN路由傳輸協(xié)議(EBUCR),有效降低了網(wǎng)絡(luò)能耗,延長了網(wǎng)絡(luò)生存周期,但該算法僅適用于井下大規(guī)模的物理數(shù)據(jù)檢測與傳輸,用于跟蹤系統(tǒng)仍需進一步的分析與處理。文獻[5]提出了煤礦工作面定位無線傳感器網(wǎng)絡(luò)(PWSN)模型,利用定位目標(biāo)的運動模式進行位置預(yù)測,結(jié)合變距節(jié)點部署方法來進一步提高PWSN的壽命,但該算法僅僅停留在定位層面,對于動態(tài)目標(biāo)跟蹤尚未提出解決辦法。以上算法均側(cè)重于WSN節(jié)點的網(wǎng)絡(luò)部署和選擇策略,而跟蹤過程中其精度主要由測量數(shù)據(jù)不確定性和目標(biāo)運動模式的隨機性兩個方面的因素影響。對于目標(biāo)運動模式的隨機性帶來的挑戰(zhàn)參考文獻[6]采用交互式多模型(interacting multiple model,IMM)濾波跟蹤算法。降低量測數(shù)據(jù)對跟蹤精度造成的影響則采用異常點檢測算法。目前的檢測算法逐漸趨向于智能化,所依靠的檢測指標(biāo)也越來越少,例如RANSAC分割算法[7],雙邊濾波法[8]以及隨機森林算法[9]等,但是以上算法不適用井下巷道目標(biāo)跟蹤產(chǎn)生的觀測值,因為井下的定位結(jié)果沿著狹長的巷道動態(tài)生成也就意味著每產(chǎn)生一個定位結(jié)果,就要進行異常檢測才能保證精度。
本文根據(jù)礦井下的特殊情況制定了分布式分簇的節(jié)點選擇策略以維持目標(biāo)在WSN中的跟蹤,并以此為基礎(chǔ),提出了局部異常因子算法(Local Outlier Factor,LOF)[10]對定位結(jié)果進行實時的檢測,同時結(jié)合IMM算法,提高精度、降低網(wǎng)絡(luò)能耗、延長網(wǎng)絡(luò)生存周期。
在無線傳感器網(wǎng)絡(luò)系統(tǒng)中進行目標(biāo)跟蹤除了要保證跟蹤算法的精度,還要盡量減少無線傳感器網(wǎng)絡(luò)的網(wǎng)絡(luò)能耗,盡可能延長網(wǎng)絡(luò)的生存周期。本文采用分布式的方式對目標(biāo)進行跟蹤,由于煤礦井下巷道狹長,本文設(shè)計了鏈狀均勻分布,井下節(jié)點布置如圖1所示。沿巷道墻壁兩側(cè)等間距布放位置節(jié)點,節(jié)點間距離為l0,節(jié)點感知半徑為Rs,通信半徑為Rc,Rc>Rs>l0。
圖1 井下節(jié)點布置圖
井下傳感器節(jié)點排布方式固定,并且目標(biāo)隨著鏈狀的網(wǎng)絡(luò)運動,因此不宜采用過于復(fù)雜的節(jié)點選擇策略,否則會影響跟蹤的實時性,增加信息冗余度。本文提出了一種適用于井下的WSN分布式分簇算法。
自定義網(wǎng)絡(luò):①節(jié)點沿巷道兩側(cè)等距離布放,間隔為l0;②所有的節(jié)點規(guī)格統(tǒng)一,具有初始能量E0,且每個節(jié)點已知自己的序號i、位置坐標(biāo)(xi,yi)和剩余能量。
分布式分簇目標(biāo)跟蹤算法是在WSN網(wǎng)絡(luò)中隨著目標(biāo)的運動軌跡不斷地產(chǎn)生動態(tài)簇,簇中成員包括一個蔟頭節(jié)點CH和剩余的簇成員節(jié)點CN,簇成員節(jié)點負責(zé)將感知到的目標(biāo)信息,即接收到的目標(biāo)發(fā)射的RSSI發(fā)送給蔟頭節(jié)點,蔟頭負責(zé)將成員節(jié)點發(fā)送過來信息融合并完成對目標(biāo)定位,再用跟蹤算法估計出目標(biāo)的真實位置。分布式分簇目標(biāo)跟蹤流程如圖2所示。
圖2 分布式分簇跟蹤算法流程圖
1)簇的建立:接受到目標(biāo)發(fā)射RSSI的節(jié)點廣播自己的ID、坐標(biāo)、剩余能量,以及接收到的RSSI值??紤]到井下巷道節(jié)點布放的特點,在接收到RSSI最大的前四個節(jié)點中,將剩余能量最大的節(jié)點作為簇頭并廣播消息,剩下的三個節(jié)點加入成為簇成員。
2)簇內(nèi)數(shù)據(jù)處理:蔟頭節(jié)點根據(jù)成員節(jié)點傳來的RSSI轉(zhuǎn)化為距離,再利用最小二乘算法對目標(biāo)進行最初的定位,得到定位結(jié)果也就是觀測值后,運用跟蹤算法對目標(biāo)進行估計。
3)動態(tài)簇的維護:隨著新一輪的采樣周期,檢測到目標(biāo)的簇外節(jié)點通過向蔟頭節(jié)點發(fā)送RSSI申請加入簇,如果該RSSI值大于簇內(nèi)節(jié)點收到的RSSI,則認為目標(biāo)移除當(dāng)前簇,同時按照步驟1)的規(guī)則,建立新的跟蹤簇,新的蔟頭從原來的蔟頭獲取簇內(nèi)信息和目標(biāo)信息;反之,如果目標(biāo)沒有移除當(dāng)前簇,則不更改簇內(nèi)節(jié)點,按照剩余能量最大的原則更改蔟頭以平衡各節(jié)點能量消耗。
WSN目標(biāo)跟蹤要考慮的重要因素之一就是整個網(wǎng)絡(luò)的能量消耗,而傳感器節(jié)點的能量主要是消耗在接收和發(fā)射信號階段。在此建立節(jié)點的能量消耗模型,采用文獻[11]中提到的模型,如圖3所示。
圖3 節(jié)點能耗模型指示圖
其中,發(fā)送節(jié)點發(fā)送數(shù)據(jù)的能量消耗包括兩部分信號發(fā)射電路和信號放大電路的消耗,根據(jù)圖3分別對發(fā)送節(jié)點和接受節(jié)點的能量消耗建模。
ETX(k,d)=ETX-elec(k)+ETX-amp(k,d)=
ERX(k)=ERX-elec(k)=kEelec
(3)
式中,ETX(k,d)為發(fā)射節(jié)點發(fā)送kbit數(shù)據(jù)消耗的總能量;ETX-elec(k)為信號發(fā)射電路發(fā)送kbit數(shù)據(jù)消耗的能量;ETX-amp(k,d)為信號放大電路發(fā)送kbit數(shù)據(jù)消耗的能量;ERX(k)為接收節(jié)點接收kbit數(shù)據(jù)消耗的能量;Eelec為電路發(fā)送和接收1bit數(shù)據(jù)消耗的能量;k是傳送的數(shù)據(jù)包長度;d是發(fā)送節(jié)點與接收節(jié)點之間的距離;εfs和εamp根據(jù)傳輸距離d與閾值d0選擇加入計算的信號放大電路的系數(shù),分別為自由空間擴散無線信道模型和多路徑衰減無線信道模型的參數(shù)。
在井下WSN目標(biāo)跟蹤過程中,定位結(jié)果沿著狹長的巷道動態(tài)生成,每產(chǎn)生一個定位結(jié)果,就要進行異常檢測才能保證精度,本文針對礦井下的特殊WSN目標(biāo)跟蹤情況,采用LOF算法對定位結(jié)果進行實時的檢測,通過選擇參數(shù)k來調(diào)整LOF算法,隨著更新的定位數(shù)據(jù)進行實時檢測,以及更新定位結(jié)果。
2.3.7 病蟲害防治:抓好病蟲害防治是培育優(yōu)質(zhì)苗木的關(guān)健措施,重點在防,及時在治,從苗圃地整地開始,使用辛硫磷之內(nèi)農(nóng)藥撒入土壤中,對蟬類害蟲若蟲孵化初期噴灑48%樂斯本乳油3000倍液防治,甲類害蟲初孵幼蟲期噴灑1.8%愛福丁乳油2000倍液防治,蚧類害蟲初孵若蟲盛期噴灑95%蚧螨靈乳劑400倍液,對菌類防治要結(jié)合剪枝,在扦插苗栽植后用70%甲基托布津700倍液噴灑一遍,防治扦插苗剪口菌類感染;當(dāng)新梢長到10cm左右時保留主干去除其它新梢后用退菌特600倍液噴灑一遍。
LOF算法的思想是通過比較某一個點周圍的平均密度與該點的密度來確定該點相對周圍點的異常程度。定義:
1)d(p,o):點p與點o的距離。
2)dk(p):點p的第k距離,就是除了點p外,距離點p第k遠的點到p點的距離,k=5時,標(biāo)號為5的點距離點p是第5近。
3)Nk(p):點p的第k距離鄰域,指p的第k距離以內(nèi)的點加上第k距離上的點的集合,領(lǐng)域內(nèi)的點數(shù)|Nk(p)|≥k,k=5時,點p的第5鄰域共包括6個點。
4)r-dk(p,o):點o到點p的第k可達距離,指點p第k距離與點p到點o的距離的最大值,即:
r-dk(p,o)=max{dk(p),d(p,o)}
(4)
點o1到點p的第5距離d5(p)大于o1到p的距離d(p,o1),所以r-d5(p,o1)=d5(p);點o2到點p的第5距離d5(p)小于o2到p的距離d(p,o2),所以r-d5(p,o2)=d(p,o2)。
5)lrdk(p):點p的局部可達密度,指點p的第k距離領(lǐng)域點到點p的第k可達距離的平均值的倒數(shù)。即:
6)LOFk(p):點p的離群因子,指點p的第k距離領(lǐng)域內(nèi)的點的局部可達密度與點p的局部可達密度之比的平均值。即:
圖4 LOF算法示意圖
LOF異常數(shù)據(jù)檢測算法應(yīng)用于井下目標(biāo)跟蹤的優(yōu)勢就是可以隨著目標(biāo)在巷道運動中的軌跡,根據(jù)確定好的k值,僅以目標(biāo)當(dāng)前位置的k近鄰區(qū)域為參考,實時地對當(dāng)前定位結(jié)果做出異常檢測。不僅有利于保證跟蹤的實時性,也縮小了近鄰范圍有效減少了計算量,同時減少了鏈狀點區(qū)域?qū)Ξ?dāng)前定位結(jié)果異常檢測造成的誤差影響。
雖然LOF算法應(yīng)用于本文背景具有較大的優(yōu)勢和效果,但是仍存在兩個缺陷,即如果有連續(xù)幾個點緊密排列相繼偏離巷道,那么就有可能把后續(xù)的正常值范圍內(nèi)的定位結(jié)果檢測為異常;在k值確定的前提下,無法檢測產(chǎn)生的第k的定位點以前的定位結(jié)果是否異常。因此針對以上不足提出了一種井下巷道位置節(jié)點輔助LOF算法,井下巷道位置節(jié)點輔助LOF算法如圖5所示。
圖5 井下巷道位置節(jié)點輔助LOF算法示意圖
選取k值為7,按照一般的LOF算法,則當(dāng)目標(biāo)運動到第7個周期時才能剛好檢測第7個定位點的異常,但是如果把樣本點范圍擴大,加入當(dāng)前簇內(nèi)的節(jié)點,并且在開始幾個時刻適當(dāng)?shù)臏p小k的值,異常檢測就可以從初始點開始;此外,由區(qū)域1內(nèi)的節(jié)點可以看出此時的定位點在很有可能因為處于邊緣被檢測為異常,當(dāng)加入簇內(nèi)節(jié)點后,見區(qū)域2,有了簇內(nèi)節(jié)點的約束作用,那么就大大減少了檢測錯誤的概率。
剔除掉異常點之后要找到一個新的觀測值對異常數(shù)據(jù)進行填補,提供一個實際環(huán)境的參照,所以要迅速且盡可能準確,本文采用當(dāng)前跟蹤簇內(nèi)節(jié)點位置的算數(shù)平均值進行填補。
1)輸入交互:將上一時刻所得結(jié)果結(jié)合狀態(tài)轉(zhuǎn)移矩陣進行信息交互得到濾波器輸入值,以提高估計性能。
3)模型概率更新:結(jié)合濾波結(jié)果對k時刻的模型概率進行更新。
4)輸出交互:對各個濾波器輸出結(jié)果進行加權(quán)求和,得到最終的狀態(tài)估計和協(xié)方差。
本文設(shè)計目標(biāo)在“工”字形巷道內(nèi)運動,井下巷道目標(biāo)運動軌跡如圖6所示。巷道寬度為4m。目標(biāo)運動出發(fā)點為(0.46),初始速度為vx=1m/s、vy=0m/s,其加速度跳變過程見表1。
考慮到傳感器節(jié)點的所發(fā)射的無線信號在井下復(fù)雜環(huán)境受到的影響,本文設(shè)置目標(biāo)運動巷道兩側(cè)的傳感器位置節(jié)點間隔為20m,既能保證節(jié)點有效的感知通信,又能避免節(jié)點密度過大不但浪費資源,還有可能造成信息冗余影響跟蹤結(jié)果,除此之外,為保證網(wǎng)絡(luò)的連通度,以防目標(biāo)丟失,在每個拐角均鋪放一個節(jié)點,因此布放的總傳感器節(jié)點為26個,每個傳感器節(jié)點已知自己的序號和位置坐標(biāo)。跟蹤過程中采用2.2節(jié)提出的分布式分簇算法維持跟蹤,改進的LOF算法處理野值點,交互多模算法做目標(biāo)狀態(tài)估計。關(guān)于傳感器的能量模型參數(shù)參考文獻[12]設(shè)置為:跟蹤開始前,每個位置節(jié)點具有相同的初始能量5J,發(fā)送和接受1bit數(shù)據(jù)消耗的能量為50nJ/bit,融合1bit數(shù)據(jù)消耗的能量為5nJ/bit,放大系數(shù)εfs和εamp分別為10pJ/bit、0.0013pJ/bit,控制包長度為200bit,數(shù)據(jù)包長度為2000bit。
圖6 井下巷道目標(biāo)運動軌跡圖
表1 目標(biāo)運動加速度跳變過程
根據(jù)以上實驗分別得到了WSN集中式跟蹤算法與本文分布式分簇算法完成整個相同跟蹤過程后各節(jié)點剩余能量對比如圖7所示;改進后的LOF算法與LOF 算法對定位結(jié)果的異常點檢測對比(均取k=8)如圖8所示;未采用檢測算法與LOF算法和改進LOF算法對定位結(jié)果處理后的跟蹤誤差對比如圖9所示。
圖7 節(jié)點剩余能量對比圖
圖8 野值點檢測結(jié)果圖
圖9 跟蹤位置估計均方誤差對比圖
由圖7可以直觀看到布放的26個位置節(jié)點的剩余能量,在集中式算法中第14個節(jié)點為匯聚節(jié)點,匯聚節(jié)點出現(xiàn)巨大能量損耗,剩余能量遠小于其他位置節(jié)點,隨著節(jié)點的剩余能量不斷減少使得整個網(wǎng)絡(luò)陷入癱瘓,而本文所采用的分簇算法中每個位置節(jié)點均有可能被選為簇頭節(jié)點,雖然節(jié)點的剩余能量較集中式算法少,但節(jié)點損耗的能量較平均,這在整個網(wǎng)絡(luò)的生命周期內(nèi)使每個節(jié)點利用最大化。圖8給出了整個跟蹤過程的井下位置節(jié)點、目標(biāo)軌跡點、定位點以及野值點檢測結(jié)果,結(jié)合圖例可以看出距巷道很遠的定位點幾乎同時能被兩種算法檢測出來,但是目標(biāo)出發(fā)點周圍的兩個野值點由于k值的限定LOF算法無法檢測,一些相對遠離巷道的野值點LOF算法也沒有檢測到,因此改進后的LOF算法檢測野值點的效果更佳,并且由圖9可以看到經(jīng)節(jié)點輔助LOF算法處理后,跟蹤效果相對初始LOF處理后和未經(jīng)處理的跟蹤誤差要更小。
本文利用分布式分簇算法維持在井下特殊巷道環(huán)境下WSN的目標(biāo)跟蹤,并利用動態(tài)簇節(jié)點輔助LOF異常點檢測算法提高定位精度,最后結(jié)合IMM濾波算法實現(xiàn)最終的目標(biāo)狀態(tài)估計,實現(xiàn)了對目標(biāo)的穩(wěn)健跟蹤,有效節(jié)約、平衡了網(wǎng)絡(luò)能耗,提高了跟蹤精度。