摘要:節(jié)點(diǎn)自身定位是無線傳感器網(wǎng)絡(luò)目標(biāo)定位的基礎(chǔ)。無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)定位算法包括基于距離和距離無關(guān)兩類。其中基于RSSI的定位算法由于實(shí)現(xiàn)簡單而被廣泛使用,但RSSI方法的測距誤差較大,從而影響了節(jié)點(diǎn)定位精度。提出了一種基于RSSI的無線傳感器網(wǎng)絡(luò)距離修正定位算法。該算法通過RSSI測距,計(jì)算近似質(zhì)心的位置,以此為參考點(diǎn)進(jìn)行距離修正,然后確定節(jié)點(diǎn)的位置。仿真結(jié)果表明該算法可以提高節(jié)點(diǎn)定位精度。
引言
對(duì)于大多數(shù)無線傳感器網(wǎng)絡(luò)應(yīng)用來說,沒有位置信息的數(shù)據(jù)是毫無意義的。無線傳感器網(wǎng)絡(luò)目標(biāo)定位跟蹤的前提是節(jié)點(diǎn)自身定位。無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)定位算法可分為基于距離和距離無關(guān)兩大類,基于距離的定位算法主要有RSSI、TOA、TDOA、AOA等,距離無關(guān)的定位算法主要有質(zhì)心算法、DV-hop算法、凸規(guī)劃、MDS-MAP等。
RSSI測距無需額外硬件,實(shí)現(xià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測距的精度較低,必須采用各種算法來減小測距誤差對(duì)定位精度的影響,因而提出了一種基于RSSI測距的無線傳感器網(wǎng)絡(luò)距離修正定位算法,可有效減小RSSI測距誤差對(duì)節(jié)點(diǎn)定位精度的影響。
1、算法模型
1.1無線信號(hào)傳播模型
RSSI測距使用的無線信號(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ù)測得的信號(hào)強(qiáng)度與映射矩陣進(jìn)行對(duì)比,并采用數(shù)學(xué)擬合方式確定待測節(jié)點(diǎn)到錨節(jié)點(diǎn)的距離。
無線信號(hào)傳播理論模型主要有自由空間傳播模型、對(duì)數(shù)距離路徑損耗模型、對(duì)數(shù)-常態(tài)分布模型等,其中對(duì)數(shù)-常態(tài)分布模型的使用。
對(duì)數(shù)-常態(tài)分布模型如式(1)所示:
其中n是路徑損耗指數(shù),表明路徑損耗隨距離增長的速率,范圍在2~6之間。d0為近地參考距離,由測試決定。式(1)能夠預(yù)測出當(dāng)距離為d時(shí)接收到的平均能量。由于相同距離d的情況下,不同位置的周圍環(huán)境差距非常大因而引入了Xσ,Xσ是一個(gè)平均值為0的高斯分布變量。
為了更好地描述距離修正定位算法,這里提出兩個(gè)合理的假設(shè)條件:
①由于各種障礙物的影響,絕大多數(shù)實(shí)際情況中,式(1)預(yù)測出的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ù)值可通過式(2)得出,也就是說以A、B和C三點(diǎn)為圓心,以ra、rb和rc為半徑作圓,則三圓將相交與點(diǎn)O,如圖1(a)所示。
圖1三圓相交情況。
但在實(shí)際情況中,由于RSSI測距存在誤差,并且由于實(shí)際的路徑損耗比理論模型的數(shù)值偏大,也就是說測量出來的未知點(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)可以通過式(3)求解。
但是二次方程,求解過程計(jì)算量較大,因而文中采用如圖1(b)所示的點(diǎn)D1的坐標(biāo)近似質(zhì)心D的坐標(biāo)。三圓兩兩相交,則三條交線將相交于點(diǎn)D1。將式(2)中的方程式兩兩相減,則分別得到每條交線的直線方程,D1的坐標(biāo)則可以通過這些直線方程求解,如式(4)。
1.3距離修正
在某些文章中,以D1的坐標(biāo)作為點(diǎn)O的近似值,其準(zhǔn)確度雖然比三邊定位等方法要高,但是還是可能存在較大的誤差,尤其是當(dāng)da1、db1、dc1與ra、rb和rc的相對(duì)誤差各不相同時(shí)尤其明顯,因而需要對(duì)RSSI方法測出的距離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)測距相對(duì)誤差越大,則其修正程度越大,則da1的修正系統(tǒng)如式(6)所示,db1和dc的修正系數(shù)類似。
修正后的距離da2通過式(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)的距離;
?、圻x取距離zui近的3個(gè)錨節(jié)點(diǎn);
?、芡ㄟ^式(4)計(jì)算三線交點(diǎn)D1坐標(biāo);
?、莘謩e計(jì)算3個(gè)錨節(jié)點(diǎn)與交點(diǎn)的距離;
?、尥ㄟ^式(5)計(jì)算總體修正系數(shù);
?、咄ㄟ^式(6)分別計(jì)算各自的修正系數(shù),然后通過式(7)計(jì)算修正后的距離;
?、嘣俅瓮ㄟ^式(4)計(jì)算修正后的三線交點(diǎn)D2的坐標(biāo),D2的坐標(biāo)即為點(diǎn)O的近似值。
3、仿真分析
用MATLAB進(jìn)行算法仿真,基本初始條件是無線傳感器網(wǎng)絡(luò)位于100m×100m的區(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所示。
表116個(gè)錨節(jié)點(diǎn)位置坐標(biāo)
表2仿真結(jié)果
從仿真結(jié)果可以看出,當(dāng)錨節(jié)點(diǎn)數(shù)目較少時(shí),增加錨節(jié)點(diǎn)數(shù)量可以顯著提高定位精度。路徑損耗系統(tǒng)對(duì)定位精度也有影響,路徑損耗系統(tǒng)越大,定位精度越高。從表2可以看出,距離修正次數(shù)增多對(duì)定位精度沒有顯著的影響,也就是說一般情況下只需要進(jìn)行一次距離修正即可,采用距離修正與不采用距離修正相比,定位精度明顯提高。
4、結(jié)語
無線傳感器網(wǎng)絡(luò)基于RSSI測距的定位算法由于實(shí)現(xiàn)簡單,應(yīng)用十分廣泛。但由于RSSI測距的精度不高,降低了節(jié)點(diǎn)定位精度?;赗SSI的無線傳感器網(wǎng)絡(luò)距離修正定位算法利用RSSI測距,通過確定相交區(qū)域近似質(zhì)心,以此為參考點(diǎn)對(duì)距離進(jìn)行修正,然后確定未知節(jié)點(diǎn)位置。仿真結(jié)果表明,該算法對(duì)測距誤差具有較高的容忍程度,并且具備很高的定位精度。