徐 進,李時銘,謝建中,楊棟梁,張丙釗
(武漢船用電力推進裝置研究所,武漢 430064)
近年來,無線傳感器網(wǎng)絡(luò)技術(shù)發(fā)展迅速,廣泛應(yīng)用于礦井人員定位、搶險救災(zāi)、環(huán)境監(jiān)測、智能家居等領(lǐng)域,對人們的生活和工作產(chǎn)生了重大的影響。
當(dāng)前,大多數(shù)定位算法只是針對無線傳感器的二維網(wǎng)絡(luò)展開研究的,在實際應(yīng)用中并非總是如此。無線傳感器網(wǎng)絡(luò)節(jié)點也會經(jīng)常處于三維環(huán)境中,如礦井、森林、海洋和復(fù)雜的建筑物等,這些場合下需要提供節(jié)點的三維位置信息。
三維空間運算更加復(fù)雜,三維定位技術(shù)的研究還有待深入。目前已有部分關(guān)于三維定位算法研究的文獻。為了提高定位精度,大多數(shù)算法采用增加節(jié)點數(shù)量,提高成本來實現(xiàn)。但如果控制成本,減少節(jié)點數(shù)量,則運算量會增加,且定位誤差較大。本文提出了一種節(jié)點數(shù)量少,定位誤差小的基于RSSI的改進三維修正定位算法。
在實際應(yīng)用環(huán)境中,由于多徑、繞射、遮擋物等因素,采用對數(shù)-常態(tài)分布模型將更加合理[1]。對數(shù)-常態(tài)分布模型如下:
式中:PL(d)為經(jīng)過距離d后的路徑損耗;PL(d0)為自由空間損耗,d0為參考距離,常取1 m;Xδ為平均值為0的高斯分布隨機變數(shù);n為路徑損耗因子。
RSSI測距模型如下:
式中:RSSI是接收信號強度指示;Psend是發(fā)射信號的功率;Pamplify是天線的增益。
將模型簡化,可表示為:
式中:a=Psend+Pamplify-PL(d0)- Xδ,由(3)式知,RSSI與 10·lg(d)成線性關(guān)系。
由于室內(nèi)定位存在許多干擾因素,如反射、多徑效應(yīng)、物體遮擋、氣候等,使定位難度十分大,如果直接采用上述 RSSI測距模型進行定位,則難以達到室內(nèi)定位要求的定位精度。所以,校正當(dāng)前環(huán)境的傳輸參數(shù)是十分重要的[2]。
根據(jù)RSSI測距模型可以得到:
解方程組(4),可以得到路徑損耗因子n:
將n代入方程組(4)中,可以得到參數(shù)a:
假設(shè) 4個參考點坐標分別為A(xA,yA,zA),B(xB,yB,zB),C(xC,yC,zC),D(xD,yD,zD),未知節(jié)點的坐標為M(x,y,z),節(jié)點M到A、B、C、D點的測量距離分別為dA,dB,dC,dD,根據(jù)三維空間計算公式,可以得到式(5)超定非線性方程組:對此超定非線性方程組,本文采用最小二乘法和牛頓迭代法進行求解。
2.1.1 最小二乘法
將上述超定非線性方程組轉(zhuǎn)化為線性方程組形式AX=b,其中:
根據(jù)最小二乘法,當(dāng)矩陣AT A為非奇異矩陣時,可求解出未知點M的最優(yōu)估計坐標值[3]:
傳統(tǒng)的最小二乘法三維定位算法則是直接利用最小二乘法求解方程組進行最終定位。當(dāng)前的大多數(shù)基于RSSI的三維定位算法也是利用最小二乘法解方程組的。
但是當(dāng)所有參考節(jié)點均分布于同一高度時,rank(A)<3,最小二乘法將無法解出答案。
2.1.2 牛頓迭代法
將方程組(5)轉(zhuǎn)化成以下形式:
牛頓迭代法的迭代公式如下:
Xk為經(jīng)過迭代k次后,所得到的一組解。但是牛頓迭代法的收斂性依賴于初始值,選取不同的初始值可能會得到方程不同的根[4]。所以尋找一個好的初始值十分關(guān)鍵,這需要不斷的嘗試。
無論參考節(jié)點是否分布于同一高度,牛頓迭代法都可以得到一組近似解。但是參考節(jié)點不能放置于中間高度的同一水平面,必須放置于最底面或最高面。因為同一水平面的參考節(jié)點對于三維定位就已經(jīng)減小了參考作用,當(dāng)它們在中間高度的同一水平面時,難以根據(jù)測量距離判斷未知節(jié)點是在此水平面的上方還是下方,易導(dǎo)致z軸方向定位誤差大。
改進的三維修正定位算法是在定位解算原理的基礎(chǔ)上,增加了修正傳輸參數(shù)、差分修正、迭代次數(shù)等環(huán)節(jié),對未知節(jié)點進行進一步的修正定位,減小室內(nèi)干擾因子的影響。
此定位算法中只需要A、B、C、D、E這5個已知相對坐標的參考節(jié)點依次作為差分修正參考節(jié)點,對未知節(jié)點M進行定位[5]。具體步驟如下:
步驟一:參考節(jié)點A、B、C、D、E根據(jù)接收到其它參考節(jié)點的RSSI值,由公式(7)、(8)分別計算出自身作為差分修正參考節(jié)點時相對應(yīng)的校正參數(shù)a和n。
其中ni、ai分別表示第i個參考節(jié)點作為差分修正參考點時所對應(yīng)的路徑損耗因子及傳播參數(shù),j則表示第j個參考節(jié)點作為修正節(jié)點,m則表示第m個參考節(jié)點作為輔助修正節(jié)點,其中i,j,m= 1,2,3,4,5,且i≠j≠m;dist(i,j)表示參考節(jié)點i到j(luò)的距離;表示測量到的參考標簽j到i的RSSI的平均值。
步驟二:B、C、D、E對差分修正參考節(jié)點A進行初步定位,并得出偏移量(ΔxA,ΔyA, ΔzA)。
其中dAB,dAC,dAD,dAE分別表示A點到B、C、D、E的測量距離??梢岳米钚《朔ɑ蚺nD迭代法解此超定非線性方程組,得到 A定位坐標,然后與 A的實際坐標相減,便可以得到偏移量(ΔxA,ΔyA,ΔzA):
步驟三:利用B、C、D、E參考節(jié)點對未知節(jié)點M進行初步定位,得到。
其中dMB1,dMC1,dMD1,dME1分別表示M點到B、C、D、E的測量距離。根據(jù)方程組(11)可求解到修正參考坐標 (xMA1,yMA1,zMA1)。
同理,分別以B、C、D、E作為差分修正參考節(jié)點對M點定位,便可以得到節(jié)點M的修正參考坐 標。差分修正的目的是對當(dāng)前環(huán)境下初步定位的進一步修正。
步驟四:加入迭代次數(shù)r,求得各個差分修正參考節(jié)點的所對應(yīng)的r個修正坐標,然后分別取其均值:
迭代次數(shù)的應(yīng)用減小了個別誤差較大點對最終定位的影響力,有助于減小定位誤差。
步驟五:利用加權(quán)算法[6]計算出M點的最終定位坐標(x,y,z),如下式所示:
將測量距離均值的倒數(shù)和作為權(quán)重,這更好地體現(xiàn)了各個差分參考節(jié)點對未知節(jié)點的定位影響力。
步驟六:利用公式(16),計算出定位誤差:
其中,(xM,yM,zM)為目標點的實際坐標。
仿真條件是在一個10m·10m·10m的三維區(qū)域內(nèi),放置5個參考節(jié)點,其坐標已知.未知目標節(jié)點的坐標由matlab隨機生成函數(shù)來生成,在該區(qū)域內(nèi)隨機分布,一共生成10個未知目標節(jié)點.然后根據(jù)RSSI值與距離的關(guān)系,由(1)、(2)、(3)式生成RSSI數(shù)據(jù),并在數(shù)據(jù)中添加均值為0,標準差δ為3的高斯噪聲,作為RSSI的隨機分量,以模擬實際環(huán)境中的反射、多徑效應(yīng)、物體遮擋、氣候等帶來的影響.路徑損耗因子n的初始值n0=4,傳播參數(shù)a的初始值a0=-46.當(dāng)參考節(jié)點分布在不同高度的情況下,分別對傳統(tǒng)最小二乘法定位算法和改進定位算法進行仿真;參考節(jié)點處于同一水平面時,對使用牛頓迭代法的改進算法進行仿真.以下為參考節(jié)點的分布位置表及仿真結(jié)果。
表1 參考節(jié)點坐標分布
從圖1,2,3可以看出,在參考節(jié)點處于不同高度的情況下,改進后的三維定位算法的定位精度明顯比傳統(tǒng)算法的定位精度高。從表2可知,改進后的三維定位算法的平均定位誤差為0.3873 m,比傳統(tǒng)算法的平均定位誤差1.2691 m小.仿真結(jié)果綜合說明改進算法的定位精度有明顯提高.但是當(dāng)參考節(jié)點處于同一高度時,改進的定位算法的定位誤差仍較大,定位誤差接近1 m。
圖1 傳統(tǒng)三維定位效果圖
圖2 改進算法的三維定位效果圖
圖3 同一高度的改進算法三維定位效果圖
表2 定位誤差比較
該算法在不增加額外參考節(jié)點數(shù)量的情況下,利用參考節(jié)點對當(dāng)前環(huán)境的傳播參數(shù)進行了初步校正,同時也加入了差分修正、迭代次數(shù)和加權(quán)算法等環(huán)節(jié),對定位坐標進行進一步修正,大大提高了定位精度。但是在實際應(yīng)用中,參考節(jié)點應(yīng)均放置于最頂層,這樣減小了多徑作用和遮擋物的影響,通過仿真結(jié)果可知,定位誤差較大,還有較大的改進空間。