徐莎莎, 周 芳
(1.桂林電子科技大學(xué)廣西無線寬帶通信與信號處理重點(diǎn)實驗室, 桂林 541004; 2.桂林電子科技大學(xué)生命與環(huán)境科學(xué)學(xué)院, 桂林 541004)
無線傳感器網(wǎng)絡(luò)(wireless sensor network, WSN)是由大量的傳感器節(jié)點(diǎn)構(gòu)成的網(wǎng)絡(luò)[1],可以對指定環(huán)境進(jìn)行實時監(jiān)測。因其低成本、低功耗、體積小、多功能等諸多優(yōu)點(diǎn),無線傳感器網(wǎng)絡(luò)已經(jīng)被廣泛地應(yīng)用于醫(yī)療(病人檢測)、環(huán)境(大鴨島實驗)、家庭(用水檢測)等領(lǐng)域[2-3]。其中大部分應(yīng)用場景需要結(jié)合節(jié)點(diǎn)的位置信息,才能提供有效的數(shù)據(jù)信息。
目前,為了經(jīng)濟(jì)有效地實現(xiàn)WSN中的節(jié)點(diǎn)定位,通常在WSN中設(shè)置少部分位置已知的傳感器節(jié)點(diǎn),這部分位置已知的傳感器節(jié)點(diǎn)安裝了可以獲取位置信息的全球定位系統(tǒng)(global positioning system, GPS)或中國北斗導(dǎo)航衛(wèi)星系統(tǒng)(Beidou navigation satellite system, BDS)[4],這些節(jié)點(diǎn)稱為已知位置(location aware, LA)節(jié)點(diǎn),又稱錨節(jié)點(diǎn),而其他需要定位的傳感器節(jié)點(diǎn)稱為未知位置(location unaware, LU)節(jié)點(diǎn)[2]。實現(xiàn)WSN中的節(jié)點(diǎn)定位還需獲得測距信息,測距信息可以通過到達(dá)角(angle of arrival, AOA)、接收信號強(qiáng)度(received signal strength, RSS)、到達(dá)時間(time of arrival, TOA)和到達(dá)時間差(time difference of arrival, TDOA)等方式獲得[5]。最后,結(jié)合錨節(jié)點(diǎn)位置信息和測距信息,采用協(xié)作定位方法定位LU節(jié)點(diǎn)[2]。
現(xiàn)有的大多數(shù)定位算法都假定錨節(jié)點(diǎn)位置準(zhǔn)確,以便估計LU節(jié)點(diǎn)位置[2,6-8]。但在許多實際情況下,可能無法準(zhǔn)確知道錨節(jié)點(diǎn)位置,這種不確定性反過來會顯著地影響估計傳感器節(jié)點(diǎn)位置的質(zhì)量,水下WSN中的節(jié)點(diǎn)定位問題就是一個顯著例子[9]。水下WSN節(jié)點(diǎn)分為三類:LU節(jié)點(diǎn)、錨節(jié)點(diǎn)和參考節(jié)點(diǎn),錨節(jié)點(diǎn)和部分已經(jīng)定位的LU節(jié)點(diǎn)可以組成參考節(jié)點(diǎn)。水下WSN中的節(jié)點(diǎn)定位目標(biāo)是:利用錨節(jié)點(diǎn)和參考節(jié)點(diǎn)信息,采用協(xié)作定位方法定位LU節(jié)點(diǎn)。但射頻波在水下會發(fā)生嚴(yán)重衰減,導(dǎo)致錨節(jié)點(diǎn)位置易出錯和測距誤差增大,從而產(chǎn)生較差的定位效果[10]。因此,考慮WSN中存在錨節(jié)點(diǎn)位置誤差是一項很有意義的工作。
現(xiàn)有的定位算法基于運(yùn)算方式不同可劃分為兩種。一種是集中式定位算法,集中式定位算法的運(yùn)算特點(diǎn)是:融合中心進(jìn)行位置估計時,需要獲取所有范圍內(nèi)傳感器節(jié)點(diǎn)之間的連接信息。Biswas等[8]將定位問題歸結(jié)為集中式優(yōu)化問題,然后,采用半正定規(guī)劃松弛的方法,通過引入正則項減少優(yōu)化變量的個數(shù),并最終通過梯度下降法細(xì)化LU節(jié)點(diǎn)的位置,從而使得定位精度有所提高。但是,集中式定位算法隨著WSN規(guī)模增大,通信代價也會變大,帶寬會消耗過快,會導(dǎo)致整個WSN壽命縮短,無法適用于較大規(guī)模WSN。另一種是分布式定位算法,與集中式定位算法的運(yùn)算方式相比,分布式定位算法的運(yùn)算特點(diǎn)是:將處理器分布到每個傳感器節(jié)點(diǎn)上,采用局部化處理的方式,更高效節(jié)能,更易擴(kuò)展到較大規(guī)模WSN。Srirangarajan等[1]采用二階錐規(guī)劃松弛技術(shù)將定位問題轉(zhuǎn)化為凸優(yōu)化的問題,設(shè)計出了一種分布式算法,可適用于大規(guī)模WSN,但是該算法對于網(wǎng)絡(luò)邊界節(jié)點(diǎn)不能夠很好定位,且需要更多的錨節(jié)點(diǎn)信息。Soares等[11]采用松弛非凸的最大似然估計條件,提出了一種簡單凸松弛算法,并且每個節(jié)點(diǎn)采用梯度法達(dá)到收斂,從而降低了WSN的通信量。但是該算法要求LU節(jié)點(diǎn)在錨節(jié)點(diǎn)凸包之內(nèi)才能保證良好定位效果。Zhou等[12]將WSN定位問題考慮成箱型約束下的歐式距離優(yōu)化問題,提出了一種快速矩陣投影算法,有效地提高節(jié)點(diǎn)定位的速度。但是,該算法會使得誤差累積和傳播。上述定位算法具有很強(qiáng)適用性,易推廣到處理錨節(jié)點(diǎn)位置誤差影響定位精度這一優(yōu)化問題。
為了克服錨節(jié)點(diǎn)位置誤差影響定位精度這一問題,提出了基于交替修正牛頓法的分布式定位算法。首先,可將WSN看作一個無向圖,特定區(qū)域內(nèi)部署的傳感器節(jié)點(diǎn)之間看作有一條邊相連接,能相互通信。然后,將整個無向圖劃分成部分重疊的子圖,這樣全局的定位問題被劃分成一系列的子圖內(nèi)定位問題。對于子圖內(nèi)定位問題的求解,提出了基于交替修正牛頓法的定位算法,其算法過程包含三個步驟:首先,LU節(jié)點(diǎn)根據(jù)不準(zhǔn)確的錨節(jié)點(diǎn)和測距信息估計其位置,然后對部分重疊子圖內(nèi)的LU節(jié)點(diǎn)融合求平均,得到初步估計值;其次,不準(zhǔn)確的錨節(jié)點(diǎn)根據(jù)LU節(jié)點(diǎn)初步估計值和測距信息更新其位置,再對部分重疊子圖內(nèi)的錨節(jié)點(diǎn)融合求平均,得到相對準(zhǔn)確的錨節(jié)點(diǎn)位置;最后,LU節(jié)點(diǎn)再根據(jù)相對準(zhǔn)確的錨節(jié)點(diǎn)位置和測距信息重復(fù)第一步步驟,得到最終估計值。仿真結(jié)果表明,當(dāng)WSN存在錨節(jié)點(diǎn)位置誤差時,相比較于現(xiàn)有的分布式定位算法,節(jié)點(diǎn)定位效果更好,且易適用于較大規(guī)模的WSN。
N個傳感器節(jié)點(diǎn)被隨機(jī)分布在R2維空間的特定區(qū)域內(nèi),其中,有m個LA節(jié)和n個LU節(jié)點(diǎn)。所有準(zhǔn)確位置的LA 節(jié)點(diǎn)表示為a1,a2,…,am,其在k點(diǎn)位置表示為ak=[xk,yk]T,所有LU節(jié)點(diǎn)表示為x1,x2,…,xn,其在i點(diǎn)位置表示為xi=[xi,yi]T。利用RSS測距技術(shù)能夠測出傳感器節(jié)點(diǎn)之間的距離[13-14],但是,由于在此過程中易受到多徑衰落等不確定因素影響,測得的數(shù)據(jù)往往是帶噪聲的。因此,假設(shè)LU節(jié)點(diǎn)xi和LU節(jié)點(diǎn)xj之間帶噪聲的歐幾里得距離為dij,且dij=dji,LU節(jié)點(diǎn)xi和LA節(jié)點(diǎn)ak之間帶噪聲的歐幾里得距離為dik。通常,在特定區(qū)域內(nèi),一定數(shù)量的傳感器節(jié)點(diǎn)因受到功率的限制,不一定能夠正常通信,因此,不是所有的傳感器節(jié)點(diǎn)之間的歐幾里得距離都可測得的,本文假設(shè)可測距的LU節(jié)點(diǎn)xi和LU節(jié)點(diǎn)xj的節(jié)點(diǎn)集合N為(i,j)∈N,可測距的LU節(jié)點(diǎn)xi和LA節(jié)點(diǎn)ak的節(jié)點(diǎn)集合M為(i,k)∈M[2,8]。wij和wik為根據(jù)帶噪距離的反比取得的歸一化權(quán)重[2,8]。這樣可以將WSN全局定位問題歸結(jié)為無約束優(yōu)化問題[2,8],可表示為
(1)
基于第1節(jié)定位問題的描述,正常通信的傳感器節(jié)點(diǎn)之間是可以獲取距離信息,根據(jù)距離信息,可以用無向圖G=(V,E)表示W(wǎng)SN,其中,V(G)為傳感器節(jié)點(diǎn)的位置,E(G)為傳感器節(jié)點(diǎn)之間的連通性?;趥鞲衅鞴?jié)點(diǎn)之間的連通性E(G),將LU節(jié)點(diǎn)以及和其相連接的鄰居節(jié)點(diǎn)所在的區(qū)域看作一個子圖,從而將WSN表示的無向圖劃分成n個部分重疊的子圖,重新建立起可以獨(dú)立求解的子圖內(nèi)定位問題;然后,采用基于交替修正牛頓法的分布式定位算法,對子圖內(nèi)定位問題進(jìn)行優(yōu)化求解和局部融合。接下來,將分別從劃分子圖、子圖內(nèi)定位問題、子圖內(nèi)優(yōu)化求解、算法總結(jié)進(jìn)行詳細(xì)描述。
通過對式(1)的觀察可知,LU節(jié)點(diǎn)位置只與通信半徑R范圍內(nèi)的鄰居節(jié)點(diǎn)和節(jié)點(diǎn)之間的距離有關(guān)[2]。因此,將LU節(jié)點(diǎn)視作中心節(jié)點(diǎn),將與其構(gòu)成鄰居的節(jié)點(diǎn)組成無向圖G的子圖,這樣,有n個LU中心節(jié)點(diǎn)則可劃分成n個部分重疊的子圖,這樣做使得WSN的通信量和計算量能得到有效地降低,提高WSN的整體擴(kuò)展性,使其易適用于較大規(guī)模的WSN。如圖1所示,特定區(qū)域內(nèi)隨機(jī)分布部分傳感器節(jié)點(diǎn),以LU節(jié)點(diǎn)為中心,R為半徑畫一個虛線圓,一個虛線圓則表示一個子圖。
(2)
式(2)中:Gs=(Vs,Es)為第s個子圖,s=1,2,…,n,其中,Vs為第s個子圖Gs內(nèi)傳感器節(jié)點(diǎn)的集合,Es為第s個子圖Gs內(nèi)傳感器節(jié)點(diǎn)之間邊的集合。
圖1 子圖劃分示意圖Fig.1 Schematic diagram of subgraphs division
基于子圖Gs=(Vs,Es)包含的相關(guān)信息,通過最小化鄰居節(jié)點(diǎn)之間距離誤差的加權(quán)和[2,8],將式(1)重新構(gòu)建為一個無約束的子圖內(nèi)定位優(yōu)化問題,可表示為
(3)
式(3)中:xsi為第s個子圖內(nèi)第i個LU節(jié)點(diǎn)位置,xsi=[xsi,ysi]T;xsj為第s個子圖內(nèi)第j個LU節(jié)點(diǎn)位置,xsj=[xsj,ysj]T;通常對流層誤差、電離層誤差、衛(wèi)星鐘差等誤差容易影響錨節(jié)點(diǎn)位置[14],因此,獲取的錨節(jié)點(diǎn)位置很有可能是帶噪聲的,且不準(zhǔn)確的,其帶噪聲模型如式(4)所示[1],psk為第s個子圖內(nèi)第k個LA節(jié)點(diǎn)位置,psk=[xsk,ysk]T;Ns為第s個子圖內(nèi)可測距的LU節(jié)點(diǎn)xsi和LU節(jié)點(diǎn)xsj的節(jié)點(diǎn)集合;Ms為第s個子圖內(nèi)可測距的LU節(jié)點(diǎn)xsi和LA節(jié)點(diǎn)psk的節(jié)點(diǎn)集合;dsisj為子圖內(nèi)LU節(jié)點(diǎn)xsi和LU節(jié)點(diǎn)xsj之間帶噪聲的歐幾里得距離;dsisk為子圖內(nèi)LU節(jié)點(diǎn)xsi和LA節(jié)點(diǎn)psk之間帶噪聲的歐幾里得距離,其帶噪聲模型分別如式(5)、式(6)所示;wsisj和wsisk為子圖內(nèi)基于傳感器節(jié)點(diǎn)之間帶噪距離的反比取得的歸一化權(quán)重[2],其權(quán)重值可根據(jù)RSS測距技術(shù)特點(diǎn)得到,測距時,兩個節(jié)點(diǎn)距離相距越遠(yuǎn),噪聲就越容易干擾到無線信號,得到的數(shù)據(jù)可信度越低,賦予的權(quán)重值越小,反之權(quán)重值越大[2,8],wsisj和wsisk分別如式(7)、式(8)所示。
dsisj=‖xsi-xsj‖2|1+τ1εsisj|
(4)
dsisk=‖xsi-psk‖2|1+τ1εsisk|
(5)
psk=ask|1+τ2εsk|
(6)
(7)
(8)
式中:ask為錨節(jié)點(diǎn)真實位置;τ1∈[0,1]為錨節(jié)點(diǎn)位置噪聲因子,作用是控制錨節(jié)點(diǎn)位置的噪聲強(qiáng)度;τ2∈[0,1]為距離噪聲因子,作用是控制測距之間的噪聲強(qiáng)度;εsisj、εsisk和εsk為隨機(jī)噪聲,服從正態(tài)的隨機(jī)變量N(0,1)。
(9)
(10)
式中:
A=(ei1-ej1)(ei1-ej1)T+(ei2-ej2)(ei2-ej2)T
(11)
(12)
(13)
(14)
(15)
則目標(biāo)函數(shù)式(3)可以表示為
(16)
當(dāng)WSN中存在錨節(jié)點(diǎn)位置誤差時,LU節(jié)點(diǎn)基于不準(zhǔn)確的錨位置和測距信息,采用協(xié)作定位算法定位出來的LU節(jié)點(diǎn)位置會估計誤差較大。采用基于交替修正牛頓法的分布式傳感器定位算法,確保當(dāng)WSN存在錨節(jié)點(diǎn)位置誤差時,能夠更高精度地完成定位問題。基于交替修正牛頓法的分布式傳感器定位算法包括:子圖內(nèi)估計LU節(jié)點(diǎn)、子圖內(nèi)更新LA節(jié)點(diǎn)、子圖內(nèi)融合。
2.3.1 估計LU節(jié)點(diǎn)
由式(16)可知,歸結(jié)出來的子圖內(nèi)定位問題是關(guān)于LU節(jié)點(diǎn)位置xs和LA節(jié)點(diǎn)位置ps的高度非線性非凸的函數(shù),因此,直接求解會比較比較困難。對此,因三邊定位算法易于實現(xiàn)和維護(hù),已被廣泛應(yīng)用于傳感器定位領(lǐng)域[2,15-16],采用三邊定位算法得到一個初始值,以便可以快速地得到目標(biāo)函數(shù)的局部最優(yōu)解。然后,對于子圖內(nèi)定位問題,采用基于單位步長的交替修正牛頓法進(jìn)行優(yōu)化求解。
首先,在迭代優(yōu)化之前,對式(16)進(jìn)行一階求導(dǎo)首先,對式(16)一階和二階求導(dǎo),可得?f(xs)和?2f(xs)的表達(dá)式分別為
(17)
(18)
式中:Hessian矩陣?2f(xs)不一定是正定的,無法保證算法中的牛頓方向為下降方向,算法可能會失敗,解決Hessian矩陣?2f(xs)非正定基本思想是:構(gòu)建正定的?2f(xs),可表示為
DTps)(2Bxs-Cps-DTps)T]
[1]Laufer,B.&P.,Nation.(1999).A Vocabulary Size Test of Controlled Productive Ability,Language Testing,16(1).33-51.
(19)
從而能使用凸優(yōu)化的求解方法進(jìn)行優(yōu)化求解,采用單位步長的修正牛頓算法估計LU節(jié)點(diǎn)。
算法1子圖內(nèi)估計LU節(jié)點(diǎn)
輸入:xs0。
輸出:xsi+1。
步驟1使用三邊定位算法得到粗略的初始值xs0,設(shè)置i=0,表示第i次迭代,ω=1,步長ω為單位步長,迭代終止條件δ=1×10-9。
步驟2求目標(biāo)函數(shù)式(16)的梯度向量?f(xsi)和修正后的Hessian矩陣?2f(xsi)。
步驟3計算搜索方向gsi=-?2f(xsi)-1×?f(xsi)。
步驟4沿著搜索方向gsi進(jìn)行一維線性搜索,則xsi+1=xsi+ωgsi,不斷更新子圖內(nèi)LU節(jié)點(diǎn)位置。
當(dāng)WSN存在錨節(jié)點(diǎn)位置誤差時,第2.3.1節(jié)子圖內(nèi)LU節(jié)點(diǎn)根據(jù)不準(zhǔn)確的LA節(jié)點(diǎn)位置和測距信息,估計出來的LU節(jié)點(diǎn)坐標(biāo)值存在較大的偏差。因此,將設(shè)計位置不準(zhǔn)確的LA節(jié)點(diǎn)根據(jù)LU節(jié)點(diǎn)初步估計值和測距信息更新其位置,使得LA節(jié)點(diǎn)位置誤差逐漸減小,從而得到相對準(zhǔn)確的LA節(jié)點(diǎn)位置。這樣,第2.3.1節(jié)LU節(jié)點(diǎn)再根據(jù)相對準(zhǔn)確的LA節(jié)點(diǎn)位置和測距信息進(jìn)行估計時,可以減小估計偏差。
首先,對式(16)先進(jìn)行一階求導(dǎo),可得?f(ps)的表達(dá)式為
(20)
然后,再進(jìn)行二階求導(dǎo),可得?2f(ps)的表達(dá)式為
(21)
(22)
然后,同2.3.1節(jié)一樣采用基于單位步長的修正牛頓法迭代更新LA節(jié)點(diǎn)。
算法2子圖內(nèi)更新LA節(jié)點(diǎn)。
輸入:ps0。
輸出:psk+1。
步驟1根據(jù)2.3.1節(jié)優(yōu)化求解的LU節(jié)點(diǎn)估計值,采用三邊定位算法,粗略得到LA節(jié)點(diǎn)的估計值ps0,設(shè)k=0,表示第k次迭代,α=1,步長α為單位步長,迭代終止條件η=1×10-9。
步驟2求目標(biāo)函數(shù)式(16)的?f(psk)和修正后的?2f(psk)。
步驟3計算搜索方向dsk=-?2f(psk)-1×?f(psk)。
步驟4沿著搜索方向更新子圖內(nèi)LA節(jié)點(diǎn)位置,psk+1=psk+αdsk。
2.3.3 子圖融合
劃分子圖時,將WSN表示的無向圖G=(V,E),以LU為中心劃分成n個部分重疊的子圖Gs=(Vs,Es),s=1,2,…,n。如圖1所示,各個子圖內(nèi)在獨(dú)立優(yōu)化求解節(jié)點(diǎn)位置時,不同子圖內(nèi),同一個節(jié)點(diǎn)被估計出來的位置都是不相同的,這將導(dǎo)致某個子圖內(nèi)信息利用較少,也導(dǎo)致優(yōu)化求解的節(jié)點(diǎn)位置誤差較大。為了有效地降低這部分誤差,促進(jìn)子圖之間的協(xié)作定位,提高整體定位精度,采用融合求平均的方式,對該節(jié)點(diǎn)在不同子圖內(nèi)的節(jié)點(diǎn)位置求平均,即
(23)
(24)
當(dāng)WSN中存在錨節(jié)點(diǎn)位置誤差時,所提的分布式定位算法中,首先,將LU節(jié)點(diǎn)視為中心節(jié)點(diǎn),以及其鄰居節(jié)點(diǎn)所在的區(qū)域為子圖,將全局的定位問題重新構(gòu)建為多個子圖內(nèi)定位問題。一方面,對于子圖內(nèi)定位問題的求解,采取交替修正牛頓法進(jìn)行優(yōu)化求解,通過不斷地交替估計LU節(jié)點(diǎn)位置和更新LA節(jié)點(diǎn)位置,使得LA節(jié)點(diǎn)位置誤差逐漸地減小,進(jìn)而可以有效地降低LU節(jié)點(diǎn)位置估計誤差。在算法迭代開始之前,采用易于維護(hù)和實現(xiàn)的三邊定位算法得到LU節(jié)點(diǎn)初始位置,目的是確保估計節(jié)點(diǎn)位置時能不斷地接近局部最優(yōu)解,確保搜索方向是沿著子圖內(nèi)目標(biāo)函數(shù)的下降方向,并使得子圖內(nèi)目標(biāo)函數(shù)能夠盡快地收斂。另一方面,同一個節(jié)點(diǎn)會被包含在多個子圖內(nèi),會優(yōu)化求解得到不同的估計位置,因此,對部分重疊子圖內(nèi)的節(jié)點(diǎn)采用融合求平均的方式,在一定程度上,對子圖內(nèi)定位誤差較大的節(jié)點(diǎn)進(jìn)行修正,使其獲得一個較好的初始值參與下一步的迭代??傊ㄟ^不斷地重復(fù)對子圖內(nèi)節(jié)點(diǎn)優(yōu)化求解和融合求平均這兩個步驟,可以有效地利用子圖之間協(xié)作定位的特點(diǎn),確保當(dāng)WSN存在錨節(jié)點(diǎn)位置誤差時,能夠更高精度的完成定位任務(wù)。
綜上所述,WSN存在錨節(jié)點(diǎn)位置誤差的情況下,基于交替修正牛頓法的分布式定位算法如下。
步驟1將n個LU節(jié)點(diǎn),m個LA節(jié)點(diǎn)隨機(jī)部署在[-0.5,0.5]2的單位正方形區(qū)域內(nèi),通信半徑設(shè)為R,把WSN以LU節(jié)點(diǎn)為中心劃分n個部分重疊的子圖,n個子圖內(nèi)分別可以進(jìn)行分布式運(yùn)算。令t=0,終止條件β=1×10-2。
為了表明本文算法的定位性能,給出了4個仿真實驗。使用軟件MATLAB 2017b來仿真實驗,并運(yùn)行在Intel i7-7700主頻3.6 GHz的PC。為表明算法的魯棒性,所有的仿真實驗都是5次取平均,定位區(qū)域均為[-0.5,0.5]2。為了客觀真實地評估所提的分布式定位算法的性能,采用與文獻(xiàn)[8,12,15]的評價指標(biāo),即根均方距離(root mean square distance, RMSD),其表達(dá)式為
(25)
圖2 不同LA節(jié)點(diǎn)數(shù)目下各算法的平均RMSDFig.2 The average RMSD of each algorithm under different number of LA nodes
為了研究WSN存在錨節(jié)點(diǎn)位置誤差時,錨節(jié)點(diǎn)數(shù)目在WSN中所占比例對定位精度的影響,本文算法與文獻(xiàn)[1,11-12]中的分布式定位算法做對比實驗。本次實驗中,設(shè)置節(jié)點(diǎn)總數(shù)N=200,錨節(jié)點(diǎn)位置噪聲因子τ1=0.10,距離噪聲因子τ2=0.10,WSN中通信半徑R=0.30,將WSN中錨節(jié)點(diǎn)所占比例p從0.10增加到0.30。實驗結(jié)果如圖2所示,可以看出,隨著WSN中錨節(jié)點(diǎn)數(shù)目所占比例p的增加,本文算法和文獻(xiàn)[1,11-12]算法的RMSD均在降低,定位精度得到提高。但是與文獻(xiàn)[1,11-12]算法相比,本文算法在不同錨節(jié)點(diǎn)所占比例下,RMSD明顯小于對比的三篇文獻(xiàn)所提算法的RMSD,本文算法的定位精度更高。分析其原因是:隨著WSN中的錨節(jié)點(diǎn)數(shù)目增多,LU節(jié)點(diǎn)會獲得更多鄰居的相關(guān)信息,從而得到一個更好的初始值參與下一步迭代,使得定位精度得到提高。這意味著:當(dāng)大規(guī)模WSN存在錨節(jié)點(diǎn)位置誤差時,本文算法可以使用較少的錨節(jié)點(diǎn)數(shù)目實現(xiàn)更好的定位效果,有效地降低了WSN的部署成本。
為了研究WSN存在錨節(jié)點(diǎn)位置誤差時,WSN中通信半徑R對定位精度的影響,本文算法與文獻(xiàn)[1,11-12]中的分布式定位算法做對比實驗。本次實驗中,設(shè)置節(jié)點(diǎn)總數(shù)N=200,錨節(jié)點(diǎn)位置噪聲因子τ1=0.10,距離噪聲因子τ2=0.10,WSN中的錨節(jié)點(diǎn)所占比例p=0.15,將WSN中通信半徑R從0.22增加0.30。實驗結(jié)果如圖3所示,可以看出,隨著WSN中通信半徑R增加,本文算法和文獻(xiàn)[1,11-12]算法的RMSD均在增大,定位精度均在降低。但是與文獻(xiàn)[1,11-12]算法相比,本文算法的RMSD在不同R下始終保持最小,本文算法的定位精度高于文獻(xiàn)[1,11-12]算法。分析其原因是:隨著通信半徑R增加,WSN的通信量和計算量也會隨之增大,相應(yīng)的也會影響定位性能。這意味著:當(dāng)大規(guī)模WSN存在錨節(jié)點(diǎn)位置誤差時,本文算法可以使用較小通信半徑R實現(xiàn)更好的定位效果,能夠減少傳感器通信時的能量消耗,提升整體WSN的壽命。
為了研究WSN存在錨節(jié)點(diǎn)位置誤差時,不同傳感器網(wǎng)絡(luò)規(guī)模情況下的定位效果,固定WSN中錨節(jié)點(diǎn)所占比例p=0.15,錨節(jié)點(diǎn)位置噪聲因子τ1=0.10,距離噪聲因子τ2=0.10,本文算法與文獻(xiàn)[1,11-12]算法在改變總節(jié)點(diǎn)數(shù)目N,通信半徑R下進(jìn)行仿真實驗,仿真參數(shù)具體設(shè)置和實驗結(jié)果如表1所示。分析可知:隨著WSN中總節(jié)點(diǎn)數(shù)目N不斷地增大,在相同的仿真參數(shù)下,本文算法與文獻(xiàn)[1,11-12]算法相比較,本文算法的RMSD更小,定位精度更高,進(jìn)而定位性能更好。這表明當(dāng)大規(guī)模WSN存在錨節(jié)點(diǎn)位置誤差時,本文算法具有較好的擴(kuò)展性,能夠有效地應(yīng)用于較大規(guī)模的WSN,并且具有較高的定位精度。
圖3 不同通信半徑下各算法的平均RMSDFig.3 The average RMSD of each algorithm under different communication radius
表1 各定位算法5次仿真所得的定位結(jié)果Table 1 The localization results obtained from 5 simulations of each localization algorithm
圖4 不同算法在隨機(jī)拓?fù)渲械慕Y(jié)果Fig.4 The results of different algorithms in random topology
為了研究節(jié)點(diǎn)分布的方式以及僅存在錨節(jié)點(diǎn)位置誤差時對定位精度的影響。仿真參數(shù)設(shè)置如下:定位區(qū)域為[-0.5,0.5]2,節(jié)點(diǎn)數(shù)目N=100,錨節(jié)點(diǎn)所占比例p=0.15,錨節(jié)點(diǎn)位置噪聲因子τ1=0.10,通信半徑R=0.40,并將實驗結(jié)果可視化。本次實驗與文獻(xiàn)[1,11]算法相比較,仿真結(jié)果如圖4、圖5所示,圖4展示的是傳感器節(jié)點(diǎn)隨機(jī)分布在指定區(qū)域,圖5展示的是傳感器節(jié)點(diǎn)分布在C型拓?fù)渲小膶嶒灲Y(jié)果可以看出,在不同的分布形式,相同的仿真參數(shù)下,本文算法相比較文獻(xiàn)[1,11]算法,對分布區(qū)域的邊界節(jié)點(diǎn)展現(xiàn)較好的定位效果,RMSD都比較低,有較高的定位精度。這表明當(dāng)WSN存在錨節(jié)點(diǎn)位置誤差時,本文算法能在不同分布式形式下展現(xiàn)較好的定位效果。
圖5 不同算法在C型拓?fù)渲械慕Y(jié)果Fig.5 The results of different algorithms in type C topology
為了克服錨節(jié)點(diǎn)位置誤差影響定位精度這一問題,提出一種基于交替修正牛頓法的分布式定位算法。首先,將WSN劃分為多個部分重疊的子圖,建立可以獨(dú)立求解得到子圖內(nèi)優(yōu)化問題。然后,通過本文算法對子圖內(nèi)定位問題進(jìn)行優(yōu)化求解。仿真實驗表明,本文算法在WSN存在錨節(jié)點(diǎn)位置誤差的情況下,能對較大規(guī)模WSN實現(xiàn)精確定位,可見本文算法具備一定的優(yōu)勢,可以為無線傳感器網(wǎng)絡(luò)在環(huán)境科學(xué)、水下定位等領(lǐng)域提供技術(shù)上的支持。后續(xù)工作會在提高定位精度的同時,考慮異步的分布式算法。