無線傳感器網絡用于監測系統中的定位算法
在PC機上測試獲取到的RSSI值和ID節點信息,如圖5所示。
計算出未知節點和每個錨節點之間的距離di,最后通過式(5)計算出未知節點的坐標。
4 定位的測試
基于RSSI測距時需要標定出(3)式中的常數A和傳播因子n。標定這個兩個因素可通過星型Zigbee網絡來實現,成功組網后將中心節點通過USB轉串口線和PC機相連,通過串口調試器觀察中心節點獲取的RSSI值和對應子節點ID號。
4.1 A值的標定
A值即距離發射節點1m遠處接收到的信號強度,為了減小誤差,同時測量了距離中心節點1 m遠的三個不同方向上中心節點和子節點通信的RSSI值,如圖6所示。
,選擇測量直線相距發射節點5 m遠處接收到的信號強度,共測量20組數據,如表2所示。
經過計算得n的平均值為2.5037,故選擇n=3。
4. 3 定位的測試
定位測試在一片空曠的場地上進行的,選擇了6個無線傳感器網絡節點組建Zigbee網絡,1個中心節點、1個未知節點和4個錨節點,節點的發射功率設置為0 dBm。4個錨節點提前人工布置于一塊8 mx8 m的正方形地面四角,未知節點位于正方形中心,中心節點布置在正方形外圍,整個節點布局如圖7所示。
測試中發現一個錨節點沒有入網,未知節點與3個錨節點通信,接收到RSSI值如下表3所示:
已知與未知節點通信的三個錨節點的相對坐標為: (0,0)(0,8)(8,8),A=-73,n=3,經過計算得:未知節點和與之通信的3個錨節點通信的RSSI均值分別為-92.6、-93.2、-92.1,未知節點和錨節點之間的距離分別為:d1=4.501;d2=4.713;d3=4.332;未知節點的坐標為: (x,y)=(3.391,3.535)。
4.4 誤差分析
實際情況下,未知節點的相對坐標應該是(4,4),實際箅出來的坐標是(3.391,3.535),所以實際測量是存在誤差的。誤差計算如下式:
5 結束語
本文基于無線傳感器網絡節點的自主設計,采用基于RSSI的加權質心算法實現了WSN節點的自定位。通過實際測試證明,相對于單一的質心定位算法,該算法利用得到的RSSI作為權值來修正質心定位的結果,提高了定位精度,且易于實現,能夠滿足大多數的實際應用中定位的需求。另一方面,在實際測試中發現,RSSI值易受到多徑、障礙物等環境因素的影響,故存RSSI測距中引進了較多的誤差,基于RSSI測距的精度還有待進一步的提高。
評論