基于MCL算法的無線傳感網(wǎng)絡(luò)節(jié)點(diǎn)定位技術(shù)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
引言
無線傳感器網(wǎng)絡(luò)的應(yīng)用中,位置信息是節(jié)點(diǎn)采集數(shù)據(jù)時(shí)不可缺少的部分,沒有位置信息的監(jiān)測信息通常是毫無意義的。確定事件發(fā)生的位置或采集數(shù)據(jù)的節(jié)點(diǎn)位置是無線傳感器網(wǎng)絡(luò)最基本的功能之一。為了能夠提供有效的位置信息,隨機(jī)布置的傳感器節(jié)點(diǎn)在網(wǎng)絡(luò)部署完成后必須能夠確定自身所在的位置。一般的定位算法分類為基于距離定位算法和距離無關(guān)定位算法。基于距離的定位能夠?qū)崿F(xiàn)節(jié)點(diǎn)的精確定位,但往往對(duì)節(jié)點(diǎn)的硬件要求較高。出于硬件成本、能耗等方面的考慮,使用距離無關(guān)(Range-free)的節(jié)點(diǎn)定位技術(shù)可不需要測量節(jié)點(diǎn)之間的絕對(duì)距離或者方位,降低了對(duì)節(jié)點(diǎn)的硬件要求,但定位誤差相應(yīng)有所增加。
無線傳感器網(wǎng)絡(luò)的節(jié)點(diǎn)定位策略通常使用少量位置已知的信標(biāo)節(jié)點(diǎn).其它位置未知的普通節(jié)點(diǎn)從它們接收到的信息估計(jì)自己所處的位置?,F(xiàn)有節(jié)點(diǎn)定位方法大多采用上述策略,典型的Range-free定位算法主要包括:質(zhì)心定位、A-morphous、SPA(self-positioning algorithm)、凸規(guī)劃、APS(adhoc positioning system、APIT等。然而這些方法都沒有考慮節(jié)點(diǎn)(包括普通節(jié)點(diǎn)和信標(biāo)節(jié)點(diǎn))具有位置移動(dòng)性的網(wǎng)絡(luò)情形。節(jié)點(diǎn)的移動(dòng)性會(huì)導(dǎo)致定位過程變得更加困難而且復(fù)雜。本文使用Monte Carlo定位(MCL)算法來解決節(jié)點(diǎn)具有移動(dòng)性的無線傳感器網(wǎng)絡(luò)的節(jié)點(diǎn)定位問題,并針對(duì)MCL算法的一些應(yīng)用限制進(jìn)行了改進(jìn)。
l MCL定位算法
MCL算法的核心思想是利用一系列加權(quán)采樣值表示可能位置的后驗(yàn)概率分布,目的在于確定節(jié)點(diǎn)所在可能位置的后驗(yàn)概率分布。算法每一步都包括位置預(yù)測和位置更新兩個(gè)階段。位置預(yù)測階段是利用m個(gè)加權(quán)采樣值對(duì)后驗(yàn)概率分布進(jìn)行描述的過程,位置更新階段則是通過重要性采樣操作對(duì)其進(jìn)行及時(shí)不斷更新,采樣值的權(quán)重值從O和l中取值。
MCL,定位算法的基本步驟:
1.1 位置估計(jì)
無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的移動(dòng)定位問題可以在如下狀態(tài)空間內(nèi)描述。以£表示離散時(shí)間,lt表示f時(shí)刻節(jié)點(diǎn)的位置分布,Dt表示節(jié)點(diǎn)在t-1t時(shí)刻到t時(shí)刻之間接收到的來自信標(biāo)節(jié)點(diǎn)的觀測值。轉(zhuǎn)換方程p(lt|lt-1)表示基于節(jié)點(diǎn)先前位置對(duì)其當(dāng)前所在位置的估計(jì)。觀測方程p(lt,Ot,)表示在給定觀測值的情況下節(jié)點(diǎn)位于位置lt的概率。算法的目標(biāo)是對(duì)節(jié)點(diǎn)位置的濾波分布p(lt|O0,O1,…,Ot)隨時(shí)間進(jìn)行反復(fù)估計(jì)。用一組采樣值Lt(N個(gè))表示節(jié)點(diǎn)的位置分布lt,而且每一時(shí)間段內(nèi)算法要對(duì)采樣序列進(jìn)行反復(fù)計(jì)算,由于Lt-1是對(duì)先前所有觀測值的一個(gè)集中反映,因此僅使用Lt-1和Ot就可以計(jì)算出lt。
位置估計(jì)算法的實(shí)現(xiàn)流程:
(1)初始化。節(jié)點(diǎn)最初不具備任何關(guān)于其自身所在N個(gè)位置的先驗(yàn)知識(shí),需要對(duì)其進(jìn)行初始化操作(N表示算法執(zhí)行過程中所要維持的采樣數(shù))。
L0=[節(jié)點(diǎn)部署區(qū)域內(nèi)隨機(jī)選擇的N個(gè)可能位置]
(2)循環(huán)計(jì)算。根據(jù)Lt-1、上一時(shí)間段內(nèi)節(jié)點(diǎn)的可能位置序列以及新的觀測值Ot計(jì)算出節(jié)點(diǎn)新的可能位置Lt。
預(yù)測:
在算法起始階段節(jié)點(diǎn)對(duì)其所在的位置沒有任何先驗(yàn)知識(shí)。因此可由質(zhì)心算法估計(jì)初始位置。質(zhì)心算法的核心思想是:普通節(jié)點(diǎn)以所有在其通信范圍內(nèi)的信標(biāo)節(jié)點(diǎn)的幾何質(zhì)心作為自己的估計(jì)位置。其實(shí)現(xiàn)過程非常簡單:信標(biāo)節(jié)點(diǎn)向鄰居節(jié)點(diǎn)廣播一個(gè)信標(biāo)信號(hào),信號(hào)中包含有信標(biāo)節(jié)點(diǎn)自身的ID和位置信息。當(dāng)位置未知的普通節(jié)點(diǎn)接收到來自信標(biāo)節(jié)點(diǎn)的信標(biāo)信號(hào)數(shù)量超過某一個(gè)預(yù)設(shè)的門限值后,該節(jié)點(diǎn)認(rèn)為與此信標(biāo)節(jié)點(diǎn)連通,并將自身位置確定為所有與之連通的信標(biāo)節(jié)點(diǎn)所組成的多邊形的質(zhì)心。
初始位置確定后的每一時(shí)間段內(nèi).位置序列都會(huì)根據(jù)節(jié)點(diǎn)的運(yùn)動(dòng)和新的觀測信息進(jìn)行更新。節(jié)點(diǎn)位置的估計(jì)可以通過計(jì)算集合L內(nèi)節(jié)點(diǎn)的所有可能位置的平均值獲得。
1.2 位置預(yù)測
在MCL算法位置預(yù)測階段,節(jié)點(diǎn)從前一階段計(jì)算出的一組可能位置Lt-1開始,對(duì)每個(gè)采樣值應(yīng)用節(jié)點(diǎn)移動(dòng)模型從而獲得一組新的采樣值Lt。假設(shè)節(jié)點(diǎn)的移動(dòng)速度和方向未知,而只知道其速度值小于Vmax那么,如果lit-1是節(jié)點(diǎn)的一個(gè)可能位置,那么節(jié)點(diǎn)所在的當(dāng)前可能位置則位于以lit-1為圓心、半徑為Vmax的圓形區(qū)域內(nèi)。如果用d(l1,l2)表示兩點(diǎn)l1和l2之間的歐幾里德幾何距離.而且節(jié)點(diǎn)的移動(dòng)速度在區(qū)間[0,Vmax]上服從均勻分布,那么節(jié)點(diǎn)基于先前位置的當(dāng)前位置估計(jì)的概率分布可以通過以下均勻分布的形式給出。
因此,在預(yù)測階段計(jì)算出的節(jié)點(diǎn)可能位置序列R就是以點(diǎn)集Lt-1中的任意一點(diǎn)為圓心且半徑為Vmax的圓形區(qū)域。
1.3 位置濾波
在濾波階段,節(jié)點(diǎn)需要根據(jù)所獲得的新觀測值濾除不可能的位置信息。為了便于描述和分析,假設(shè)在t時(shí)刻每個(gè)位于信標(biāo)節(jié)點(diǎn)無線射程范圍內(nèi)的節(jié)點(diǎn)都可以偵聽到來自信標(biāo)節(jié)點(diǎn)的位置信息廣播。在實(shí)際的網(wǎng)絡(luò)部署情況下,需要考慮網(wǎng)絡(luò)沖突并解決消息丟失的問題。
如圖l,節(jié)點(diǎn)在t0時(shí)刻由位置l0開始移動(dòng),并在t1時(shí)刻到達(dá)位置l1,節(jié)點(diǎn)離開區(qū)域I并到達(dá)區(qū)域Ⅱ,但始終在區(qū)域Ⅲ內(nèi)。到達(dá)節(jié)點(diǎn)和離開節(jié)點(diǎn)都為節(jié)點(diǎn)的位置估計(jì)提供信息,節(jié)點(diǎn)知道在t0時(shí)刻位于以如為圓心且半徑為r的圓形區(qū)域內(nèi)的信標(biāo)節(jié)點(diǎn),在t1時(shí)刻并不在l1為圓心且半徑為r的圓形區(qū)域內(nèi)。
圖2描述了節(jié)點(diǎn)的位置濾波條件。圖中。S表示節(jié)點(diǎn)N能偵聽到的所有信標(biāo)節(jié)點(diǎn)分組。T表示節(jié)點(diǎn)N的鄰居節(jié)點(diǎn)可以偵聽到而節(jié)點(diǎn)N本身無法偵聽到的全部信標(biāo)節(jié)點(diǎn)。因此,節(jié)點(diǎn)位置l的濾波條件可以由式(2)表示。
如果濾波條件為假,那么節(jié)點(diǎn)位置的概率分布p(lt|Ot)值為零,否則p(lt Ot)將符合均勻分布,這樣.就可以從節(jié)點(diǎn)的所有可能位置集合中去除那些與觀測值不一致的位置。經(jīng)濾波后,節(jié)點(diǎn)剩余的可能位置也許會(huì)少于N個(gè)。預(yù)測過程和濾波過程將不斷重復(fù)進(jìn)行,并結(jié)合已經(jīng)發(fā)現(xiàn)的節(jié)點(diǎn)可能位置,直至獲得節(jié)點(diǎn)的至少N個(gè)可能位置。
1.4 重要性采樣
算法的最終目標(biāo)是估計(jì)節(jié)點(diǎn)可能位置的后驗(yàn)概率分布p(lt|O0,O1,…Ot)。首先,通過一個(gè)標(biāo)準(zhǔn)化重要性采樣函數(shù)π獲得一系列相互獨(dú)立的節(jié)點(diǎn)位置采樣值;然后,對(duì)每個(gè)采樣值的權(quán)重值進(jìn)行調(diào)整并且使用這些權(quán)重值對(duì)節(jié)點(diǎn)所在可能位置的后驗(yàn)概率分布作出估計(jì)。算法采用了下列遞歸式重要性函數(shù)。
式(3)表示節(jié)點(diǎn)的位置預(yù)測,節(jié)點(diǎn)借助先前所在的可能位置預(yù)測其當(dāng)前的可能位置。式(4)表示節(jié)點(diǎn)的位置更新,節(jié)點(diǎn)根據(jù)獲得的觀測值對(duì)新的采樣值不斷進(jìn)行權(quán)重值更新與調(diào)整。然后。通過式(5)對(duì)權(quán)重值Wit;進(jìn)行歸一化處理得到Wit用權(quán)重值序列(lit,wit)對(duì)節(jié)點(diǎn)位置的后驗(yàn)概率分布作出估計(jì)。通過式(3)和式(4)的反復(fù)計(jì)算,很容易地確定概率值p(lk|lk-1)和p(l1|Ot)的大小。
2 MCL算法優(yōu)化
傳感器節(jié)點(diǎn)在計(jì)算資源與存儲(chǔ)資源等方面一般比較緊缺,可通過多邊形內(nèi)點(diǎn)測試法首先近似確定節(jié)點(diǎn)的運(yùn)行方向,該方法完全基于節(jié)點(diǎn)間的連通性,僅需要信標(biāo)節(jié)點(diǎn)的跳數(shù)位置廣播信息,因此對(duì)節(jié)點(diǎn)沒有額外的功耗和硬件需求。圖3為多邊形內(nèi)點(diǎn)測試法的一種情況,如圖3(a)假設(shè)M獲得與A之間的跳數(shù)為4,則節(jié)點(diǎn)1與A之間的跳數(shù)為3,節(jié)點(diǎn)2與A之間跳數(shù)為5;M獲得與B之間的跳數(shù)為3,則節(jié)點(diǎn)2與B之間的跳數(shù)為2,節(jié)點(diǎn)1與B之間的跳數(shù)為4。當(dāng)M移動(dòng)到節(jié)點(diǎn)1位置,則可以得出節(jié)點(diǎn)M靠近了節(jié)點(diǎn)A遠(yuǎn)離了節(jié)點(diǎn)B,可以得出節(jié)點(diǎn)M不能同時(shí)靠近或遠(yuǎn)離三個(gè)頂點(diǎn),必定在三角形內(nèi)部,當(dāng)節(jié)點(diǎn)M同時(shí)靠近或遠(yuǎn)離三個(gè)頂點(diǎn).必定在三角形外部。對(duì)圖3(b)當(dāng)節(jié)點(diǎn)M從三角形ABC內(nèi)離開進(jìn)人三角形ABD中時(shí),即可得到節(jié)點(diǎn)的大致運(yùn)行方向。則式(2)的濾波條件可簡化為
此處的T'為節(jié)點(diǎn)N在區(qū)域ABD內(nèi)的鄰居節(jié)點(diǎn)可以偵聽到而節(jié)點(diǎn)N本身無法偵聽到的全部信標(biāo)節(jié)點(diǎn)。
對(duì)節(jié)點(diǎn)運(yùn)行方向的估計(jì)可大大減少M(fèi)CL算法的位置預(yù)測和位置濾波階段的計(jì)算量,節(jié)省了節(jié)點(diǎn)的能耗。并且更加容易濾除與觀測值不一致的位置.提高定位精度。
3 算法性能評(píng)價(jià)
在一定的通訊開銷和硬件配置條件下,評(píng)價(jià)一種節(jié)點(diǎn)定位方法優(yōu)劣的重要標(biāo)準(zhǔn)是位置估計(jì)精度的高低。通過仿真對(duì)MCL.定位算法、改進(jìn)后的MCL,定位算法和質(zhì)心定位(Centroid)算法進(jìn)行了比較。
仿真實(shí)驗(yàn)過程中,無線傳感器網(wǎng)絡(luò)、節(jié)點(diǎn)以及算法的相關(guān)參數(shù)都是不斷變化的。節(jié)點(diǎn)隨機(jī)部署在一個(gè)500 m×500 m的矩形區(qū)域內(nèi)。而且假定信標(biāo)節(jié)點(diǎn)與普通節(jié)點(diǎn)的無線傳輸距離為恒定值r(r=50 m),節(jié)點(diǎn)的位置信息廣播之間的時(shí)間間隔為固定值tu并且以節(jié)點(diǎn)在每一時(shí)間段tu內(nèi)移動(dòng)的距離r表示節(jié)點(diǎn)移動(dòng)速度。
由圖4(a)可以看出,MCL定位算法的精度在初始階段會(huì)隨著時(shí)間變化提升很快并進(jìn)入穩(wěn)定階段,在穩(wěn)定階段,節(jié)點(diǎn)新的觀測值(位置濾波器)與由于節(jié)點(diǎn)移動(dòng)帶來的不確定性對(duì)定位精度的影響達(dá)到某種平衡,位置估計(jì)誤差將最終穩(wěn)定在一個(gè)最小值上下波動(dòng)??梢钥闯鯩CL算法的定位精度與質(zhì)心定位算法相比有著相當(dāng)大的優(yōu)勢。
圖4(b)中可以看出改進(jìn)后的MCL定位算法能夠更快的達(dá)到穩(wěn)定,并且定位精度也有了少許提升。
4 結(jié)語
本文提出了將MCL算法應(yīng)用于無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)定位中。在節(jié)點(diǎn)隨機(jī)運(yùn)動(dòng)的情況下,不需要配備額外的硬件設(shè)施,就可以獲得較高的定位精度,解決了具有移動(dòng)性的無線傳感器網(wǎng)絡(luò)中的節(jié)點(diǎn)定位問題。并在算法初始階段結(jié)合質(zhì)心算法進(jìn)行定位.通過估計(jì)節(jié)點(diǎn)方向來簡化算法,優(yōu)化了MCL算法的定位性能。