姚宇婕,劉廣鐘,孔維全
(上海海事大學信息工程學院,上海 201306)
海洋環境監測在科學勘探、商業開發和海岸保護等活動中的地位不斷提升[1],這種廣泛監測的理想載體是一種分布式水下無線傳感器系統,稱為水下無線傳感器網絡(Underwater Wireless Sensor Network,UWSN)[2]。由于傳感器的維護工作較為困難,且考慮到節點在長時間工作后,節點的本地時間與標準時間之間存在一定的偏差。而時間同步作為節點間協調與合作完成各項分布式任務的關鍵技術支撐,同時也是介質訪問控制、路由轉發和傳感數據融合等[3]多項關鍵技術的基礎。若多個節點的時間各不相同,則無法協同完成后續多項工作。在水下部署傳感器節點的要求遠高于陸地,這些節點一經部署基本不再進行維護和更換,因此水下傳感器的計算資源與能量存儲十分有限。水聲信道的傳播速度大約僅有1 500 m/s[4],部分陸地傳感器進行時間同步時通常忽略傳播延遲,但是在水下環境中,巨大的傳播延遲在節點通信時是不可忽略的重要因素。此外,受到海水的溫度、鹽度和密度等多種環境因素的影響[5],水下聲波的速度會發生較大的隨機性變化,更為重要的是,傳感器節點具有隨洋流影響而移動的特點[6],在某節點發送消息和接收回復消息的間隔中,由于傳播延遲的存在,節點已發生了相對移動,因此,在設計水聲傳感器網絡的時間同步算法中,須考慮到上述特性。
本文綜合考慮水聲通信中的各種特點,提出一種新型的基于多普勒測速的水下傳感器時間同步算法。利用多普勒效應導致的頻率變化[7]特征來構建整個WSN 網絡的時間同步機制,并將分簇模型[8]作為水聲傳感器通信網絡的樣例,通過發送-接收雙向的數據包交互方式得到自身的時鐘相偏,以達到整個系統的時間同步。
目前,針對陸地傳感器的時間同步算法的研究成果有RBS[9]、TPSN[10]和FTSP[11]等。但是它們都沒有考慮到海洋環境的特殊性,并且忽略傳播延遲的存在。因此,該類協議并不適用于水下傳感器。關于水下傳感器時間同步的研究也取得了一些進展,如TSHL[12]是為水下環境而設計的時間同步協議,且將傳播延遲納入算法設計的考慮范圍。該算法的運行過程分為2 個階段,第一階段是采用單向信息交互的方式組成25 個時間戳對時元組,并采用線性擬合法來估計本地時鐘的時鐘頻偏。第二階段是通過執行一次信息雙向交互,以獲得4 個重要的時間戳信息,并利用公式計算時鐘相偏和傳播延遲的大小,以對節點進行相應的補償。這種算法并未考慮節點移動問題且假設傳播延遲不變,不適用于實際情況。MU-Sync[13]利用分簇的思想減小節點移動性所帶來的影響,簇首負責對簇內節點完成時間同步。該算法也可分為2 個階段,在第一階段中,使用發送-接收的雙向報文交互收集4 個時間戳組成一個REF 參考信標組(共10 組),并執行2 次線性擬合操作。在第二階段中,簇首節點將第二次擬合的估計值通過一次單向報文傳輸發送給待同步節點使其完成本地時鐘校正。Mobi-sync[14]基于流體力學假設,利用空間相關性估計水下物體的移動速度。這種算法共分為傳播延遲估計、線性擬合和校準階段3 個階段。Mobi-sync 相比前兩種協議,同步精度得到明顯提升,但所需計算量過于龐大,并且每個待同步節點的一跳傳輸范圍內必須存在3 個以上的超級節點,因此需要預先在水下布置大量的超級節點,造成成本增加,實現過程較為困難。文獻[15]提出一種多普勒輔助水下傳感器網絡時間同步機制,無線傳感器通過接收到的超聲波頻率變化計算自身當前相對于浮標的移動速度及距離,并且所有無線傳感器根據距離估計的結果來完成與浮標時間的同步校正。但是該算法存在一定的局限,一方面是只使用水面浮標對水下傳感器節點進行距離估算時,其應用場景僅限于淺水區域,無法對深水區節點進行測量,且會造成一定的誤差。另一方面是算法的計算量龐大,造成同步工作的效率較慢,無法快速對所有節點進行同步。針對這些問題,本文算法使用分簇思想進行改進,不僅使用水面浮標、水下傳感器節點承擔信標節點完成同步工作,加快同步進程,而且分簇還可縮短節點間的距離,提高同步精度。文獻[16]提出利用多普勒效應輔助時間同步,由于節點在數據傳輸時發生運動,數據幀在多普勒頻移的影響下將被壓縮或擴展,因此接收信號的長度會發生變化,通過比較發送、接收數據幀的時間估計多普勒因子的值,進而獲得節點的移動方向與速度,但方案中并未描述具體的節點間同步方法,且算法需要配備額外的測量器,增加了部署成本。本文算法明確了簇首同步和簇間同步2 個具體的實現過程,并規定了數據包的交互形式。
多普勒效應是指波源和接收者之間由于相對運動使得接收者能夠感受到波的頻率變化,這是一種普遍的物理現象,在水下環境中尤為明顯,且可廣泛應用于醫學、交通和航天等領域,并在定位和測速等技術上做出重大貢獻[17]。基于多普勒效應造成的頻移現象在頻域上可表現為頻率的變化,當一個移動的波源向接收者接近時,波會被壓縮且波長變短,導致頻率變得較高;反之,當波源遠離接收者時,波會被拉伸,波長增加從而導致頻率變得較低。該理論是由奧地利科學家克里斯琴·多普勒·約翰于1842 年提出的[18]。
假設波源S 和接收者E 在同一水平線上運動,假設f0為波源發出的初始信號頻率,f為接收者收到信號時的實際頻率,λ表示波長,v表示波速,波源的移動速度為vS,接收者的移動速度為vE,這3 種速度都具備方向性。接下來分為以下3 種情況討論多普勒效應的存在方式。
1)當波源靠近接收者而接收者靜止不動時,此時波速變為v-vS,其波長為,因此接收者得到的頻率,且聯立可得:

