呂春嬌
(上海海事大學(xué)信息工程學(xué)院,上海 201306)
隨著海洋經(jīng)濟(jì)的興起,世界各國(guó)對(duì)海洋資源的管理日漸重視,水下傳感器網(wǎng)絡(luò)的研究已經(jīng)變成學(xué)術(shù)界新的研究熱點(diǎn)[1]。為了能讓水下傳感器網(wǎng)絡(luò)可以更好地完成目標(biāo)檢測(cè)、信息獲取、數(shù)據(jù)傳輸?shù)热蝿?wù),精準(zhǔn)的時(shí)間同步因此成為支撐水下傳感器網(wǎng)絡(luò)的一個(gè)最基本的技術(shù)[2]。目前,國(guó)內(nèi)外學(xué)者針對(duì)陸上無(wú)線(xiàn)傳感器網(wǎng)絡(luò)的結(jié)構(gòu)和特點(diǎn),提出一系列適用在陸上的時(shí)間同步協(xié)議[3-5]。但是水下傳感器網(wǎng)絡(luò)采用了聲波進(jìn)行通信,這不同于陸地使用電磁波進(jìn)行通信;另外水下情況特殊,鏈路長(zhǎng)、傳播速度低,這均為水下時(shí)間同步算法研究帶來(lái)了諸多挑戰(zhàn)。
水下傳感器節(jié)點(diǎn)自身配有振蕩器,但在大規(guī)模的水下分布式網(wǎng)絡(luò)中,節(jié)點(diǎn)受水下溫度、水流速度、水壓等影響,振蕩器的計(jì)數(shù)周期和計(jì)數(shù)頻率存在波動(dòng),導(dǎo)致節(jié)點(diǎn)的本地時(shí)鐘存在誤差。因此,節(jié)點(diǎn)必須通過(guò)接收具有參考意義的時(shí)鐘節(jié)點(diǎn)的時(shí)間信息,對(duì)自身本地時(shí)間進(jìn)行校準(zhǔn)[6]。
在實(shí)際應(yīng)用中,水下傳感器網(wǎng)絡(luò)時(shí)間同步算法受幾個(gè)方面的影響[7]:水聲傳播速度低(僅為無(wú)線(xiàn)電在空氣中傳播速度的20萬(wàn)分之一);鏈路距離長(zhǎng)(節(jié)點(diǎn)間的部署距離為0.5km-2km);節(jié)點(diǎn)具有移動(dòng)性(以0.83-1.67m/s的速度在長(zhǎng)度限制范圍內(nèi)移動(dòng))。因此,解決傳播延時(shí)是解決水下時(shí)間同步問(wèn)題的首要前提。
綜合以上問(wèn)題,本文提出了一種基于能量分簇的V-時(shí)間同步算法,首先通過(guò)能量分簇減少不必要的網(wǎng)絡(luò)通信開(kāi)銷(xiāo)、降低能耗;然后對(duì)文獻(xiàn)[6]中提出的時(shí)間同步算法進(jìn)行優(yōu)化,引入相對(duì)移動(dòng)距離變量,更加精準(zhǔn)地計(jì)算節(jié)點(diǎn)通信時(shí)的鏈路長(zhǎng)度從而提高時(shí)間同步的精度。V-時(shí)間同步算法先對(duì)簇頭節(jié)點(diǎn)進(jìn)行時(shí)間同步,并以此為基準(zhǔn)對(duì)簇內(nèi)各成員節(jié)點(diǎn)進(jìn)行時(shí)間同步,從而使簇內(nèi)所有成員節(jié)點(diǎn)達(dá)到時(shí)間同步。
水聲信號(hào)在傳播過(guò)程中,信號(hào)發(fā)射功率大,鏈路傳播距離長(zhǎng),導(dǎo)致傳播衰減嚴(yán)重[8]。而且,水聲速度低和節(jié)點(diǎn)相對(duì)移動(dòng)速度能引起明顯的多途現(xiàn)象和多普勒頻移,同時(shí)加大了環(huán)境噪聲。這些情況使得節(jié)點(diǎn)接收解碼時(shí)的能耗需求遠(yuǎn)遠(yuǎn)大于陸上情況。
針對(duì)水下網(wǎng)絡(luò)的特點(diǎn),先對(duì)監(jiān)測(cè)區(qū)域內(nèi)的所有成員節(jié)點(diǎn)應(yīng)用分簇技術(shù)。所有節(jié)點(diǎn)被分成多個(gè)簇群,每個(gè)簇群內(nèi)有且只有一個(gè)簇頭節(jié)點(diǎn),其余均為簇成員節(jié)點(diǎn),簇內(nèi)的成員節(jié)點(diǎn)只能與該簇內(nèi)的成員節(jié)點(diǎn)(包括簇頭節(jié)點(diǎn))進(jìn)行通信,如需要和其他簇節(jié)點(diǎn)通信,必須通過(guò)本簇的簇頭節(jié)點(diǎn)完成。這種分簇技術(shù)大幅度降低了傳感器節(jié)點(diǎn)間的通信距離,減輕了傳播衰減的問(wèn)題、節(jié)約了大量通信能量、也有效地降低了多途現(xiàn)象和多普勒頻移造成的干擾。
本文的討論背景在潛水區(qū)域,此區(qū)域內(nèi)傳感器節(jié)點(diǎn)隨水流的移動(dòng)速度不會(huì)有很大偏差,而且在這種環(huán)境下,研究表明聲信號(hào)是通過(guò)柱面波進(jìn)行傳播[9]。柱面波的損失可表示為[10]:
(1)式中,d是通信傳播鏈路距離,a為吸收系數(shù),其大小與聲波頻率有關(guān)。
本文采用與文獻(xiàn)[11]相同的能量消耗模型,該模型是以減少節(jié)點(diǎn)能量消耗為基礎(chǔ)而建立的[12]。節(jié)點(diǎn)在進(jìn)行數(shù)據(jù)傳輸時(shí)的能量消耗可以表示為:
其中,C=2π×0.67×10-9.5+2.75×10-4f2+0.003,Eelec是節(jié)點(diǎn)發(fā)送數(shù)據(jù)時(shí)需要的能量,H是節(jié)點(diǎn)所在位置距水平面的高度,d是節(jié)點(diǎn)間鏈路距離長(zhǎng)度,f是發(fā)射頻率,T是數(shù)據(jù)通信過(guò)程中消耗的時(shí)間。整個(gè)網(wǎng)絡(luò)分簇完成后,簇內(nèi)成員節(jié)點(diǎn)開(kāi)始與簇頭通信,所有成員節(jié)點(diǎn)的能耗總和由公式(3)給出:
(3)式中,Di是成員節(jié)點(diǎn)到簇頭節(jié)點(diǎn)的距離,簇內(nèi)成員節(jié)點(diǎn)的數(shù)量是N。
為了得到每個(gè)簇的能耗,對(duì)每個(gè)簇的能量取期望,通過(guò)(3)式可得到期望公式:
從(4)式可以看出,每個(gè)簇內(nèi)的成員節(jié)點(diǎn)數(shù)量和期望E(D×ea(f)D)是影響簇的能耗的兩個(gè)因素。
已知節(jié)點(diǎn)在簇內(nèi)監(jiān)測(cè)區(qū)域的概率分布密度為f(D),假設(shè)每個(gè)劃分的簇的區(qū)域?yàn)閳A形區(qū)域[13],Dr表示每個(gè)簇的半徑,則:
因此,簇內(nèi)能耗期望可表示為:
對(duì)公式(6)中的Dr求偏微分,可得到其零點(diǎn)值,從而得到當(dāng)----Esum取極小值時(shí)Dr的取值。那么,可以通過(guò)(7)式求出分簇的最佳數(shù)量n:
在得到分簇的最佳數(shù)量后,針對(duì)在監(jiān)測(cè)區(qū)域內(nèi)隨機(jī)分布的節(jié)點(diǎn),按照此方法進(jìn)行分簇。簇頭位于每個(gè)簇的中心位置,(7)式中Dm是節(jié)點(diǎn)到分簇區(qū)域邊緣的距離。
水下傳感器節(jié)點(diǎn)自身配備的晶振提供節(jié)點(diǎn)的本地時(shí)間,但由于晶振受水波流動(dòng)、水溫不恒定等因素影響,傳感器節(jié)點(diǎn)振蕩頻率會(huì)產(chǎn)生偏差,因此時(shí)間同步也同樣會(huì)產(chǎn)生偏移[14]。節(jié)點(diǎn)本地時(shí)間和絕對(duì)時(shí)間的關(guān)系可由下式表示:
其中,T代表節(jié)點(diǎn)的本地時(shí)間,T′是節(jié)點(diǎn)的絕對(duì)時(shí)間,a是頻偏,b是相偏。在陸上無(wú)線(xiàn)傳感器網(wǎng)絡(luò)傳播中,由于傳播速度快、鏈路距離短,a的變化很小,可忽略不計(jì)。但是由于水聲傳播延時(shí)很大,a不能忽略。
從信息交互方式看,在陸地?zé)o線(xiàn)傳感器網(wǎng)絡(luò)中,時(shí)間同步算法主要分為單發(fā)送同步算法、發(fā)送-接收同步算法和接收-接收同步算法[15]。以單發(fā)送方式為代表的FTSP算法[4],其假設(shè)是鏈路傳播延遲可忽略,但在水下傳感器網(wǎng)絡(luò)中鏈路傳播延時(shí)是不能忽視的一個(gè)因素。以接收-接收方式為代表的RBS[16]算法不能直接用于水下環(huán)境,主要原因是水下鏈路傳播延時(shí)長(zhǎng),而且傳播延時(shí)存在時(shí)變性,同步過(guò)程中對(duì)節(jié)點(diǎn)的頻率偏移有很大影響、發(fā)送信息時(shí)能耗較高。因此,在水下傳感器網(wǎng)絡(luò)中,節(jié)點(diǎn)大都以發(fā)送-接收方式進(jìn)行時(shí)間同步,如 TSHL[17]、MU-Sync[18]、Mobi-Sync[19]等算法。
本文中,也同樣采用發(fā)送-接收方式的同步算法。這種時(shí)間同步方式一般采用單跳的方式向節(jié)點(diǎn)發(fā)送信標(biāo)消息。浮標(biāo)節(jié)點(diǎn)向簇頭節(jié)點(diǎn)發(fā)送時(shí)間同步信息,簇頭節(jié)點(diǎn)獲得時(shí)間信息后再作為同步時(shí)間的基準(zhǔn)節(jié)點(diǎn),向簇內(nèi)成員節(jié)點(diǎn)發(fā)送信標(biāo)信號(hào)進(jìn)行同步。
簇頭節(jié)點(diǎn)同步示意圖如圖1所示。
圖1 簇頭節(jié)點(diǎn)同步原理圖
首先,簇頭節(jié)點(diǎn)C向水面浮標(biāo)F發(fā)送含有發(fā)送時(shí)刻TC1(簇首節(jié)點(diǎn)C的當(dāng)前本地時(shí)間)的時(shí)間同步請(qǐng)求數(shù)據(jù)包,代表時(shí)間同步過(guò)程的開(kāi)始,通信鏈路距離為d1;接著,浮標(biāo)F接收到來(lái)自簇頭節(jié)點(diǎn)C的數(shù)據(jù)請(qǐng)求包,同時(shí)記錄當(dāng)前本地時(shí)間TF1;并向簇頭節(jié)點(diǎn)立刻進(jìn)行信息反饋,此時(shí)的傳播延時(shí)非常小,可以忽略不計(jì)。但為更好的解決水下傳感器的傳播延時(shí)問(wèn)題,浮標(biāo)F在時(shí)間間隔tm后再向簇頭節(jié)點(diǎn)發(fā)送一次包含當(dāng)前本地時(shí)間TF2的信標(biāo)信息包,此時(shí)通信鏈路距離為d2;簇頭節(jié)點(diǎn)接收到信息后記錄當(dāng)前本地時(shí)間TC3。
由(8)式得,節(jié)點(diǎn)進(jìn)行本地時(shí)鐘校正,得到公式(9):
其中,DCF是簇頭C到浮標(biāo)F的傳播延時(shí);DFC是浮標(biāo)F到簇頭節(jié)點(diǎn)C的傳播延時(shí)。
假設(shè)在節(jié)點(diǎn)間的運(yùn)動(dòng)具有一定的關(guān)聯(lián)性,簇頭節(jié)點(diǎn)和水面浮標(biāo)在一次信息交換周期內(nèi)相對(duì)位移變化能夠形成一個(gè)三角形,如圖2所示。
圖2 節(jié)點(diǎn)移動(dòng)模型
浮標(biāo)F在接收到簇頭節(jié)點(diǎn)C發(fā)送過(guò)來(lái)的請(qǐng)求消息后,在時(shí)間間隔tm后進(jìn)行第二次消息反饋。由于水下環(huán)境與陸地環(huán)境的不同,這時(shí)的傳播鏈路d2與簇頭節(jié)點(diǎn)發(fā)送請(qǐng)求的傳播鏈路d1發(fā)生變化,兩條鏈路軌跡之間產(chǎn)生夾角,記為α;將簇頭節(jié)點(diǎn)在TC2+tm時(shí)刻估計(jì)其接收鏈路與簇頭節(jié)點(diǎn)C運(yùn)動(dòng)軌跡之間的夾角記為β;由于受水流的影響,水下傳感器網(wǎng)絡(luò)的節(jié)點(diǎn)會(huì)有一定的移動(dòng)性,因此將圖2中A和TF1之間的距離記為l(即在tm時(shí)間內(nèi)浮標(biāo)節(jié)點(diǎn)F相對(duì)于簇頭節(jié)點(diǎn)C的運(yùn)動(dòng)距離)。浮標(biāo)F和簇頭節(jié)點(diǎn)C均能獲得任意時(shí)刻的所在位置的水流速度,因此l可由下式表示:
其中VF1、VF2、VC2、VC3分別是浮標(biāo)節(jié)點(diǎn)和簇頭節(jié)點(diǎn)在TF1、TF2、TC2、TC3時(shí)刻的水流速度。在ΔTF1ATF2和ΔTF1TC1TF2中,通過(guò)使用正弦定理和三角函數(shù)公式,可以得到:
假設(shè)聲音在水下傳播速度是恒定的,為c=1500m/s,根據(jù)公式(10)、(11)、(12)得出:
把(13)、(14)式代入,能夠求解出時(shí)間頻偏 a的值:
求出時(shí)鐘頻偏后,代入到公式(9)中,可以分別求出b1、b2,最后根據(jù)公式(16)可得到時(shí)鐘相偏b。
根據(jù)求出的時(shí)鐘頻偏和時(shí)鐘相偏,可以對(duì)每個(gè)簇頭節(jié)點(diǎn)實(shí)現(xiàn)時(shí)間同步。
已經(jīng)完成時(shí)間同步的簇頭節(jié)點(diǎn)作為簇內(nèi)唯一的一個(gè)信標(biāo)節(jié)點(diǎn),向簇內(nèi)待同步成員節(jié)點(diǎn)發(fā)送時(shí)間同步消息[13]。同步過(guò)程如圖3所示。
圖3 簇成員節(jié)點(diǎn)時(shí)間同步原理圖
簇頭節(jié)點(diǎn)向成員節(jié)點(diǎn)多次短間隔發(fā)送時(shí)間同步信號(hào),其目的在于抵消節(jié)點(diǎn)在水下運(yùn)動(dòng)的傳輸時(shí)延,以降低時(shí)間同步誤差。簇內(nèi)成員節(jié)點(diǎn)在收到信標(biāo)信號(hào)后,實(shí)時(shí)監(jiān)聽(tīng)信道。當(dāng)信道空余時(shí),在T1時(shí)刻發(fā)送包含當(dāng)前本地時(shí)間的反饋信息給簇頭節(jié)點(diǎn),簇頭節(jié)點(diǎn)接收到信號(hào),記錄本地時(shí)間T2,并在T3時(shí)刻發(fā)送攜帶時(shí)間信息的信號(hào)到成員節(jié)點(diǎn),成員節(jié)點(diǎn)在T4時(shí)刻接收。
假設(shè)簇頭節(jié)點(diǎn)向成員節(jié)點(diǎn)共發(fā)送N次信標(biāo)消息,考慮節(jié)點(diǎn)在水下的運(yùn)動(dòng)情況,在簇頭節(jié)點(diǎn)第M次(1≤M≤N)發(fā)送信號(hào)時(shí),根據(jù)公式(9)可以得到節(jié)點(diǎn)已經(jīng)運(yùn)動(dòng)的距離為:
其中,v是水下傳感器節(jié)點(diǎn)運(yùn)動(dòng)速度。由公式(17)得到:
采用以上方法,可以計(jì)算出簇內(nèi)成員節(jié)點(diǎn)的頻偏a和相偏b,從而達(dá)到簇內(nèi)的時(shí)間同步。
本文使用MATLAB,對(duì)分簇后與未分簇的情況下節(jié)點(diǎn)能量消耗、時(shí)間同步的精度兩方面進(jìn)行仿真實(shí)驗(yàn)。與文獻(xiàn)[6]中所提出的在同一能量分簇模型下的時(shí)間同步算法進(jìn)行比較,看本文提出的V-時(shí)間同步算法是否在同步精度上得到提升。
本文的仿真環(huán)境是直徑1000米的圓形區(qū)域,監(jiān)測(cè)區(qū)域內(nèi)隨機(jī)分布150個(gè)水下傳感器節(jié)點(diǎn),初始頻偏為80ppm,初始相偏為50ppm。
圖4 節(jié)點(diǎn)能量消耗對(duì)比圖
從圖4可以看出,水下傳感器節(jié)點(diǎn)在未分簇和分簇情況下對(duì)節(jié)點(diǎn)能量消耗的區(qū)別是很大的。本文中應(yīng)用的基于能量消耗模型,隨著傳感器節(jié)點(diǎn)分簇的數(shù)目增加,節(jié)點(diǎn)間通信時(shí)的能耗逐漸降低,趨近于0;而未進(jìn)行分簇的節(jié)點(diǎn)在傳輸信息時(shí)的能量消耗一直保持不變,并且能耗非常大。由此可見(jiàn),此分簇方法能有效地減少能耗。
圖5同步過(guò)程中頻偏變化對(duì)比圖
圖5 表示兩種時(shí)間同步算法隨著同步次數(shù)的增加頻偏的變化曲線(xiàn)。從圖中可以看出,隨著同步次數(shù)的增加兩種算法均能有效的減少誤差,但本文提出的優(yōu)化算法效果優(yōu)于文獻(xiàn)[6]提出的同步算法。這是因?yàn)樵谖墨I(xiàn)[6]提出的算法中,忽略了時(shí)間延時(shí),因此得到的結(jié)果誤差較大;而且忽略了在水下通信過(guò)程中節(jié)點(diǎn)會(huì)隨著洋流移動(dòng)的特性,忽略了鏈路距離的變化,導(dǎo)致數(shù)據(jù)有些誤差。
水下傳感器網(wǎng)絡(luò)不同于陸上傳感器網(wǎng)絡(luò),由于它受到水流影響導(dǎo)致節(jié)點(diǎn)具有移動(dòng)性、水聲信號(hào)傳播延時(shí)大、鏈路距離長(zhǎng)、易引起多普勒頻散現(xiàn)象等,使得水下時(shí)間同步算法有很大的誤差。
本文的研究基于一種給定能量模型的方式,首先對(duì)網(wǎng)絡(luò)結(jié)構(gòu)中的傳感器節(jié)點(diǎn)進(jìn)行分簇,通過(guò)能量分簇技術(shù)能有效地減少節(jié)點(diǎn)間信息通信時(shí)的能量消耗;然后再對(duì)已有的一個(gè)水下傳感器同步算法進(jìn)行優(yōu)化,考慮到節(jié)點(diǎn)在水下的移動(dòng)性和傳播延時(shí)的問(wèn)題,引入延時(shí)和節(jié)點(diǎn)間相對(duì)移動(dòng)距離進(jìn)行V-時(shí)間同步算法的計(jì)算。實(shí)驗(yàn)表明,本文提出的同步算法在精度上要高于原有算法。
因此,分簇技術(shù)、減少傳輸時(shí)延、考慮節(jié)點(diǎn)間的相對(duì)移動(dòng)距離在研究水下傳感器網(wǎng)絡(luò)的時(shí)間同步算法上具有很大的工程意義。