基于RSSI的無線傳感器網絡距離修正定位算法
③選取距離最近的3 個錨節點;
④通過式(4)計算三線交點D1 坐標;
⑤分別計算3 個錨節點與交點的距離;
⑥通過式(5)計算總體修正系數;
⑦通過式(6)分別計算各自的修正系數,然后通過式(7)計算修正后的距離;
⑧再次通過式(4)計算修正后的三線交點D2 的坐標,D2的坐標即為點O 的近似值。
3 仿真分析
用MATLAB 進行算法仿真,基本初始條件是無線傳感器網絡位于100 m×100 m 的區域內,該區域左下角為(0,0),右上角為(100,100)。區域內均勻部署4、9、16、25個錨節點,其中部署16 個錨節點的位置如表1 所示。
未知節點隨機分布在區域內,路徑損耗系數設為2.4,每次仿真實驗進行500 次,仿真結果取500 次的平均值,各次仿真實驗結果如表2 所示。
表1 16 個錨節點位置坐標
表2 仿真結果
從仿真結果可以看出,當錨節點數目較少時,增加錨節點數量可以顯著提高定位精度。路徑損耗系統對定位精度也有影響,路徑損耗系統越大,定位精度越高。從表2 可以看出,距離修正次數增多對定位精度沒有顯著的影響,也就是說一般情況下只需要進行一次距離修正即可,采用距離修正與不采用距離修正相比,定位精度明顯提高。
4 結語
無線傳感器網絡基于RSSI 測距的定位算法由于實現簡單,應用十分廣泛。但由于RSSI 測距的精度不高,降低了節點定位精度。基于RSSI 的無線傳感器網絡距離修正定位算法利用RSSI測距,通過確定相交區域近似質心,以此為參考點對距離進行修正,然后確定未知節點位置。仿真結果表明,該算法對測距誤差具有較高的容忍程度,并且具備很高的定位精度。如圖2 所示,三圓相交還存在無3 個交點的情況,下一步工作將詳細研究圖2所示各種情況對該算法的影響,從而對算法進行改進完善。
圖2 三圓相交區域無3 個交點的情況
評論