無(wú)線(xiàn)傳感器網(wǎng)絡(luò )用于監測系統中的定位算法
2 基于RSSI測距的加權質(zhì)心定位原理
在無(wú)線(xiàn)傳感器網(wǎng)絡(luò )中,根據節點(diǎn)的位置是否己知,將節點(diǎn)分為未知節點(diǎn)和信標節點(diǎn)。未知節點(diǎn)表示節點(diǎn)在無(wú)線(xiàn)傳感器網(wǎng)絡(luò )的位置需要定位,而信標節點(diǎn)也稱(chēng)為錨節點(diǎn),表示其位置已經(jīng)確定。信標節點(diǎn)是通過(guò)人工事先放置好或者在節點(diǎn)上增加GPS模塊得到自身位置。信標節點(diǎn)是未知節點(diǎn)定位時(shí)的參考點(diǎn),但是由于功耗和成本的限制,信標節點(diǎn)不能太多。
2.1 RSSI測距原理
RSSI (received signal strength indicator)測距原理:利用節點(diǎn)接收信號強度與節點(diǎn)距離成反比的關(guān)系,通過(guò)測量接收到的信號強度和已知的信道衰落模型,估算出節點(diǎn)之間的距離。無(wú)線(xiàn)信號的發(fā)射功率和接收功率之間的關(guān)系可以用式(1)表示

PR是無(wú)線(xiàn)信號的接收功率,PT是無(wú)線(xiàn)信號的發(fā)送功率,d是收發(fā)單元之間的距離,n是傳播因子,數值大小取決于無(wú)線(xiàn)信號傳播的環(huán)境。給上式兩邊取對數得
10lgPR=10lgPT-10n·lgd (2)
當距離d=1 m時(shí),PR=Pr,令10 lg RT=10 lg R=A,即是距離發(fā)射節點(diǎn)1 m遠處的信號接收強度,將(2)式化簡(jiǎn)為
PR(dBm)=A-10*nlgd (3)
可以看出常數A和n決定了接收信號強度和傳輸距離的關(guān)系。A值為無(wú)線(xiàn)收發(fā)節點(diǎn)相距1 m時(shí)接收節點(diǎn)接收到的無(wú)線(xiàn)信號強度值,n值是無(wú)線(xiàn)信號的傳播因子,這兩個(gè)值都是經(jīng)驗值,和具體使用的硬件節點(diǎn)和無(wú)線(xiàn)信號傳播的環(huán)境密切相關(guān),所以測距前必須在應用環(huán)境中把兩個(gè)經(jīng)驗值標定好,然后根據(3)式就可以求出距離d。
2.2 質(zhì)心定位原理
質(zhì)心定位的原理是:未知節點(diǎn)以所有在其通信范圍內錨節點(diǎn)組成的幾何形狀的質(zhì)心作為自己的估計位置。質(zhì)心坐標就是多邊形各頂點(diǎn)坐標的平均值。
具體實(shí)現過(guò)程為:錨節點(diǎn)周期性的向鄰居節點(diǎn)廣播一個(gè)信標信號,信號中包含有錨節點(diǎn)自身的ID和位置信息,未知節點(diǎn)接收到信標信號以后將其存儲起來(lái)。當未知節點(diǎn)在一段偵聽(tīng)時(shí)間內接收到來(lái)自某個(gè)錨節點(diǎn)的信標信號數量超過(guò)預設的門(mén)限后,就認為該錨節點(diǎn)與自身連通,最終該未知節點(diǎn)將自身位置確定為所有與之連通的錨節點(diǎn)所組成的多邊形的質(zhì)心。假設網(wǎng)絡(luò )中的n個(gè)固定錨節點(diǎn)坐標為(Xi,Yi),其中1≤i ≤n,未知節點(diǎn)M的估測位置坐標為(Xm,Ym),那么質(zhì)心定位計算未知節點(diǎn)的坐標公式如下:

2.3 基于RSSI的加權質(zhì)心定位
傳統的質(zhì)心定位算法忽略了不同距離的錨節點(diǎn)對質(zhì)心定位精度的影響,針對傳統質(zhì)心定位算法的缺陷,將RSSI信息引入可以起到輔助信息的作用。其基本思想是:在確定了未知節點(diǎn)所在的多邊形以后,首先根據未知節點(diǎn)和錨節點(diǎn)通信時(shí)獲取到的RSSI值計算出未知節點(diǎn)和各個(gè)錨節點(diǎn)之間的距離d,然后以wi=1/di作為加權質(zhì)心定位算法中的權值,計算未知節點(diǎn)的坐標。
假設網(wǎng)絡(luò )中的n個(gè)同定錨節點(diǎn)坐標為(Xi,Yi),其中1≤i≤n,未知節點(diǎn)M的估測位置坐標為(Xm,Ym),那么加權質(zhì)心計算公式5如下:

這樣選擇加權因子能夠體現出與未知節點(diǎn)距離不同的錨節點(diǎn)對未知節點(diǎn)定位的決定權的大小,其約束力符合加權質(zhì)心算法的要求。
3 節點(diǎn)定位的實(shí)現
3.1 定位系統的工作原理
節點(diǎn)的定位計算主要是在網(wǎng)關(guān)上完成的。本定位系統中采用了Android平板電腦做網(wǎng)關(guān),網(wǎng)關(guān)通過(guò)監牙通信和中心節點(diǎn)上的藍牙模塊建立連接,藍牙配對成功后,中心節點(diǎn)將未知節點(diǎn)上傳的與之通信錨節點(diǎn)的RSSI值和對應錨節點(diǎn)ID信息通過(guò)藍牙模塊無(wú)線(xiàn)透傳給網(wǎng)關(guān),在網(wǎng)關(guān)上進(jìn)行計算。定位系統原理如圖4所示。本文引用地址:http://dyxdggzs.com/article/159474.htm
3.2 定位實(shí)現的步驟
(1) RSSI值的獲取
在成功組建Zigbee網(wǎng)絡(luò )后,錨節點(diǎn)周期性的向周同廣播一個(gè)包含自身ID的信標信號,在通信范圍內的未知節點(diǎn)接收到信標信號以后,通過(guò)調用API函數獲取與自己通信錨節點(diǎn)的RSSI值和對應的錨節點(diǎn)ID號,使用的API函數主要包括:emberIneoming MessageHandler主要是處理節點(diǎn)接收到的信息,在這個(gè)函數里面再調用API函數emberGetSender,獲取發(fā)送節點(diǎn)編號(node ID):調用API函數emberGetLastHopRssi,獲取目前接收信息的信號強度;調用API函數emberSendUnicast將接收到的數據發(fā)送給中心節點(diǎn),最終在中心節點(diǎn)調用API函數emberSerialPri ntf將數據通過(guò)串口發(fā)送給網(wǎng)關(guān)。獲取RSSI值的部分代碼如下:
評論