馬佩勛,洪貴華
(1.長沙民政職業(yè)技術學院軟件學院,長沙 410004;2.滇西科技師范學院信息工程學院,云南 臨滄 677000)
現(xiàn)多數(shù)定位算法只聚集于靜態(tài)的無線傳感網(wǎng)絡(Wireless Sensor Networks,WSNs),假定錨節(jié)點和傳感節(jié)點是靜態(tài)的[1]。當然,通過頻繁地更新位置估計,可以將這些定位算法應用于移動WSNs。但是,在設計這些算法時,并沒有考慮如何通過移動信息,提高定位精度[2]。
文獻[3]研究了節(jié)點的移動及移動速度對定位精度的影響。而文獻[4]研究了如何利用移動速度估計節(jié)點位置。依據(jù)通信節(jié)點間的測距和相對測速信息,通過擴展卡爾曼濾波(Extended Kalman Filter,EKF)可估計節(jié)點位置。
此外,通常利用錨節(jié)點與傳感節(jié)點間的無線信號的一個物理參數(shù)或多個物理參數(shù)測距。這些參數(shù)包括到達時間(Time of Arrival,ToA)[5]、到達時間差(Time Difference of Arrival,TDoA)[6]、接收信號強度(Received Signal Strength,RSS)[7-8]和到達角度(Angle of Arrival,AoA)[9]。其中,基于ToA測距估計精度較高,而基于 RSS測距成本低,易實施。
眾所周知,測距信息總是伴隨著一些噪聲或者不確定信息,這影響了定位性能。而最大似然估計(Maximum Likelihood,ML)是用于克服定位階段中不確定信息的常用技術。然而,ML估計的計算量大[10]。
利用內點法可將ML問題轉化為凸優(yōu)化問題。而半定規(guī)劃(Semi-Definite Programming,SDP)[11]和二階錐規(guī)劃(Second Order Cone Programming,SOCP)是兩個主要的凸優(yōu)函數(shù)?;赟OCP定位系統(tǒng)簡單,計算復雜度低。相比于基于SDP定位算法,基于SOCP定位算法的收斂速度更快。但是,基于SDP定位算法的定位精度更高。
為此,針對移動WSNs,提出基于ToA的SDP定位算法SDPL。SDPL算法先利用ToA測距和速度信息,再利用SDP估計節(jié)點位置。
在二維空間內部署na個錨節(jié)點和ns個傳感節(jié)點。所有錨節(jié)點和傳感節(jié)點能夠獨立移動,從時刻n的位置移動至時刻n+1的新位置,其中n=1,…,N。其中N表示總的觀察時刻數(shù)。
假定每個傳感節(jié)點能夠測量自己的速度矢量,其包含速率和方向。在兩個連續(xù)觀察時刻內,節(jié)點速度保持常量。將節(jié)點的速度矢量用于節(jié)點的位置估計。
(1)
(2)
式中:R表示節(jié)點通信半徑。
(3)
假定ToA測距誤差服從高斯分布。利用速度信息提高定位精度??紤]兩種情況:準確速度信息和噪聲速度信息[12]。
若速度信息準確,則式(1)的模型可修改成:
(4)
將式(4)代入式(3),基于ToA模型可更新為:
(5)
再利用式(6)求解:
(6)
將式(6)分解成多個子問題,并利用傳感節(jié)點的局部觀察求解。這些子問題依賴于鄰居錨節(jié)點在不同時刻的位置、節(jié)點與鄰居錨節(jié)點間距離以及節(jié)點在不同時刻的速度矢量。
令Bi={(j,n)|(i,j,n)∈A}。(j,n)∈Bi意味著在時刻n,錨節(jié)點j離傳感節(jié)點i的距離小于R。具體而言,對于i∈{1,…,ns},傳感節(jié)點i需解決的子問題:
(7)
(8)
目標函數(shù)式(8)是一個非凸優(yōu)化問題,難以獲取其精確解。為此,利用SDP解決此非凸優(yōu)化問題[13]。
(9)
式中:dk表示矢量d的第k個元素。而rk表示矩陣R的第k個行。
據(jù)此,將式(9)可表述以下的約束優(yōu)化問題:
(10)
式中:w=[w1…wK]T。利用表述式(10)的約束項:
(11)
利用恒等式xTAx=Tr(xxTA),可將式(11)轉換成:[W]kk=Tr(DkS),其中k=1,…,K。而W、Dk和S的定義如式(12)、式(13)和式(14)所示:
(12)
(13)
(14)
再利用式(11)~式(14),式(11)的優(yōu)化問題可表示為:
(15)
在實際環(huán)境中很難準確地獲取節(jié)點的速度信息[14]。因此,基于測速誤差和測距誤差條件下,估計節(jié)點位置。式(16)表示了包含測速誤差的測速模型:
(16)
(17)
對式(17)進行對數(shù)變換,基于ML的定位問題可表述為:
(18)
求解式(18),等價于求解式(19):
(19)
對于任意一個傳感節(jié)點i,式(19)的第一項為非凸優(yōu),而第二項是凸優(yōu)的,其處理了在不同時刻節(jié)點i的測速誤差。對式(19)第二項進行擴展,并丟棄常數(shù)項。同時,為了簡化表述,將下標i刪除。最終,可建立式(20)所示的目標函數(shù):
(20)
式中:〈a,b〉=aTb。此外,引入以下標量:
(21)
(22)
式中:Z=STS。
與上節(jié)類似,將式(20)轉化為SDP松馳的優(yōu)化問題:
[L]n+1,n+1-2[L]n+2,n+1-2Ts[[L]n+2,1[L]n+2,2]v(n)+
2Ts[[L]n+1,1[L]n+1,2]v(n)}
(23)
利用MATLAB建立仿真平臺,并利用MATLAB軟件內的CVX工具包[15]。CVX工具包能夠計算SDP問題。在方形區(qū)域100m×100m內部署錨節(jié)點和傳感節(jié)點。這些節(jié)點依據(jù)Random-way點移動模型移動。令?min表示節(jié)點的最大移動速度。
考慮T=30時刻。節(jié)點在每個時刻隨機地選擇一個目的節(jié)點,再移動至此目的節(jié)點。并隨機選擇移動速度進行移動。此外,引用均方根誤差(Root Mean Square Error,RMSE)作為性能指標。
本文在第3節(jié)分別論述了準確速度信息和噪聲速度信息兩種環(huán)境下的定位問題。為此,接下來分析這兩種環(huán)境下的SDPL算法的RMSE性能。
3.2.1 基于準確速度信息環(huán)境
本小節(jié)考慮三類場景。這三類場景參數(shù)如表1所示。在這三類場景中,節(jié)點的移動的最大速度?min在{1.4,2.8,4.2,5.6,7.0}內變化,且單位為m/s。
表1 場景參數(shù)
眾所周知,傳統(tǒng)的定位算法對測距誤差、錨節(jié)點數(shù)以及通信半徑非常敏感。為此,選定三個場景,分析測距誤差、錨節(jié)點數(shù)以及通信半徑對定位性能的影響。
圖1 RMSE隨和?min的變化情況
圖2、圖3分別顯示了錨節(jié)點數(shù)和通信半徑參數(shù)對定位算法的影響。觀察這兩個圖不難發(fā)現(xiàn),錨節(jié)點數(shù)從3增加至6或者通信半徑從2 m增加至4 m提高了定位精度。但相比于錨節(jié)點數(shù)從3增加至6或者通信半徑從2 m增加至4 m,移動速度?min從1.4 m/s增加至2.8 m/s時的定位性能更好。
圖2 RMSE隨錨節(jié)點數(shù)和?min的變化情況
圖3 RMSE隨R和?min的變化情況
3.2.2 基于噪聲速度信息環(huán)境
圖4 參數(shù)?min對RMSE的影響
圖5 RMSE隨變化情況
針對移動無線傳感網(wǎng)絡的節(jié)點定位問題,基于半定規(guī)劃的節(jié)點定位SDPL算法。SDPL算法利用ToA測距,并結合移動節(jié)點的速度信息聯(lián)合估計移動節(jié)點位置。同時,考慮準確測速信息和噪聲測速信息兩種情況。并通過SDP求解基于ML的定位方程。仿真結果表明,相比于錨節(jié)點數(shù)和通信半徑,移動信息對定位精度的影響更大。