《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 模擬設(shè)計(jì) > 設(shè)計(jì)應(yīng)用 > 基于RSSI的無(wú)線傳感器網(wǎng)絡(luò)距離修正定位算法
基于RSSI的無(wú)線傳感器網(wǎng)絡(luò)距離修正定位算法
摘要: 節(jié)點(diǎn)自身定位是無(wú)線傳感器網(wǎng)絡(luò)目標(biāo)定位的基礎(chǔ)。無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)定位算法包括基于距離和距離無(wú)關(guān)兩類。其中基于RSSI 的定位算法由于實(shí)現(xiàn)簡(jiǎn)單而被廣泛使用,但RSSI 方法的測(cè)距誤差較大,從而影響了節(jié)點(diǎn)定位精度。提出了一種基于RSSI 的無(wú)線傳感器網(wǎng)絡(luò)距離修正定位算法。該算法通過(guò)RSSI 測(cè)距,計(jì)算近似質(zhì)心的位置,以此為參考點(diǎn)進(jìn)行距離修正,然后確定節(jié)點(diǎn)的位置。仿真結(jié)果表明該算法可以提高節(jié)點(diǎn)定位精度。
Abstract:
Key words :

  0 引言

  對(duì)于大多數(shù)無(wú)線傳感器網(wǎng)絡(luò)應(yīng)用來(lái)說(shuō),沒(méi)有位置信息的數(shù)據(jù)是毫無(wú)意義的。無(wú)線傳感器網(wǎng)絡(luò)目標(biāo)定位跟蹤的前提是節(jié)點(diǎn)自身定位。無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)定位算法可分為基于距離和距離無(wú)關(guān)兩大類,基于距離的定位算法主要有RSSI、TOA、TDOA、AOA 等,距離無(wú)關(guān)的定位算法主要有質(zhì)心算法、DV-hop 算法、凸規(guī)劃、MDS-MAP 等。

  RSSI 測(cè)距無(wú)需額外硬件,實(shí)現(xiàn)簡(jiǎn)單,具備低功耗、低成本等特點(diǎn),應(yīng)用十分廣泛。RSSI 的技術(shù)原理是已知錨節(jié)點(diǎn)發(fā)射信號(hào)的強(qiáng)度,根據(jù)未知節(jié)點(diǎn)接收到的信號(hào)強(qiáng)度,利用信號(hào)傳播模型計(jì)算兩點(diǎn)的距離。由于存在多徑、干擾、遮擋等因素,RSSI 測(cè)距的精度較低,必須采用各種算法來(lái)減小測(cè)距誤差對(duì)定位精度的影響,因而提出了一種基于RSSI 測(cè)距的無(wú)線傳感器網(wǎng)絡(luò)距離修正定位算法,可有效減小RSSI 測(cè)距誤差對(duì)節(jié)點(diǎn)定位精度的影響。

  1 算法模型

  1.1 無(wú)線信號(hào)傳播模型

  RSSI 測(cè)距使用的無(wú)線信號(hào)傳播模型包括經(jīng)驗(yàn)?zāi)P秃屠碚撃P?,理論模型是在大量?jīng)驗(yàn)?zāi)P蛿?shù)據(jù)的基礎(chǔ)上總結(jié)提煉而成的。

  對(duì)于經(jīng)驗(yàn)?zāi)P?,首先要按照一定的密度選取參考點(diǎn),建立信號(hào)強(qiáng)度與到某個(gè)信標(biāo)點(diǎn)距離的映射矩陣,在實(shí)際定位時(shí)根據(jù)測(cè)得的信號(hào)強(qiáng)度與映射矩陣進(jìn)行對(duì)比,并采用數(shù)學(xué)擬合方式確定待測(cè)節(jié)點(diǎn)到錨節(jié)點(diǎn)的距離。

  無(wú)線信號(hào)傳播理論模型主要有自由空間傳播模型、對(duì)數(shù)距離路徑損耗模型、對(duì)數(shù)-常態(tài)分布模型等,其中對(duì)數(shù)-常態(tài)分布模型的使用最為廣泛。

  對(duì)數(shù)-常態(tài)分布模型如式(1)所示:


 

  其中n 是路徑損耗指數(shù),表明路徑損耗隨距離增長(zhǎng)的速率,范圍在2~6 之間。d0 為近地參考距離,由測(cè)試決定。式(1)能夠預(yù)測(cè)出當(dāng)距離為d 時(shí)接收到的平均能量。由于相同距離d 的情況下,不同位置的周圍環(huán)境差距非常大因而引入了Xσ,Xσ 是一個(gè)平均值為0 的高斯分布變量。

  為了更好地描述距離修正定位算法,這里提出兩個(gè)合理的假設(shè)條件:

 ?、儆捎诟鞣N障礙物的影響,絕大多數(shù)實(shí)際情況中,式(1)預(yù)測(cè)出的PL(d)[dB]比實(shí)際信號(hào)能量偏大;②當(dāng)距離d 增大時(shí),PL(d)[dB]與實(shí)際損耗能量的相對(duì)偏差也會(huì)增大。

  1.2 確定相交區(qū)域質(zhì)心的數(shù)學(xué)模型

  已知三個(gè)節(jié)點(diǎn)A、B、C 的坐標(biāo)為(xa, ya)、(xb, yb)和(xc,yc),節(jié)點(diǎn)O到他們的距離為ra、rb 和rc,假設(shè)節(jié)點(diǎn)O的坐標(biāo)(xo, yo),則(xo, yo)的數(shù)值可通過(guò)式(2)得出,也就是說(shuō)以A、B 和C 三點(diǎn)為圓心,以ra、rb 和rc 為半徑作圓,則三圓將相交與點(diǎn)O,如圖1(a)所示。


