徐 琨, 劉宏立, 詹 杰, 馬子驥
(1.湖南機(jī)電職業(yè)技術(shù)學(xué)院 電氣工程學(xué)院,湖南 長沙 410151;2.湖南大學(xué) 電氣與信息工程學(xué)院,湖南 長沙 410082; 3.湖南科技大學(xué) 物理與電子科學(xué)學(xué)院,湖南 湘潭 411201)
節(jié)點(diǎn)定位[1]是無線傳感器網(wǎng)絡(luò)[2](wireless sensor networks,WSNs)的關(guān)鍵技術(shù),準(zhǔn)確地知道節(jié)點(diǎn)的位置信息有助于地理路由[3]、時空信息傳播[4]和協(xié)同信號處理[5]。目前,接收信號強(qiáng)度指示[6](received signal strength indication,RSSI)、到達(dá)角度[7](angle of arrival,AOA)、到達(dá)時間[8](time of arrival,TOA)和到達(dá)時間差[9](time difference of arrival,TDOA)是最常用的定位技術(shù)。其中,基于RSSI的定位技術(shù)由于實(shí)現(xiàn)簡單、無需增加額外的硬件設(shè)施,近幾年一直是研究熱點(diǎn)[10]。文獻(xiàn)[11]利用移動節(jié)點(diǎn)緩解室內(nèi)環(huán)境中RSSI的不穩(wěn)定性,提出了一種自適應(yīng)定位算法。文獻(xiàn)[12]通過提前建立RSSI與距離之間的映射關(guān)系,提出一種基于位置指紋的定位算法。文獻(xiàn)[13]將定位問題轉(zhuǎn)換為最大似然(maximum likelihood,ML)估計(jì)問題,采用迭代的算法求出目標(biāo)節(jié)點(diǎn)的位置信息。文獻(xiàn)[14]考慮最小化測量距離和真實(shí)距離之間的殘差,將定位問題轉(zhuǎn)換為最小二乘(least squares,LS)問題,采用線性逼近的方法進(jìn)行求解。目前提出的大部分算法均假設(shè)已經(jīng)提前知道所有錨節(jié)點(diǎn)的發(fā)射功率值,且假設(shè)所有節(jié)點(diǎn)的發(fā)射功率相同,很少有文獻(xiàn)考慮發(fā)射功率未知和發(fā)射功率不同的情況。
傳感節(jié)點(diǎn)一般會隨機(jī)部署在監(jiān)測區(qū)域中,由于網(wǎng)絡(luò)配置和節(jié)點(diǎn)硬件設(shè)施的原因,很難精確預(yù)知每個節(jié)點(diǎn)的發(fā)射功率大小。即使在網(wǎng)絡(luò)部署之初為每個節(jié)點(diǎn)都設(shè)置相同的發(fā)射功率值,但隨著節(jié)點(diǎn)電量的損耗、新節(jié)點(diǎn)的加入,每個節(jié)點(diǎn)的發(fā)射功率值都會發(fā)生變化。
本文提出了一種魯棒的、無需預(yù)知發(fā)射功率大小的定位優(yōu)化算法。該算法考慮節(jié)點(diǎn)發(fā)射功率未知的情況,將發(fā)射功率看成一個未知的變量參與到節(jié)點(diǎn)的定位過程中,利用線性逼近的方法將一個非線性的定位問題轉(zhuǎn)換為簡單的線性問題,并用LSM計(jì)算未知節(jié)點(diǎn)的坐標(biāo)。實(shí)測實(shí)驗(yàn)和仿真證明提出算法具有很好的定位性能。
考慮一個由N個錨節(jié)點(diǎn)和1個目標(biāo)節(jié)點(diǎn)組成的傳感網(wǎng)絡(luò),每個錨節(jié)點(diǎn)的位置已知,xi=[xi,yi],i=1,2,…,N。目標(biāo)節(jié)點(diǎn)隨機(jī)部署在網(wǎng)絡(luò)中,其位置未知,x=[x,y]。目標(biāo)節(jié)點(diǎn)向網(wǎng)絡(luò)中發(fā)出定位請求,鄰近的錨節(jié)點(diǎn)接收到對應(yīng)的定位請求后給目標(biāo)節(jié)點(diǎn)發(fā)送一個信標(biāo)報(bào)文,信標(biāo)報(bào)文中包括錨節(jié)點(diǎn)的ID和對應(yīng)的位置信息,錨節(jié)點(diǎn)的發(fā)送功率大小未知?;趯?shù)—正態(tài)路徑衰減模型,目標(biāo)節(jié)點(diǎn)x接收第i個錨節(jié)點(diǎn)xi的接收信號強(qiáng)度可以表示為
Pi=p0-10nPlg(di/d0)+mi,i=1,2,…,N
(1)
由式(1)可以看出,為了得到錨節(jié)點(diǎn)和目標(biāo)節(jié)點(diǎn)之間的距離估計(jì)值,需要估算出參數(shù)P0的值,其對應(yīng)的ML估計(jì)函數(shù)可以表示為
(2)
式(2)表示一個非線性非凸的優(yōu)化問題,且存在多個未知參數(shù),求出對應(yīng)的最優(yōu)解是一件非常困難的問題,具有很高的計(jì)算復(fù)雜度。
采用線性逼近的方法將節(jié)點(diǎn)定位問題規(guī)范化為一個線性優(yōu)化問題,很容易求出式(2)對應(yīng)的全局最優(yōu)解。由于參數(shù)P0未知,針對給出的系統(tǒng)模型,需要將式(1)中的功率P0看成一個未知參數(shù)參與對目標(biāo)節(jié)點(diǎn)的定位。為了求出目標(biāo)節(jié)點(diǎn)的坐標(biāo),首先對式(1)的兩邊進(jìn)行移項(xiàng), 并對等式的兩邊同時除以10np有
(3)
為了消除式(4)中的對數(shù)項(xiàng),采用一系列的數(shù)學(xué)運(yùn)算和變形,有
(4)
(5)
用向量形式可以表示為
(6)
采用LSM,可以求出未知變量的解,得出目標(biāo)節(jié)點(diǎn)的未知坐標(biāo)為LS=(ATA)-1ATB。
采用MATLAB進(jìn)行仿真,所有仿真實(shí)驗(yàn)都在一臺CPU為Intel Core i5、主頻為3 GHz,內(nèi)存大小為4 GB,1 600 MHz DDR3的臺式機(jī)上進(jìn)行。在一個20 m×20 m的區(qū)域內(nèi)隨機(jī)部署20個錨節(jié)點(diǎn),目標(biāo)節(jié)點(diǎn)隨機(jī)的部署在測試區(qū)域內(nèi)。為了減少測距誤差對定位性能的影響,對每個算法的仿真運(yùn)行100次。在仿真過程中,為了真實(shí)地反映實(shí)際的測試環(huán)境,對所有的RSSI信號添加均值為0,標(biāo)準(zhǔn)差為0.5的高斯隨機(jī)噪聲。仿真時設(shè)置發(fā)射功率P0在區(qū)間[-55,-25]dBm 之間進(jìn)行選擇。
發(fā)射功率未知時不同算法的定位性能如圖1所示。傳統(tǒng)的ML算法和LSM都假設(shè)已經(jīng)提前預(yù)知發(fā)射功率大小,其值為-35 dBm。當(dāng)真實(shí)發(fā)射功率和提前預(yù)知的發(fā)射功率相差不大時,提出算法和傳統(tǒng)的定位算法具有相似的定位性能。但隨著預(yù)知的發(fā)射功率和真實(shí)發(fā)射功率的差異變大,提出算法明顯優(yōu)于傳統(tǒng)的定位算法,這是因?yàn)楸疚乃惴▽l(fā)射功率作為一個未知參數(shù)參與定位,而傳統(tǒng)的算法采用錯誤的發(fā)射功率值,其測距將存在嚴(yán)重的誤差,且隨著功率間的差異變大,測距誤差會急劇增大,從而嚴(yán)重降低傳統(tǒng)算法的定位性能。
圖2為2個錨節(jié)點(diǎn)發(fā)射功率未知時,不同定位算法的定位性能。在仿真時,有2個錨節(jié)點(diǎn)的發(fā)射功率隨機(jī)選擇,其他錨節(jié)點(diǎn)的發(fā)射功率統(tǒng)一設(shè)置為-35 dBm。從圖中可以看出,本文算法的定位性能要明顯優(yōu)于傳統(tǒng)的定位算法,因?yàn)閭鹘y(tǒng)的定位算法假設(shè)所有的發(fā)射功率都相同,而提出算法將發(fā)射功率看成一個未知參數(shù),可以有效地減少發(fā)射功率未知對定位的影響。當(dāng)參與定位的信標(biāo)節(jié)點(diǎn)越來越多時,3種算法的定位性能均得到了改善。
圖1 不同算法在未知功率下的定位誤差
圖2 不同定位算法在存在2個未知功率節(jié)點(diǎn)時的定位誤差
在大小為5.9 m×3.7 m的實(shí)驗(yàn)室進(jìn)行了實(shí)測實(shí)驗(yàn),實(shí)驗(yàn)中的目標(biāo)節(jié)點(diǎn)和錨節(jié)點(diǎn)均采用CC2430的通信模塊,其對應(yīng)的工作頻率為2.4 GHz,發(fā)送和接收天線都采用1/4波長的全向天線。測試區(qū)域中存在電腦、實(shí)驗(yàn)桌、空調(diào)等物品,在房間內(nèi)部署6個錨節(jié)點(diǎn)和1個目標(biāo)節(jié)點(diǎn),節(jié)點(diǎn)之間通過ZigBee協(xié)議組成自組網(wǎng)絡(luò)實(shí)現(xiàn)相互通信。每次實(shí)驗(yàn)時均給錨節(jié)點(diǎn)設(shè)置不同的發(fā)射功率,并記錄不同發(fā)射功率下,距離1 m時的接收功率值,測試結(jié)果為當(dāng)發(fā)射功率Pt分別為0,-1,-3,-5,-7,-10,-15 dBm時,對應(yīng)的平均接收功率P0分別為-37.24,-38.68,-39.5,-41.56,-44.17,-46.47,-53.74 dBm。
室內(nèi)環(huán)境下不同算法的定位性能如圖3所示。對于室內(nèi)測試環(huán)境,仍然假設(shè)ML算法和LSM已經(jīng)預(yù)知發(fā)射功率大小,其值為-35 dBm。從圖中可以看出,由于本文算法考慮了發(fā)射功率未知的情況,其對應(yīng)的定位性能明顯優(yōu)于傳統(tǒng)的ML和LSM。隨著預(yù)知功率值和真實(shí)功率值的差異變大,2種傳統(tǒng)定位算法的誤差快速增大,而本文算法依然具有很好的定位性能。通過和圖1中的仿真結(jié)果進(jìn)行比較,發(fā)現(xiàn)在真實(shí)的室內(nèi)環(huán)境中所有算法的定位性能要比仿真環(huán)境中的定位性能差。這是因?yàn)樵谡鎸?shí)的室內(nèi)環(huán)境中,信號受障礙物的反射、折射等的影響,其RSSI值的變化要明顯大于仿真中RSSI值的變化。
圖3 室內(nèi)環(huán)境下不同算法在未知功率的定位誤差
提出了一種魯棒的定位算法,仿真和實(shí)驗(yàn)證明提出算法在發(fā)射功率未知時亦能提供很好的定位性能,其定位性能要明顯優(yōu)于傳統(tǒng)的ML和LSM。