侯森林,杜秀娟,李梅菊,黃科軍
(1.青海師范大學(xué) 計算機(jī)學(xué)院,西寧 810008; 2.青海省物聯(lián)網(wǎng)重點實驗室,西寧 810008)
隨著海上絲綢之路的興起,國家對大海探索和關(guān)注日趨增多,水下無線傳感器網(wǎng)絡(luò)(Underwater Wireless Sensor Network,UWSN)得到了越來越多的關(guān)注。作為無線傳感器網(wǎng)絡(luò)(Wireless Sensor Networks,WSN)在水下的延伸,UWSN在海洋農(nóng)業(yè)、海礦產(chǎn)勘探、可燃冰能源開發(fā)等方面具有廣泛的應(yīng)用前景,已經(jīng)成為該領(lǐng)域研究熱點[1,2]。但水下環(huán)境復(fù)雜多變,與WSN有著較大差異。陸地WSN采用電磁波通信,而由于海水的吸收作用,電磁波在水下傳輸能量衰減嚴(yán)重,且頻率越高,衰減越多[3]。實驗表明:使用IEEE 802.15.4(868 MHz、915 MHz、2.4 GHz)或IEEE 802.11b/g(2.4 GHz)協(xié)議的節(jié)點發(fā)送的電磁波在水下的傳播距離為0.5 m~1.0 m。因此,電磁波無法作為信息傳輸媒介在水下使用,取而代之的是聲波。聲波傳播1 000 m需要670 ms,其傳輸速度遠(yuǎn)小于電磁波傳播速度,比電磁波的時延高了5個數(shù)量級。同時,水的壓力、溫度和礦物質(zhì)導(dǎo)致了水環(huán)境的高時空變特性,UWSN的時鐘同步和測距技術(shù)比陸地上的更為復(fù)雜,定位更為困難[4]。傳感器節(jié)點受到水流動的影響,位置變化不定,需要周期性地更新節(jié)點位置,一般由船舶飛機(jī)等隨機(jī)部署在水域,其部署密度有疏有密。因此,陸地傳感器成熟的定位方法不能直接應(yīng)用到UWSN中。在對深海不同深度環(huán)境的監(jiān)測中,網(wǎng)絡(luò)節(jié)點是部署在三維的海水中。與二維的定位技術(shù)相比,水下三維傳感網(wǎng)絡(luò)定位面臨巨大挑戰(zhàn),針對三維環(huán)境定位算法的研究至關(guān)重要[5]。水的流動以及水下復(fù)雜地理和生物環(huán)境導(dǎo)致傳感器節(jié)點位置變幻不定,數(shù)據(jù)傳輸?shù)碾y度較大。同時,水下傳感器節(jié)點通常使用蓄電池,更換和充電不方便。因此,在研究UWSN時,還應(yīng)優(yōu)先考慮節(jié)能和均衡節(jié)點的能量消耗。
監(jiān)測數(shù)據(jù)消息若無位置信息,則沒有意義,因此需要對隨機(jī)布放的傳感器節(jié)點的位置信息進(jìn)行定位。水聲通信具有長時延、高時空變等特性,導(dǎo)致UWSN的時鐘同步存在較大困難。因此,本文提出一種采用無需時間同步且對時延不敏感非對稱往返測距(Round-trip Time of Flight,RTOF)算法獲得節(jié)點之間的距離[6],進(jìn)而采用水下傳感器定位(Underwater Sensor Positioning,USP)算法將之映射到Sink節(jié)點的平面[7],由Sink節(jié)點使用三邊定位算法計算得出節(jié)點的位置集合,隨后用加權(quán)迭代最小二乘法對位置集合進(jìn)行擬合。
本文對節(jié)點定位中常見的專業(yè)術(shù)語進(jìn)行定義。
定位覆蓋率:能夠定位的節(jié)點數(shù)量與節(jié)點總數(shù)之比。尚沒有一種定位算法能確保所有未知節(jié)點都能實現(xiàn)精確的定位,定位覆蓋率受具體算法和信標(biāo)數(shù)的影響,在某種程度上決定了節(jié)點的定位效果[8]。
定位精度:表示節(jié)點定位的準(zhǔn)確程度,與定位誤差有關(guān),誤差越大,精度越小。定位精度是衡量節(jié)點定位效果的主要指標(biāo)。在軍事行動中,如果定位不準(zhǔn)確,誤差過大,后果不堪設(shè)想。通常用絕對精度和相對精度2種定位精度表現(xiàn)形式[8]。在第4節(jié)的仿真實驗中,本文采用絕對值衡量定位精度。
能耗誤差積(EEP):能耗與平均誤差值的積[7],用來評價算法在能耗和定位精度兩方面的綜合性能,計算公式如下:
EEP=E·averageLocationError
(1)
在計算二維節(jié)點的坐標(biāo)時,通常采用三角測量法、三邊測量法、模式識別等方法。根據(jù)是否要求距離本文將定位算法分為兩大類:距離相關(guān)定位和距離無關(guān)定位算法[9]。由于通過距離無關(guān)獲得的定位得出的位置信息不準(zhǔn)確,因此本文使用與距離有關(guān)的定位算法。測距常用算法有到達(dá)時間(TOA)算法、到達(dá)時間差(TDOA)算法、到達(dá)角度(AOA)算法、接收信號強(qiáng)度指示(RSSI)算法、RTOF算法等[10,11]。TOA算法是根據(jù)介質(zhì)的傳播速度,利用介質(zhì)到達(dá)時間來計算距離,計算公式如下:
dr=(T1-T0)V
(2)
其中,T1為信號接收時間,T0為信號發(fā)送時間,V為信號傳播速度。TOA算法要求節(jié)點之間保持精確的時間同步,這在UWSN中存在較大困難。TDOA算法利用信號到達(dá)的時間差來測距,會受到海水對聲波的吸收、多路徑等不確定性因素干擾。AOA算法利用信號到達(dá)角度或相對方位測距,需要裝配天線陣列或多個超聲波接收機(jī),這使水聲調(diào)制解調(diào)器(modem)設(shè)計更復(fù)雜而增加成本,且水下環(huán)境復(fù)雜,易受外界干擾。RSSI算法使用水聲信號強(qiáng)度來測量節(jié)點間的間距[12],該算法所需能量少、成本低,但水環(huán)境里噪聲較多,導(dǎo)致測距誤差較大。RTOF算法利用往返時間差計算節(jié)點間的距離,不需要水下節(jié)點進(jìn)行時鐘同步,降低了因時鐘同步帶來的能量消耗,并且往返時間差越大,計算結(jié)果越精確。本文采用RTOF算法。
在基于測距的水下定位算法方面,移動預(yù)測的大規(guī)模水下定位(Scalable Localization with Mobility Prediction,SLMP)[13]算法是在近海條件下、基于水下物體移動模型的預(yù)測位置的方案。SLMP 算法包含水面浮標(biāo)、水下錨節(jié)點、未知位置節(jié)點的定位。在定位過程中,未知節(jié)點首先估計自身運(yùn)動規(guī)律,其次預(yù)測自己位置。水下錨節(jié)點使用水上節(jié)點計算自己的位置,并結(jié)合原坐標(biāo)和移動模型計算自己位置。如果位置之差小于既定閾值,則判定水下錨節(jié)點的移動規(guī)律有效,否則水下錨節(jié)點執(zhí)行移動預(yù)測算法程序更新自身的移動模型。未知節(jié)點偵聽到水下錨節(jié)點位置廣播后,啟動移動預(yù)測程序來更新自身的移動和位置信息。因為水的流動具有相關(guān)性,SLMP 算法在定位中僅需對移動模型進(jìn)行部分更新,所以水下通信次數(shù)較少,耗費能量少[14]。但SLMP算法的性能依賴水下節(jié)點移動模型是否精準(zhǔn),而且極大似然估計法在計算節(jié)點坐標(biāo)時存在一定誤差,導(dǎo)致定位精度和覆蓋率降低。ARTFL是一種基于USP的定位方案[8],使用基站、信標(biāo)節(jié)點和未知節(jié)點3種節(jié)點。水下節(jié)點在進(jìn)行定位時,使用類TOA 的方式保證測距精度,提出了不需要時鐘同步的RTOF。在測量距離時,用本地時間與分組的處理時間差,以此計算水下節(jié)點和信標(biāo)節(jié)點間的距離。深度信息可通過壓力傳感器獲取,在水下節(jié)點位置計算中,ARTFL通過映射投影的方法,將水下的定位問題轉(zhuǎn)化到二維定位問題,最后使用最小二乘法計算出節(jié)點的三維坐標(biāo)。該方案降低了通信消耗,但沒有考慮節(jié)點移動和信標(biāo)位置的不確定對定位精度的影響,具有較大局限性,未知節(jié)點映射水下錨節(jié)點坐標(biāo)帶來較多的能耗,減小了網(wǎng)絡(luò)生存周期,降低了定位成功率和覆蓋率。SWN算法采用對稱往返策略,利用水下聲波的廣播特點,每個信標(biāo)節(jié)點發(fā)送測距請求給所有的水下未知節(jié)點[15],收到請求的水下節(jié)點發(fā)送若干分組來響應(yīng)所有的信標(biāo)節(jié)點,信標(biāo)節(jié)點通過圓的交點計算出位置。SWN 定位方案的平均定位誤差較小,但能耗高,網(wǎng)絡(luò)壽命較短。因此,基于測距的UWSN定位算法通常在提高定位精度、降低計算成本時,會導(dǎo)致能耗和復(fù)雜度增高。
RTOF算法:如果2個節(jié)點屬于不同時鐘域或無法進(jìn)行準(zhǔn)確的時鐘同步,可以用計算往返時間、扣除處理延時的策略來計算設(shè)備之間的距離。對于節(jié)點A、B,若節(jié)點A欲測距,則A發(fā)起測距請求包PA,并將PA的發(fā)送時刻T0記下;B收到PA,并記下接收PA的時刻T1,節(jié)點B在T2時刻發(fā)送反饋包PB(PB包含T1,T2);A接收到PB的時刻為T3。距離計算公式如下:
(3)
由于T3、T0和T2、T1分別屬于A、B的時鐘域,并由A和B分別測量時間差,因此A、B之間不需要時鐘同步。同時,該方法只需要一次信號交互即可實現(xiàn),無需時鐘的同步要求。文獻(xiàn)[6]證明在釆用高斯過程信號模擬中,TOA與RTOF算法所帶來誤差的差異不大,且RTOF相對表現(xiàn)更好。
USP算法:利用投影原理,通過壓力傳感器獲取的節(jié)點深度,節(jié)點將已知節(jié)點的坐標(biāo)投影到自己所在的平面上,從而用二維的解決方案解決三維空間定位問題。這種算法簡化了定位的復(fù)雜性,使三維問題可以用二維定位算法解決,人們可以使用在WSN中較為成熟的二維定位算法,從而簡化定位問題。USP算法過程分為2個步驟:預(yù)分配和分布式定位。在預(yù)分配步驟中,節(jié)點載入必要信息,分配唯一標(biāo)志ID,配置相關(guān)參數(shù):USP迭代次數(shù)上限M,接收/發(fā)送信號耗費時間ΔB,迭代更新坐標(biāo)耗費時間ΔC以及2次USP定位間的休眠時間ΔS[7,16]。每次的定位周期ΔT,計算公式如下:
ΔT=ΔB+ΔC+ΔS
(4)
第二階段執(zhí)行分布式的定位算法。節(jié)點需要維護(hù)鄰居節(jié)點和自身節(jié)點的相關(guān)信息,包括坐標(biāo)集合和位置信息。Sink節(jié)點浮在水面上,通過GPS獲得坐標(biāo),發(fā)送自身位置信息廣播;未知節(jié)點偵聽到Sink廣播信息,在偵聽到足夠的錨節(jié)點位置信息后,啟動投影模塊進(jìn)行錨節(jié)點位置映射,獲得錨節(jié)點映射到自己平面的坐標(biāo)后,采用三邊定位迭代計算位置。定位的迭代次數(shù)不超過上限M。
圖1顯示了待定位節(jié)點X將錨節(jié)點A、B和C映射到同一平面上,映射后的節(jié)點為A′、B′和C′,映射后的位置用來定位X。
圖1 節(jié)點映射
在ΔB時間片內(nèi),未知節(jié)點發(fā)起定位請求,并監(jiān)聽來自水下錨節(jié)點的位置廣播信息。在ΔC時間片內(nèi),未知節(jié)點根據(jù)三邊定位法計算節(jié)點位置。在ΔS時間片內(nèi),節(jié)點處于休眠狀態(tài),等待下一個周期開始。
文獻(xiàn)[17]指出USP算法的缺陷是:未知節(jié)點映射錨節(jié)點坐標(biāo),導(dǎo)致能耗增加,網(wǎng)絡(luò)生存周期減小,定位成功率低和需要時間同步,另外測距方法也不確定。文獻(xiàn)[8]提出使用最小二乘法對位置集合進(jìn)行簡單地擬合,但并未對每個位置元素賦予相應(yīng)的權(quán)重。考慮到實際定位過程中錨節(jié)點對未知節(jié)點的定位影響不相同,簡單地擬合會導(dǎo)致較大的定位誤差[18]。因此,本文提出一種基于加權(quán)迭代最小二乘法的定位擬合算法(MYALGO)。
簡單最小二乘法的算術(shù)表達(dá)式如下:
(5)
其中,m代表等式的個數(shù),n代表未知數(shù)β的個數(shù),m>n,將式(5)進(jìn)行矩陣化后得到:
Xβ=Y
(6)
為了求解β,引入殘差平方和函數(shù)
S(β)=‖Xβ-Y‖2
(7)
當(dāng)β=β∧時,S(β) 取最小值,記作:
β2=argmin(S(β))
(8)
通過對S(β)進(jìn)行微分,求極值可得:
XTXβ∧=XTY
(9)
若式(9)中矩陣XTX非奇異[19],則β有唯一值:
β∧=(XTX)-1XTY
(10)
本文算法根據(jù)RTOF算法測得節(jié)點間距離。RTOF測距具有傳播時延越長,測距越精確的特點。每個未知節(jié)點周圍有多個錨節(jié)點,為了使USP定位更加精確,對每個錨節(jié)點賦予相應(yīng)權(quán)重,距離越遠(yuǎn)的錨節(jié)點權(quán)重越大。即在對節(jié)點位置進(jìn)行擬合的過程中,對式(7)賦予相應(yīng)的權(quán)重因子,得到:
S(β)=‖Xβ-δY‖2
(11)
其中,X為錨節(jié)點的位置,β表示未知節(jié)點的位置,Y為錨節(jié)點與未知節(jié)點間的距離,δ為權(quán)重因子。
Sink節(jié)點分布在水面,每個Sink節(jié)點配備GPS模塊用以獲取自身位置信息,配備太陽能板供電,配備RF模塊用于Sink節(jié)點間通信,配備水聲通信modem用于和水下節(jié)點間通信。在水下定位算法中,Sink節(jié)點作為首批水下錨節(jié)點,其數(shù)量至少為3個。
未知節(jié)點配備水聲通信modem,通過modem可以和錨節(jié)點通信,也可以在節(jié)點間相互通信。由于節(jié)點整體成本低廉,適合大量部署。
此外,為了減少能耗,根據(jù)未知節(jié)點到Sink節(jié)點的距離將未知節(jié)點分為3類:若未知節(jié)點可以收到多于等于3個Sink節(jié)點的定位廣播信息,稱之為A類未知節(jié)點;若未知節(jié)點收到定位廣播的個數(shù)小于3且多于等于1個,則稱之為B類未知節(jié)點,A、B類節(jié)點定位由Sink節(jié)點集中定位;若未收到任何定位廣播信息,即稱之為C類未知節(jié)點,C類節(jié)點采取分布式定位,如圖2所示。
圖2 無線通信網(wǎng)絡(luò)結(jié)構(gòu)
為了使定位的效果盡可能精確,引入加權(quán)迭代最小二乘法對結(jié)果集進(jìn)行優(yōu)化。同時,為了節(jié)約能量和減少通信,優(yōu)化方案通過對水下節(jié)點進(jìn)行分類區(qū)分,使得A、B類節(jié)點只用modem發(fā)送一次數(shù)據(jù)即可定位,C類節(jié)點在未收到任何定位信息的情況下,就知曉自身所處環(huán)境的惡劣,采取推遲發(fā)送定位請求時間,并減小發(fā)送頻率,盡可能減少了未知節(jié)點發(fā)送數(shù)據(jù)次數(shù),降低通信,達(dá)到節(jié)約能量的目的。文中的改進(jìn)算法可概述如下:
水下錨節(jié)點每隔間隔T時間周期性地發(fā)送定位廣播包,廣播包的格式為{Type;NodeId;NodeRank;Seqno; SendTime;Location}。
Type:包的類別,取值為BROADCAST_TYPE、BROADCAST_REP、HELP_REQ、HELP_REP、USP_REP、USP_REQ。
NodeId:節(jié)點的唯一標(biāo)識,布放前預(yù)先設(shè)置。
NodeRank:節(jié)點的級別。Sink節(jié)點的NodeRank為0,由Sink節(jié)點計算位置未知節(jié)點的NodeRank為1,除Sink節(jié)點外還需要其他錨節(jié)點幫助定位的未知節(jié)點的NodeRank為2,進(jìn)而依次遞推。
Seqno:包序列號,與NodeId一起用于唯一標(biāo)識包。
SendTime:包發(fā)送時間。
Location:節(jié)點的位置。Sink節(jié)點的位置信息通過GPS獲得。
定義:
α=T/10
(12)
3類節(jié)點的定位如下:
1)A類節(jié)點的定位:若未知節(jié)點在定位周期開始后的3α內(nèi)收到Sink節(jié)點定位廣播的個數(shù)多于等于3個,則節(jié)點為A類節(jié)點,其NodeRank為1。則該節(jié)點向Sink節(jié)點回復(fù)一次響應(yīng)包,響應(yīng)包格式為{Type;NodeId; Seqno; SendTime; Argu; Depth; Data}。
Argu:收到定位廣播包的個數(shù)。
Depth:未知節(jié)點的水深。
Data:一個數(shù)組。數(shù)組元素有兩個屬性:Sink節(jié)點號和該Sink定位廣播報文的接收時間。
接收到響應(yīng)包Sink節(jié)點向周圍Sink節(jié)點請求該未知節(jié)點響應(yīng)包到各個Sink節(jié)點到達(dá)時間。Sink節(jié)點采用太陽能供電,不需要考慮能耗,且采用RF通信,時延小。周圍Sink節(jié)點收到該請求后,檢查緩存信息并給該Sink節(jié)點回復(fù),收到回復(fù)的Sink節(jié)點采用RTOF計算未知節(jié)點到各個Sink節(jié)點的距離,進(jìn)而在采用USP映射后,計算獲得未知節(jié)點在該水平面上距離各Sink節(jié)點的距離,并使用式(11)進(jìn)行迭代計算,迭代次數(shù)最多不超過M次(M通過信標(biāo)節(jié)點的個數(shù)確定)。Sink節(jié)點將計算得到的未知節(jié)點的位置信息、未知節(jié)點到各個Sink節(jié)點的距離、時間戳等信息發(fā)送給該未知節(jié)點,回復(fù)包為{Type;NodeId; Seqno; SendTime; Location; Distance}。
Distance:未知節(jié)點在水平面上距離各Sink節(jié)點的距離。
未知節(jié)點獲得位置信息后,若首次被定位,則采用該位置。否則,最終坐標(biāo)由新舊坐標(biāo)按照相應(yīng)權(quán)重擬合。進(jìn)而通過2次比較RTOF算法得到的距離,若距離相差較大,則判定水聲信道變化劇烈,該節(jié)點即向同層及下一層的節(jié)點發(fā)送警告信息,以避免因受環(huán)境影響而造成不必要的能量損耗,并在此之后采取暫停通信的策略。
2)B類節(jié)點的定位:若未知節(jié)點ζ在5α內(nèi)收到來自Sink的定位廣播個數(shù)少于3個且多于1個,則該節(jié)點為B類節(jié)點。B類節(jié)點需要向鄰居錨節(jié)點廣播發(fā)送一次helpReq報文,helpReq報文格式為{Type;NodeId; Seqno; SendTime; Argu; Depth; Data}。
收到helpReq報文的錨節(jié)點根據(jù)Argu來生成一個隨機(jī)數(shù),通常Argu越大,隨機(jī)數(shù)值越大。水下錨節(jié)點根據(jù)隨機(jī)數(shù)的大小決定是否回復(fù)helpRep。在回復(fù)的helpRep報文中,包含對應(yīng)helpReq的接收時間戳和helpRep的發(fā)送時間。
當(dāng)未知節(jié)點ζ收到足夠的helpRep后,向直連的Sink節(jié)點發(fā)送定位所需的相應(yīng)信息,其中包含接收到的水下錨節(jié)點ID、水下錨節(jié)點消息的接收時間、與水下錨節(jié)點的距離等。之后該Sink節(jié)點采用RTOF算法計算未知節(jié)點ζ到各水下錨節(jié)點的距離,進(jìn)一步根據(jù)USP算法映射,獲得未知節(jié)點到各水下錨節(jié)點的距離,使用式(11)加權(quán)迭代最小二乘法進(jìn)行迭代運(yùn)算,并將計算結(jié)果等信息發(fā)送給該未知節(jié)點。
3)C類節(jié)點的定位:若未知節(jié)點ζ在8α收到的來自Sink節(jié)點的定位廣播包數(shù)為0,則該節(jié)點為C類節(jié)點。ζ向鄰居水下錨節(jié)點發(fā)送USPReq定位請求報文,收到該請求的鄰居錨節(jié)點向ζ發(fā)送USPRep定位響應(yīng)報文,報文格式為{Type; NodeId; Seqno; SendTime; Location; NodeRank; Depth}。節(jié)點ζ在收到足夠的定位響應(yīng)報文后,采用RTOF算法計算到各錨節(jié)點的距離,選取最遠(yuǎn)的3個錨節(jié)點的距離,用三邊定位算法進(jìn)行自定位。
本文以NS2作為仿真平臺,對算法的定位覆蓋率、定位精度、EEP進(jìn)行分析。仿真環(huán)境設(shè)置如下:在一個范圍可調(diào)的3D區(qū)域內(nèi)隨機(jī)部署100個傳感器節(jié)點,通過控制3D區(qū)域的大小來調(diào)節(jié)節(jié)點密度。通過增減Sink節(jié)點個數(shù)來調(diào)節(jié)首批水下錨節(jié)點個數(shù),水流速度為1 m/s。從定位覆蓋率、定位精度、EEP 3個方面對MYALGO與SLMP、ARTSFL、SWN進(jìn)行性能對比分析。
如圖3所示,由于SLMP算法沒有考慮節(jié)點隨水流移動的情況,在節(jié)點密度相當(dāng)時,SLMP算法的定位覆蓋率比MYALGO算法小。
圖3 不同的節(jié)點密度對應(yīng)的覆蓋率
圖4是在節(jié)點平均距離與通信范圍為150 m的實驗數(shù)據(jù)。結(jié)合圖4可以看出在MYALGO的定位誤差比ARTSFL小的情況下,EEP值降低了些。
圖4 不同的信標(biāo)數(shù)對應(yīng)的EEP值
圖5是在節(jié)點間平均間隔與通信范圍為500 m時的實驗數(shù)據(jù)。由圖5可知,隨著信標(biāo)節(jié)點數(shù)增加,位置的迭代計算次數(shù)會相應(yīng)增加,定位精度會隨之提高。并且在信標(biāo)數(shù)為6時,MYALGO算法優(yōu)于ARTSFL和SWN算法。
圖5 不同的信標(biāo)數(shù)對應(yīng)的平均定位誤差
圖6顯示了文中算法在Sink節(jié)點個數(shù)為3、4、5的條件下,平均節(jié)點間隔以50 m為刻度逐漸增大時,平均節(jié)點間隔與各個定位精度的關(guān)系圖。由圖6可知,隨著平均節(jié)點間隔的增加和信標(biāo)節(jié)點的數(shù)目增多,節(jié)點間通信時延和節(jié)點獲得信標(biāo)節(jié)點的定位廣播越多,計算位置時迭代次數(shù)會上升,平均定位誤差逐漸降低。這表明MYALGO算法在增加節(jié)點間隔或信標(biāo)數(shù)目時都可以取得較好的定位效果,驗證了算法在長距離水下定位中的適用性。
圖6 MYALGO不同節(jié)點間隔下的平均定位誤差
圖7為在青海湖搭建的水下網(wǎng)絡(luò)實驗床平臺。文中已經(jīng)在NS2上對算法的性能進(jìn)行了初步的實驗,下一步將著手算法在真實的水下環(huán)境中的測試。
圖7 實驗床安裝調(diào)試平臺
本文提出一種MYALGO算法,該算法通過Sink節(jié)點發(fā)起定位廣播,收到3個或3個以上定位廣播的未知節(jié)點進(jìn)行回復(fù),接收到回復(fù)的Sink節(jié)點通過與其他Sink節(jié)點通信獲得該未知節(jié)點到各個Sink節(jié)點的時間差,進(jìn)而使用RTOF計算Sink節(jié)點到該未知節(jié)點的距離。Sink節(jié)點通過加權(quán)迭代最小乘法對位置集合進(jìn)行擬合。仿真結(jié)果表明,該算法能在較低通信量、計算量以及能量消耗的同時,提高定位覆蓋率和定位精度。依托在青海湖搭建水下網(wǎng)絡(luò)實驗床平臺,將對該算法的定位精度、節(jié)點能耗以及Sink節(jié)點個數(shù)的最優(yōu)關(guān)系在真實環(huán)境中進(jìn)行檢測分析,并開展進(jìn)一步的研究。