三圓相交情況
 

圖1 三圓相交情況。

 

  但在實(shí)際情況中,由于RSSI 測(cè)距存在誤差,并且由于實(shí)際的路徑損耗比理論模型的數(shù)值偏大,也就是說(shuō)測(cè)量出來(lái)的未知點(diǎn)到錨節(jié)點(diǎn)的距離d 總是大于實(shí)際距離r。以A、B和C 三點(diǎn)為圓心,以da1、db1 和dc1 為半徑作圓,三圓將不再相交于點(diǎn)O,而是存在一個(gè)相交區(qū)域,如圖1(b)所示。

  三圓相交區(qū)域的邊界有三個(gè)交點(diǎn),三點(diǎn)質(zhì)心為點(diǎn)D。其中點(diǎn)D 的坐標(biāo)可以通過(guò)式(3)求解。


 

  但是二次方程,求解過(guò)程計(jì)算量較大,因而文中采用如圖1(b)所示的點(diǎn)D1 的坐標(biāo)近似質(zhì)心D 的坐標(biāo)。三圓兩兩相交,則三條交線將相交于點(diǎn)D1。將式(2)中的方程式兩兩相減,則分別得到每條交線的直線方程,D1 的坐標(biāo)則可以通過(guò)這些直線方程求解,如式(4)。


 

  1.3 距離修正

  在某些文章中,以D1 的坐標(biāo)作為點(diǎn)O 的近似值,其準(zhǔn)確度雖然比三邊定位等方法要高,但是還是可能存在較大的誤差,尤其是當(dāng)da1、db1、dc1 與ra、rb 和rc 的相對(duì)誤差各不相同時(shí)尤其明顯,因而需要對(duì)RSSI 方法測(cè)出的距離da1、db1和dc1 進(jìn)行修正,然后再重復(fù)地求出新的三線交點(diǎn)D2 的坐標(biāo),則可以用點(diǎn)D2 的坐標(biāo)作為點(diǎn)O 的近似坐標(biāo)。

  設(shè)點(diǎn)A、B 和C 到D1 的距離la1、la2 和la3,則總體修正系數(shù)如式(5)所示。


 

  根據(jù)1.1 節(jié)中假設(shè)②,距離越遠(yuǎn)測(cè)距相對(duì)誤差越大,則其修正程度越大,則da1 的修正系統(tǒng)如式(6)所示,db1 和dc的修正系數(shù)類似。


 

  修正后的距離da2 通過(guò)式(7)得出,db2 和dc2 類似。


 

  2 算法流程

  算法流程如下:

  ①各錨節(jié)點(diǎn)以相同功率周期性地向周圍廣播定位信息,信息中包括節(jié)點(diǎn)ID 和坐標(biāo)。普通節(jié)點(diǎn)收到定位信息后,計(jì)算同一錨節(jié)點(diǎn)的RSSI 平均值;

 ?、诋?dāng)普通節(jié)點(diǎn)收集到一定數(shù)量的錨節(jié)點(diǎn)信息時(shí),不再接收新信息。各普通節(jié)點(diǎn)根據(jù)RSSI 從強(qiáng)到弱對(duì)錨節(jié)點(diǎn)排序,由式(1)求出節(jié)點(diǎn)到錨節(jié)點(diǎn)的距離;

 

  ③選取距離最近的3 個(gè)錨節(jié)點(diǎn);

 ?、芡ㄟ^(guò)式(4)計(jì)算三線交點(diǎn)D1 坐標(biāo);

 ?、莘謩e計(jì)算3 個(gè)錨節(jié)點(diǎn)與交點(diǎn)的距離;

 ?、尥ㄟ^(guò)式(5)計(jì)算總體修正系數(shù);

 ?、咄ㄟ^(guò)式(6)分別計(jì)算各自的修正系數(shù),然后通過(guò)式(7)計(jì)算修正后的距離;

 ?、嘣俅瓮ㄟ^(guò)式(4)計(jì)算修正后的三線交點(diǎn)D2 的坐標(biāo),D2的坐標(biāo)即為點(diǎn)O 的近似值。

  3 仿真分析

  用MATLAB 進(jìn)行算法仿真,基本初始條件是無(wú)線傳感器網(wǎng)絡(luò)位于100 m×100 m 的區(qū)域內(nèi),該區(qū)域左下角為(0,0),右上角為(100,100)。區(qū)域內(nèi)均勻部署4、9、16、25個(gè)錨節(jié)點(diǎn),其中部署16 個(gè)錨節(jié)點(diǎn)的位置如表1 所示。

  未知節(jié)點(diǎn)隨機(jī)分布在區(qū)域內(nèi),路徑損耗系數(shù)設(shè)為2.4,每次仿真實(shí)驗(yàn)進(jìn)行500 次,仿真結(jié)果取500 次的平均值,各次仿真實(shí)驗(yàn)結(jié)果如表2 所示。

