?

考慮錨節點位置不確定的水下目標定位算法研究

2024-01-27 07:20尤康林商志剛羅小元
電子與信息學報 2024年1期
關鍵詞:時鐘噪聲定位

閆 敬 張 婷 尤康林 商志剛 楊 晛 羅小元

①(燕山大學電氣工程學院 秦皇島 066099)

②(哈爾濱工程大學水聲工程學院 哈爾濱 150001)

1 引言

水下無線傳感器網絡被廣泛應用于水下目標追蹤、輔助導航和海洋數據采集等諸多方面[1]。準確獲取傳感器節點的位置信息是支持這些應用的基礎和關鍵。目前,水下目標定位技術主要面臨以下挑戰:其一,由于水下溫度與晶振制作工藝的差異,不同類型傳感器節點晶振片輸出頻率不同,存在時鐘異步現象。其二,受海水的鹽度和壓力等影響,聲波無法沿直線傳播,呈現分層效應。其三,現有定位算法多依賴于測量噪聲的先驗信息[2,3],然而水下通信環境惡劣,人為噪聲和環境噪聲復合后具有隨機性和不確定性,并隨著測量環境和設備精度的不同而變化[4],使其具體的統計特性難以確定。其四,受到水體波動等因素影響,某些錨節點位置不確定[5],引起誤差在網絡拓撲中的累積傳播,導致當前目標節點位置估計的性能下降。

文獻[6]考慮錨節點位置不確定的影響,提出了一種基于最大似然估計的定位算法。但該算法嚴格依賴于噪聲的先驗信息。文獻[7]考慮節點移動性的影響,提出了一種基于最小二乘的定位算法,但該算法容易陷入局部極值。針對局部極值的問題,文獻[8]通過使用凸松弛將非凸的目標定位問題轉換為凸問題進行求解,然而凸松弛無法完全確保放縮的嚴密性且轉化難度大。近年來,一些研究人員逐漸開始將學習類算法應用到水下目標定位領域。文獻[9]提出了一種基于深度Q學習的水下定位算法,將定位問題離散化,在保護隱私的同時完成目標定位任務。然而,深度Q學習依然面臨過高估計、樣本利用率低和收斂性脆弱等諸多問題[10]。柔性動作-評價(Soft Actor-Critic, SAC)方法引入了熵的概念,使得期望獎勵和熵的加權和達到最大時輸出最優策略,很大程度上保證了策略的魯棒性和優越性[11]。

基于上述分析,本文提出考慮錨節點位置不確定的深度強化學習水下目標定位算法。主要貢獻如下:(1)提出基于SAC的水下目標定位算法,擺脫了對噪聲先驗信息的依賴,在錨節點位置不確定情景下完成目標定位任務;(2)設計合理的獎勵函數,實現精確定位,并減弱錨節點的位置不確定性;(3)采用層歸一化技術,加速深度神經網絡學習和收斂,進一步提高模型泛化能力。

2 系統模型

水下無線傳感網絡包含水面浮標、錨節點和目標節點3種類型的節點。其中,水面浮標不受水下環境的影響,通過全球定位系統獲取自身位置并校準時鐘。錨節點漂浮在水面以下,可直接與水面浮標通信,用于目標節點定位。由于自身位置精度的限制,其分為精確錨節點和不確定錨節點。目標節點是需要被定位的節點。錨節點與目標節點之間時鐘異步,并將目標節點時鐘定義為真實時鐘。

采用射線追蹤法模擬聲波的分層效應,獲取兩節點間的傳輸時延。依據文獻[3],將水下聲速建模為與深度相關的線性函數V(z)=b+az,a=0.017s-1,b=1473 m/s。其中,z為深度,b為水面處的聲速,a為與環境相關的常數。

令PS=[xS,yS,zS]T和PR=[xR,yR,zR]T分別為發送節點 S和接收節點 R的位置向量。由Snell定律可得cosθ/V(z)=cosθS/V(zS)=cosθR/V(zR)。其中,θS,θR∈[-π/2,π/2]分別為發送節點 S和接收節點 R處的射線角,進而可導出?r=?z/tanθ,?l=?z/sinθ,?t=?l/V(z)。其中,l為兩點間聲線長度,t為傳輸時間,r為水平距離。

由此可以導出發送節點 S和接收節點 R之間的單向傳輸時延τS,R,表示為

其中,β0=arctan((zS-zR)/rS,R) 為 S點和 R點之間的直線與水平軸的夾角,θS=β0+α0,θR=β0-α0,α0=arctan(arS,R/(2b+a(zS+zR)))為聲線偏離角度。

錨節點之間的時鐘是完全同步的,但水下目標節點的時鐘無法與錨節點完全同步。本文同時考慮了時鐘漂移和時鐘偏移的影響,表示為

