姚宇婕,劉廣鐘,孔維全
(上海海事大學(xué)信息工程學(xué)院,上海 201306)
海洋環(huán)境監(jiān)測(cè)在科學(xué)勘探、商業(yè)開發(fā)和海岸保護(hù)等活動(dòng)中的地位不斷提升[1],這種廣泛監(jiān)測(cè)的理想載體是一種分布式水下無線傳感器系統(tǒng),稱為水下無線傳感器網(wǎng)絡(luò)(Underwater Wireless Sensor Network,UWSN)[2]。由于傳感器的維護(hù)工作較為困難,且考慮到節(jié)點(diǎn)在長(zhǎng)時(shí)間工作后,節(jié)點(diǎn)的本地時(shí)間與標(biāo)準(zhǔn)時(shí)間之間存在一定的偏差。而時(shí)間同步作為節(jié)點(diǎn)間協(xié)調(diào)與合作完成各項(xiàng)分布式任務(wù)的關(guān)鍵技術(shù)支撐,同時(shí)也是介質(zhì)訪問控制、路由轉(zhuǎn)發(fā)和傳感數(shù)據(jù)融合等[3]多項(xiàng)關(guān)鍵技術(shù)的基礎(chǔ)。若多個(gè)節(jié)點(diǎn)的時(shí)間各不相同,則無法協(xié)同完成后續(xù)多項(xiàng)工作。在水下部署傳感器節(jié)點(diǎn)的要求遠(yuǎn)高于陸地,這些節(jié)點(diǎn)一經(jīng)部署基本不再進(jìn)行維護(hù)和更換,因此水下傳感器的計(jì)算資源與能量存儲(chǔ)十分有限。水聲信道的傳播速度大約僅有1 500 m/s[4],部分陸地傳感器進(jìn)行時(shí)間同步時(shí)通常忽略傳播延遲,但是在水下環(huán)境中,巨大的傳播延遲在節(jié)點(diǎn)通信時(shí)是不可忽略的重要因素。此外,受到海水的溫度、鹽度和密度等多種環(huán)境因素的影響[5],水下聲波的速度會(huì)發(fā)生較大的隨機(jī)性變化,更為重要的是,傳感器節(jié)點(diǎn)具有隨洋流影響而移動(dòng)的特點(diǎn)[6],在某節(jié)點(diǎn)發(fā)送消息和接收回復(fù)消息的間隔中,由于傳播延遲的存在,節(jié)點(diǎn)已發(fā)生了相對(duì)移動(dòng),因此,在設(shè)計(jì)水聲傳感器網(wǎng)絡(luò)的時(shí)間同步算法中,須考慮到上述特性。
本文綜合考慮水聲通信中的各種特點(diǎn),提出一種新型的基于多普勒測(cè)速的水下傳感器時(shí)間同步算法。利用多普勒效應(yīng)導(dǎo)致的頻率變化[7]特征來構(gòu)建整個(gè)WSN 網(wǎng)絡(luò)的時(shí)間同步機(jī)制,并將分簇模型[8]作為水聲傳感器通信網(wǎng)絡(luò)的樣例,通過發(fā)送-接收雙向的數(shù)據(jù)包交互方式得到自身的時(shí)鐘相偏,以達(dá)到整個(gè)系統(tǒng)的時(shí)間同步。
目前,針對(duì)陸地傳感器的時(shí)間同步算法的研究成果有RBS[9]、TPSN[10]和FTSP[11]等。但是它們都沒有考慮到海洋環(huán)境的特殊性,并且忽略傳播延遲的存在。因此,該類協(xié)議并不適用于水下傳感器。關(guān)于水下傳感器時(shí)間同步的研究也取得了一些進(jìn)展,如TSHL[12]是為水下環(huán)境而設(shè)計(jì)的時(shí)間同步協(xié)議,且將傳播延遲納入算法設(shè)計(jì)的考慮范圍。該算法的運(yùn)行過程分為2 個(gè)階段,第一階段是采用單向信息交互的方式組成25 個(gè)時(shí)間戳對(duì)時(shí)元組,并采用線性擬合法來估計(jì)本地時(shí)鐘的時(shí)鐘頻偏。第二階段是通過執(zhí)行一次信息雙向交互,以獲得4 個(gè)重要的時(shí)間戳信息,并利用公式計(jì)算時(shí)鐘相偏和傳播延遲的大小,以對(duì)節(jié)點(diǎn)進(jìn)行相應(yīng)的補(bǔ)償。這種算法并未考慮節(jié)點(diǎn)移動(dòng)問題且假設(shè)傳播延遲不變,不適用于實(shí)際情況。MU-Sync[13]利用分簇的思想減小節(jié)點(diǎn)移動(dòng)性所帶來的影響,簇首負(fù)責(zé)對(duì)簇內(nèi)節(jié)點(diǎn)完成時(shí)間同步。該算法也可分為2 個(gè)階段,在第一階段中,使用發(fā)送-接收的雙向報(bào)文交互收集4 個(gè)時(shí)間戳組成一個(gè)REF 參考信標(biāo)組(共10 組),并執(zhí)行2 次線性擬合操作。在第二階段中,簇首節(jié)點(diǎn)將第二次擬合的估計(jì)值通過一次單向報(bào)文傳輸發(fā)送給待同步節(jié)點(diǎn)使其完成本地時(shí)鐘校正。Mobi-sync[14]基于流體力學(xué)假設(shè),利用空間相關(guān)性估計(jì)水下物體的移動(dòng)速度。這種算法共分為傳播延遲估計(jì)、線性擬合和校準(zhǔn)階段3 個(gè)階段。Mobi-sync 相比前兩種協(xié)議,同步精度得到明顯提升,但所需計(jì)算量過于龐大,并且每個(gè)待同步節(jié)點(diǎn)的一跳傳輸范圍內(nèi)必須存在3 個(gè)以上的超級(jí)節(jié)點(diǎn),因此需要預(yù)先在水下布置大量的超級(jí)節(jié)點(diǎn),造成成本增加,實(shí)現(xiàn)過程較為困難。文獻(xiàn)[15]提出一種多普勒輔助水下傳感器網(wǎng)絡(luò)時(shí)間同步機(jī)制,無線傳感器通過接收到的超聲波頻率變化計(jì)算自身當(dāng)前相對(duì)于浮標(biāo)的移動(dòng)速度及距離,并且所有無線傳感器根據(jù)距離估計(jì)的結(jié)果來完成與浮標(biāo)時(shí)間的同步校正。但是該算法存在一定的局限,一方面是只使用水面浮標(biāo)對(duì)水下傳感器節(jié)點(diǎn)進(jìn)行距離估算時(shí),其應(yīng)用場(chǎng)景僅限于淺水區(qū)域,無法對(duì)深水區(qū)節(jié)點(diǎn)進(jìn)行測(cè)量,且會(huì)造成一定的誤差。另一方面是算法的計(jì)算量龐大,造成同步工作的效率較慢,無法快速對(duì)所有節(jié)點(diǎn)進(jìn)行同步。針對(duì)這些問題,本文算法使用分簇思想進(jìn)行改進(jìn),不僅使用水面浮標(biāo)、水下傳感器節(jié)點(diǎn)承擔(dān)信標(biāo)節(jié)點(diǎn)完成同步工作,加快同步進(jìn)程,而且分簇還可縮短節(jié)點(diǎn)間的距離,提高同步精度。文獻(xiàn)[16]提出利用多普勒效應(yīng)輔助時(shí)間同步,由于節(jié)點(diǎn)在數(shù)據(jù)傳輸時(shí)發(fā)生運(yùn)動(dòng),數(shù)據(jù)幀在多普勒頻移的影響下將被壓縮或擴(kuò)展,因此接收信號(hào)的長(zhǎng)度會(huì)發(fā)生變化,通過比較發(fā)送、接收數(shù)據(jù)幀的時(shí)間估計(jì)多普勒因子的值,進(jìn)而獲得節(jié)點(diǎn)的移動(dòng)方向與速度,但方案中并未描述具體的節(jié)點(diǎn)間同步方法,且算法需要配備額外的測(cè)量器,增加了部署成本。本文算法明確了簇首同步和簇間同步2 個(gè)具體的實(shí)現(xiàn)過程,并規(guī)定了數(shù)據(jù)包的交互形式。
多普勒效應(yīng)是指波源和接收者之間由于相對(duì)運(yùn)動(dòng)使得接收者能夠感受到波的頻率變化,這是一種普遍的物理現(xiàn)象,在水下環(huán)境中尤為明顯,且可廣泛應(yīng)用于醫(yī)學(xué)、交通和航天等領(lǐng)域,并在定位和測(cè)速等技術(shù)上做出重大貢獻(xiàn)[17]。基于多普勒效應(yīng)造成的頻移現(xiàn)象在頻域上可表現(xiàn)為頻率的變化,當(dāng)一個(gè)移動(dòng)的波源向接收者接近時(shí),波會(huì)被壓縮且波長(zhǎng)變短,導(dǎo)致頻率變得較高;反之,當(dāng)波源遠(yuǎn)離接收者時(shí),波會(huì)被拉伸,波長(zhǎng)增加從而導(dǎo)致頻率變得較低。該理論是由奧地利科學(xué)家克里斯琴·多普勒·約翰于1842 年提出的[18]。
假設(shè)波源S 和接收者E 在同一水平線上運(yùn)動(dòng),假設(shè)f0為波源發(fā)出的初始信號(hào)頻率,f為接收者收到信號(hào)時(shí)的實(shí)際頻率,λ表示波長(zhǎng),v表示波速,波源的移動(dòng)速度為vS,接收者的移動(dòng)速度為vE,這3 種速度都具備方向性。接下來分為以下3 種情況討論多普勒效應(yīng)的存在方式。
1)當(dāng)波源靠近接收者而接收者靜止不動(dòng)時(shí),此時(shí)波速變?yōu)関-vS,其波長(zhǎng)為,因此接收者得到的頻率,且聯(lián)立可得:
2)當(dāng)波源靜止而接收者靠近波源時(shí),此時(shí)波源的波速為v+vE,波長(zhǎng)仍然為λ,因此接收者觀察到的頻率,將代入可得:
3)當(dāng)波源和接收者相向運(yùn)動(dòng)時(shí),可由式(1)和式(2)求得接收者處的頻率為:
傳感器隨機(jī)分布在水下環(huán)境中,每個(gè)節(jié)點(diǎn)都有其各自的深度、位置和速度信息[19]。在水平面上放置多個(gè)均勻分布的浮標(biāo)作為信標(biāo)節(jié)點(diǎn),其能量充足且?guī)в蠫PS 定位功能,并且已完成時(shí)間同步,具有全球標(biāo)準(zhǔn)時(shí)間。浮標(biāo)通過持續(xù)發(fā)出超聲波與水下節(jié)點(diǎn)進(jìn)行通信。時(shí)間同步的進(jìn)程是傳感器的簇首首先向浮標(biāo)發(fā)起同步請(qǐng)求,浮標(biāo)向簇首發(fā)送多段超聲波,而簇首通過接收到的聲波頻率變化來估算其自身移動(dòng)速度,從而計(jì)算精確的傳播延遲。本節(jié)接下來將會(huì)詳細(xì)說明移動(dòng)速度的估算方法。
從觀察浮標(biāo)與簇首的位置情況可以發(fā)現(xiàn),與波源移動(dòng)而接收者靜止不動(dòng)的情況類似,即簇首移動(dòng)而浮標(biāo)靜止不動(dòng)。圖1 直觀表示了浮標(biāo)與簇首節(jié)點(diǎn)交互情況[14]。其中A 為水面浮標(biāo),P 為待同步節(jié)點(diǎn),節(jié)點(diǎn)的移動(dòng)速度為V,浮標(biāo)與節(jié)點(diǎn)之間連線的水平夾角為θ。浮標(biāo)向待同步節(jié)點(diǎn)發(fā)送多段波速為u、頻率為f0的超聲波,并假設(shè)待同步節(jié)點(diǎn)接收聲波時(shí)的頻率為f1,則根據(jù)上節(jié)所述可得f0與f1之間的關(guān)系為:
圖1 浮標(biāo)與簇首節(jié)點(diǎn)交互情況Fig.1 Interaction between buoy and cluster head node
浮標(biāo)發(fā)送的多段超聲波的初始頻率都為f0,而待同步節(jié)點(diǎn)由于具有移動(dòng)性,每次接收到的信號(hào)頻率fi都會(huì)發(fā)生變化,則由式(4)可推導(dǎo)出式(5),當(dāng)其他條件都可知時(shí)可求得節(jié)點(diǎn)的移動(dòng)速度Vi。
本節(jié)將介紹節(jié)點(diǎn)間的同步過程。根據(jù)時(shí)鐘同步原理,待同步節(jié)點(diǎn)P 的本地時(shí)鐘與標(biāo)準(zhǔn)時(shí)鐘的關(guān)系為T=at+b,其中,t為標(biāo)準(zhǔn)時(shí)間,a表示時(shí)鐘頻偏,b表示時(shí)鐘相偏[20]。根據(jù)上文所述,浮標(biāo)與待同步簇首之間的報(bào)文交互如圖2 所示。
圖2 浮標(biāo)與待同步簇首之間的報(bào)文交互Fig.2 Message interaction between buoy and cluster head to be synchronized
節(jié)點(diǎn)P 在T1時(shí)刻向浮標(biāo)發(fā)起同步進(jìn)程,浮標(biāo)A在T2時(shí)刻接收到消息后隨即向待同步節(jié)點(diǎn)P 發(fā)送多段超聲波,其時(shí)間戳用t[i]表示,P 接收到的信息時(shí)間戳用T[i]表示。當(dāng)浮標(biāo)A 首次發(fā)送同步信息,其發(fā)送時(shí)間為t[1],經(jīng)過時(shí)間d1后,信息到達(dá)待同步節(jié)點(diǎn)P,節(jié)點(diǎn)P 記錄信息到達(dá)本地時(shí)間為T[1]。經(jīng)過固定時(shí)間間隔后,浮標(biāo)A 再次向節(jié)點(diǎn)P 發(fā)送第2 個(gè)同步信息,由于節(jié)點(diǎn)受到洋流等影響會(huì)發(fā)生移動(dòng)且在傳播過程中不可忽略,因此信息傳播延遲已不是t1而是t2,則可得出:
假設(shè)浮標(biāo)A 為水面上的固定裝置沒有移動(dòng)性,待同步節(jié)點(diǎn)P 在水下的移動(dòng)速度為V1,波速為u,則可以得出:
式(7)的意義是2 個(gè)節(jié)點(diǎn)在第2 次交互時(shí)的距離等于第1 次交互時(shí)的距離加上節(jié)點(diǎn)在傳播過程中發(fā)生移動(dòng)而產(chǎn)生的距離,且整理后可得:
其中,待同步節(jié)點(diǎn)P 的移動(dòng)速度V1可由上節(jié)中描述的方法計(jì)算得出。將上述公式推廣,則可得到每次信息交互的傳播延遲與移速的關(guān)系為:
其中,i≥2。接下來聯(lián)立由式(9)組成的方程組,通過消元法先消去b,并將式(10)代入可求出節(jié)點(diǎn)的時(shí)鐘頻偏為:
從算法描述可以看出,通過多次信息交互最終可求出i-1 組時(shí)鐘頻偏與時(shí)鐘相偏,再將多次數(shù)據(jù)取均值作為最后時(shí)鐘同步的補(bǔ)償值。本節(jié)主要工作是完成浮標(biāo)與簇首節(jié)點(diǎn)的時(shí)鐘同步。
在簇首完成時(shí)間同步后可承擔(dān)簇內(nèi)的信標(biāo)節(jié)點(diǎn)角色并向各成員節(jié)點(diǎn)發(fā)送時(shí)間同步消息。需要注意的是,此時(shí)簇首與其他節(jié)點(diǎn)都處于水面之下,將會(huì)受到洋流等因素產(chǎn)生移動(dòng)。因此,在計(jì)算多普勒頻移時(shí)需要使用2.1 節(jié)中描述的第3 種情況:波源和接收者都在移動(dòng)。假設(shè)簇首為P,成員節(jié)點(diǎn)為B,簇首向待同步節(jié)點(diǎn)發(fā)送多段波速為u,頻率為f0的超聲波,并假設(shè)待同步節(jié)點(diǎn)接收聲波時(shí)的頻率為f1,簇首移動(dòng)速度為VP,待同步節(jié)點(diǎn)移動(dòng)速度為VM。,則可得出f0與f1之間的關(guān)系為:
由于在水中V<<c,因此上式可近似為:
當(dāng)其他條件都可知時(shí),易求得節(jié)點(diǎn)的移動(dòng)速度為VP+VM。
本節(jié)介紹簇首與簇內(nèi)節(jié)點(diǎn)的同步過程。與第3 節(jié)不同的是,節(jié)點(diǎn)皆具有移動(dòng)性,為了提高同步精度,本文采用混合的信息交換方式將時(shí)鐘頻偏與時(shí)鐘相偏分開計(jì)算。如圖3 所示,由待同步節(jié)點(diǎn)B 首先發(fā)起同步進(jìn)程,然后簇首通過多次單向交互連續(xù)發(fā)送多段超聲波至待同步節(jié)點(diǎn),在此過程中計(jì)算時(shí)鐘頻偏,最后通過一組雙向交互完成時(shí)鐘相偏的計(jì)算。
圖3 簇首與簇內(nèi)節(jié)點(diǎn)的報(bào)文交互Fig.3 Message interaction between cluster head and nodes in the cluster
信息交互過程與第3 節(jié)所述類似,在此不再贅述。需要注意的是,P 和B 都具有移動(dòng)性,則假設(shè)簇首P 的移動(dòng)速度為VPi,待同步節(jié)點(diǎn)B 的移動(dòng)速度為VBi,波速為u,則可推出:
式(15)的意義是2 個(gè)節(jié)點(diǎn)在第i次交互時(shí)的距離等于第i?1 次交互時(shí)的距離加上簇首與待同步節(jié)點(diǎn)在傳播過程中分別發(fā)生移動(dòng)而產(chǎn)生的距離。整理后可得:
其中,VPi+VBi可由多普勒頻率變化計(jì)算得出,而在得到傳播延遲后,時(shí)鐘頻偏很容易得到。
在計(jì)算出時(shí)鐘頻偏后,待同步節(jié)點(diǎn)使用一次發(fā)送-接收的交互方式與簇首進(jìn)行信息交換,完成對(duì)時(shí)鐘相偏的計(jì)算,并收集如圖3 所示的4 個(gè)時(shí)間Ta、Tb、
本文采用MATLAB 進(jìn)行仿真,并在相同環(huán)境下比較本文算法與現(xiàn)有算法間的性能差異。本文仿真在1 000 m×1 000 m×500 m 的水下環(huán)境內(nèi)進(jìn)行,其中共有100 個(gè)水下傳感器節(jié)點(diǎn)且為隨機(jī)分布,浮標(biāo)均勻分布在檢測(cè)區(qū)域水面,且通信范圍能覆蓋所有傳感器。節(jié)點(diǎn)運(yùn)動(dòng)通過多普勒輔助計(jì)算。仿真中使用的時(shí)間戳為MAC 層時(shí)間戳,其他實(shí)驗(yàn)參數(shù)如表1所示。
表1 仿真參數(shù)設(shè)置Table 1 Simulation parameter settings
普通節(jié)點(diǎn)在完成時(shí)間同步后,本文算法(CD-Sync)和MU-Sync、NU-Sync[20]算法的本地時(shí)鐘誤差增長(zhǎng)趨勢(shì)如圖4 所示。從圖4 可以看出,本文算法的誤差累計(jì)明顯小于其他2 種算法,在同步105s 后相比MU-Sync 和NU-Sync 減小了約68.27%和42.8%,在106s 后相比MU-Sync 和NU-Sync 減小了約44.56%和18.5%,而且隨著時(shí)間的推移,誤差呈倍數(shù)增加。本文算法同步誤差小于其他算法,這是因?yàn)椴捎昧朔执啬P停s小了節(jié)點(diǎn)間的距離且減少了傳播延遲,并考慮了節(jié)點(diǎn)移動(dòng)因素,進(jìn)一步提高了精度。
圖4 3 種算法簇內(nèi)時(shí)間同步后的誤差變化Fig.4 Error variation of three algorithms after intra cluster time synchronization
不同初始時(shí)鐘頻率偏斜對(duì)時(shí)鐘偏差的影響如圖5 所示。從圖5 可以看出,時(shí)間同步完成10 s 后,普通節(jié)點(diǎn)計(jì)算本地時(shí)間與標(biāo)準(zhǔn)時(shí)間的差值,初始頻率偏斜的變化范圍為10?5~8×10?5,由于未同步算法No-Sync 沒有對(duì)頻率偏斜進(jìn)任何行估計(jì),因此時(shí)間誤差的變化與不同的初始頻率偏斜是呈接近線性遞增關(guān)系。而Nu-sync 和本文算法CD-Sync 都對(duì)時(shí)鐘頻率偏斜進(jìn)行了一定程度的估計(jì),因此不同的初始頻率偏斜對(duì)時(shí)鐘偏差的影響都趨于穩(wěn)定,但本文算法的誤差略小于其他算法,可以體現(xiàn)出本文算法的性能更優(yōu)。
圖5 初始時(shí)鐘頻偏對(duì)3 種算法誤差的影響Fig.5 Effect of initial clock frequency offset on errors of three algorithms
傳播延遲的動(dòng)態(tài)變化主要是節(jié)點(diǎn)的移動(dòng)速度導(dǎo)致的。節(jié)點(diǎn)的移動(dòng)速度對(duì)4 種算法的同步誤差影響如圖6 所示。從圖6 可以看出,三者的同步精度基本不受速度變化的影響,但是同步誤差卻有顯著差別,MU-Sync 的誤差主要在0.025 s 左右,NU-Sync 的誤差主要在0.006 s 左右,而本文算法的誤差均小于上述3 種算法。
圖6 節(jié)點(diǎn)移動(dòng)速度對(duì)4 種算法同步精度的影響Fig.6 Effect of node moving speed on the synchronization accuracy of four algorithms
在浮標(biāo)與簇首、簇首與成員節(jié)點(diǎn)的同步過程中,充當(dāng)信標(biāo)的節(jié)點(diǎn)會(huì)向待同步節(jié)點(diǎn)發(fā)送多段同步信息,而同步信息的數(shù)量決定了時(shí)鐘頻偏的計(jì)算精度,圖7 給出了3 種算法的不同信息數(shù)量與誤差之間的關(guān)系。從圖7 可以看出,隨著信息數(shù)量的增加,3 種算法的誤差都呈下降趨勢(shì),但本文算法的誤差值更小。值得注意的是,當(dāng)發(fā)送信息數(shù)量大于10 時(shí),3 種算法的誤差區(qū)域都趨于平穩(wěn)。因此,從能量消耗的角度考慮,本文將發(fā)送的信息數(shù)量設(shè)置為10。
圖7 4 種算法的數(shù)據(jù)包數(shù)量與誤差的關(guān)系Fig.7 Relationship between the number of data packets and the error of the four algorithms
本文基于多普勒測(cè)速原理提出一種新型的時(shí)間同步算法。該算法使用最佳聚類的節(jié)能分簇模型將節(jié)點(diǎn)劃分為簇首節(jié)點(diǎn)和簇內(nèi)節(jié)點(diǎn),簇首節(jié)點(diǎn)和水面信標(biāo)節(jié)點(diǎn)利用多普勒效應(yīng)進(jìn)行時(shí)間同步,再將同步后的簇首節(jié)點(diǎn)與成員節(jié)點(diǎn)根據(jù)移動(dòng)規(guī)律和多普勒效應(yīng)進(jìn)行時(shí)間同步,并利用多普勒原理估算節(jié)點(diǎn)間的相對(duì)移動(dòng)速度,從而計(jì)算節(jié)點(diǎn)間的傳播延遲。仿真結(jié)果表明,該算法可有效提高水下傳感器傳播信息的時(shí)間同步精度。下一步將利用距離最優(yōu)原則選擇最優(yōu)簇頭和簇密度,以進(jìn)一步提高時(shí)間同步精度。