表1 16 個(gè)錨節(jié)點(diǎn)位置坐標(biāo)

16 個(gè)錨節(jié)點(diǎn)位置坐標(biāo)
 

表2 仿真結(jié)果

仿真結(jié)果
 

  從仿真結(jié)果可以看出,當(dāng)錨節(jié)點(diǎn)數(shù)目較少時(shí),增加錨節(jié)點(diǎn)數(shù)量可以顯著提高定位精度。路徑損耗系統(tǒng)對(duì)定位精度也有影響,路徑損耗系統(tǒng)越大,定位精度越高。從表2 可以看出,距離修正次數(shù)增多對(duì)定位精度沒(méi)有顯著的影響,也就是說(shuō)一般情況下只需要進(jìn)行一次距離修正即可,采用距離修正與不采用距離修正相比,定位精度明顯提高。

  4 結(jié)語(yǔ)

  無(wú)線傳感器網(wǎng)絡(luò)基于RSSI 測(cè)距的定位算法由于實(shí)現(xiàn)簡(jiǎn)單,應(yīng)用十分廣泛。但由于RSSI 測(cè)距的精度不高,降低了節(jié)點(diǎn)定位精度?;赗SSI 的無(wú)線傳感器網(wǎng)絡(luò)距離修正定位算法利用RSSI測(cè)距,通過(guò)確定相交區(qū)域近似質(zhì)心,以此為參考點(diǎn)對(duì)距離進(jìn)行修正,然后確定未知節(jié)點(diǎn)位置。仿真結(jié)果表明,該算法對(duì)測(cè)距誤差具有較高的容忍程度,并且具備很高的定位精度。如圖2 所示,三圓相交還存在無(wú)3 個(gè)交點(diǎn)的情況,下一步工作將詳細(xì)研究圖2所示各種情況對(duì)該算法的影響,從而對(duì)算法進(jìn)行改進(jìn)完善。

三圓相交區(qū)域無(wú)3 個(gè)交點(diǎn)的情況
 

圖2 三圓相交區(qū)域無(wú)3 個(gè)交點(diǎn)的情況


 

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。