李翠然,李 昂
(蘭州交通大學(xué) 電子與信息工程學(xué)院,蘭州 730070)
無(wú)線傳感器網(wǎng)絡(luò)(Wireless Sensor Network,WSN)是一種由大量傳感器節(jié)點(diǎn)以多跳自組織方式組成的無(wú)線通信網(wǎng)絡(luò),其具有監(jiān)測(cè)精度高、覆蓋區(qū)域廣等特點(diǎn)[1],在數(shù)據(jù)收集、環(huán)境監(jiān)測(cè)等領(lǐng)域被廣泛應(yīng)用。目前,針對(duì)平坦型WSN的路由算法已經(jīng)有大量研究成果,但是對(duì)狹長(zhǎng)區(qū)域進(jìn)行環(huán)境監(jiān)測(cè)時(shí),還需要設(shè)計(jì)WSN節(jié)點(diǎn)線型部署時(shí)的路由算法以滿(mǎn)足應(yīng)用需求[2]。
線型WSN可以應(yīng)用于管道[3]、鐵路沿線[4]和邊界[5]等線型區(qū)域的環(huán)境監(jiān)測(cè)。但線型WSN特殊的拓?fù)浣Y(jié)構(gòu)更易導(dǎo)致能量空洞問(wèn)題,即靠近匯聚節(jié)點(diǎn)的節(jié)點(diǎn)由于轉(zhuǎn)發(fā)數(shù)據(jù)包數(shù)量多而造成能量快速消耗甚至節(jié)點(diǎn)死亡。文獻(xiàn)[6]提出一種用于監(jiān)視大型建筑物中各種管道的線型WSN節(jié)點(diǎn)最優(yōu)部署方案,其采用獅群優(yōu)化算法,根據(jù)不同管道長(zhǎng)度優(yōu)化節(jié)點(diǎn)數(shù)和節(jié)點(diǎn)間距離,以最小的延遲和丟包率使節(jié)點(diǎn)部署數(shù)量最少同時(shí)延長(zhǎng)網(wǎng)絡(luò)壽命。文獻(xiàn)[4]面向高速鐵路環(huán)境提出一種基于事件觸發(fā)的線型WSN路由協(xié)議,通過(guò)調(diào)節(jié)觸發(fā)閾值減少節(jié)點(diǎn)轉(zhuǎn)發(fā)數(shù)據(jù)量,從而降低節(jié)點(diǎn)能耗,延長(zhǎng)網(wǎng)絡(luò)生命周期。文獻(xiàn)[7]針對(duì)鐵路線型環(huán)境提出的路由算法,根據(jù)采集信息的重要程度設(shè)置優(yōu)先級(jí),使等級(jí)高的數(shù)據(jù)包傳輸跳數(shù)變少,從而減少排隊(duì)時(shí)延,有效均衡網(wǎng)絡(luò)能耗,延長(zhǎng)網(wǎng)絡(luò)壽命。上述路由算法雖然適用于線型環(huán)境,但是一旦節(jié)點(diǎn)電池耗盡,網(wǎng)絡(luò)就會(huì)死亡。
目前,環(huán)境能量采集(Ambient Power Harvesting,APH)技術(shù)的發(fā)展使傳感器節(jié)點(diǎn)不僅由電池供電,而且還可以從環(huán)境中補(bǔ)給能量(如太陽(yáng)能、振動(dòng)能等)[8]。但是由于APH具有隨機(jī)性和時(shí)變性,因此能量有效性研究始終是WSN硬件設(shè)計(jì)、通信協(xié)議和上層應(yīng)用優(yōu)化方面的研究重點(diǎn)[9],設(shè)計(jì)高效管理的路由協(xié)議并合理利用采集的能量十分重要。ACMC[10]是一種數(shù)據(jù)采集量隨太陽(yáng)能能量補(bǔ)給值變化的路由算法,其由矩陣恢復(fù)出全部數(shù)據(jù),同時(shí)增大遠(yuǎn)離簇頭節(jié)點(diǎn)的占空比,從而提高能量利用率并降低網(wǎng)絡(luò)時(shí)延。DEARER[11]是一種具有能量預(yù)留的距離和能量感知路由算法,其設(shè)定能量補(bǔ)給為泊松分布,使節(jié)點(diǎn)輪流成為簇頭,在節(jié)點(diǎn)為非簇頭節(jié)點(diǎn)時(shí)預(yù)留部分能量在自身為簇頭時(shí)使用,從而解決能量補(bǔ)給短缺時(shí)簇頭中斷的問(wèn)題。PHC[12]是一種基于振動(dòng)能能量補(bǔ)給的分簇路由算法,其中簇首的選擇綜合考慮各節(jié)點(diǎn)能量補(bǔ)給值和剩余能量,并定義一個(gè)代價(jià)函數(shù)決定非簇頭節(jié)點(diǎn)應(yīng)歸屬于哪個(gè)簇的問(wèn)題,從而有效延長(zhǎng)網(wǎng)絡(luò)壽命。
現(xiàn)有針對(duì)能量采集WSN的路由算法多為面向節(jié)點(diǎn)大面積密集隨機(jī)部署的場(chǎng)景,不適用于線型環(huán)境監(jiān)測(cè)。為此,本文提出一種具有太陽(yáng)能補(bǔ)給功能的WSN路由算法,針對(duì)不同能量補(bǔ)給值設(shè)置傳輸閾值,從而高效利用補(bǔ)給能量,延長(zhǎng)網(wǎng)絡(luò)生命周期,使算法滿(mǎn)足線型WSN節(jié)點(diǎn)部署要求。
線型WSN節(jié)點(diǎn)部署方式如圖1所示[4]。在鐵路沿線這種線型狹長(zhǎng)區(qū)域部署大量信息采集節(jié)點(diǎn),用于采集沿線氣溫、風(fēng)力、機(jī)車(chē)參數(shù)等大量數(shù)據(jù),并將采集的信息周期性地發(fā)送至數(shù)據(jù)接收/轉(zhuǎn)發(fā)節(jié)點(diǎn),每個(gè)數(shù)據(jù)接收/轉(zhuǎn)發(fā)節(jié)點(diǎn)接收到信息采集節(jié)點(diǎn)轉(zhuǎn)發(fā)的數(shù)據(jù)量相同。為定量分析線型WSN的節(jié)點(diǎn)能耗問(wèn)題,本文做如下假設(shè):
2)所有傳感器節(jié)點(diǎn)都是同構(gòu)的,具有相同初始能量和唯一ID,并且部署后不可移動(dòng)。
3)由于節(jié)點(diǎn)能耗主要發(fā)生在接收和轉(zhuǎn)發(fā)數(shù)據(jù)中,為簡(jiǎn)化計(jì)算,對(duì)節(jié)點(diǎn)感知環(huán)境的能耗忽略不計(jì)。
4)節(jié)點(diǎn)可根據(jù)與接收節(jié)點(diǎn)之間的距離自由調(diào)節(jié)發(fā)射功率以節(jié)省能量。
5)數(shù)據(jù)傳輸時(shí)不考慮沖突或重傳。
圖1 線型WSN節(jié)點(diǎn)部署示意圖
無(wú)線傳感器節(jié)點(diǎn)的主要功能包括信息感知、信息處理和信息傳輸,相對(duì)于信息感知和信息處理,信息傳輸?shù)哪芎妮^高[13]。節(jié)點(diǎn)每傳輸lbit數(shù)據(jù)至距離d時(shí),發(fā)送端和接收端的能量消耗ETX和ERX分別表示為[14]:
(1)考慮到介質(zhì)含有焦粉等顆粒雜質(zhì)以及在運(yùn)行過(guò)程中會(huì)產(chǎn)生熱量,易導(dǎo)致電滲析膜堵塞、老化變性,從而縮短膜壽命,故在工藝中設(shè)置預(yù)處理工序,對(duì)介質(zhì)進(jìn)行過(guò)濾和冷卻,以保護(hù)設(shè)備。
(1)
ERX(l)=lEelec
(2)
傳感器節(jié)點(diǎn)主要由處理模塊、傳感模塊、能量模塊和通信模塊4個(gè)部分組成[15]。圖2顯示了具有太陽(yáng)能采集功能的WSN節(jié)點(diǎn)系統(tǒng)結(jié)構(gòu)。在能量采集模塊中,通過(guò)太陽(yáng)能電池板將太陽(yáng)能轉(zhuǎn)化為電能,可以直接為節(jié)點(diǎn)供能。若太陽(yáng)能采集速率大于節(jié)點(diǎn)消耗速率,則可以將多采集的能量存儲(chǔ)于能量存儲(chǔ)模塊即電池中;若太陽(yáng)能補(bǔ)給不足,則采用電池供電[16]。
圖2 具有太陽(yáng)能補(bǔ)給功能的WSN節(jié)點(diǎn)系統(tǒng)結(jié)構(gòu)
太陽(yáng)能采集能量的多少主要取決于時(shí)間、天氣和位置等信息[17]。本文對(duì)傳感器節(jié)點(diǎn)配備1 V 80 mA的30 mm×25 mm太陽(yáng)能電池,對(duì)不同天氣下節(jié)點(diǎn)的能量采集速率進(jìn)行實(shí)際測(cè)量,每隔10分鐘記錄一次數(shù)據(jù)。設(shè)置同一節(jié)點(diǎn)位置不變,晴天和陰天環(huán)境下的最大能量采集功率如圖3所示。
圖3 不同天氣條件下節(jié)點(diǎn)太陽(yáng)能最大采集功率
本文提出太陽(yáng)能補(bǔ)給的線型WSN能量高效路由算法,其設(shè)計(jì)思想為:根據(jù)不同天氣條件下太陽(yáng)能補(bǔ)給值的不同,確定相應(yīng)的傳輸閾值,提高數(shù)據(jù)傳輸量,并采用節(jié)點(diǎn)均勻分簇和簇內(nèi)節(jié)點(diǎn)輪流作為簇首的機(jī)制,以均衡節(jié)點(diǎn)間的能耗,延長(zhǎng)網(wǎng)絡(luò)生命周期。
由于太陽(yáng)能能量補(bǔ)給具有隨機(jī)性、受天氣影響變化大和夜間無(wú)能量補(bǔ)給的特性[18],因此在設(shè)計(jì)具有太陽(yáng)能補(bǔ)給功能的WSN路由算法時(shí)要兼顧有能量補(bǔ)給和無(wú)能量補(bǔ)給2種情況。定義數(shù)據(jù)傳輸閾值η為Sink節(jié)點(diǎn)接收到的數(shù)據(jù)包數(shù)量占信息采集節(jié)點(diǎn)轉(zhuǎn)發(fā)數(shù)據(jù)包數(shù)量的比率,取值范圍為(0,1]。當(dāng)有能量補(bǔ)給時(shí),根據(jù)能量補(bǔ)給值的變化設(shè)置不同的閾值,從而高效利用補(bǔ)給能量以提升網(wǎng)絡(luò)性能;當(dāng)夜間無(wú)能量補(bǔ)給時(shí),全網(wǎng)為節(jié)能模式,設(shè)置較低的閾值,使網(wǎng)絡(luò)可以運(yùn)行至下一個(gè)能量補(bǔ)給周期。
在白天,根據(jù)太陽(yáng)能補(bǔ)給量可以將網(wǎng)絡(luò)分為3種狀態(tài),分別為耗能期、儲(chǔ)能期和平穩(wěn)期。若節(jié)點(diǎn)能量補(bǔ)給值小于等于消耗值α,此時(shí)網(wǎng)絡(luò)處于耗能期,網(wǎng)絡(luò)總能量呈下降趨勢(shì),為延長(zhǎng)網(wǎng)絡(luò)生命周期,將數(shù)據(jù)傳輸閾值設(shè)置為η1;若節(jié)點(diǎn)電池電量小于初始值E0,能量補(bǔ)給值大于消耗值α,此時(shí)網(wǎng)絡(luò)處于儲(chǔ)能期,節(jié)點(diǎn)電池為充電狀態(tài),網(wǎng)絡(luò)總能量呈上升趨勢(shì),但由于電池并沒(méi)有充滿(mǎn),因此將數(shù)據(jù)傳輸閾值提升到η2;若電池電量已充滿(mǎn)為E0,節(jié)點(diǎn)能量補(bǔ)給值大于等于消耗值α,此時(shí)網(wǎng)絡(luò)處于平穩(wěn)期,為減少能量的溢出浪費(fèi),將補(bǔ)給能量用于全部數(shù)據(jù)傳輸,此時(shí)將傳輸閾值設(shè)置為η3=1。
在夜間,網(wǎng)絡(luò)處于無(wú)能量補(bǔ)給階段,此時(shí)要根據(jù)夜間時(shí)長(zhǎng)和夜間來(lái)臨時(shí)刻節(jié)點(diǎn)的剩余能量確定傳輸閾值η4,以達(dá)到延長(zhǎng)網(wǎng)絡(luò)生命周期至下一次能量補(bǔ)給周期的目的。
網(wǎng)絡(luò)處于不同狀態(tài)時(shí),每輪能量補(bǔ)給周期內(nèi)的傳輸數(shù)據(jù)包數(shù)量mη表示為:
(3)
分簇算法將網(wǎng)絡(luò)任務(wù)分散到各個(gè)簇并在本地范圍內(nèi)加以解決,為網(wǎng)絡(luò)帶來(lái)全面的性能提升[19]。文獻(xiàn)[4]中數(shù)據(jù)接收/轉(zhuǎn)發(fā)節(jié)點(diǎn)之間距離為250 m,間距較遠(yuǎn),節(jié)點(diǎn)間為單跳傳輸,容易使靠近Sink節(jié)點(diǎn)的傳感器節(jié)點(diǎn)能量迅速耗盡而造成能量空洞現(xiàn)象。為均衡節(jié)點(diǎn)間能耗,本文在原節(jié)點(diǎn)之間增設(shè)新的節(jié)點(diǎn),并以簇直徑D均勻分簇,如圖4所示。其中,d為新增節(jié)點(diǎn)后節(jié)點(diǎn)之間的距離,此時(shí)網(wǎng)絡(luò)中均勻部署了n個(gè)節(jié)點(diǎn)。當(dāng)網(wǎng)絡(luò)初始化運(yùn)行分簇后,網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)不再發(fā)生變化。
圖4 節(jié)點(diǎn)均勻分簇示意圖
每個(gè)簇內(nèi)節(jié)點(diǎn)數(shù)n0為:
(4)
若監(jiān)測(cè)區(qū)域長(zhǎng)度為L(zhǎng),則每個(gè)節(jié)點(diǎn)接收信息采集節(jié)點(diǎn)的數(shù)據(jù)包數(shù)量m0為:
(5)
在長(zhǎng)距離、線型稀疏節(jié)點(diǎn)部署環(huán)境下,為確保相鄰簇首間的距離相近并且簇首節(jié)點(diǎn)有較充足的剩余能量,采用使簇內(nèi)節(jié)點(diǎn)輪流成為簇首的選舉機(jī)制。在每輪簇首選舉中,每個(gè)簇內(nèi)從靠近Sink節(jié)點(diǎn)的節(jié)點(diǎn)成為簇首開(kāi)始,依次到簇內(nèi)距離Sink最遠(yuǎn)的節(jié)點(diǎn)成為簇首的輪數(shù)為一次循環(huán),則循環(huán)一次為n0輪,保證每一輪相鄰簇首之間的距離均為D,使簇內(nèi)各節(jié)點(diǎn)平均能耗相近,從而延長(zhǎng)網(wǎng)絡(luò)生命周期。
路由算法采用單跳和多跳相結(jié)合的數(shù)據(jù)傳輸方式。簇內(nèi)通信采用單跳傳輸方式,簇內(nèi)節(jié)點(diǎn)將其采集到的數(shù)據(jù)包直接發(fā)送給簇內(nèi)的簇首節(jié)點(diǎn);簇間通信采用多跳傳輸方式,簇首節(jié)點(diǎn)將接收到的簇內(nèi)成員和其他簇首的數(shù)據(jù)包轉(zhuǎn)發(fā)至Sink方向最近簇首,從而將數(shù)據(jù)包多跳傳輸至Sink節(jié)點(diǎn)。
除了距離Sink最近的簇外,其余每個(gè)簇內(nèi)任意一個(gè)節(jié)點(diǎn)成為簇首的能耗為:
(6)
由式(6)可以看出,簇首能耗與簇內(nèi)節(jié)點(diǎn)數(shù)無(wú)關(guān),只與簇首所在簇的位置有關(guān),越靠近Sink的簇首轉(zhuǎn)發(fā)的數(shù)據(jù)量越大,這是因?yàn)楣?jié)點(diǎn)能耗主要取決于收發(fā)節(jié)點(diǎn)之間的距離和比特?cái)?shù)[20]。但第一個(gè)簇內(nèi)除距離Sink最遠(yuǎn)的節(jié)點(diǎn)外,其余節(jié)點(diǎn)成為簇首后雖然數(shù)據(jù)轉(zhuǎn)發(fā)量大,但是轉(zhuǎn)發(fā)距離均小于D,只有第一個(gè)簇內(nèi)距離Sink最遠(yuǎn)的節(jié)點(diǎn)成為簇首時(shí),其數(shù)據(jù)轉(zhuǎn)發(fā)量和傳輸距離為全網(wǎng)最高,會(huì)成為網(wǎng)絡(luò)最先死亡的節(jié)點(diǎn)。本文采用網(wǎng)絡(luò)生命周期的一般定義,即網(wǎng)絡(luò)中第一個(gè)節(jié)點(diǎn)死亡時(shí)的輪次,計(jì)算網(wǎng)絡(luò)的生存周期T。
將第一個(gè)簇內(nèi)距離Sink最遠(yuǎn)的節(jié)點(diǎn)稱(chēng)為節(jié)點(diǎn)A,則在一次循環(huán)中,節(jié)點(diǎn)A在前(n0-1)輪為普通節(jié)點(diǎn),在第n0輪為簇頭節(jié)點(diǎn)。節(jié)點(diǎn)A在前(n0-1)輪的總接收能耗E2和總發(fā)射能耗En0-1分別表示為:
E1=m0(n0-1)lEelec
(7)
E2=m0ηl(Eelec+εmp·d4)+m0ηl((Eelec+εmp·(2d)4)+…+m0ηl(Eelec+εmp·((n0-1)d)4)=
(8)
(9)
節(jié)點(diǎn)A在第n0輪成為簇首的總能耗En0為:
(10)
節(jié)點(diǎn)A在一次循環(huán)n0輪的總能耗Euse-A為:
Euse-A=En0-1+En0
(11)
(12)
網(wǎng)絡(luò)生命周期T為:
(13)
本文路由算法流程如圖5所示,具體步驟如下:
步驟1網(wǎng)絡(luò)運(yùn)行開(kāi)始,各節(jié)點(diǎn)以距Sink最近的節(jié)點(diǎn)開(kāi)始,依次以每n0個(gè)節(jié)點(diǎn)為一簇廣播成簇信息,第一輪分簇后,簇結(jié)構(gòu)不再變化。
步驟2判斷網(wǎng)絡(luò)中是否存在節(jié)點(diǎn)k剩余能量小于等于0,若存在則網(wǎng)絡(luò)運(yùn)行結(jié)束;否則轉(zhuǎn)步驟3。
步驟3由Sink節(jié)點(diǎn)計(jì)算判斷網(wǎng)絡(luò)處于耗能期、儲(chǔ)能期、平穩(wěn)期還是夜間無(wú)能量補(bǔ)給期。判斷節(jié)點(diǎn)平均能量補(bǔ)給值是否等于0,若是則為夜間無(wú)能量補(bǔ)給期,設(shè)置傳輸閾值為η4,轉(zhuǎn)步驟6;否則轉(zhuǎn)步驟4。
步驟4判斷節(jié)點(diǎn)平均能量補(bǔ)給值是否小于α,若是則為耗能期,設(shè)置傳輸閾值為η1,轉(zhuǎn)步驟6;否則轉(zhuǎn)步驟5。
步驟5判斷節(jié)點(diǎn)平均剩余能量是否小于E0,若是則為儲(chǔ)能期,設(shè)置傳輸閾值為η2;否則為平穩(wěn)期,設(shè)置傳輸閾值為η3。
步驟6廣播節(jié)點(diǎn)能量補(bǔ)給信息和此輪傳輸閾值η,并根據(jù)簇內(nèi)節(jié)點(diǎn)輪流成為簇首的選舉機(jī)制,廣播此輪成為簇首的節(jié)點(diǎn)信息。
步驟7節(jié)點(diǎn)接收到廣播信息后,判斷自身是否為簇首節(jié)點(diǎn),若是則轉(zhuǎn)步驟8;否則轉(zhuǎn)步驟9。
步驟8多跳數(shù)據(jù)傳輸階段。簇首節(jié)點(diǎn)將接收到的信息多跳轉(zhuǎn)發(fā)給距Sink方向最近的簇首節(jié)點(diǎn),最終到達(dá)Sink節(jié)點(diǎn),轉(zhuǎn)步驟10。
步驟9簇內(nèi)節(jié)點(diǎn)將自身儲(chǔ)能耗能信息及接收采集到的信息以傳輸閾值η單跳轉(zhuǎn)發(fā)給所在簇的簇首,轉(zhuǎn)步驟8。
步驟10Sink節(jié)點(diǎn)接收到全網(wǎng)數(shù)據(jù)后進(jìn)行計(jì)算處理,網(wǎng)絡(luò)進(jìn)入下一輪運(yùn)行,轉(zhuǎn)步驟2。
圖5 本文路由算法流程
本節(jié)使用Matlab軟件進(jìn)行仿真實(shí)驗(yàn)。選取的監(jiān)測(cè)區(qū)域長(zhǎng)度L為2 km,簇直徑D為250 m,此監(jiān)測(cè)區(qū)域內(nèi)的數(shù)據(jù)采集節(jié)點(diǎn)個(gè)數(shù)為160,節(jié)點(diǎn)初始能量E0為50 J,每輪時(shí)間為60 s[21],其他仿真參數(shù)設(shè)置與文獻(xiàn)[4]相同,即Eelec=50 nJ/bit,εmp=0.001 3 pJ/bit/m4,εfs=10 pJ/bit/m2,d0=87.7,數(shù)據(jù)包大小l為4 000 bit。
圖6和圖7分別給出了采用文獻(xiàn)[4]單跳傳輸路由算法和本文均勻分簇-多跳路由算法的節(jié)點(diǎn)平均能耗和網(wǎng)絡(luò)生命周期對(duì)比。由圖6可以看出,單跳傳輸方式下的節(jié)點(diǎn)能耗遠(yuǎn)大于均勻分簇算法的節(jié)點(diǎn)平均能耗,在均勻分簇n0=3,4,5時(shí)的對(duì)比中,n0=5的平均能耗最低。由圖7可以看出,均勻分簇方式下的網(wǎng)絡(luò)生命周期遠(yuǎn)長(zhǎng)于單跳傳輸方式,且隨著簇內(nèi)節(jié)點(diǎn)數(shù)目的增多,網(wǎng)絡(luò)生命周期隨之增加,這是由于傳輸相同的數(shù)據(jù)量,簇內(nèi)有更多的節(jié)點(diǎn)可以輪流成為簇頭以分擔(dān)能耗,從而延長(zhǎng)了網(wǎng)絡(luò)生命周期。
圖6 節(jié)點(diǎn)平均能耗對(duì)比
圖7 網(wǎng)絡(luò)生命周期對(duì)比
仿真分別在圖3所示的不同天氣能量補(bǔ)給情況下,研究η1、η2、η4取值對(duì)網(wǎng)絡(luò)剩余能量、網(wǎng)絡(luò)生命周期和數(shù)據(jù)傳輸量的影響。路由算法均采用n0=5的均勻分簇-多跳路由。
在晴天環(huán)境下,網(wǎng)絡(luò)運(yùn)行1天時(shí),η4不變條件下η1、η2的取值對(duì)網(wǎng)絡(luò)剩余能量的影響如圖8所示??梢钥闯?η1、η2的值越小,電池充滿(mǎn)電的速度越快,這是因?yàn)樵谕瑯拥哪芰垦a(bǔ)給速率下,η1、η2取值越小,傳輸?shù)臄?shù)據(jù)包越少,節(jié)點(diǎn)能量消耗越少,則充電時(shí)間越短;在第960輪晝夜交替的時(shí)間點(diǎn)上,η1、η2取值越小,則網(wǎng)絡(luò)的剩余能量越多,這是因?yàn)棣?的取值是相同的,所以η1、η2取值越小的網(wǎng)絡(luò)在夜間無(wú)能量補(bǔ)給時(shí)網(wǎng)絡(luò)剩余能量越多,網(wǎng)絡(luò)生命周期越長(zhǎng)。
圖8 晴天環(huán)境下的網(wǎng)絡(luò)剩余能量
在晴天環(huán)境下,網(wǎng)絡(luò)運(yùn)行1天時(shí),η4不變條件下η1、η2的取值對(duì)數(shù)據(jù)傳輸總量的影響如圖9所示。可以看出:在網(wǎng)絡(luò)開(kāi)始的耗能期,η1、η2取值越大,其傳輸?shù)臄?shù)據(jù)量的增量越大;在960輪以后夜間無(wú)能量補(bǔ)給時(shí),η4不變,但η1、η2值越大,其傳輸?shù)臄?shù)據(jù)總量越大。
圖9 晴天環(huán)境下的數(shù)據(jù)傳輸總量
在晴天環(huán)境下,網(wǎng)絡(luò)運(yùn)行1天后,η1、η2不變條件下η4的取值對(duì)數(shù)據(jù)傳輸總量的影響如圖10所示??梢钥闯?η1、η2不變時(shí),η4越大則數(shù)據(jù)傳輸總量越大。
圖10 晴天環(huán)境下η4對(duì)數(shù)據(jù)傳輸總量的影響
在晴天環(huán)境下,η1、η2不變條件下η4的取值對(duì)網(wǎng)絡(luò)生命周期的影響如圖11所示??梢钥闯?當(dāng)η1=0.4,η2=0.6時(shí),為使網(wǎng)絡(luò)運(yùn)行至下一能量補(bǔ)給周期,η4的最大取值為0.14,若超過(guò)這一閾值,會(huì)使網(wǎng)絡(luò)提早死亡。這也解釋了圖10中η4大于0.14后網(wǎng)絡(luò)中數(shù)據(jù)傳輸總量的增量變小甚至傳輸總量下的原因。
圖11 晴天環(huán)境下η4對(duì)網(wǎng)絡(luò)生命周期的影響
在陰天環(huán)境下,網(wǎng)絡(luò)運(yùn)行1天后,η4不變條件下η1、η2的取值對(duì)網(wǎng)絡(luò)剩余能量的影響如圖12所示??梢钥闯?η1、η2越小,節(jié)點(diǎn)充電速度越快;在第900輪晝夜交替時(shí)剩余能量越多,η4相同時(shí)其網(wǎng)絡(luò)生命周期越長(zhǎng)。對(duì)比圖8可以發(fā)現(xiàn),晴天時(shí)節(jié)點(diǎn)充電速度更快,網(wǎng)絡(luò)在穩(wěn)定期的時(shí)間更長(zhǎng),在晝夜交替的時(shí)間點(diǎn)剩余能量更多。
圖12 陰天環(huán)境下的網(wǎng)絡(luò)剩余能量
在陰天環(huán)境下,網(wǎng)絡(luò)運(yùn)行1天時(shí),η4不變條件下η1、η2的取值對(duì)數(shù)據(jù)傳輸總量的影響如圖13所示。可以看出,η4取值固定時(shí),η1、η2取值越大,則數(shù)據(jù)傳輸總量越多。對(duì)比圖8、圖9和圖12可以發(fā)現(xiàn),在η4不變、η1、η2變化的情況下,陰天環(huán)境下網(wǎng)絡(luò)對(duì)η1、η2的變化反應(yīng)更敏感,這是因?yàn)殛幪飙h(huán)境下的能量補(bǔ)給變化波動(dòng)較大,能量補(bǔ)給值較低。
圖13 陰天環(huán)境下的數(shù)據(jù)傳輸總量
在陰天環(huán)境下,網(wǎng)絡(luò)運(yùn)行1天后,η1、η2不變條件下η4取值對(duì)數(shù)據(jù)傳輸總量的影響如圖14所示??梢钥闯?陰天數(shù)據(jù)傳輸總量隨η4的增大而增大,且在η4=0.11以后,增量逐漸變小,因?yàn)榫W(wǎng)絡(luò)已經(jīng)提早死亡。此外,當(dāng)η4值相同時(shí),圖10中晴天的數(shù)據(jù)傳輸總量遠(yuǎn)多于陰天,主要有以下2個(gè)原因:1)在白天,陰天環(huán)境下能量補(bǔ)給值較低,數(shù)據(jù)傳輸閾值大部分時(shí)間處于低值狀態(tài),與大部分時(shí)間都處于平穩(wěn)期的晴天相比,數(shù)據(jù)傳輸總量更低;2)陰天夜間來(lái)臨更早,網(wǎng)絡(luò)處于無(wú)能量補(bǔ)給狀態(tài)的時(shí)間更長(zhǎng),傳輸閾值低,則數(shù)據(jù)傳輸更少。
圖14 陰天環(huán)境下η4取值對(duì)數(shù)據(jù)傳輸總量的影響
在陰天環(huán)境下,η1=0.4,η2=0.6時(shí),η4的取值對(duì)網(wǎng)絡(luò)生存周期的影響如圖15所示。可以看出,為使網(wǎng)絡(luò)運(yùn)行至下一能量補(bǔ)給周期,η4的取值最大為0.11。對(duì)比圖11可以看出,當(dāng)η1、η2相同時(shí),晴天可取的η4值更大,這是因?yàn)殛幪鞎r(shí),晝夜交替更早,夜間無(wú)能量補(bǔ)給的時(shí)間更長(zhǎng),且晝夜交替時(shí)間點(diǎn)剩余能量更少,為使網(wǎng)絡(luò)運(yùn)行至下一能量補(bǔ)給周期,η4取值更小。
綜上所述,隨著網(wǎng)絡(luò)對(duì)數(shù)據(jù)傳輸量要求不同和天氣的變化,η1、η2、η4的取值可做出相應(yīng)變化。如網(wǎng)絡(luò)要求夜間傳輸數(shù)據(jù)量多,則要降低η1、η2的值,使晝夜交替時(shí)間點(diǎn)網(wǎng)絡(luò)剩余能量更多,η4取值可以增大;如果是陰天,則要降低η4的值,使網(wǎng)絡(luò)可以運(yùn)行在較長(zhǎng)的無(wú)能量補(bǔ)給期間,直至下次能量補(bǔ)給周期的到來(lái)。
針對(duì)線型WSN中容易出現(xiàn)能量空洞現(xiàn)象而導(dǎo)致網(wǎng)絡(luò)生命周期縮短的問(wèn)題,本文提出一種具有太陽(yáng)能補(bǔ)給功能的能量高效路由算法。通過(guò)均勻分簇和多跳路由解決節(jié)點(diǎn)能耗不均衡問(wèn)題,根據(jù)不同天氣和時(shí)刻的能量補(bǔ)給值動(dòng)態(tài)設(shè)置傳輸閾值,提高太陽(yáng)能補(bǔ)給能量利用率。在晴天和陰天環(huán)境下的仿真結(jié)果表明,該算法可有效提高網(wǎng)絡(luò)數(shù)據(jù)傳輸量,延長(zhǎng)網(wǎng)絡(luò)生命周期。后續(xù)將在更復(fù)雜的天氣條件下進(jìn)行研究,進(jìn)一步提高本文算法的適用性和路由性能。