2)當波源靜止而接收者靠近波源時,此時波源的波速為v+vE,波長仍然為λ,因此接收者觀察到的頻率,將代入可得:

3)當波源和接收者相向運動時,可由式(1)和式(2)求得接收者處的頻率為:

傳感器隨機分布在水下環境中,每個節點都有其各自的深度、位置和速度信息[19]。在水平面上放置多個均勻分布的浮標作為信標節點,其能量充足且帶有GPS 定位功能,并且已完成時間同步,具有全球標準時間。浮標通過持續發出超聲波與水下節點進行通信。時間同步的進程是傳感器的簇首首先向浮標發起同步請求,浮標向簇首發送多段超聲波,而簇首通過接收到的聲波頻率變化來估算其自身移動速度,從而計算精確的傳播延遲。本節接下來將會詳細說明移動速度的估算方法。
從觀察浮標與簇首的位置情況可以發現,與波源移動而接收者靜止不動的情況類似,即簇首移動而浮標靜止不動。圖1 直觀表示了浮標與簇首節點交互情況[14]。其中A 為水面浮標,P 為待同步節點,節點的移動速度為V,浮標與節點之間連線的水平夾角為θ。浮標向待同步節點發送多段波速為u、頻率為f0的超聲波,并假設待同步節點接收聲波時的頻率為f1,則根據上節所述可得f0與f1之間的關系為:


圖1 浮標與簇首節點交互情況Fig.1 Interaction between buoy and cluster head node
浮標發送的多段超聲波的初始頻率都為f0,而待同步節點由于具有移動性,每次接收到的信號頻率fi都會發生變化,則由式(4)可推導出式(5),當其他條件都可知時可求得節點的移動速度Vi。