其中,T為本地時鐘,t為參考時鐘,α和β分別為時鐘漂移與時鐘偏移。這里,取α=1.005,β=0.002。

3 定位優化問題的建模

3.1 異步通信協議設計

當定位過程開始時,目標節點向整個網絡廣播消息。傳感器節點記為n=1,2,...,N,N ≥3。傳感器節點n的位置為(xn,yn,zn),目標節點的位置為(xM,yM,zM)。

步驟1:初始時刻為TM,M,目標節點 M向錨節點發送定位請求。啟動信息包含錨節點的發送順序n=1,2,...,N。隨后,水下目標 M進入監聽狀態,等待來自錨節點的信息有序傳回。

步驟2:在tM,n時刻,錨節點n收到目標節點的信息后,進入監聽狀態,對來自k=1,2,...,n-1的所有信息進行解碼,將到達時間記錄為tk,n。節點n接收完來自節點n-1的信息之后,進入發送模式,在tn,n時刻發送自己的信息。節點n發出的信息包含tM,n,{tk,n}?k,以及發送時間tn,n。

步驟3:水下目標 M在tn,M時刻收到來自錨節點n的回復信息,其中n=1,2,...,N。在接收到最后一個錨節點N的信息后,一輪信息交互完成,收集到的時間戳為

步驟4:基于上述測量值,利用SAC定位算法獲取目標節點的水平位置,進而得到3維坐標。

3.2 定位優化問題建立

不同類型節點間的時鐘是異步的,因此,為了消除時鐘異步現象的影響,定義時間差:

假設定位過程受到統計特性未知但有界的測量噪聲干擾,參考文獻[12,13]構建以下測量噪聲模型,模擬定位過程中未知噪聲的干擾。

其中,lS,R是發送節點 S和接收節點 R之間的距離,t是當前迭代步數。

時間差和傳輸時延之間的關系如下:

其中,ωn,k和ωk,n為測量噪聲,分別與對應的發送節點和接收節點間聲線傳輸距離ln,k和lk,n相關。

針對目標節點 M建立如下定位優化問題:

4 基于深度強化學習的水下目標定位算法

4.1 SAC定位算法

SAC算法在目標函數中添加了一個熵項,使得策略的熵和累積獎勵均最大化,

其中,H為策略π(at|st)的熵,表示策略的隨機性。α為溫度系數,控制熵和獎勵之間的權重。

基于動作-評價網絡架構,采用深度神經網絡對Q函數和策略進行擬合,通過隨機梯度下降更新網絡參數。這里,取最小的Q值來避免過高估計。

算法開始時,初始化策略網絡和軟Q網絡參數,清空經驗回放池D。依據以下規則更新參數:

(1)V網絡參數:通過殘差平方定義損失函數,訓練軟狀態值函數,更新V網絡參數。

其中,λ是學習率,是LV(?)的梯度,

對目標V?target網絡的參數進行軟更新:

其中,χ為軟更新系數。

(2)Q網絡參數:用軟Bellman殘差定義損失函數,訓練軟Q函數,更新Q網絡的參數。

SAC采用重參數技巧,即在原有動作中添加噪聲向量?t~N(0,I),并使用壓縮函數tanh將輸出限制在(-1,1)范圍內。μφ(st)和σφ(st)分別是策略網絡πφ輸出的平均值和標準偏差。

因此,方程(14)中的目標函數可以改寫為

4.2 算法實現

考慮狀態空間和動作空間均連續的情況,記S=[x,y]為狀態向量,A=[Δx,Δy]為動作向量。這里,x,y ∈[0 m,100 m], Δx,Δy ∈[-1 m,1 m]?;诖?,設置定位任務的整體獎勵函數為

其中,rerror=-ρ*Θ(st)為即時獎勵,Θ(st)為狀態st下的優化目標,ρ為大于零的常數;rpenalty為懲罰項,用于引導目標節點向著獎勵增大的方向迭代,加速模型訓練;rdone為終止標志,當獎勵rt小于閾值ζ時,任務循環結束。這里,

為了提高模型的泛化能力,采用層歸一化技術將網絡輸出轉換為固定均值和方差的高斯分布,則第i個通道的歸一化輸出可以寫成如下:

其中,H為一層中隱藏單元的數量,為第i個通道的第l層中的原始輸出,ε為添加到分母的偏移量,gi和bi為仿射變換因子。

5 仿真與實驗驗證

5.1 環境部署

在200 m3的水域中放置3個錨節點A1,A2,A3定位目標節點M 。A1=(200,0,0)和A2=(0,200,0)為精確錨節點,A3為不確定錨節點~N(rA3,K)。其中,rA3=(10,20)為A3的真值,K=diag{5,5}為其方差矩陣。

