摘要:節點自身定位是無線傳感器網絡目標定位的基礎。無線傳感器網絡節點定位算法包括基于距離和距離無關兩類。其中基于RSSI的定位算法由于實現簡單而被廣泛使用,但RSSI方法的測距誤差較大,從而影響了節點定位精度。提出了一種基于RSSI的無線傳感器網絡距離修正定位算法。該算法通過RSSI測距,計算近似質心的位置,以此為參考點進行距離修正,然后確定節點的位置。仿真結果表明該算法可以提高節點定位精度。
引言
對于大多數無線傳感器網絡應用來說,沒有位置信息的數據是毫無意義的。無線傳感器網絡目標定位跟蹤的前提是節點自身定位。無線傳感器網絡節點定位算法可分為基于距離和距離無關兩大類,基于距離的定位算法主要有RSSI、TOA、TDOA、AOA等,距離無關的定位算法主要有質心算法、DV-hop算法、凸規劃、MDS-MAP等。
RSSI測距無需額外硬件,實現簡單,具備低功耗、低成本等特點,應用十分廣泛。RSSI的技術原理是已知錨節點發射信號的強度,根據未知節點接收到的信號強度,利用信號傳播模型計算兩點的距離。由于存在多徑、干擾、遮擋等因素,RSSI測距的精度較低,必須采用各種算法來減小測距誤差對定位精度的影響,因而提出了一種基于RSSI測距的無線傳感器網絡距離修正定位算法,可有效減小RSSI測距誤差對節點定位精度的影響。
1、算法模型
1.1無線信號傳播模型
RSSI測距使用的無線信號傳播模型包括經驗模型和理論模型,理論模型是在大量經驗模型數據的基礎上總結提煉而成的。
對于經驗模型,首先要按照一定的密度選取參考點,建立信號強度與到某個信標點距離的映射矩陣,在實際定位時根據測得的信號強度與映射矩陣進行對比,并采用數學擬合方式確定待測節點到錨節點的距離。
無線信號傳播理論模型主要有自由空間傳播模型、對數距離路徑損耗模型、對數-常態分布模型等,其中對數-常態分布模型的使用。
對數-常態分布模型如式(1)所示:
其中n是路徑損耗指數,表明路徑損耗隨距離增長的速率,范圍在2~6之間。d0為近地參考距離,由測試決定。式(1)能夠預測出當距離為d時接收到的平均能量。由于相同距離d的情況下,不同位置的周圍環境差距非常大因而引入了Xσ,Xσ是一個平均值為0的高斯分布變量。
為了更好地描述距離修正定位算法,這里提出兩個合理的假設條件:
①由于各種障礙物的影響,絕大多數實際情況中,式(1)預測出的PL(d)[dB]比實際信號能量偏大;②當距離d增大時,PL(d)[dB]與實際損耗能量的相對偏差也會增大。
1.2確定相交區域質心的數學模型
已知三個節點A、B、C的坐標為(xa,ya)、(xb,yb)和(xc,yc),節點O到他們的距離為ra、rb和rc,假設節點O的坐標(xo,yo),則(xo,yo)的數值可通過式(2)得出,也就是說以A、B和C三點為圓心,以ra、rb和rc為半徑作圓,則三圓將相交與點O,如圖1(a)所示。
圖1三圓相交情況。
但在實際情況中,由于RSSI測距存在誤差,并且由于實際的路徑損耗比理論模型的數值偏大,也就是說測量出來的未知點到錨節點的距離d總是大于實際距離r。以A、B和C三點為圓心,以da1、db1和dc1為半徑作圓,三圓將不再相交于點O,而是存在一個相交區域,如圖1(b)所示。
三圓相交區域的邊界有三個交點,三點質心為點D。其中點D的坐標可以通過式(3)求解。
但是二次方程,求解過程計算量較大,因而文中采用如圖1(b)所示的點D1的坐標近似質心D的坐標。三圓兩兩相交,則三條交線將相交于點D1。將式(2)中的方程式兩兩相減,則分別得到每條交線的直線方程,D1的坐標則可以通過這些直線方程求解,如式(4)。
1.3距離修正
在某些文章中,以D1的坐標作為點O的近似值,其準確度雖然比三邊定位等方法要高,但是還是可能存在較大的誤差,尤其是當da1、db1、dc1與ra、rb和rc的相對誤差各不相同時尤其明顯,因而需要對RSSI方法測出的距離da1、db1和dc1進行修正,然后再重復地求出新的三線交點D2的坐標,則可以用點D2的坐標作為點O的近似坐標。
設點A、B和C到D1的距離la1、la2和la3,則總體修正系數如式(5)所示。
根據1.1節中假設②,距離越遠測距相對誤差越大,則其修正程度越大,則da1的修正系統如式(6)所示,db1和dc的修正系數類似。
修正后的距離da2通過式(7)得出,db2和dc2類似。
2、算法流程
算法流程如下:
①各錨節點以相同功率周期性地向周圍廣播定位信息,信息中包括節點ID和坐標。普通節點收到定位信息后,計算同一錨節點的RSSI平均值;
②當普通節點收集到一定數量的錨節點信息時,不再接收新信息。各普通節點根據RSSI從強到弱對錨節點排序,由式(1)求出節點到錨節點的距離;
③選取距離zui近的3個錨節點;
④通過式(4)計算三線交點D1坐標;
⑤分別計算3個錨節點與交點的距離;
⑥通過式(5)計算總體修正系數;
⑦通過式(6)分別計算各自的修正系數,然后通過式(7)計算修正后的距離;
⑧再次通過式(4)計算修正后的三線交點D2的坐標,D2的坐標即為點O的近似值。
3、仿真分析
用MATLAB進行算法仿真,基本初始條件是無線傳感器網絡位于100m×100m的區域內,該區域左下角為(0,0),右上角為(100,100)。區域內均勻部署4、9、16、25個錨節點,其中部署16個錨節點的位置如表1所示。
未知節點隨機分布在區域內,路徑損耗系數設為2.4,每次仿真實驗進行500次,仿真結果取500次的平均值,各次仿真實驗結果如表2所示。
表116個錨節點位置坐標
表2仿真結果
從仿真結果可以看出,當錨節點數目較少時,增加錨節點數量可以顯著提高定位精度。路徑損耗系統對定位精度也有影響,路徑損耗系統越大,定位精度越高。從表2可以看出,距離修正次數增多對定位精度沒有顯著的影響,也就是說一般情況下只需要進行一次距離修正即可,采用距離修正與不采用距離修正相比,定位精度明顯提高。
4、結語
無線傳感器網絡基于RSSI測距的定位算法由于實現簡單,應用十分廣泛。但由于RSSI測距的精度不高,降低了節點定位精度。基于RSSI的無線傳感器網絡距離修正定位算法利用RSSI測距,通過確定相交區域近似質心,以此為參考點對距離進行修正,然后確定未知節點位置。仿真結果表明,該算法對測距誤差具有較高的容忍程度,并且具備很高的定位精度。