劉 苗,鐘曉曦,孫振興,徐 迪,賀 慶
(1.東北石油大學(xué)秦皇島校區(qū) 電子信息工程系,河北 秦皇島 066004;2.東北石油大學(xué) 物理與電子工程學(xué)院,黑龍江 大慶 163318)
物聯(lián)網(wǎng)(IoT:Internet of Things)技術(shù)在無線傳感器網(wǎng)絡(luò)(WSN:Wireless Sensor Network)多通道傳感網(wǎng)絡(luò)的數(shù)據(jù)聚合和傳輸規(guī)劃方面具有巨大的潛力[1]。WSN由大量的傳感器節(jié)點組成,使其電池供電受到限制。傳感器節(jié)點隨機分布在監(jiān)測區(qū)域內(nèi),其收集數(shù)據(jù)并通過單跳或多跳將信息傳輸?shù)交?BS:Base Station)[2-3]。數(shù)據(jù)經(jīng)通信鏈路(如衛(wèi)星或互聯(lián)網(wǎng))由BS傳輸?shù)浇K端系統(tǒng)[3-4]。由于其實施成本低,WSN被廣泛應(yīng)用于各種領(lǐng)域,如工業(yè)、交通、農(nóng)業(yè)、醫(yī)療、環(huán)境監(jiān)測和智能家居等[5]。由于電池供電的傳感器節(jié)點能量有限,從而影響了WSN的質(zhì)量、性能和壽命[6]。因此,降低傳感器能耗是WSN的熱點問題之一。
最初傳感器節(jié)點收集數(shù)據(jù)并直接向基站輸送數(shù)據(jù),但這需要長距離通信,并導(dǎo)致較高的能量消耗,距離基站較遠的節(jié)點會過早死亡,嚴重影響網(wǎng)絡(luò)壽命[7-8]。因此,Singh等[9]和Heinzelman等[10]提出了層次型路由協(xié)議LEACH(Low Energy Adaptive Clustering Hierarchy),首次引入了節(jié)點聚類分簇的思想。該協(xié)議通過一個概率閾值選舉簇頭節(jié)點,通過周期循環(huán)的方式讓所有的節(jié)點都輪流充當簇頭節(jié)點。針對LEACH算法的缺點,學(xué)者們提出了LEACH-C、LEACH-E和CGA-LEACH等改進算法[11-12]。由于單跳傳輸存在能耗過高的缺點,目前通常大多采用多跳通信以節(jié)省能量[13]。然而,在多跳通信中,離基站較近的簇頭將承擔更多的轉(zhuǎn)發(fā)任務(wù),這將導(dǎo)致簇頭的能耗過大,而且這些簇頭會比其他簇頭更快地耗盡能量,這就是網(wǎng)絡(luò)中的“熱區(qū)”問題。針對“熱區(qū)”問題,有學(xué)者提出了非均勻分簇(EEUC:Energy Efficient Uneven Clustering)方案[14],該方案采用節(jié)點間競爭方式,在算法初期隨機選出部分候選簇頭,根據(jù)候選簇頭與基站的距離設(shè)置競爭半徑,與基站間的距離越小,競爭半徑越小,簇群規(guī)模越小,從而降低了簇頭的簇內(nèi)通信能耗,實現(xiàn)能耗均衡。但EEUC在計算節(jié)點競爭半徑時只考慮了節(jié)點與基站的距離,成簇效果不理想,“熱區(qū)”問題仍未解決。近幾年學(xué)者們還引入了能量采集(EH:Energy Harvesting)技術(shù)改善網(wǎng)絡(luò)的壽命問題[15]。
針對上述問題,筆者提出了一種基于能量采集的非均勻分簇算法,該算法在設(shè)置節(jié)點競爭半徑時,充分考慮了節(jié)點剩余能量、節(jié)點與基站的距離、節(jié)點密度以及節(jié)點與能量收集源的距離,顯著提升了非均勻成簇效果。為均衡簇頭能耗,在同一簇中選舉了雙簇頭,主簇頭負責簇內(nèi)通信,副簇頭負責數(shù)據(jù)中繼。為延長網(wǎng)絡(luò)壽命,網(wǎng)絡(luò)還引入了能量采集技術(shù)。
傳感器節(jié)點隨機分布在一個二維平面內(nèi),基站位置固定不變且擁有無限能量;所有傳感器節(jié)點位置固定,并且能確定自身位置,節(jié)點自帶能量有限,可根據(jù)通信距離調(diào)整發(fā)射功率以節(jié)約能量;所有傳感器節(jié)點具有無線能量采集功能,可隨時補充能量;每個簇中分別選舉主、副簇頭節(jié)點,其余為普通節(jié)點。
筆者采用文獻[16-17]中的能耗模型,通過發(fā)送和接收節(jié)點之間的距離d判斷信道屬于自由空間還是多徑衰弱信道。當距離d小于閾值d0時,信道采用自由空間模型;當距離d大于閾值d0時,信道采用多徑衰弱模型。傳感器節(jié)點發(fā)送和接收數(shù)據(jù)能耗為
(1)
ERx(k)=Eeleck
(2)
其中ETx(k,d)表示將k比特數(shù)據(jù)傳輸距離d所耗能量,k表示發(fā)送比特數(shù),d表示數(shù)據(jù)傳輸?shù)木嚯x,Eelec表示通信模型中發(fā)射機電路所耗能量,Efs和Emp表示功率放大器的能耗參數(shù);ERx(k)表示接收k比特數(shù)據(jù)消耗的能量。傳輸閾值d0由Efs和Emp決定,公式如下
(3)
筆者認為傳感器節(jié)點可從附近環(huán)境的射頻源中收集能量。傳感器節(jié)點收集的能量大小取決于射頻源的發(fā)射功率,收集電路和環(huán)境的傳播特性。在地球環(huán)境中,傳感器節(jié)點i從射頻源u收集的能量EHi,u為[18]
(4)
經(jīng)典非均勻分簇算法EEUC是一種分布式競爭算法,是針對“熱區(qū)”問題提出的一種解決方案。在EEUC中,越靠近基站,簇頭節(jié)點的簇規(guī)模就越小,因此節(jié)省的能量即可用于簇間通信。EEUC首先按照一定的概率在網(wǎng)絡(luò)中選出一定數(shù)目節(jié)點成為候選簇頭,參與簇頭選舉,沒有成為候選簇頭的節(jié)點進入睡眠狀態(tài)以節(jié)省能量。設(shè)Ci為任意一個候選簇頭,Ci根據(jù)自身到基站B的距離計算競爭區(qū)域。Ci競爭區(qū)域半徑Rc計算公式如下
(5)
由于EEUC在計算節(jié)點競爭半徑時只考慮了節(jié)點與基站的距離,成簇效果不理想,“熱區(qū)”問題仍未解決。因此筆者在EEUC的基礎(chǔ)上提出了一種基于能量采集的非均勻分簇路由算法,將無線能量采集技術(shù)引入非均勻分簇方案中,在計算節(jié)點競爭半徑時,充分考慮了節(jié)點剩余能量、節(jié)點與基站B的距離、鄰居節(jié)點密度以及節(jié)點與能量收集源R的距離,以提升非均勻分簇的效果。文中節(jié)點競爭半徑設(shè)置如下
(6)
其中權(quán)重參數(shù)a,b,c,d∈[0,1]且a+b+c+d=1,Ec表示節(jié)點當前能量,Emax表示節(jié)點最大能量,dRmax,dRmin分別表示網(wǎng)絡(luò)中節(jié)點與能量收集源R的最大值和最小值,d(Ci,R)表示Ci到能量收集源R的距離。
在網(wǎng)絡(luò)分簇完畢后,需要在每個簇群中選舉簇頭。“熱區(qū)”問題主要是導(dǎo)致網(wǎng)絡(luò)能耗不均衡,其首先體現(xiàn)在距離基站較近簇頭與較遠簇頭之間的能耗不均衡,這是因為距離基站較近簇頭不僅需要進行簇內(nèi)通信,還需中繼來自較遠簇頭的數(shù)據(jù)。若在處理簇內(nèi)通信時消耗相同的能量,距離基站較近簇頭的能耗將遠高于較遠簇頭,因此網(wǎng)絡(luò)采用了非均勻分簇的方案,通過減小距離基站較近簇群的規(guī)模,降低簇頭的簇內(nèi)通信能耗,從而將節(jié)省的能量用于中繼來自較遠簇群的數(shù)據(jù)。其次,能耗不均衡還體現(xiàn)在簇頭節(jié)點與普通節(jié)點之間,由于簇頭節(jié)點一直處于工作狀態(tài),且相對于普通節(jié)點,還需要承擔大量的數(shù)據(jù)接收、聚合和中繼等任務(wù),因此簇頭節(jié)點能耗遠大于普通節(jié)點。為降低簇頭節(jié)點的能耗壓力,筆者在一個簇群中同時選舉一個主簇頭和一個副簇頭,主簇頭負責簇內(nèi)通信,即接收并處理簇內(nèi)信息,副簇頭負責簇間通信,主要是中繼來自較遠簇的數(shù)據(jù)。此外,主簇頭的數(shù)據(jù)將上傳到副簇頭,由副簇頭將數(shù)據(jù)傳輸?shù)交净蛳乱粋€中繼簇頭。簇頭節(jié)點選舉是否合適將直接影響網(wǎng)絡(luò)能耗及壽命。下面給出簇頭選擇標準。
對于簇頭選擇,主要考慮節(jié)點的剩余能量、與簇中其他節(jié)點的平均距離、與基站的距離以及節(jié)點到能量收集源的距離這4個因素。目標函數(shù)
(7)
其中E(c)表示簇頭的能量,E(ni)表示簇內(nèi)節(jié)點i的能量,m表示簇內(nèi)節(jié)點個數(shù),dic表示節(jié)點與簇頭之間的距離,m表示簇內(nèi)節(jié)點個數(shù),diB表示節(jié)點i與基站B之間的距離,diR表示節(jié)點i與能量收集源R之間的距離,α,β,γ,η為自適應(yīng)參數(shù),α,β,γ,η∈[0,1]且α+β+γ+η=1。當f取最小值時,選擇對應(yīng)的節(jié)點作為主簇頭,次最小值對應(yīng)的節(jié)點作為副簇頭。
所有簇頭確定后,簇頭將消息發(fā)布到網(wǎng)絡(luò)中,普通節(jié)點選擇距離最近簇頭加入構(gòu)成簇,然后通過單跳傳輸將數(shù)據(jù)發(fā)送給簇頭。若簇頭距離基站較近,則簇頭將采用單跳傳輸,若距離較遠則選擇多跳傳輸。采用多跳傳輸時,需要選擇一個中繼節(jié)點,先把數(shù)據(jù)傳至中繼節(jié)點,再通過中繼節(jié)點把數(shù)據(jù)上傳到基站。若有M和N兩個簇頭節(jié)點,基站為B,距離之間關(guān)系如下
d2(M,B)>d2(M,N)+d2(N,B)
(8)
其中d(M,B)、d(M,N)和d(N,B)分別表示簇頭M到基站B的距離、簇頭M和簇頭N的距離以及簇頭N到基站B的距離。
能耗之間的關(guān)系為
E(M,B)>E(M,N)+E(N,B)
(9)
其中E(M,B)表示將數(shù)據(jù)從簇頭M發(fā)送到基站B的能耗,E(M,N)表示將數(shù)據(jù)從簇頭M發(fā)送到簇頭N的能耗,E(N,B)表示將數(shù)據(jù)從簇頭N發(fā)送到基站B的能耗。由式(9)可知,多跳傳輸消耗的能量小于單跳傳輸。因此,如果任意兩個簇頭之間的距離滿足式(8),則簇頭將采用多跳傳輸。
實驗采用Matlab 2018B仿真軟件將LEACH算法和LEACH-E算法與所提算法做對比仿真,主要觀察各種算法的網(wǎng)絡(luò)能耗與網(wǎng)絡(luò)生命周期。實驗中,200個節(jié)點均勻分布在400×400 m2大小的平面上,基站坐標為(200,450),能量收集源的坐標為(200,200)。該實驗傳感器節(jié)點的位置分布如圖1所示。圖2給出了筆者所提的非均勻分簇算法的成簇效果。如圖2所示,越靠近基站的簇規(guī)模越小,反之越大。這是為了降低基站附近的簇頭用于簇內(nèi)通信的能耗,避免簇頭過早死亡。
圖1 節(jié)點位置分布圖 圖2 算法成簇效果Fig.1 Distribution of node locations Fig.2 Algorithm clustering effect
圖3給出了各算法在每輪工作周期后,網(wǎng)絡(luò)中存活節(jié)點數(shù)目的對比。LEACH算法在第157輪出現(xiàn)了第1個死亡節(jié)點,LEACH-E在第200輪出現(xiàn)了第1個死亡節(jié)點,而筆者所提算法在第719輪才出現(xiàn)第1個死亡節(jié)點,顯著延長了網(wǎng)絡(luò)壽命。
圖3 網(wǎng)絡(luò)生命周期 圖4 網(wǎng)絡(luò)剩余能量Fig.3 Network Lifetime Fig.4 Network residual energy
圖4給出了各算法所在網(wǎng)絡(luò)的剩余能量。由圖4可知,筆者所提算法降低了網(wǎng)絡(luò)能量消耗的速度,這是由于該算法通過非均勻分簇以及采用在同一簇內(nèi)選舉雙簇頭方案,均衡了網(wǎng)絡(luò)能耗。同時通過多跳路由算法,大幅降低了單個節(jié)點的數(shù)據(jù)傳輸距離,使該節(jié)點不會過早耗盡能量,從而影響網(wǎng)絡(luò)生存周期。
筆者提出了一種基于能量采集的油氣物聯(lián)網(wǎng)非均勻分簇算法。在非均勻分簇階段引入了能量采集技術(shù),改善了簇頭競爭半徑的計算方式。同時在數(shù)據(jù)傳輸階段,分別提出了簇間和簇內(nèi)的數(shù)據(jù)傳輸方案。仿真實驗表明,相對于LEACH算法和LEACH-E算法,該算法能更有效地降低網(wǎng)絡(luò)能耗,延長網(wǎng)絡(luò)壽命。下一步,將嘗試在分簇過程引入動態(tài)分簇閾值,以降低頻繁分簇造成的能量浪費,提高物聯(lián)網(wǎng)能量的利用率。