本節將介紹節點間的同步過程。根據時鐘同步原理,待同步節點P 的本地時鐘與標準時鐘的關系為T=at+b,其中,t為標準時間,a表示時鐘頻偏,b表示時鐘相偏[20]。根據上文所述,浮標與待同步簇首之間的報文交互如圖2 所示。

圖2 浮標與待同步簇首之間的報文交互Fig.2 Message interaction between buoy and cluster head to be synchronized
節點P 在T1時刻向浮標發起同步進程,浮標A在T2時刻接收到消息后隨即向待同步節點P 發送多段超聲波,其時間戳用t[i]表示,P 接收到的信息時間戳用T[i]表示。當浮標A 首次發送同步信息,其發送時間為t[1],經過時間d1后,信息到達待同步節點P,節點P 記錄信息到達本地時間為T[1]。經過固定時間間隔后,浮標A 再次向節點P 發送第2 個同步信息,由于節點受到洋流等影響會發生移動且在傳播過程中不可忽略,因此信息傳播延遲已不是t1而是t2,則可得出:

假設浮標A 為水面上的固定裝置沒有移動性,待同步節點P 在水下的移動速度為V1,波速為u,則可以得出:

式(7)的意義是2 個節點在第2 次交互時的距離等于第1 次交互時的距離加上節點在傳播過程中發生移動而產生的距離,且整理后可得:

其中,待同步節點P 的移動速度V1可由上節中描述的方法計算得出。將上述公式推廣,則可得到每次信息交互的傳播延遲與移速的關系為:

其中,i≥2。接下來聯立由式(9)組成的方程組,通過消元法先消去b,并將式(10)代入可求出節點的時鐘頻偏為:

從算法描述可以看出,通過多次信息交互最終可求出i-1 組時鐘頻偏與時鐘相偏,再將多次數據取均值作為最后時鐘同步的補償值。本節主要工作是完成浮標與簇首節點的時鐘同步。
在簇首完成時間同步后可承擔簇內的信標節點角色并向各成員節點發送時間同步消息。需要注意的是,此時簇首與其他節點都處于水面之下,將會受到洋流等因素產生移動。因此,在計算多普勒頻移時需要使用2.1 節中描述的第3 種情況:波源和接收者都在移動。假設簇首為P,成員節點為B,簇首向待同步節點發送多段波速為u,頻率為f0的超聲波,并假設待同步節點接收聲波時的頻率為f1,簇首移動速度為VP,待同步節點移動速度為VM。,則可得出f0與f1之間的關系為:

由于在水中V<<c,因此上式可近似為:

當其他條件都可知時,易求得節點的移動速度為VP+VM。
本節介紹簇首與簇內節點的同步過程。與第3 節不同的是,節點皆具有移動性,為了提高同步精度,本文采用混合的信息交換方式將時鐘頻偏與時鐘相偏分開計算。如圖3 所示,由待同步節點B 首先發起同步進程,然后簇首通過多次單向交互連續發送多段超聲波至待同步節點,在此過程中計算時鐘頻偏,最后通過一組雙向交互完成時鐘相偏的計算。

圖3 簇首與簇內節點的報文交互Fig.3 Message interaction between cluster head and nodes in the cluster
信息交互過程與第3 節所述類似,在此不再贅述。需要注意的是,P 和B 都具有移動性,則假設簇首P 的移動速度為VPi,待同步節點B 的移動速度為VBi,波速為u,則可推出:

式(15)的意義是2 個節點在第i次交互時的距離等于第i?1 次交互時的距離加上簇首與待同步節點在傳播過程中分別發生移動而產生的距離。整理后可得:

其中,VPi+VBi可由多普勒頻率變化計算得出,而在得到傳播延遲后,時鐘頻偏很容易得到。
在計算出時鐘頻偏后,待同步節點使用一次發送-接收的交互方式與簇首進行信息交換,完成對時鐘相偏的計算,并收集如圖3 所示的4 個時間Ta、Tb、

