林 勇
(重慶電子工程職業(yè)學(xué)院, 重慶 401331)
無線傳感網(wǎng)絡(luò)(Wireless Sensor Networks,WSNs)由大量、微型傳感節(jié)點(diǎn)組成。這些節(jié)點(diǎn)具有有限的感測、計算和無線通信能力[1]。目前,WSNs已廣泛應(yīng)用于智能家居、污染檢測、目標(biāo)跟蹤和康復(fù)醫(yī)療。在這些應(yīng)用中,當(dāng)節(jié)點(diǎn)能量消耗完畢后,補(bǔ)充節(jié)點(diǎn)能量是不可能的[2]。因此,能量供給的受限,激發(fā)了研究能量感知協(xié)議的動力。
引用簇結(jié)構(gòu)能夠有效地降低WSNs的能耗。每個簇中由一個簇頭(Cluster Head,CH)和其他非簇頭節(jié)點(diǎn)(成員節(jié)點(diǎn))組成。CH負(fù)責(zé)簇間通信[3]。當(dāng)簇構(gòu)建完成后,CH就給簇內(nèi)每個成員節(jié)點(diǎn)分配時分多址接入TDMA時隙,成員節(jié)點(diǎn)就利用所分配的時隙向CH發(fā)送數(shù)據(jù)。
在基于簇WSNs中,每個成員節(jié)點(diǎn)先感測環(huán)境參數(shù),再將感測數(shù)據(jù)傳輸至它的CH。然后,成員節(jié)點(diǎn)在預(yù)設(shè)的時間內(nèi)進(jìn)入休眠狀態(tài)[4]。與成員節(jié)點(diǎn)相反,簇頭CH在網(wǎng)絡(luò)操作期間內(nèi)總是保持活動狀態(tài)。因此,CH的平均能耗遠(yuǎn)高于成員節(jié)點(diǎn)的能耗。
為此,常由多個節(jié)點(diǎn)間輪換扮演CH角色,共同分擔(dān)通信負(fù)載,進(jìn)而平衡節(jié)點(diǎn)間能耗。而重構(gòu)簇便是實(shí)現(xiàn)CH角色的輪換的有效策略。
研究人員對重構(gòu)簇進(jìn)行了較深的研究[5-7]。例如,文獻(xiàn)[6]利用閾值函數(shù)產(chǎn)生簇頭,并利用節(jié)點(diǎn)角度比、距離比和吞吐率優(yōu)化閾值函數(shù)。該方案仍是采用固定輪產(chǎn)生選擇簇頭。即以固定時間間隔啟動簇任務(wù)。類似地,文獻(xiàn)[7]也是在每輪內(nèi)構(gòu)建簇,每輪分為建立階段與數(shù)據(jù)傳輸階段。如圖1所示,在每一輪(Round)內(nèi)均由簇建立和數(shù)據(jù)傳輸兩個階段構(gòu)成。盡管每輪選擇簇能夠一定程度上平衡節(jié)點(diǎn)間的負(fù)載。然而,重構(gòu)簇本身也消耗能量,加重網(wǎng)絡(luò)負(fù)擔(dān)。
圖1 基于輪策略的構(gòu)簇任務(wù)的調(diào)度
若采用的Round過長,則CH的工作時間太長,可能導(dǎo)致其能量消耗過快。反之,若Round過短,系統(tǒng)需頻繁地重構(gòu)簇,增加了構(gòu)建簇所消耗的能量。因此,Round時長對能耗有一定的影響。
此外,選擇簇頭受多個因素影響,如距離,節(jié)點(diǎn)的剩余能量。那如何依據(jù)距離、能量等信息決定簇頭?實(shí)際上,這屬于多輸入單輸出系統(tǒng)。由多項(xiàng)輸入信息決策一個輸出量。而模糊邏輯系統(tǒng)常用于多輸入單輸出的決策系統(tǒng)。例如,文獻(xiàn)[8]中提出基于多參數(shù)模糊邏輯的車載通信資源協(xié)同優(yōu)化算法。利用模糊邏輯系統(tǒng)對資源進(jìn)行管理。文獻(xiàn)[9]中也采用模糊邏輯系統(tǒng)推理簇尺寸。
為此,本文引用超輪概念,提出基于模糊邏輯系統(tǒng)的能效感知的簇路由(Fuzzy Logic-based Energy-aware Clustering,FL-EAC)。FL-EAC路由不是每輪都構(gòu)建簇,而是在一個超輪內(nèi)才構(gòu)建一次簇。同時,由模糊邏輯系統(tǒng)決策超輪長度。本文的主要工作可歸納以下兩點(diǎn):① 引用超輪概念,不再采用的以固定時間內(nèi)建立簇策略;② 利用節(jié)點(diǎn)剩余能量、距離信息作為模糊邏輯系統(tǒng)的輸入,由模糊邏輯系統(tǒng)決策超輪長度。
引用與文獻(xiàn)[10]中所述的無線電能量消耗模型,如圖2所示。發(fā)射器向相距為d的接收節(jié)點(diǎn)傳輸m比特的數(shù)據(jù)包所消耗的能量ETX(q,d):
(1)
其中:Eelec運(yùn)行發(fā)射器或接收器固定的能量消耗;εfs、εamp分別表示發(fā)射器在自空間、雙徑傳播模型(two ray ground model)的單位功率放大器的能量消耗[11-15]。
相應(yīng)地,對于接收m比特的數(shù)據(jù)包所消耗的能量:
ERX(m)=m*Eelec
(2)
為了平衡WSNs內(nèi)的能耗,通常在多個傳感節(jié)點(diǎn)間輪換承擔(dān)CH角色。當(dāng)構(gòu)簇算法啟動時,一些傳感節(jié)點(diǎn)必須成為CHs。在構(gòu)簇過程中,每個非CH節(jié)點(diǎn)向與它的CH發(fā)送加入信息Mes_Join。收到Mes_Join的CH就給它的成員(非CH節(jié)點(diǎn))提供TDMA時隙。此外,將每個簇內(nèi)的數(shù)據(jù)傳輸過程看成單跳傳輸。
圖2 無線電能量消耗模型
(3)
其中,Ej表示節(jié)點(diǎn)j的剩余能量。
圖3 構(gòu)簇算法1的偽代碼
(4)
其中,i表示廣播CH_adv消息的簇頭。
每個簇在一輪內(nèi)完成它們的任務(wù),然后再配置下一輪。FL-EAC路由允許所有節(jié)點(diǎn)參與構(gòu)簇過程[11]。而傳統(tǒng)的簇路由是采用固定輪時長構(gòu)建簇,這必然加大了構(gòu)建簇的能耗。為此,提出的FL-EAC路由采用新的策略。
FL-EAC路由先建立簇,形成多層結(jié)構(gòu)。然后,將網(wǎng)絡(luò)操作劃分為超輪(Hyper Rounds,HRs),進(jìn)而降低簇開銷。 FL-EAC路由規(guī)定在每個HRs內(nèi)的第一個輪的建立階段重構(gòu)簇。
HRs模型如圖4所示。值得注意的是,在實(shí)施階段,每一個HR的穩(wěn)定時期可能被合并成一個長的穩(wěn)定時期。換而言之,除HRs的第一個輪外,其他輪可以不重構(gòu)簇,進(jìn)而降低了構(gòu)簇開銷。盡管輪長度是固定的,但HR長度隨傳感節(jié)點(diǎn)的狀態(tài)變化?,F(xiàn)有的多數(shù)算法只關(guān)注HR策略,而提出的FL-EAC路由利用模糊邏輯系統(tǒng)處理變化的HR長度問題。
圖4 HRs模型
依據(jù)FL-EAC路由,在每個HR的開始執(zhí)行構(gòu)簇算法。因此,先將網(wǎng)內(nèi)所有節(jié)點(diǎn)被劃分為CHs和非CH節(jié)點(diǎn)(普通節(jié)點(diǎn))。然后,在構(gòu)簇階段結(jié)束時,每個CH依據(jù)FLS計算HR長度。在分布算法中,將最短HR作為選為網(wǎng)絡(luò)內(nèi)全局的HR長度。選擇最短的HR作為全局HR長度,是為了降低CH的能耗。
為此,每個CH需產(chǎn)生一個等待時間,其正比于它所計算的HR長度。HR長度越短,等待時間越短。一旦等待時間結(jié)束,并且在等待時間期間,沒有收到鄰居節(jié)點(diǎn)發(fā)送的Msg_Sch,每個CH就向鄰居CHs傳輸Msg_Sch,其包含了HR的長度。每個CH從所接收的Msg_Sch中提取HR長度,并與之前接收的HR長度進(jìn)行比較,保存最短HR長度。接下來,分析計算HR長度的過程。
采用模糊邏輯系統(tǒng)FLS處理每個CH節(jié)點(diǎn)在估計HR長度的不確定性。FLS利用節(jié)點(diǎn)的剩余能量和離信宿的相對距離決定HR長度。相比于遠(yuǎn)區(qū)的CHs,位于信宿附近的CHs承擔(dān)了更多數(shù)據(jù)轉(zhuǎn)發(fā)任務(wù),因此,它們消耗了更多的能量。所以,它們的簇頭輪換頻率需更快[12]。
基于上述考慮,將離信宿相對距離和節(jié)點(diǎn)剩余能量作為FLS的輸入。FLS系統(tǒng)如圖5所示。剩余能量低的CHs難以完成它的任務(wù),必須進(jìn)行快速輪換。FLS的輸出就是HR長度。離信宿距離近的、低剩余能量的節(jié)點(diǎn)具有更短的HR長度。相反,離信宿距離遠(yuǎn)的、高剩余能量節(jié)點(diǎn)的HR長度更長。因此,HR長度因節(jié)點(diǎn)個體不同而不同。
圖5 FLS系統(tǒng)
(5)
由于傳感節(jié)點(diǎn)是靜態(tài)的,離信宿最小和最大距離是固定參數(shù)。一旦網(wǎng)絡(luò)部署后,信宿就向所有節(jié)點(diǎn)廣播信號。因此,每個節(jié)點(diǎn)就可利用接收信號強(qiáng)度(Received Signal Strength Index,RSSI)估算離信宿近似距離。
1) 相對距離
節(jié)點(diǎn)i離信宿的相對距離RDi的定義如式(6):
(6)
其中,dmin、dmax分別表示離信宿的最近、最遠(yuǎn)距離。而d(i,Sink)表示節(jié)點(diǎn)i離信宿的絕對距離。
2) 相對剩余能量
節(jié)點(diǎn)i的相對剩余能量REi的定義如式(7):
(7)
輸入變量RD、RE和輸出變量Out的隸屬函數(shù)如圖6所示。其中用非常低(very low)、低(low)、中(medium)、高(high)、非常高(very high)作為RE的語言變量。而用近(close)、中間(adequate)和遠(yuǎn)(far)作為RD的語言變量。類似地,輸出變量Out可表述為:
Out={Verylow,low,ratherlow,mediumlow,medium,
mediumhigh,ratherhigh,high,veryhigh}
(8)
圖6 隸屬函數(shù)
知識規(guī)則庫如表1所示,共有15條規(guī)則。系統(tǒng)輸出為模糊值,僅為語言輸出變量,需要將其轉(zhuǎn)換精確的數(shù)值,即去模糊化。利用文獻(xiàn)[13]的Mamdani模糊控制的重心法,可實(shí)現(xiàn)去模糊化。
表1 知識規(guī)則庫
利用MATLAB R2012b建立仿真平臺[15]。在100 m×100 m網(wǎng)絡(luò)區(qū)域內(nèi)部署100個節(jié)點(diǎn),信宿位于(50 m,175 m)位置。傳感節(jié)點(diǎn)的初始能量Einit從[2,4]J區(qū)內(nèi)隨機(jī)選取。數(shù)據(jù)包尺寸和控制包尺寸分別為4 000和200比特。有關(guān)的能量參數(shù)如下:Eelec=50 nJ/bit、εfs=10 pJ/bit/m2、εamp=0.001 3 pJ/bit/m4、dco=87 m。
同時,為了更好地分析FL-EAC路由的性能,選用EHEED[14]和EDIT[15]進(jìn)行比較。EHEED算法是基于HEED算法的改進(jìn),它采用多跳路徑完成簇間通信。而EDIT算法降低了在簇構(gòu)建過程中的消息交互,并且將節(jié)點(diǎn)剩余能量作為CH選擇的基本指標(biāo)。
1) 實(shí)驗(yàn)一
本次實(shí)驗(yàn)HR長度變化,并通過本次實(shí)驗(yàn)數(shù)據(jù)證明超輪策略的可用性。HR長度如圖7所示。
依圖7可知,HR長度隨仿真時間變化。這與傳統(tǒng)路由采用固定輪策略不同。最初,HR長度較長,隨后,逐步變短。原因在于:在最初,節(jié)點(diǎn)能量較充足,每個簇頭能維持較長的工作時間,而隨著時間推移,節(jié)點(diǎn)能量逐步下降,擔(dān)任簇頭的時間會縮短。因此,HR長度變短。當(dāng)仿真結(jié)束后,HR就等于一輪。這些數(shù)據(jù)表明,利用模糊邏輯系統(tǒng)能夠依據(jù)節(jié)點(diǎn)能量動態(tài)地決策HR長度,有效地平衡節(jié)點(diǎn)間能量。
圖7 HR長度
2) 實(shí)驗(yàn)二
本次實(shí)驗(yàn)分析構(gòu)建簇所消耗的能量占總消耗的能量的百分比,將此指標(biāo)稱為簇開銷比。實(shí)驗(yàn)數(shù)據(jù)如圖8所示。
從圖8可知,與采用基于輪的策略的EHEED和EDIT算法相比,提出的FL-EAC路由有效地控制了開銷。原因在于:FL-EAC路由減少了重構(gòu)簇的次數(shù)。而EHEED算法具有最高的構(gòu)簇開銷比,原因在于它需要多條消息才能形成簇,增加建立簇開銷的能耗。
圖8 構(gòu)簇能耗比
3) 實(shí)驗(yàn)三
本次實(shí)驗(yàn)分析網(wǎng)絡(luò)壽命隨節(jié)點(diǎn)數(shù)和離信宿距離的變化情況,實(shí)驗(yàn)數(shù)據(jù)如圖9、圖10所示。
圖9 節(jié)點(diǎn)數(shù)對網(wǎng)絡(luò)壽命的影響
從圖9可知,與EDIT和EHEED算法相比,F(xiàn)L-EAC路由的網(wǎng)絡(luò)壽命得到有效提高。原因在于:FL-EAC路由采用分布式能量感知算法選擇CHs,平衡節(jié)點(diǎn)間的能耗。此外,隨著節(jié)點(diǎn)數(shù)的增加,F(xiàn)L-EAC算法的網(wǎng)絡(luò)壽命并沒有下降。
圖10 離信宿距離對網(wǎng)絡(luò)壽命的影響
圖10的離信宿距離為信宿離感測區(qū)域中心位置的水平距離。換而言之,當(dāng)信宿位于區(qū)域中心位置,則距離為零。在這種情況下,穩(wěn)定階段的能耗比信宿遠(yuǎn)離區(qū)域中心環(huán)境下的能耗降低了不少。原因在于:在穩(wěn)定階段中傳感節(jié)點(diǎn)所消耗的能量主要取決于節(jié)點(diǎn)離信宿距離。
因此,當(dāng)信宿位于感測區(qū)域中心時,節(jié)點(diǎn)能量的大部分消耗于穩(wěn)定階段。相比于EDIT和EHEED算法,F(xiàn)L-EAC路由降低了構(gòu)簇開銷,因此,它獲取較長的網(wǎng)絡(luò)壽命。此外,即使信宿位置遠(yuǎn)區(qū)域,F(xiàn)L-EAC算法降低了能耗,相比EDIT和EHEED算法,網(wǎng)絡(luò)壽命得到有效地提高。
提出基于模糊邏輯系統(tǒng)的能效感知的簇路由FL-EAC。與傳統(tǒng)輪策略不同,F(xiàn)L-EAC路由是在每個超輪的開始時重構(gòu)簇,減少了構(gòu)簇次數(shù),降低能耗。利用模糊邏輯系統(tǒng)決策超輪長度,使得超輪長度能夠依據(jù)節(jié)點(diǎn)剩余能量和距離進(jìn)行變化。實(shí)驗(yàn)數(shù)據(jù)表明,提出的FL-EAC路由算法降低了能耗,延長了網(wǎng)絡(luò)壽命。