莫建麟
(阿壩師范學(xué)院電子信息與自動化學(xué)院,四川汶川 623002)
隨著計算機(jī)硬件和軟件技術(shù)的發(fā)展,借助GPS設(shè)備和全球定位信息系統(tǒng),室外環(huán)境定位效果良好。GPS在移動終端的普及給移動終端帶來了很大的便利,方便了人們的生活。而GPS在室內(nèi)定位卻不準(zhǔn)確,在某些情況下甚至無法定位。無論是商場導(dǎo)購還是室內(nèi)救援都需要精準(zhǔn)的定位服務(wù)。
目前針對室內(nèi)定位的很多方法均采用無線網(wǎng)絡(luò)技術(shù)、基站定位、慣性定位等多種技術(shù)以及將這些技術(shù)結(jié)合來實現(xiàn)室內(nèi)人員和物體等位置的監(jiān)控,并采用一些進(jìn)化算法、神經(jīng)網(wǎng)絡(luò)等方法和支持向量機(jī)等方法來進(jìn)行解決[1-2]。石欣等[3]提出了一種基于改進(jìn)RSSI的多維標(biāo)度室內(nèi)定位算法,基于節(jié)點(diǎn)信號建立相異矩陣,并通過多維標(biāo)度法建立相對坐標(biāo),通過平面四參數(shù)模型進(jìn)行坐標(biāo)轉(zhuǎn)換。李玲霞等[4]提出了一種基于相關(guān)性測序的定位算法,利用相鄰位置的信號信息構(gòu)建數(shù)據(jù)庫,然后通過相關(guān)性測序算法來實現(xiàn)接收信號參考強(qiáng)度與運(yùn)動序列之間的匹配。楊明極等[5]提出一種基于主成分分析的聚類算法,對信號強(qiáng)度采用主成分分析法進(jìn)行白化處理,去除RSSI信息的相關(guān)性,以提高定位精度。周瑞等[6]提出了一種基于支持向量機(jī)和回歸分析法的Wi-Fi指紋定位算法,并采用狀態(tài)轉(zhuǎn)換方法來識別行走周期并進(jìn)行計步,以降低慣性傳感器的誤差和定位誤差。劉曉晨等[7]提出了一種基于改進(jìn)BP網(wǎng)絡(luò)的室內(nèi)無線定位方法,以RSSI作為輸入,以二維坐標(biāo)作為輸出建立網(wǎng)絡(luò),并利用網(wǎng)絡(luò)的初始化權(quán)值和閾值思想進(jìn)行算法優(yōu)化,并通過樣本數(shù)據(jù)進(jìn)行訓(xùn)練。本文提出一種基于RSSI和改進(jìn)卡爾曼濾波的室內(nèi)節(jié)點(diǎn)定位方法,并通過實驗證明該方法的有效性。
(1)
其中,d0為近地參考距離(取值為1 m),ρ為信道衰減指數(shù)(取值為1~4),μσ為誤差項。
在公式(1)建立的模型基礎(chǔ)上,接收節(jié)點(diǎn)與錨節(jié)點(diǎn)之間的距離可以表示為:
(2)
在估計了接收節(jié)點(diǎn)和發(fā)送節(jié)點(diǎn)(錨節(jié)點(diǎn))的距離后,就可以通過極大似然估計法計算接收節(jié)點(diǎn)之間的位置。當(dāng)接收節(jié)點(diǎn)接收了n個發(fā)送節(jié)點(diǎn)的信號,并根據(jù)公式(2)估計了與其之間的距離后,由于錨節(jié)點(diǎn)位置已知,可以建立具有n個方程的方程組:
(3)
其中,n個發(fā)送節(jié)點(diǎn)的坐標(biāo)為(x1,y1),(x2,y2),,(xn,yn),接收節(jié)點(diǎn)的坐標(biāo)為(x,y),估計的距離為d1,d2,,dn,公式(3)為非線性方程組。
采用極大似然估計法對AX=B的系數(shù)A和B進(jìn)行估計,可以得到:
(4)
(5)
X=(x,y)T.
(6)
根據(jù)公式(6)估計得到的A和B,可以得到估算的值:
X=A-1B.
(7)
根據(jù)式(7)得到的發(fā)送節(jié)點(diǎn)的坐標(biāo)仍然不夠精確,下面采用基于卡爾曼濾波算法的節(jié)點(diǎn)定位方法。
初始化:初始化需要優(yōu)化的位置X(0),令k+1時刻的網(wǎng)絡(luò)安全態(tài)勢預(yù)測值為y(k+1),X(k+1)表示k+1時刻的觀測變量,Xi(k+1)(1≤i≤m)為Xi(k+1)的第i個分量,這些因素的個數(shù)總計為m,建立回歸方程為:
(8)
其中,參數(shù)A00,A01,,Amm以及W20,W21,,W2m可以通過式(4)和式(5)來進(jìn)行估計,得到式(9):
(9)
其中,
(10)
步驟1 根據(jù)式(11)和(12)計算狀態(tài)方程和預(yù)測方程:
X(k+1)=F(k)·X(k)+W1(k).
(11)
y(k+1)=A(k)·X(k+1)+W2(k).
(12)
其中,狀態(tài)轉(zhuǎn)移矩陣表示為F(k),狀態(tài)轉(zhuǎn)移過程中產(chǎn)生的噪聲采用W1(k)表示,k時刻的狀態(tài)向量表示為X(k)=[x1(k),x2(k),,xm(k)],k+1時刻的狀態(tài)向量表示為X(k+1),k時刻的觀測噪聲表示為W2(k),k+1時刻的觀測向量表示為y(k+1),A(k)為可以進(jìn)行觀測的觀察向量,其中m表示狀態(tài)向量的維度。
步驟2 建立預(yù)測的信息過程:
N(k)=y(k)-A(k)F(k)X1(k-1).
(13)
其中,y(k)的預(yù)測值為:
y(k)=A(k)F(k)X1(k-1).
(14)
步驟3 對下列等式進(jìn)行遞歸計算:
N(k)=y(k)-A(k)F(k)X1(k-1).
X1(k)=F(k)X1(k-1)-kg(k)N(k).
步驟4 根據(jù)式(15)計算發(fā)送節(jié)點(diǎn)的位置值:
y(k)=A(k-1)X(k).
(15)
為了對實驗環(huán)境進(jìn)行驗證,對圖1所示的場景進(jìn)行分析,該場景包含4條走廊和1個房間,場景包含的區(qū)域大小為52×41 m2,參數(shù)設(shè)置:路徑衰減因子ρ為4,近地參考距離為1 m,通信半徑為3~15 m,采用文中方法獨(dú)立仿真20次,并與文獻(xiàn)[5]和文獻(xiàn)[6]的方法進(jìn)行比較。
圖1 定位場景設(shè)置
在圖1中,4個位置是錨節(jié)點(diǎn)的位置,其它任何節(jié)點(diǎn)均可以通過這4個節(jié)點(diǎn)的位置,根據(jù)本文方法進(jìn)行定位。算法將從靜態(tài)情況下的平均定位誤差和動態(tài)情況下(當(dāng)在該環(huán)境進(jìn)行行走時,選擇不同的情況進(jìn)行實時定位,這些情況可以分為:短路徑(SP)、長路徑(LP)、短路徑折返(SP-BF)、長路徑折返(LP-BF)和室內(nèi)+走廊(RC))的平均定位誤差進(jìn)行分析。為了進(jìn)行對比,先對平均定位誤差進(jìn)行定義:
(16)
(17)
其中,R為通信半徑。
在待定位節(jié)點(diǎn)靜態(tài)布置的情況下,三種方法隨錨節(jié)點(diǎn)個數(shù)變化得到的平均定位誤差,如圖2所示。
圖2 平均定位誤差對比
從圖2可以看出,隨著錨節(jié)點(diǎn)個數(shù)的增加,本文方法、文獻(xiàn)[5]方法和文獻(xiàn)[6]方法均隨錨點(diǎn)個數(shù)的增加,得到逐漸降低的平均定位誤差。其中,文中方法的平均定位誤差降得最快,在錨節(jié)點(diǎn)個數(shù)增加到6時,其對應(yīng)的平均定位誤差為0.07。而文獻(xiàn)[5]和文獻(xiàn)[6]的方法得到的平均定位誤差接近,分別為0.22和0.21。顯然,本文方法得到的平均定位誤差遠(yuǎn)遠(yuǎn)小于文獻(xiàn)[5]和文獻(xiàn)[6]方法。
由于待定位節(jié)點(diǎn)移動時,平均定位誤差不斷變化。采用絕對定位誤差進(jìn)行比較,不同算法在不同的移動路徑情況下,得到的絕對定位誤差見表1。
表1 不同算法的絕對定位誤差
從表1中可以看出,運(yùn)用文中方法得到的5種路徑定義的平均絕對定位誤差均在5 m之內(nèi),而75%的定位誤差在4.5 m內(nèi),而90%的定位誤差在5 m內(nèi),遠(yuǎn)遠(yuǎn)低于另外兩種方法,具有較大的優(yōu)越性。
針對傳統(tǒng)方法對室內(nèi)人物和物體定位難度大的問題,本文提出一種基于卡爾曼濾波的室內(nèi)定位模型。該模型基于RSSI估算待定位節(jié)點(diǎn)與發(fā)送節(jié)點(diǎn)之間的距離,然后通過最小二乘算法來估計位置的初始值。基于估計的初始值,采用卡爾曼濾波算法進(jìn)一步優(yōu)化,得到較為精確的預(yù)測值。以某室內(nèi)場景作為仿真環(huán)境,對該室內(nèi)的靜止位置和移動目標(biāo)分別估計平均定位誤差和平均絕對定位誤差,實驗結(jié)果表明本文方法在兩種情況下均具有較高的定位精度。