本發(fā)明涉及一種水下聲傳感器網(wǎng)絡(luò)(Underwater Acoustic Sensor Networks,UASNs)的定位方法,它是是一種基于到達(dá)時間(Time of Arrival,TOA)測量和區(qū)域估計技術(shù)的水下聲傳感器網(wǎng)絡(luò)節(jié)點定位方法。
背景技術(shù):
隨著水下通信技術(shù)的發(fā)展,水下聲傳感器網(wǎng)絡(luò)在監(jiān)測、探索、數(shù)據(jù)采集等方面得到了廣泛的應(yīng)用。但是由于水下聲傳感器節(jié)點一般采用聲波作為傳輸手段,所以傳統(tǒng)的電磁波定位技術(shù),如GPS(Global Position System)等,不適用于水下定位。同時,現(xiàn)有的水下超聲波定位技術(shù)一方面在定位過程中消耗了大量能量,使得定位成本過高。另一方面依賴位于水表面的超聲波發(fā)送和接收設(shè)備,因此不能廣泛應(yīng)用于規(guī)模較大的水下聲傳感器網(wǎng)絡(luò)[Chandrasekhar V,Seah W K,Choo Y S,et al.Localization in underwater sensor networks:survey and challenges[C]//ACM International Workshop on Underwater Networks.ACM,2006:33-40.]。上述問題對水下定位技術(shù)的發(fā)展提出了巨大的挑戰(zhàn)。
水下定位技術(shù)本身的研究分為兩部分:定位算法和測量技術(shù)。在定位算法方面,目前,前人的研究中已經(jīng)提出了一些水聲定位的算法,主要分為三大類:靜止節(jié)點定位,移動節(jié)點定位和混合式節(jié)點定位。其中靜止節(jié)點定位(Stationary Node Location)的經(jīng)典算法,如Area Localization Scheme(ALS)[Chandrasekhar V,Seah W.An Area Localization Scheme for Underwater Sensor Networks[C]//Oceans.IEEE,2007:1-8.],Hyperbola-Based Localization Scheme(HLS)[Bian T,Venkatesan R,Li C.Design and Evaluation of a New Localization Scheme for Underwater Acoustic Sensor Networks[C]//Global Telecommunications Conference,2009.GLOBECOM 2009.IEEE.IEEE,2009:1-5.]等。本身具有較低的能耗和較高的精確度,在目前的水下聲傳感器網(wǎng)絡(luò)中有著廣泛的應(yīng)用。但是也有兩點缺陷:首先,由于水環(huán)境普遍存在潮汐、洋流等導(dǎo)致水體流動的因素,水下聲傳感器網(wǎng)絡(luò)中的節(jié)點大部分會隨著水流移動,所以應(yīng)用靜止節(jié)點定位算法確定的節(jié)點位置會在一段時間后失效。其次,由于水環(huán)境中聲速受到深度、水體溫度、水體鹽度等參數(shù)的影響。所以在水環(huán)境中聲速不是一個常數(shù)值。在目前應(yīng)用的經(jīng)典算法中,聲速大多被簡化為常數(shù)進(jìn)行計算。這一簡化在規(guī)模較小的水下聲傳感器網(wǎng)絡(luò)中不會引起過多的誤差,但在大規(guī)模網(wǎng)絡(luò)中,這一簡化會對定位的精確性造成較大的影響。
在測量技術(shù)方面,目前常用的定位測量技術(shù)有三種,分別為單路到達(dá)時間one-way TOA,雙路到達(dá)時間two-way TOA和到達(dá)時間差TDOA[Han G,Xu H,Duong T Q,et al.Localization Algorithms of Wireless Sensor Networks:a survey[J].Telecommunication Systems,2012,52(4):2419-2436.]。one-way TOA是通過測量發(fā)送節(jié)點的發(fā)送時間和接收節(jié)點的接收時間的時間差去計算兩個節(jié)點之間的位置,在發(fā)送節(jié)點和接收節(jié)點的時間同步的情況下,one-way TOA方法消耗的能量最少,精度最高。two-way TOA是測量發(fā)送節(jié)點的發(fā)送時間和發(fā)送節(jié)點接收到接收節(jié)點反饋信號的接收時間的時間差去計算兩個節(jié)點的位置。雖然two-way TOA能耗比one-way TOA略大,同時由于接收節(jié)點從接收到發(fā)送反饋信號過程中存在一定時延,精確度也更低。但是,two-way TOA不需要兩個節(jié)點間進(jìn)行時間同步,在實際環(huán)境中更容易得到應(yīng)用。TDOA是通過計算發(fā)送節(jié)點到兩個接收節(jié)點的時間差來計算位置。TDOA對于網(wǎng)絡(luò)本身的要求較低,并且定位精度較高,但是在水下網(wǎng)絡(luò)中,TDOA的能量消耗過大,因此使用并沒有前兩者廣泛。
技術(shù)實現(xiàn)要素:
本發(fā)明提供一種基于到達(dá)時間測量和區(qū)域估計定位的水下聲傳感器網(wǎng)絡(luò)節(jié)點定位方法(A TOA-based Area Estimation Localization Scheme for UASNs,AELS),目的在于提高淺海大規(guī)模水下傳感器網(wǎng)絡(luò)中的定位精度,同時盡可能減少定位所造成的節(jié)點能量損耗。
為實現(xiàn)上述目的,本發(fā)明采用了如下技術(shù)方案:
一種水下聲傳感器網(wǎng)絡(luò)節(jié)點定位方法,其特征在于:基于到達(dá)時間測量和區(qū)域估計技術(shù),設(shè)定在水下聲傳感器網(wǎng)絡(luò)中有需要確定位置的節(jié)點為待測節(jié)點NodeC,在水下聲傳感器網(wǎng)絡(luò)中加入位置已知、用于輔助定位的錨節(jié)點AnNodei,i∈N∩1≤i≤n,應(yīng)用雙路到達(dá)時間技術(shù),通過錨節(jié)點以聲信號廣播定位請求,為了與傳輸請求進(jìn)行區(qū)分,此定位請求替換首部的功能字段,使得待測節(jié)點NodeC能夠識別出這是定位請求,待測節(jié)點NodeC在接收到定位請求以聲信號進(jìn)行響應(yīng),錨節(jié)點接收響應(yīng)并記錄發(fā)出定位請求的時間trequest和接收響應(yīng)的時間tresponse的時間差tminus=tresponse-trequest,根據(jù)W.D.Wilson經(jīng)驗公式和淺海水溫和鹽度受水深影響忽略不計的假設(shè),結(jié)合淺海水環(huán)境的特性,計算淺海信號傳輸距離s和信號傳輸時間t的關(guān)系函數(shù)s(t),再根據(jù)關(guān)系函數(shù)是s(t)和待測節(jié)點發(fā)送到多個錨節(jié)點的時間差,計算所有錨節(jié)點和待測節(jié)點NodeC的距離sdistance,根據(jù)sdistance和對應(yīng)錨節(jié)點的位置LocAnNodei計算出待測節(jié)點NodeC的可能位置的坐標(biāo)集合{LocNodeCi,i∈N∩1≤i≤n},并應(yīng)用區(qū)域估計定位技術(shù)的算法,從坐標(biāo)點集合篩選成可能性較大、數(shù)量有限的點集,根據(jù)該有限點集估計出待測節(jié)點NodeC的位置坐標(biāo)LocNodeC;
上述應(yīng)用區(qū)域估計定位技術(shù)的算法,從坐標(biāo)點集合篩選成可能性較大、數(shù)量有限的點集的方法,包括以下步驟:
(1)待測節(jié)點NodeC可能位置集合的構(gòu)造:以每個錨節(jié)點AnNodei的自身位置為球心,繪制半徑為sdistancei的球面狀的點集作為待測節(jié)點NodeC的可能位置集合Ci;
(2)待測節(jié)點NodeC可能位置篩選:第一次篩選,判斷任意兩個球面狀的點集的位置關(guān)系,若相交或相切,則選取相交的圓或者相切的點的坐標(biāo)集作為待測節(jié)點NodeC的可能位置集合;若相離,則選取兩個錨節(jié)點的連線作為基準(zhǔn)線,將兩個球面狀的點集與基準(zhǔn)線的交點的集合作為發(fā)送節(jié)點的可能位置集合,經(jīng)過第一次篩選后,每兩個錨節(jié)點對應(yīng)的待測節(jié)點NodeC可能位置集合Cij中元素的個數(shù)存在可能為1個,即球面狀的點集的位置關(guān)系相切,或者2個,即球面狀的點集的位置關(guān)系相離,或者無窮多個,即球面狀的點集的位置關(guān)系相交三種情況,針對第三種情況,即元素的個數(shù)為無窮多的圓形狀的點集進(jìn)行第二次篩選:判斷任意兩個圓形狀的點集的位置關(guān)系,若相交或相切,選取相交或相切部分的點的坐標(biāo)作為可能位置集合;若相離,選取兩圓心連線為基準(zhǔn)線,選取兩個圓集上到基準(zhǔn)線距離最近的點的坐標(biāo)為可能位置集合;經(jīng)過上述兩次篩選后,保證可能位置集合的元素都為有限個;
(3)待測節(jié)點NodeC的位置估計:將經(jīng)過2次篩選過后的集合歸并為一個集合,求出集合中所有點的坐標(biāo)的期望作為期望點,選取到期望點距離最近的一個點的坐標(biāo)作為待測節(jié)點NodeC的位置。
使用W.D.Wilson公式時,將聲速c看成和水體溫度T、水體鹽度S和水深d相關(guān)的函數(shù),c=f(T,S,d),再應(yīng)用數(shù)學(xué)方法,從上述函數(shù)中推導(dǎo)出傳播距離s和傳播時間t的關(guān)系:
其中,A,α,β,γ均為常數(shù),分別用下列公式表示:
α=-0.05471C2
β=(4.6-0.10942T0-0.01S)C+0.06
γ=1449.2-0.05471T02+1.34S-0.01T0S
其中De,Ln,La為錨節(jié)點自身的位置信息,分別代表水深、經(jīng)度、緯度,C為W.D.Wilson公式中的常數(shù),T0為海平面溫度,S為海水鹽度。
本發(fā)明的優(yōu)點及有益效果:
(1)相比ALS,HLS等經(jīng)典定位算法中將聲速看成常數(shù)的做法,本發(fā)明使用了W.D.Wilson經(jīng)驗公式將聲速看成和水體溫度、水體鹽度和深度有關(guān)的函數(shù)進(jìn)行考慮,提高了TOA技術(shù)中計算發(fā)送端和接收端距離的精確性,提高了定位的精確度。
(2)在估計過程中,本發(fā)明放棄了經(jīng)典定位算法中常用的區(qū)域估計方法,采用集合運(yùn)算,計算出待測節(jié)點的可能位置集合,再對可能位置集合進(jìn)行篩選,直到集合中元素有限為止,最后對選取最接近可能位置期望的點作為結(jié)果。這種方法雖然在計算上比區(qū)域估計稍微復(fù)雜一些,但是大大提高了位置估計的精確性。
(3)本發(fā)明具有良好的通用性,使用者可以自由選取錨節(jié)點啟用的數(shù)量,當(dāng)錨節(jié)點啟用數(shù)量較少時,定位算法的能耗降低,精確度降低。當(dāng)錨節(jié)點啟用數(shù)量較多時,定位算法的能耗會增加,但是,精確度也會隨之提高。使用者可以根據(jù)應(yīng)用的需求,調(diào)節(jié)錨節(jié)點啟用數(shù)量,達(dá)到能耗和精確度的平衡。
附圖說明
圖1為本發(fā)明的節(jié)點定位算法總體框圖;
圖2為本發(fā)明的節(jié)點定位算法中two-way TOA計算方法示意圖;
圖3為本發(fā)明的節(jié)點定位算法中估計算法的流程圖;
圖4為實驗?zāi)M的大規(guī)模水下聲傳感器網(wǎng)絡(luò)場景圖;
圖5為仿真實驗場景下本發(fā)明AELS算法和ALS算法能量消耗圖(其中橫坐標(biāo)Anchor NodeID是錨節(jié)點的編號;縱坐標(biāo)Energy Consumption(J)是能量的消耗值(單位是焦耳));
圖6為仿真實驗場景下AELS算法和ALS算法節(jié)點位置偏差值圖(其中橫坐標(biāo)Node是ID待測節(jié)點的編號;縱坐標(biāo)Location Offset Degree是位置偏差值(相對誤差))。
具體實施方式
下面結(jié)合附圖對發(fā)明技術(shù)方案進(jìn)行詳細(xì)說明。
本發(fā)明通過two-way TOA技術(shù)采集待測節(jié)點發(fā)送到多個錨節(jié)點的時間差作為計算數(shù)據(jù)。然后以W.D.Wilson公式為基礎(chǔ),結(jié)合淺海水環(huán)境的鹽度和溫度和水深無關(guān)的合理假設(shè),計算淺海信號傳輸距離s(單位:米)和信號傳輸時間t(單位:秒)的關(guān)系函數(shù)s(t)。再根據(jù)關(guān)系函數(shù)是s(t)和時間差,確定錨節(jié)點和每一個待測節(jié)點的距離。最后在3D場景中,根據(jù)多個錨節(jié)點的距離估計待測節(jié)點的位置。
如圖1,本發(fā)明AELS算法分為兩個部分。第一部分包括定位相關(guān)數(shù)據(jù)的測量,如圖2所示,步驟如下:
a.two-way TOA技術(shù)中時間值的測量和距離的計算,由錨節(jié)點完成。
b.錨節(jié)點廣播包定位信號,并記錄廣播定位信號的時間trequest(單位:秒),收到定位信號的待測節(jié)點,廣播帶有自身ID的反饋信號。
c.錨節(jié)點接收到反饋信號后,記錄收到信號的時間tresponse(單位:秒)。
d.錨節(jié)點根據(jù)下列公式和tresponse-trequest推導(dǎo)和待測節(jié)點的距離s(單位:米)。
其中,A,α,β,γ均為常數(shù),分別可以用下列公式表示
α=-0.05471C2
β=(4.6-0.10942T0-0.01S)C+0.06
γ=1449.2-0.05471T02+1.34S-0.01T0S
上式中De,Ln,La為錨節(jié)點自身的位置信息,分別代表深度、經(jīng)度、緯度,C,T0,S分別為W.D.Wilson公式中的常數(shù)。
算法的第二部分是對待測節(jié)點位置的估計算法,由于算法較復(fù)雜,主要由位于水上負(fù)責(zé)接收數(shù)據(jù)的表面站計算完成。估計算法的算法流程如圖3所示。
下面給出估計算法詳細(xì)流程的自然語言描述。
Step1:根據(jù)每個錨節(jié)點AnNodei的位置信息LOCi={Lai,Lni,Dei}和對應(yīng)的距離sdistancei,求出與LOCi距離為sdistancei的點的集合Ci={(x,y,z)|(x-Lai)2+(y-Lni)2+(z-Dei)2=sdistancei,(x,y,z)∈R3},該集合在三維空間中為一個以LOCi為球心,sdistancei為半徑的球面。跳至Step2。
Step2:選擇任意兩個錨節(jié)點i和j的球面點的坐標(biāo)集Ci和Cj,判斷Ci和Cj的位置關(guān)系,即和sdistancei+sdistancej的關(guān)系(以下為了便于閱讀,用si代替sdistancei)。若則兩球面集相交或者相切,跳至Step3;若則兩球面集相離,跳至Step4。
Step3:選取相交或者相切部分作為待測節(jié)點的可能位置集合,記為Cij,跳至Step5;
Step4:選取兩個錨節(jié)點連線作為基準(zhǔn)線L,將兩個球面集與L的交點的集合Cij作為測量節(jié)點的可能位置集合,跳至Step8;
Cij={(x,y,z)|(x2+y2+z2=si)∪(x2+y2+z2=sj),
Step5:對Step3中集合元素為無窮的集合,任選兩個集合Cij和Cpq,判斷Cij和Cpq的位置關(guān)系,若兩個集合相交或相切,跳轉(zhuǎn)至Step6。若兩個集合相離,跳轉(zhuǎn)至Step7.
Step6:選取相交或者相切部分作為測量節(jié)點的可能位置集合,跳至Step8。
Step7:選取兩個圓集的圓心連線作為基準(zhǔn)線l,將兩個圓集中與l距離最近的點的集合作為測量節(jié)點的可能位置集合,跳至Step8;
Step8:合并Step4,Step6,Step7中產(chǎn)生的所有點的坐標(biāo)集,求出點的坐標(biāo)集的期望點計算坐標(biāo)集中每個點和期望點的距離,選取距離最近的點的位置作為待測節(jié)點的位置。算法終止。
下面將在仿真場景下,將AELS定位算法同傳統(tǒng)的ALS定位算法相比較,對AELS的算法性能進(jìn)行評估。
A、仿真場景的說明
假設(shè)在一個1000m*1000m*100m的水域中,平均分布81個傳感器節(jié)點,每個節(jié)點在深度方向上隨機(jī)分布,在水平面上均勻分布,相鄰兩個節(jié)點水平方向上的距離為125m,現(xiàn)為了定位需要,向水域中均勻投放9個錨節(jié)點。錨節(jié)點由浮力控制器控制深度,并連接浮標(biāo)獲取位置數(shù)據(jù)。相鄰兩個定位器在水平面上距離為250m。仿真場景如圖4所示。
在仿真場景中,隨機(jī)選取20個點,分別使用AELS算法和經(jīng)典ALS算法測量它們的位置,并分析兩種算法的能量消耗和定位精確度。
B、算法性能分析
在能量消耗方面,我們采用節(jié)點能量消耗來衡量算法的能耗,AELS算法和經(jīng)典ALS算法的每個節(jié)點能量消耗如圖5所示。從圖中我們可以看出,AELS算法的節(jié)點總能耗為84.00J比經(jīng)典ALS算法的節(jié)點總能耗(80.62J)高出4%。這是因為兩種算法進(jìn)行定位所需要的數(shù)據(jù)是不一致的。在采集數(shù)據(jù)過程中,兩種算法都采用了TOA技術(shù)中的two-wayTOA方法進(jìn)行時間的測量。AELS定位算法需要額外采集水溫、鹽度、深度等參數(shù)。因此需要消耗額外的能量。
在精確度方面,我們使用位置偏差值來衡量定位的精確度。位置偏差值的定義如下。
其中x,y,z分別為定位算法計算的節(jié)點位置的緯度、經(jīng)度、深度(單位:米),La,Ln,De分別為節(jié)點實際位置的緯度、經(jīng)度、深度(單位:米),125為相鄰兩個節(jié)點水平方向上的最大距離(單位:米),100為相鄰兩個節(jié)點垂直方向上的最大距離(單位:米)。
本發(fā)明算法和經(jīng)典ALS算法定位的每個節(jié)點的位置偏差值如圖6所示。從圖6中我們可以看出,本發(fā)明算法定位的節(jié)點的位置偏差值為0.056,僅有ALS算法的位置偏差值(0.105)的53%。這是因為本發(fā)明算法的位置估計算法對節(jié)點的可能位置的范圍比ALS算法要小的多,而在縮小范圍的過程中,本發(fā)明算法一直以保留可能性最大的點為目標(biāo),這樣雖然使得計算過程更加復(fù)雜,但是由于所有的計算過程都在終端完成,本發(fā)明算法并沒有增加節(jié)點的負(fù)擔(dān)。這也是本發(fā)明算法最大的優(yōu)點之一。
根據(jù)上述仿真實驗,可以得出如下結(jié)論:AELS定位算法對傳統(tǒng)定位算法的位置估計部分做了一定的改進(jìn),改進(jìn)過后,在能量消耗上面相對傳統(tǒng)的定位算法ALS增加了5%左右,而在定位精確度上,相比傳統(tǒng)的定位算法ALS,節(jié)點位置估計的偏移量減少了50%。精確度獲得了很大的提高。在能量消耗和定位精確度之間取得了很好的平衡。因此,在大規(guī)模水下聲傳感器網(wǎng)絡(luò)的定位中,相對傳統(tǒng)定位算法,本發(fā)明的AELS算法有著更好應(yīng)用前景。