基于RSSI的無線傳感器網(wǎng)絡(luò)距離修正定位算法
但在實際情況中,由于RSSI 測距存在誤差,并且由于實際的路徑損耗比理論模型的數(shù)值偏大,也就是說測量出來的未知點到錨節(jié)點的距離d 總是大于實際距離r。以A、B和C 三點為圓心,以da1、db1 和dc1 為半徑作圓,三圓將不再相交于點O,而是存在一個相交區(qū)域,如圖1(b)所示。
三圓相交區(qū)域的邊界有三個交點,三點質(zhì)心為點D。其中點D 的坐標可以通過式(3)求解。
但是二次方程,求解過程計算量較大,因而文中采用如圖1(b)所示的點D1 的坐標近似質(zhì)心D 的坐標。三圓兩兩相交,則三條交線將相交于點D1。將式(2)中的方程式兩兩相減,則分別得到每條交線的直線方程,D1 的坐標則可以通過這些直線方程求解,如式(4)。
在某些文章中,以D1 的坐標作為點O 的近似值,其準確度雖然比三邊定位等方法要高,但是還是可能存在較大的誤差,尤其是當da1、db1、dc1 與ra、rb 和rc 的相對誤差各不相同時尤其明顯,因而需要對RSSI 方法測出的距離da1、db1和dc1 進行修正,然后再重復(fù)地求出新的三線交點D2 的坐標,則可以用點D2 的坐標作為點O 的近似坐標。
設(shè)點A、B 和C 到D1 的距離la1、la2 和la3,則總體修正系數(shù)如式(5)所示。
根據(jù)1.1 節(jié)中假設(shè)②,距離越遠測距相對誤差越大,則其修正程度越大,則da1 的修正系統(tǒng)如式(6)所示,db1 和dc的修正系數(shù)類似。
修正后的距離da2 通過式(7)得出,db2 和dc2 類似。
2 算法流程
算法流程如下:
?、俑麇^節(jié)點以相同功率周期性地向周圍廣播定位信息,信息中包括節(jié)點ID 和坐標。普通節(jié)點收到定位信息后,計算同一錨節(jié)點的RSSI 平均值;
?、诋斊胀ü?jié)點收集到一定數(shù)量的錨節(jié)點信息時,不再接收新信息。各普通節(jié)點根據(jù)RSSI 從強到弱對錨節(jié)點排序,由式(1)求出節(jié)點到錨節(jié)點的距離;
評論