網絡訓練的超參數設置如表1所示。

表1 超參數設置

5.2 仿真結果

節點部署與定位結果如圖1(a)所示,可知目標節點的坐標收斂至(29.89,79.95, -30),目標點迭代過程如圖1(b)所示。由圖1(c)可以看出,改進后的算法在訓練速度和穩定性方面均有明顯提升。

圖1 目標節點定位結果

每個回合對不確定錨節點A3坐標通過求期望進行修正,結果如圖2(a)所示。并且,每回合結束時會重置A3的坐標值,將當前回合得到的最佳值復位清除,故其坐標值一直在±0.2 m的小范圍內波動。由圖2(b)、圖2(c)可知,其修正值集中分布在以(10±0.1, 19.9±0.1)為中心的0.1 m2范圍內。

圖2 不確定錨節點 A3修正結果

在給定區域內隨機采點進行一組和多組測試來驗證算法的有效性。一個回合內X軸、Y軸上的定位誤差如圖3(a)-圖3(c)所示??梢钥闯?,171步時done條件被觸發,定位任務提前結束,誤差收斂到0.35 m以內。15回合內定位結果如圖3(d)-圖3(f)所示??梢钥闯?,80%的測試點定位精度在1 m以內,其余20%的測試點精度在1~1.2 m。

圖3 目標節點測試效果

將本文所提定位算法與文獻[14]中基于寬度學習的定位算法進行對比。其中,錨節點3為位置不確定錨節點,其余為精確錨節點,仿真結果如圖4(a)、圖4(b)所示??梢钥闯?,忽略錨節點位置不確定時,文獻[14]中算法的定位精度明顯下降,而本文所提算法的精度在0.2 m范圍內,由此可以看出考慮錨節點位置不確定的必要性。

圖4 SAC定位算法的優勢與適用性

此外,為驗證所提算法在不同測量噪聲模型下的適應性,分別在文中所提未知有界測量噪聲下和高斯測量噪聲兩種模型下進行驗證。這里,采用文獻[7]中的高斯測聲模型N(0,0.0001),仿真結果如圖4(c)所示??梢钥闯?,兩種測量噪聲模型下,算法均在200回合之后收斂,且本文的噪聲模型下定位精度更高,驗證了本文所提定位算法的適應性與有界測量噪聲模型的合理性。

5.3 水池實驗

在5 × 6 × 1.5 m3的水池中對所提算法進行實驗驗證。硬件設備主要包括錨節點、目標節點和控制中心3部分。本實驗中,將通信機作為錨節點,分別部署于水池中。這里,通信機的工作頻帶為21~27 kHz,采用正交頻分復用模式,穩定通信速率為300 bit/s,最大通信速率為2 000 bit/s。使用水下GPS定位裝置(Underwater Global Positioning System, UGPS)對錨節點進行自定位,獲取其位置坐標用于目標節點定位。其中,錨節點3為位置不確定錨節點。將UGPS測得的位置作為其真值,在此基礎上加入均值為0、方差為0.01的高斯噪聲,得到定位過程可用的錨節點3的坐標值。將搭載通信機與深度傳感器的有纜遙控水下機器人作為目標節點,可與錨節點通過水聲通信方式進行信息交互,并且可直接獲取其Z軸信息。將筆記本電腦作為控制中心,操縱機器人移動至不同的位置,模擬對多個目標節點進行定位的過程。同時,將機器人纜線傳輸的數據輸入本文所提的深度強化學習定位算法中定位目標節點。實驗平臺如圖5所示。

由于水池的深度較淺,將聲速看作1473 m/s 。對該區域內5個目標節點進行定位,節點分布情況和每個目標節點的定位誤差如圖6(a)、圖6(b)所示??梢钥闯?,相比于文獻[7]中基于最小二乘的傳統水下目標定位方法,本文考慮錨節點位置不確定影響所提出基于深度強化學習的定位方法整體定位誤差較小,精度更高,可以有效完成定位任務,這表明了文中所提算法的實際效用性。

圖6 多目標節點定位

6 結束語

本文研究了錨節點位置不確定情景下的目標定位問題。提出了一種基于深度強化學習的水下目標定位算法,完成目標定位的同時可修正不確定錨節點的位置。最后,仿真驗證了所提算法的有效性。未來,將研究移動目標節點的定位問題,并通過海洋環境實驗對算法的性能做進一步測試。

猜你喜歡
時鐘噪聲定位
別樣的“時鐘”
古代的時鐘
噪聲可退化且依賴于狀態和分布的平均場博弈
《導航定位與授時》征稿簡則
Smartrail4.0定位和控制
找準定位 砥礪前行
控制噪聲有妙法
有趣的時鐘
時鐘會開“花”
青年擇業要有準確定位
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合