本文采用MATLAB 進行仿真,并在相同環境下比較本文算法與現有算法間的性能差異。本文仿真在1 000 m×1 000 m×500 m 的水下環境內進行,其中共有100 個水下傳感器節點且為隨機分布,浮標均勻分布在檢測區域水面,且通信范圍能覆蓋所有傳感器。節點運動通過多普勒輔助計算。仿真中使用的時間戳為MAC 層時間戳,其他實驗參數如表1所示。

表1 仿真參數設置Table 1 Simulation parameter settings
普通節點在完成時間同步后,本文算法(CD-Sync)和MU-Sync、NU-Sync[20]算法的本地時鐘誤差增長趨勢如圖4 所示。從圖4 可以看出,本文算法的誤差累計明顯小于其他2 種算法,在同步105s 后相比MU-Sync 和NU-Sync 減小了約68.27%和42.8%,在106s 后相比MU-Sync 和NU-Sync 減小了約44.56%和18.5%,而且隨著時間的推移,誤差呈倍數增加。本文算法同步誤差小于其他算法,這是因為采用了分簇模型,縮小了節點間的距離且減少了傳播延遲,并考慮了節點移動因素,進一步提高了精度。

圖4 3 種算法簇內時間同步后的誤差變化Fig.4 Error variation of three algorithms after intra cluster time synchronization
不同初始時鐘頻率偏斜對時鐘偏差的影響如圖5 所示。從圖5 可以看出,時間同步完成10 s 后,普通節點計算本地時間與標準時間的差值,初始頻率偏斜的變化范圍為10?5~8×10?5,由于未同步算法No-Sync 沒有對頻率偏斜進任何行估計,因此時間誤差的變化與不同的初始頻率偏斜是呈接近線性遞增關系。而Nu-sync 和本文算法CD-Sync 都對時鐘頻率偏斜進行了一定程度的估計,因此不同的初始頻率偏斜對時鐘偏差的影響都趨于穩定,但本文算法的誤差略小于其他算法,可以體現出本文算法的性能更優。

圖5 初始時鐘頻偏對3 種算法誤差的影響Fig.5 Effect of initial clock frequency offset on errors of three algorithms
傳播延遲的動態變化主要是節點的移動速度導致的。節點的移動速度對4 種算法的同步誤差影響如圖6 所示。從圖6 可以看出,三者的同步精度基本不受速度變化的影響,但是同步誤差卻有顯著差別,MU-Sync 的誤差主要在0.025 s 左右,NU-Sync 的誤差主要在0.006 s 左右,而本文算法的誤差均小于上述3 種算法。

圖6 節點移動速度對4 種算法同步精度的影響Fig.6 Effect of node moving speed on the synchronization accuracy of four algorithms
在浮標與簇首、簇首與成員節點的同步過程中,充當信標的節點會向待同步節點發送多段同步信息,而同步信息的數量決定了時鐘頻偏的計算精度,圖7 給出了3 種算法的不同信息數量與誤差之間的關系。從圖7 可以看出,隨著信息數量的增加,3 種算法的誤差都呈下降趨勢,但本文算法的誤差值更小。值得注意的是,當發送信息數量大于10 時,3 種算法的誤差區域都趨于平穩。因此,從能量消耗的角度考慮,本文將發送的信息數量設置為10。

圖7 4 種算法的數據包數量與誤差的關系Fig.7 Relationship between the number of data packets and the error of the four algorithms
本文基于多普勒測速原理提出一種新型的時間同步算法。該算法使用最佳聚類的節能分簇模型將節點劃分為簇首節點和簇內節點,簇首節點和水面信標節點利用多普勒效應進行時間同步,再將同步后的簇首節點與成員節點根據移動規律和多普勒效應進行時間同步,并利用多普勒原理估算節點間的相對移動速度,從而計算節點間的傳播延遲。仿真結果表明,該算法可有效提高水下傳感器傳播信息的時間同步精度。下一步將利用距離最優原則選擇最優簇頭和簇密度,以進一步提高時間同步精度。