梁 青, 上官藝偉, 張文飛, 焦 峰
(西安郵電大學(xué) 電子工程學(xué)院, 陜西 西安 710021)
無線傳感器網(wǎng)絡(luò)(wireless sensor network,WSN)可以有效采集并處理監(jiān)測區(qū)域內(nèi)的數(shù)據(jù)信息,并通過無線方式傳輸給終端[1],被廣泛應(yīng)用于環(huán)境觀察、城市交通和醫(yī)療服務(wù)等領(lǐng)域[2-3]。然而,網(wǎng)絡(luò)空洞[4-5]的存在,往往會降低網(wǎng)絡(luò)生命周期[6]。
在低功耗自適應(yīng)集簇分層型(low energy adaptive clustering hierarchy,LEACH)協(xié)議[7]中,普通節(jié)點與匯點的位置都是固定不變的。普通節(jié)點的固定嚴(yán)重影響部分節(jié)點能量耗盡時網(wǎng)絡(luò)的修復(fù),造成網(wǎng)絡(luò)空洞的出現(xiàn)。移動節(jié)點則可對網(wǎng)絡(luò)空洞的修復(fù)提供方便[8],即根據(jù)節(jié)點的能耗,采用遺傳算法[9]確定移動節(jié)點的軌跡,從而最大限度地對普通節(jié)點進(jìn)行修復(fù),盡可能避免因節(jié)點死亡帶來的網(wǎng)絡(luò)空洞。移動節(jié)點還可以根據(jù)提前設(shè)計好的空洞修復(fù)策略,自適應(yīng)地在網(wǎng)絡(luò)內(nèi)移動,并根據(jù)空洞的地理位置信息對其進(jìn)行修復(fù),降低網(wǎng)絡(luò)的冗余度[10]。
匯點的固定降低了數(shù)據(jù)收集的效率,其周圍節(jié)點因轉(zhuǎn)發(fā)工作繁重更易過早耗盡能量。移動匯點可以讓其周圍節(jié)點的負(fù)載量得到均衡[11]。根據(jù)各子域節(jié)點的覆蓋率及死亡率,確定移動匯點的軌跡和運(yùn)動狀態(tài),可有效降低其周圍節(jié)點的負(fù)擔(dān),并提高收集數(shù)據(jù)信息的效率[12]。
為改善路由空洞,降低網(wǎng)絡(luò)能耗,延長網(wǎng)絡(luò)生存周期,本文擬給出一種基于多移動節(jié)點和單移動匯點的高效數(shù)據(jù)收集協(xié)議(energy-efficient data gathering protocol based on mobile nodes and a mobile sink,EEPBM),將多移動節(jié)點與一個移動匯點[13]同時應(yīng)用到無線傳感器網(wǎng)絡(luò)路由空洞中,合理規(guī)劃移動節(jié)點與移動匯點的移動軌跡及數(shù)據(jù)收集策略。
數(shù)據(jù)收集協(xié)議所采用的網(wǎng)絡(luò)模型如下。
(1) 所有節(jié)點在WSN中隨機(jī)散播且其位置都是固定不變的。
(2) 所有節(jié)點的結(jié)構(gòu)、能量大小等初始條件均相同。
(3) 傳感器節(jié)點可以采用定位算法或全球定位系統(tǒng)獲取自身及整個網(wǎng)絡(luò)的位置信息。
(4) 固定匯點位于網(wǎng)絡(luò)的中心。
(5) 所有匯點和移動節(jié)點通過攜帶高能源設(shè)備,讓它們的初始能量遠(yuǎn)大于普通節(jié)點。
(6) 移動匯點和移動節(jié)點可以獲取并改變自身的運(yùn)動狀態(tài)。
(7) 移動節(jié)點通過增加自身的發(fā)送和接收功率,直接與固定匯點和移動匯點進(jìn)行通信。
無線傳感器網(wǎng)絡(luò)的能量消耗主要用于節(jié)點間的數(shù)據(jù)傳輸,模型主要考慮傳感器節(jié)點間的傳輸能耗。假設(shè)節(jié)點接收/發(fā)送數(shù)據(jù)的比特長度為l,定義能量消耗為[7]
其中,l代表傳輸數(shù)據(jù)的二進(jìn)制位數(shù);ε1代表自由空間模型中的功率放大損耗;ε2代表多徑衰落信道模型中的功率放大損耗;e代表射頻能耗系數(shù);d代表數(shù)據(jù)傳輸?shù)木嚯x;d0代表距離閾值,其可以定義為
簇頭節(jié)點接收并處理單位數(shù)據(jù)所需的能量為ED。
為了均衡網(wǎng)絡(luò)中節(jié)點的能量消耗,在傳感器網(wǎng)絡(luò)中采用分簇機(jī)制,可有效降低節(jié)點間通信造成的冗余[14]。簇頭的評判基于LEACH協(xié)議而設(shè)計。
節(jié)點的隨機(jī)分布和部分節(jié)點能量的耗盡,將導(dǎo)致網(wǎng)絡(luò)產(chǎn)生能量空洞,并增加節(jié)點之間的傳輸路徑[15]??紤]利用移動節(jié)點修復(fù)能量空洞,結(jié)合網(wǎng)絡(luò)中傳感器節(jié)點的位置關(guān)系和覆蓋情況,確定移動節(jié)點在網(wǎng)絡(luò)內(nèi)的移動軌跡及其空洞修復(fù)方法。
將整個網(wǎng)絡(luò)分成完全相同的16個子域,如圖1所示。
圖1 網(wǎng)絡(luò)區(qū)域劃分
網(wǎng)絡(luò)初始化設(shè)置為L×L,N個傳感器節(jié)點隨機(jī)分布在WSN中,固定匯點位于網(wǎng)絡(luò)的中心位置。節(jié)點根據(jù)自己的位置信息加入到對應(yīng)的子域中,將4個移動節(jié)點Mi(i=1,2,3,4)依次置于對應(yīng)的初始化位置中。
如圖1所示,4個移動節(jié)點的坐標(biāo)位置分別為
移動節(jié)點相鄰的4個子域視為移動節(jié)點的受控區(qū)域,移動節(jié)點只在受控區(qū)域內(nèi)進(jìn)行移動,即移動節(jié)點M1的受控區(qū)域為σ11,σ12,σ13和σ14;移動節(jié)點M2的受控區(qū)域為σ21,σ22,σ23和σ24;移動節(jié)點M3的受控區(qū)域為σ31,σ32,σ33和σ34;移動節(jié)點M4的受控區(qū)域為σ41,σ42,σ43和σ44。
移動節(jié)點根據(jù)受控區(qū)域內(nèi)節(jié)點的覆蓋率和節(jié)點之間的位置關(guān)系,移動至網(wǎng)絡(luò)中的空洞處,4個移動節(jié)點采用相同的軌跡設(shè)計規(guī)則和空洞修復(fù)機(jī)制。為便于表述,以移動節(jié)點M1為例給出移動節(jié)點的工作機(jī)制。
步驟1網(wǎng)絡(luò)內(nèi)以報文為基本通信單位,整個網(wǎng)絡(luò)采用分簇機(jī)制,簇頭收集簇內(nèi)興趣事件后,將收集的信息以多跳方式發(fā)送至固定匯點。
步驟2每輪通信完成后,固定匯點對本輪內(nèi)收集的數(shù)據(jù)信息進(jìn)行分析與提取,將發(fā)送數(shù)據(jù)的始節(jié)點視為存活節(jié)點。若節(jié)點Ai活,記為1,否則記為0。分別計算移動節(jié)點M1中4個受控區(qū)域的節(jié)點覆蓋率
步驟3固定匯點匯總受控區(qū)域內(nèi)存活節(jié)點的覆蓋率,將信息發(fā)送至移動節(jié)點M1。M1根據(jù)4個受控區(qū)域的節(jié)點覆蓋率,以速度
vm=min {δ1,δ2,δ3,δ4}
移動至節(jié)點覆蓋率最小的受控區(qū)域中。
步驟4為了確定移動節(jié)點的最終位置,即網(wǎng)絡(luò)中存活節(jié)點覆蓋率最低的位置信息,對覆蓋率最低的受控區(qū)域進(jìn)行二次劃分,如圖2所示。將節(jié)點覆蓋率最低的受控區(qū)域分成面積相等的9個子域,根據(jù)步驟2,移動節(jié)點M1比較9個子域的節(jié)點存活率,最終移動至目標(biāo)區(qū)域S。
圖2 網(wǎng)絡(luò)二次區(qū)域劃分
步驟5設(shè)目標(biāo)區(qū)域S的中心O位置坐標(biāo)為(xO,yO)。根據(jù)S內(nèi)節(jié)點的個數(shù)和節(jié)點之間的位置關(guān)系,確定移動節(jié)點的移動位置M1(xM1,yM1)。
(1) 當(dāng)目標(biāo)區(qū)域內(nèi)無節(jié)點時,移動節(jié)點M1移動至S的中心,即
xM1=xO,yM1=yO。
(2) 若S中只有1個傳感器節(jié)點A(xA,yA),則移動節(jié)點移動至與節(jié)點A關(guān)于中心對稱的位置。節(jié)點間滿足
移動節(jié)點M1的坐標(biāo)為
xM1=2xO-xA,yM1=2yO-yA。
(3) 若S中有2個傳感器節(jié)點A(xA,yA)和B(xB,yB),則移動節(jié)點移動至與節(jié)點A和B連線中點關(guān)于中心對稱的位置。節(jié)點間滿足
移動節(jié)點的坐標(biāo)為
(4) 若S中有3個傳感器節(jié)點A、B和C,且任意2個節(jié)點間的距離均大于節(jié)點的感知半徑,則移動節(jié)點移動至3個節(jié)點所構(gòu)三角區(qū)域的重心處。即移動節(jié)點坐標(biāo)為
(5) 若S中有3個傳感器節(jié)點A、B與C,且節(jié)點間距離均小于傳感器的感知半徑,則移動節(jié)點移動至與3個節(jié)點重心關(guān)于中心對稱的位置。即移動節(jié)點的坐標(biāo)為
(6) 若S中有3個傳感器節(jié)點A、B和C,且A到B的距離小于節(jié)點的感知半徑,C到A或B的距離大于節(jié)點的感知半徑,則移動節(jié)點將移動至節(jié)點A、節(jié)點B連線中點再與節(jié)點C連線的中點關(guān)于中心對稱的位置。移動節(jié)點坐標(biāo)為
(7) 若S內(nèi)節(jié)點個數(shù)大于3時,選取3個能量最大的節(jié)點,將多節(jié)點的分布轉(zhuǎn)化為3個高能節(jié)點的分布問題。根據(jù)高能節(jié)點的位置關(guān)系,最終確定移動節(jié)點的位置信息。
步驟6每輪通信完成后,固定匯點根據(jù)步驟2重新計算移動節(jié)點4個受控區(qū)域中存活節(jié)點的覆蓋率,將信息發(fā)送至移動節(jié)點,移動節(jié)點根據(jù)步驟3至步驟5更新并移動至新的目標(biāo)區(qū)域。
步驟7由于移動節(jié)點的速度具有一定的限制,所以移動節(jié)點移動至目標(biāo)區(qū)域需要一定的時間,如果在移動過程中出現(xiàn)新的目標(biāo)區(qū)域,則移動節(jié)點移動至距離自己最近去目標(biāo)區(qū)域。
步驟8隨著網(wǎng)絡(luò)節(jié)點的不斷死亡,移動節(jié)點在受控區(qū)域內(nèi)不斷移動,尋找最優(yōu)位置,以減少網(wǎng)絡(luò)空洞對網(wǎng)絡(luò)通信的影響。將移動節(jié)點所處受控區(qū)域內(nèi)傳感器節(jié)點的相對覆蓋率設(shè)置為αj,定義為
步驟9為了最大限度節(jié)省網(wǎng)絡(luò)能量,移動節(jié)點將直接收集受控區(qū)域內(nèi)的數(shù)據(jù)信息,減少節(jié)點間多跳傳輸數(shù)據(jù)而造成的能量浪費(fèi),即受控區(qū)域中的簇頭收集信息之后將信息直接傳送給移動節(jié)點,移動節(jié)點經(jīng)過去冗余后將數(shù)據(jù)信息發(fā)送至匯點。
步驟10當(dāng)受控區(qū)域中無存活節(jié)點時,移動節(jié)點將最終移動至初始位置。
EEPBM協(xié)議引入移動匯點是為了減小數(shù)據(jù)傳輸?shù)木嚯x,在一定程度上節(jié)約能耗。移動匯點軌跡設(shè)計規(guī)則如下。
對網(wǎng)絡(luò)進(jìn)行區(qū)域劃分,如圖3所示,網(wǎng)絡(luò)初始化為L×L。N個傳感器節(jié)點隨機(jī)分布在其中。H,I,J,K的坐標(biāo)依次為
H-I-J-K-H將網(wǎng)絡(luò)分為面積相等的2個子域S1和S2。S1由S11、S12、S13和S14組成,S2由S21、S22、S23和S24組成,且S1=S2。
固定匯點位于網(wǎng)絡(luò)中心位置 ,移動匯點沿軌跡H-I-J-K-H運(yùn)動。
根據(jù)子域中節(jié)點的覆蓋率設(shè)置移動匯點的速度。參考圖1和圖4,移動匯點的軌跡穿過8個子域,分別是σ12、σ13、σ21、σ24、σ31、σ34、σ42和σ43。
根據(jù)子域中存活節(jié)點覆蓋率的大小,對8個子域進(jìn)行排序。 移動匯點的最小速度和最大速度分別設(shè)置為vmin和vmax。移動匯點軌跡穿越n個子域,則將速度設(shè)置為n個級別。移動匯點根據(jù)子域不同的節(jié)點覆蓋率采用不同的速度在其中移動:如果子域節(jié)點覆蓋率大,則移動匯點速度取小值;如果子域節(jié)點覆蓋率小,則移動匯點速度取大值。
圖3 移動匯點移動機(jī)制
隨著節(jié)點的不斷死亡,計算子域S1中存活節(jié)點的覆蓋率
設(shè)常數(shù)θ∈(0,1),若ε>θ,移動匯點軌跡不發(fā)生改變,反之則重新確定移動匯點的軌跡。
如圖4所示。點H1,I1,J1,K1的坐標(biāo)依次為
H1-I1-J1-K1-H1將子域S2分為面積相等的2個子域S3和S4。S3由S31、S32、S33、S34組成,S4由S41、S42、S43、S44組成。
H1-I1-J1-K1-H1是移動匯點的新軌跡,移動匯點從H-I-J-K-H以速度vmax移動至新軌跡。移動匯點則采取不同速度在網(wǎng)絡(luò)內(nèi)移動。
圖4 移動匯點移動機(jī)制
隨著傳感器節(jié)點因能量耗盡而進(jìn)入死亡狀態(tài),移動匯點將最終移動至網(wǎng)絡(luò)中心。
根據(jù)網(wǎng)絡(luò)中簇頭與移動節(jié)點和匯點之間的距離關(guān)系,EEPBM協(xié)議在收集數(shù)據(jù)時可以細(xì)分為以下情況。
(1) 當(dāng)簇頭與移動匯點在同一個網(wǎng)格時,網(wǎng)格中的簇頭將獲取的數(shù)據(jù)信息直接發(fā)送至移動匯點。
(2) 當(dāng)簇頭與移動節(jié)點在同一個網(wǎng)格時,網(wǎng)格中的簇頭將獲取的數(shù)據(jù)信息發(fā)送至移動節(jié)點,移動節(jié)點經(jīng)過去冗余后發(fā)送至距離自己最近的匯點。
(3) 若網(wǎng)格中簇頭的分布與移動節(jié)點和匯點不在同一區(qū)域,則當(dāng)簇頭到移動匯點的距離大于到固定匯點的距離時,簇頭將收集的數(shù)據(jù)信息發(fā)送至固定匯點;當(dāng)簇頭到移動匯點的距離小于到固定匯點的距離時,簇頭將收集的數(shù)據(jù)信息發(fā)送至移動匯點;當(dāng)簇頭到移動匯點的距離等于到固定匯點的距離時,簇頭將收集的數(shù)據(jù)信息發(fā)送至固定匯點。
(4) 當(dāng)簇頭距離任意匯點較遠(yuǎn)時,簇頭將收集的數(shù)據(jù)信息以多跳的方式發(fā)送至固定匯點或移動匯點。
通過Matlab仿真對所給協(xié)議進(jìn)行性能分析。對EEPBM協(xié)議和LEACH協(xié)議在網(wǎng)絡(luò)剩余節(jié)點數(shù)、網(wǎng)絡(luò)剩余能量以及網(wǎng)絡(luò)基站收集的信息量加以對比。仿真過程中,節(jié)點的初始能量均設(shè)為0.5 J,并隨機(jī)分布在WSN中。若節(jié)點的能量耗為0 J時,即視為死亡節(jié)點。其他參數(shù)的設(shè)置見表1。
表1 仿真參數(shù)
圖5所示為EEPBM協(xié)議與LEACH協(xié)議在網(wǎng)絡(luò)剩余節(jié)點數(shù)上的對比。將網(wǎng)絡(luò)的初始節(jié)點數(shù)設(shè)為400個。網(wǎng)絡(luò)通過LEACH協(xié)議運(yùn)行500 s后,剩余節(jié)點數(shù)為48個,死亡節(jié)點數(shù)為352個,可得LEACH協(xié)議500 s內(nèi)的平均死亡率為88%。通過EEPBM協(xié)議運(yùn)行500 s后,剩余節(jié)點數(shù)為135個,死亡節(jié)點數(shù)為265個,可得EEPBM協(xié)議500 s內(nèi)的平均死亡率為66.25%??梢园l(fā)現(xiàn),同一時刻EEPBM協(xié)議存活的節(jié)點數(shù)高于比LEACH協(xié)議多。經(jīng)比較,網(wǎng)絡(luò)在EEPBM協(xié)議下節(jié)點的平均死亡率比在LEACH協(xié)議下低21.25%。
圖5 網(wǎng)絡(luò)剩余節(jié)點對比
圖6所示為EEPBM協(xié)議與LEACH協(xié)議在網(wǎng)絡(luò)剩余能量上的對比。將網(wǎng)絡(luò)的初始能量均設(shè)置為200 J。網(wǎng)絡(luò)通過LEACH協(xié)議運(yùn)行500 s后,剩余能量11.50 J,耗能188.50 J,可得能量的使用率為95.25%。通過EEPBM協(xié)議運(yùn)行500 s后,網(wǎng)絡(luò)剩余能量為43.36 J,耗能為155.64 J,可得能量使用率為77.82%。經(jīng)比較,EEPBM協(xié)議的能量使用率比LEACH協(xié)議低16.43%??梢?,EEPBM協(xié)議可有效降低網(wǎng)絡(luò)能耗。
圖6 網(wǎng)絡(luò)剩余能量對比
圖7所示為EEPBM協(xié)議與LEACH協(xié)議在網(wǎng)絡(luò)基站收集信息量上的對比。由其可見,在同一時刻,基站通過EEPBM協(xié)議所收集的信息量要比LEACH協(xié)議獲取的信息量多。500 s后,LEACH協(xié)議獲取到的報文數(shù)為9 290個,EEPBM協(xié)議獲取到的報文數(shù)為11 560個。與LEACH協(xié)議相比,EEPBM協(xié)議多收集了1 928個報文,可知EEPBM協(xié)議提高了網(wǎng)絡(luò)獲取信息量的效率。
圖7 網(wǎng)絡(luò)基站獲取信息量對比
將移動節(jié)點與移動匯點同時應(yīng)用到無線傳感器網(wǎng)絡(luò)路由空洞的修復(fù)中,給出了一個基于多移動節(jié)點和移動匯點的高效數(shù)據(jù)收集協(xié)議EEPBM。移動節(jié)點在其受控區(qū)域內(nèi)獨立地移動,選擇節(jié)點覆蓋率最小的區(qū)域作為目標(biāo)區(qū)域。在目標(biāo)區(qū)域內(nèi)移動到相應(yīng)的位置上,有效修復(fù)能量空洞問題。為減少網(wǎng)絡(luò)因多跳而產(chǎn)生的能量浪費(fèi),將移動匯點與固定匯點相結(jié)合,簇頭獲取數(shù)據(jù)信息后發(fā)送至距離自己跳數(shù)最少的匯點節(jié)點,從而縮短數(shù)據(jù)傳送的距離,使數(shù)據(jù)能夠更好的進(jìn)行傳送。仿真結(jié)果表明,所給協(xié)議不僅提高網(wǎng)絡(luò)獲取信息的效率,且能降低網(wǎng)絡(luò)的能耗,延長網(wǎng)絡(luò)的生命周期。