楊海波,趙克華,祝云凱
(1.浙江樹人大學(xué)信息科技學(xué)院,杭州 310015;2.浙江杭佳科技發(fā)展有限公司,杭州 310010)
水下無線傳感網(wǎng)絡(luò)(Underwater Wireless Sensor Networks,UWSN)是將低能耗、通信距離受限的節(jié)點部署在指定水域中,利用節(jié)點的自組織能力組網(wǎng),對指定區(qū)域內(nèi)的信息進(jìn)行采集并完成相應(yīng)的數(shù)據(jù)整理[1]。UWSN在海洋資源勘探、海洋環(huán)境監(jiān)測以及海洋軍事領(lǐng)域有廣泛且重要的用途,已經(jīng)引起工業(yè)界、學(xué)術(shù)界以及軍事界的極大關(guān)注。
近年來,隨著各國發(fā)展海洋經(jīng)濟(jì)熱潮的不斷興起,UWSN已經(jīng)成為無線傳感器網(wǎng)絡(luò)的熱點研究領(lǐng)域。區(qū)別于傳統(tǒng)無線傳感網(wǎng)絡(luò)(Wireless Sensor Networks,WSN),UWSN需要監(jiān)測三維水域環(huán)境。由于水下環(huán)境復(fù)雜多變且僅能依靠衰落較快的聲波信號傳輸信息,使得許多傳統(tǒng)WSN的方法并不適用于UWSN[2]。尤其水下節(jié)點移動策略直接關(guān)系網(wǎng)絡(luò)的節(jié)點能量、通信帶寬、監(jiān)測信息的準(zhǔn)確性,成為UWSN眾多研究方向的首要待解決問題。
虛擬力模型(Virtual Force Algorithm,VFA)是解決WSN節(jié)點移動策略的主要方法之一[3-7]。傳統(tǒng)虛擬力模型通過采集鄰居節(jié)點的信息,并與事先確定的閾值進(jìn)行比較判斷,確定節(jié)點所受斥力或者引力的大小及方向[3]。網(wǎng)絡(luò)中的節(jié)點將根據(jù)所受力的大小及屬性(引力或斥力)進(jìn)行移動。李明等[4]以網(wǎng)絡(luò)覆蓋率最大為優(yōu)化目標(biāo)函數(shù),提出一種解決異構(gòu)WSN覆蓋問題的虛擬力導(dǎo)向差分優(yōu)化算法。在該算法中,節(jié)點間距離被用于關(guān)鍵指標(biāo)并以指數(shù)函數(shù)形式建立虛擬力模型。區(qū)別于傳統(tǒng)線性函數(shù)形式的虛擬力模型,指數(shù)函數(shù)能夠增加算法收斂速度,減少計算用時。魏連鎖等[5]對傳統(tǒng)虛擬力模型進(jìn)行改進(jìn),以網(wǎng)絡(luò)節(jié)點的鄰居節(jié)點數(shù)量以及到鄰居節(jié)點的距離兩項因素作為關(guān)鍵指標(biāo)并以指數(shù)函數(shù)形式建立虛擬力模型,提出一種適用于WSN的錨節(jié)點移動策略。區(qū)別于傳統(tǒng)虛擬力模型,采用雙項指標(biāo)構(gòu)建指標(biāo)函數(shù)有效地解決節(jié)點移動策略的多目標(biāo)優(yōu)化問題。傳統(tǒng)虛擬力模型在UWSN中的應(yīng)用主要體現(xiàn)于節(jié)點部署策略,尤其是提高網(wǎng)絡(luò)覆蓋率。由于UWSN特殊性使得難以在網(wǎng)絡(luò)中實現(xiàn)確定性節(jié)點部署,虛擬力模型便可以實現(xiàn)節(jié)點動態(tài)部署。羅強(qiáng)等[6]在UWSN中引入虛擬力的概念作為節(jié)點部署的重要策略,以提高節(jié)點初始隨機(jī)部署后的覆蓋率。首先,將節(jié)點隨機(jī)散布于UWSN;然后,通過計算節(jié)點間距離從而確定所受力的大小及方向。王軍等[7]基于三維網(wǎng)格劃分與虛擬力模型,提出了一種適用于UWSN的節(jié)點部署策略。在文章中,采用節(jié)點間距離作為關(guān)鍵指標(biāo)并以線性函數(shù)形式構(gòu)建虛擬力模型,從而實現(xiàn)UWSN節(jié)點動態(tài)部署策略。
綜上所述,虛擬力算法制定的節(jié)點移動策略多以提高網(wǎng)絡(luò)整體覆蓋率為目標(biāo),而較少考慮網(wǎng)絡(luò)吞吐量、網(wǎng)絡(luò)生存時間等重要因素。本文基于傳統(tǒng)虛擬力模型,提出一種以信道比與節(jié)點度雙因素作為關(guān)鍵指標(biāo)的虛擬力算法,并據(jù)此制定UWSN節(jié)點移動策略(SINR Virtual Force Algorithm,SVFA)。
表1 幾種虛擬力構(gòu)造方式對比表
假設(shè)在UWSN中部署N個節(jié)點,且每個節(jié)點都具備相同的覆蓋半徑Rcov。在真實環(huán)境中,傳感器可以監(jiān)測以其自身為球心,以Rcov為半徑的圓球內(nèi)部數(shù)據(jù)信息。同時,每個節(jié)點都具備相同的通信半徑Rcom,傳感器可以與以其自身為球心,以Rcom為半徑的圓球內(nèi)部的其他節(jié)點進(jìn)行通信業(yè)務(wù)。為了便于描述UWSN節(jié)點間的連通狀況,引入一個0-1連通矩陣T=(tij)N×N,矩陣元素含義如下所示:
位置i與位置j的兩個傳感器節(jié)點三維坐標(biāo)分別表示為(xci,yci,zci)與(xcj,ycj,zcj),i=1,2,…,N;j=1,2,…,N。連通矩陣元素計算方式如下:
(1)
定義本地節(jié)點通信范圍內(nèi)的鄰居傳感器節(jié)點數(shù)量為節(jié)點度[8]。因此,位置i的傳感器節(jié)點度ndi計算公式如下所示:
(2)
覆蓋率是UWSN節(jié)點部署與節(jié)點移動策略非常關(guān)注的一項指標(biāo)。為描述UWSN覆蓋狀況,可以將網(wǎng)絡(luò)離散成K×M×L的三維長方體網(wǎng)格。覆蓋矩陣維度P為網(wǎng)絡(luò)格點總數(shù),P=(K+1)×(M+1)×(L+1)。引入覆蓋矩陣F=(fij)N×P,矩陣元素含義如下所示:
位置i的傳感器節(jié)點與位置j的探測點三維坐標(biāo)分別表示為(xci,yci,zci)與(xgj,ygj,zgj),i=1,2,…,N;j=1,2,…,P。覆蓋矩陣元素計算方式如下:
(3)
通過覆蓋矩陣F=(fij)N×P可得網(wǎng)絡(luò)中任何一個格點被覆蓋的情況K=(ki)1×P,矩陣元素的計算方法如下:
(4)
將UWSN的覆蓋效率定義為指定區(qū)域被覆蓋格點數(shù)與網(wǎng)絡(luò)格點總數(shù)之比[9]。網(wǎng)絡(luò)覆蓋效率指標(biāo)g可以表達(dá)如下:
(5)
UWSN節(jié)點之間正常通信不僅要求滿足連通性指標(biāo)tij=1,還要滿足鏈路信噪比閾值要求[10]。因此,需要考慮信息傳輸?shù)男诺滥P汀.?dāng)發(fā)送節(jié)點S向目的節(jié)點D發(fā)送信息時,處于目的節(jié)點D通信半徑內(nèi)的其他節(jié)點R1與R2將對節(jié)點S與D之間的通信產(chǎn)生干擾,如圖1所示。
圖1 網(wǎng)絡(luò)傳輸干擾說明圖
以hij表示從發(fā)送節(jié)點i向目的節(jié)點j發(fā)送信息時的信道增益,計算方法表示如下[11]:
(6)
式中:dij表示發(fā)送節(jié)點i與目的節(jié)點j之間的距離,α表示介質(zhì)吸收系數(shù),ρ2表示信道衰弱系數(shù),A表示由于多徑傳輸?shù)纫蛩匾鸬膫鬏敁p耗。文獻(xiàn)[12-13]指出在深水環(huán)境中多徑衰落對水聲信道的影響較小,可以忽略不計。因此,可以取A=0,ρ2=1。信道增益公式可以簡化如下:
(7)
當(dāng)發(fā)送節(jié)點i與目的節(jié)點j之間的信道信噪比SINRij滿足如下條件時,兩傳感器節(jié)點間可以正常通信。信噪比計算公式如下:
(8)
式中:ri表示發(fā)送節(jié)點i的天線方向,ri∈[0,1],Pi表示發(fā)送節(jié)點i的信息發(fā)送功率,l表示干擾節(jié)點的標(biāo)號,rlPlhljtlj表示目的節(jié)點通信范圍內(nèi)的干擾節(jié)點所產(chǎn)生的干擾功率,tlj的含義如式(1)所述,η表示信道噪聲功率,β表示信道信噪比閾值。
假設(shè)UWSN每個節(jié)點都可以感知其通信范圍內(nèi)鄰居節(jié)點的相關(guān)信息。虛擬力的基本思想可以歸納為:每個節(jié)點都將受到鄰居節(jié)點的影響,這種影響以“力”的方式改變節(jié)點的移動方向以及速率。本節(jié)主要討論與覆蓋率指標(biāo)相關(guān)的“節(jié)點度虛擬力”和與吞吐量指標(biāo)相關(guān)的“信噪比虛擬力”設(shè)置方式。
UWSN節(jié)點分布不能過于密集,否則將造成網(wǎng)絡(luò)覆蓋率指標(biāo)下降。為此,需要為每個節(jié)點配置節(jié)點度閾值Td。當(dāng)鄰居節(jié)點的節(jié)點度超過閾值時,說明該鄰居節(jié)點周圍有很多節(jié)點,本地節(jié)點將向遠(yuǎn)離該鄰居節(jié)點的方向移動;當(dāng)鄰居節(jié)點的節(jié)點度低于閾值時,本地節(jié)點將向該鄰居節(jié)點的方向移動,如圖2所示。圖中標(biāo)號為1的節(jié)點通信范圍內(nèi)有4個鄰居節(jié)點,可以感知此4個鄰居節(jié)點的節(jié)點度。節(jié)點2和節(jié)點3 的節(jié)點度都低于閾值Td,節(jié)點1將向靠近節(jié)點2和節(jié)點3的方向移動;節(jié)點4和節(jié)點5的節(jié)點度都超過閾值Td,節(jié)點1將向遠(yuǎn)離節(jié)點4和節(jié)點5的方向移動。
圖2 節(jié)點度閾值示意圖
圖3 信噪比閾值示意圖
由于UWSN節(jié)點之間需要滿足鏈路信噪比閾值才能正常通信,故需要為每個節(jié)點配置信噪比閾值β。當(dāng)鄰居節(jié)點與本地節(jié)點構(gòu)成的鏈路信噪比超過閾值時,該節(jié)點將向鄰居節(jié)點方向移動,以增強(qiáng)傳輸信號強(qiáng)度;當(dāng)鄰居節(jié)點與本地節(jié)點構(gòu)成的鏈路信噪比低于閾值時,該節(jié)點將向遠(yuǎn)離鄰居節(jié)點方向移動,如圖3所示。圖中標(biāo)號為1的節(jié)點通信范圍內(nèi)有4個鄰居節(jié)點,可以感知此4個鄰居節(jié)點的信噪比。節(jié)點2和節(jié)點3 的信噪比都低于閾值β,節(jié)點1將向靠近節(jié)點2和節(jié)點3的方向移動;節(jié)點4和節(jié)點5的信噪比都超過閾值β,節(jié)點1將向遠(yuǎn)離節(jié)點4和節(jié)點5的方向移動。綜上所述,節(jié)點1的移動方式受到兩項閾值的影響。
節(jié)點度閾值設(shè)定是為使得節(jié)點位置均勻地分布于UWSN。因此,可以將節(jié)點位置均勻分布時,節(jié)點度的期望值作為閾值Td。在區(qū)域體積為V的UWSN中部署N個節(jié)點,節(jié)點度的期望計算方式如下二項分布公式所示:
(9)
借鑒Logistic函數(shù)[13],定義“節(jié)點度虛擬力”和“信噪比虛擬力”為取值范圍[0,1]的指數(shù)有向函數(shù)。定義時刻t鄰居節(jié)點j對本地節(jié)點i的“節(jié)點度虛擬力”αij(t)計算方式如下:
(10)
當(dāng)鄰居節(jié)點的節(jié)點度小于閾值時,“節(jié)點度虛擬力”的方向與ij相同,表示向靠近鄰居節(jié)點的方向移動。此時,鄰居節(jié)點的節(jié)點度越小,虛擬力越大。當(dāng)鄰居節(jié)點的節(jié)點度等于1時,“節(jié)點度虛擬力”達(dá)到最大值為1。當(dāng)鄰居節(jié)點的節(jié)點度大于閾值時,“節(jié)點度虛擬力”的方向與ji相同,表示向遠(yuǎn)離鄰居節(jié)點的方向移動。此時,鄰居節(jié)點的節(jié)點度越大,虛擬力越大。當(dāng)鄰居節(jié)點的節(jié)點度等于閾值時,“節(jié)點度虛擬力”不會對本地節(jié)點的移動方式產(chǎn)生作用。
定義時刻t鄰居節(jié)點j對本地節(jié)點i的“信噪比虛擬力”γij(t)如下:
(11)
當(dāng)本地節(jié)點與鄰居節(jié)點構(gòu)成的鏈路信噪比低于閾值時,“信噪比虛擬力”的方向與ij相同,表示向靠近鄰居節(jié)點的方向移動;當(dāng)本地節(jié)點與鄰居節(jié)點構(gòu)成的鏈路信噪比大于閾值時,“信噪比虛擬力”的方向與ji相同,表示向遠(yuǎn)離鄰居節(jié)點的方向移動;當(dāng)本地節(jié)點與鄰居節(jié)點的鏈路信噪比等于閾值時,“信噪比虛擬力”不會對本地節(jié)點的移動方式產(chǎn)生作用。
在時刻t本地節(jié)點i的虛擬力ri(t)為所有鄰居節(jié)點所施加的“節(jié)點度虛擬力”和“信噪比虛擬力”之和:
(12)
時刻t本地節(jié)點i的移動方向與虛擬力ri(t)的方向一致,移動速度的計算方法如下所示:
(13)
式中:vmax表示每個節(jié)點允許移動的最大速度,vi(t)為時刻t節(jié)點i的移動速率,|ri(t)|表示時刻t節(jié)點i所受到虛擬力的數(shù)值。由于|ri(t)|是ndi個“節(jié)點度虛擬力”與ndi個“信噪比虛擬力”的合力,|ri(t)|/(2ndi)的取值范圍為[0,1]。
為評價本文所提出的算法效果,本文采用MATLAB 軟件進(jìn)行數(shù)值仿真。針對一個60 m×60 m×60 m水下區(qū)域隨機(jī)散布100個傳感器節(jié)點,節(jié)點按照算法制定的移動策略進(jìn)行移動。假設(shè)網(wǎng)絡(luò)中節(jié)點的覆蓋半徑為15 m,通信半徑為20 m,信道信噪比閾值為20 dB。假設(shè)每個節(jié)點在單位仿真時間內(nèi)的最大移動速度為1 m,網(wǎng)絡(luò)中所有節(jié)點的初始能量為5 J。
將文獻(xiàn)[6]中的傳統(tǒng)虛擬力模型VFA、文獻(xiàn)[5]中的修正虛擬力模型DVFA作為本文所提出SVFA的對比算法。仿真600個單位時間,傳感器節(jié)點在每個仿真時間移動一次,網(wǎng)絡(luò)覆蓋率隨時間變化趨勢如圖4所示。同時,對于在網(wǎng)絡(luò)中部署不同數(shù)量的傳感器節(jié)點,并采用三種不同節(jié)點移動策略得到網(wǎng)絡(luò)最終覆蓋率如圖5所示。
圖4 網(wǎng)絡(luò)覆蓋率隨仿真時間變化趨勢圖
圖5 網(wǎng)絡(luò)覆蓋率隨節(jié)點數(shù)量變化趨勢圖
圖4顯示:在三種不同虛擬力模型所制定的節(jié)點移動策略下,隨著仿真時間推移,網(wǎng)絡(luò)覆蓋率快速提升,并在仿真后期逐漸趨于穩(wěn)定。本文所提出的SVFA在覆蓋率上的表現(xiàn)優(yōu)于DFVA和VFA,可以實現(xiàn)更高的網(wǎng)絡(luò)覆蓋率。此三種虛擬力模型中都考慮以節(jié)點間距離或者節(jié)點度作為關(guān)鍵指標(biāo),這些因素在一定程度上能夠保障網(wǎng)絡(luò)覆蓋率。圖5顯示:網(wǎng)絡(luò)覆蓋率隨著節(jié)點數(shù)量增加而增加,本文所提出SVFA使得網(wǎng)絡(luò)覆蓋率稍高于其他兩種策略獲得的網(wǎng)絡(luò)覆蓋率。其中,圖5中VFA曲線出現(xiàn)的抖動是由于隨機(jī)仿真所造成的。
當(dāng)在網(wǎng)絡(luò)中部署100個傳感器節(jié)點時,單位時間網(wǎng)絡(luò)吞入量隨時間變化情況如圖6所示。定義網(wǎng)絡(luò)中能量最低的節(jié)點為瓶頸節(jié)點,瓶頸節(jié)點能量百分比隨仿真時間變化情況如圖7所示。
圖6 網(wǎng)絡(luò)吞吐量隨仿真時間變化趨勢圖
圖7 網(wǎng)絡(luò)瓶頸能量變化隨仿真時間變化趨勢圖
圖6顯示:在三種不同虛擬力模型所制定的節(jié)點移動策略下,隨著仿真時間推移,網(wǎng)絡(luò)吞吐量明顯增加。本文所提出的SVFA在覆蓋率上的表現(xiàn)明顯優(yōu)于DFVA和VFA,可以獲得更高的網(wǎng)絡(luò)吞吐量,這是由于DFVA和VFA在構(gòu)造過程中并未考慮鏈路信噪比所造成。圖7顯示:在三種不同虛擬力模型所制定的節(jié)點移動策略下,網(wǎng)絡(luò)瓶頸能量下降速度較為接近,本文所提出的SVFA在延緩瓶頸節(jié)點能量下降方面稍顯優(yōu)秀。
本文提出一種基于信噪比的虛擬力算法。首先,考慮水下網(wǎng)絡(luò)信道傳輸特性,構(gòu)建信道信噪比數(shù)學(xué)模型;然后,以信噪比和節(jié)點度雙指標(biāo)修正傳統(tǒng)虛擬力模型,并制定節(jié)點移動策略。結(jié)果顯示:相比于傳統(tǒng)節(jié)點移動策略,本文所提出的移動策略可以有效提升網(wǎng)絡(luò)吞吐量,延長網(wǎng)絡(luò)生存時間。