呂淑芳,高宇鵬
(山西農(nóng)業(yè)大學(xué)信息學(xué)院,山西 晉中 030800)
無線傳感器網(wǎng)絡(luò)是一種分布式的傳感網(wǎng)絡(luò),其主要的末梢能夠感知與檢查外部世界傳感器。其中傳感器采用無線方式實現(xiàn)通信,因此網(wǎng)絡(luò)的設(shè)置較為靈活,設(shè)備能夠隨時進行更改,同時還能夠與互聯(lián)網(wǎng)實現(xiàn)無線或者有線的方式連接。傳感器網(wǎng)絡(luò)主要有:數(shù)據(jù)傳輸、處理以及采集三種功能,它和計算機技術(shù)以及通信技術(shù)一同組成了信息技術(shù)的三大支柱[1]。它主要是通過大量靜止或移動或靜止傳感器,通過多條以及自組織方式構(gòu)建無線網(wǎng)絡(luò),采用協(xié)作的感知、處理、采集以及傳輸網(wǎng)絡(luò),覆蓋地理區(qū)域中全部被感知的對象信息,且最終將這些數(shù)據(jù)信息發(fā)送給使用者。因為無線傳感器網(wǎng)絡(luò)存在眾多種類的傳感器,能夠探測包括電磁、地震、噪聲、土壤成分、移動物體的大小、方向、速度等。所以可以應(yīng)用在各行各業(yè)中:例如商業(yè)、工業(yè)、家居、醫(yī)療、航空、環(huán)境、軍事等領(lǐng)域。
無線傳感器網(wǎng)絡(luò)將數(shù)以萬計的傳感器節(jié)點采用自由式完成結(jié)合和組織,從而形成的網(wǎng)絡(luò)模式,構(gòu)建傳感器節(jié)點單元分別是:數(shù)據(jù)處理單元、能量供應(yīng)單元、數(shù)據(jù)傳輸單元以及數(shù)據(jù)采集單元,其中數(shù)據(jù)采集單元主要是用來采集監(jiān)測區(qū)域內(nèi)的信息進行轉(zhuǎn)換,例如濕度、光強、大氣壓力等等;數(shù)據(jù)傳輸單元是利用無線通信與交流信息的方式,來發(fā)送接收采集的數(shù)據(jù);數(shù)據(jù)處理單元主要是處理所以節(jié)點路由協(xié)議與管理任務(wù)以及定位設(shè)備等,能量供應(yīng)單元主要為了縮減傳感器節(jié)點所占據(jù)的面積。在無線傳感器網(wǎng)絡(luò)內(nèi),節(jié)點主要分為兩種:一種是匯聚節(jié)點,另外一種是傳感器節(jié)點[2]。匯聚節(jié)點主要工作是通過網(wǎng)關(guān)在傳感器節(jié)點內(nèi),把錯誤報告清除掉,同時將各個傳感器節(jié)點采集的數(shù)據(jù)整合,判斷發(fā)生的事情。用戶節(jié)點和中心節(jié)點進行連接,就能夠借助衛(wèi)星或者是廣域網(wǎng)絡(luò)進行直接通信,且處理收集而來的數(shù)據(jù)。
無線傳感器網(wǎng)絡(luò)組建方式自由,不受外界條件的限制隨時隨地可以組建;網(wǎng)絡(luò)拓撲構(gòu)造的不確定性,從網(wǎng)絡(luò)層次方向觀察,拓撲結(jié)構(gòu)變化不定;控制方式不集中,雖然無線傳感器將基站與傳感器節(jié)點控制起來,不過每個傳感器間控制方式都是分散的,主機與路由功能全是利用網(wǎng)絡(luò)終端完成各個主機獨立運行,且互為干涉,所以無線網(wǎng)絡(luò)的強度較高,很難被破壞。利用無線通信的方式構(gòu)成一個多跳自組織的網(wǎng)絡(luò),因為它主要是利用節(jié)點進行構(gòu)造的,包含移動電話與電腦等設(shè)備,這些設(shè)備全是利用無線連接到彼此,接著相互之間利用網(wǎng)絡(luò)進行轉(zhuǎn)發(fā)數(shù)據(jù),使數(shù)據(jù)從一個節(jié)點跳至另外一個節(jié)點,直到目的地。除非全部節(jié)點出現(xiàn)故障,否則數(shù)據(jù)總是可用的,因此這種網(wǎng)絡(luò)拓撲結(jié)構(gòu)可靠,并且擴展性較強[3]。不過一旦傳感器節(jié)點能量用盡,就會導(dǎo)致信息發(fā)送不出去,不能及時完成通信,所以需要對節(jié)點的剩余能量監(jiān)測,在能量用盡時,及時更換節(jié)點,保證網(wǎng)絡(luò)通暢。為此提出一種基于多跳分簇算法的傳感器節(jié)點剩余能量監(jiān)測方法,為了的是及時觀察到節(jié)點剩余的能量,對其進行處理,使通信過程順暢。
為了減少簇頭出現(xiàn)聚集情況以及均衡網(wǎng)絡(luò)的消耗,需要在簇頭選擇的階段,進行充分的考慮所在區(qū)域節(jié)點分布密度,通過引入密度因子,將簇頭的選擇概率T(n)進行加權(quán),而能量因子會讓能量較高的節(jié)點作為簇頭的概率增加,能量小的減小節(jié)點的概率,且密度因子會讓密度比較高的區(qū)域內(nèi)節(jié)點成為簇頭概率增加[4]。
當(dāng)每一輪對簇頭進行提取時,此輪就會按照固定方法生成一個閾值T(n),在網(wǎng)絡(luò)內(nèi)全部的存活節(jié)點會同時生成一個0至1間的隨機數(shù),假如該數(shù)比閾值T(n)小時,就會成為簇頭,反之即為普通節(jié)點。從閾值計算公式可以看出,每個節(jié)點在被選出簇頭概率是相等的,能夠在網(wǎng)絡(luò)起始化時刻可以均衡網(wǎng)絡(luò)內(nèi)每個節(jié)點的能量消耗,不過因為沒有考慮節(jié)點目前所剩余的能量是否適合做觸頭,經(jīng)過工作一定時間之后,在網(wǎng)絡(luò)內(nèi)節(jié)點的剩余能量比較少的會成為簇頭,加速能量損耗[5]。若在擔(dān)當(dāng)簇頭期間它的能量損耗盡,那么會導(dǎo)致該輪中,此簇頭節(jié)點信息無法發(fā)送,嚴(yán)重則會導(dǎo)致網(wǎng)絡(luò)出現(xiàn)不連通,使網(wǎng)絡(luò)數(shù)據(jù)無法進行采集工作。
而在無線傳感器網(wǎng)絡(luò)內(nèi),需要充分通過節(jié)點自身有限資源以及信息來盡量降低節(jié)點能耗,無線傳感器網(wǎng)絡(luò)的節(jié)點通常都知道本身剩余能量以及鄰居節(jié)點個數(shù)。其中一個節(jié)點鄰居個數(shù)就能夠直接反映出此節(jié)點所在區(qū)域節(jié)點的大致密度。而鄰居節(jié)點越多,那么此區(qū)域節(jié)點的密度就越大,否則密度就越小。
引入能量因子,選取簇頭時,需要對節(jié)點目前剩余能量進行考慮,通過增加剩余能量的節(jié)點當(dāng)選概率,然后引入能量的調(diào)節(jié)參數(shù),具體公式為
(1)
式中:Esur(n)代表節(jié)點n目前剩余的能量值,Ea代表此輪網(wǎng)絡(luò)全部節(jié)點能量預(yù)期平均值,具體大小公式為
(2)
式中:Et代表網(wǎng)絡(luò)起始時全部節(jié)點能量的總和,r代表目前輪數(shù),N代表網(wǎng)絡(luò)起始時刻全部活動節(jié)點數(shù)目,rmax代表網(wǎng)絡(luò)預(yù)期能夠工作輪數(shù)。
引入密度因子,在網(wǎng)絡(luò)內(nèi)節(jié)點通信時,通常接收節(jié)點所接收到的信息內(nèi),會具有一個信號的強度值,依據(jù)該值能夠計算出發(fā)送節(jié)點和接收節(jié)點間的距離[6],能夠確定鄰居節(jié)點個數(shù),既而引入密度的調(diào)節(jié)參數(shù),具體公式為
(3)
式中:Neighbor(n)代表節(jié)點n鄰居節(jié)點個數(shù),Nr代表目前輪數(shù)全部存活節(jié)點個數(shù),H代表最佳簇頭數(shù)。
在數(shù)據(jù)的傳輸過程中,采用多跳方式,那么就具有多跳路經(jīng)選取,通過改進的蟻群算法來優(yōu)化多跳路徑,具體如下所示:
1)引入全局更新,由于引進蟻群算法是對簇頭節(jié)點和匯聚節(jié)點之間距離進行優(yōu)化,所以螞蟻并沒有爬完全部節(jié)點[7],而為了防止螞蟻不選取未爬過的路經(jīng)上面信息素降低,通過引入全局更新的機制,將最大最小的系統(tǒng)以及螞蟻系統(tǒng)的兩個特征進行結(jié)合,從而完成全局更新,具體信息素的更新公式選取為
τij(t+1)=(1-ρ)τij(t)+ρΔτij(t,t+1)
(4)
通過引入信息素值上下界,就是τij(t)∈[τmin,τmax]。
2)改變啟發(fā)式因子,將發(fā)送節(jié)點和接收節(jié)點間的距離設(shè)置為dij,在dij (5) 3)能量損耗的最小路經(jīng),蟻群算法主要是求距離的最小值,在本著降低能量消耗,提升無線傳感器網(wǎng)絡(luò)的使用壽命下,因為距離和能耗是不成線性的變化,因此把求路經(jīng)長度最小值更改成求能量消耗最小值,所以Δτij(t,t+1)同樣需要變動,具體公式為 (6) 求解路經(jīng)應(yīng)該是從簇頭節(jié)點至基站路經(jīng),就是目標(biāo)節(jié)點子終點路經(jīng)[9]。 簇頭至匯聚節(jié)點的通信路經(jīng)主要有蟻群優(yōu)化,因此最佳簇頭數(shù)和單跳網(wǎng)絡(luò)不一樣,利用dtoBS代表簇頭和匯聚節(jié)點通信多跳路經(jīng),在理想的狀態(tài)下,簇頭間數(shù)據(jù)的傳輸主要是自由空間傳輸數(shù)據(jù)的衰減模型,所以可以得到公式為 (7) (8) 在無線傳感器網(wǎng)絡(luò)的剩余監(jiān)測工作過程中,簇頭始終是處于活動的智能體,來進行計算處理、傳輸通信以及數(shù)據(jù)采集等工作,而絕大部分能量的消耗都用于傳輸通信,在休眠狀態(tài)下的節(jié)點則會關(guān)閉無線通信的模塊,并不會進行通信傳輸?shù)膭幼?,而能量的消耗只是在本身所?zhí)行監(jiān)測任務(wù)時消耗的能量,對于活動節(jié)點通信的能量損耗是忽略不計的,因此本文監(jiān)測的剩余能量消耗都是指通信傳輸?shù)牟糠帧?/p> 而對于通信傳輸?shù)南哪芰浚饕怯糜跀?shù)據(jù)接收以及發(fā)送,假設(shè)簇內(nèi)的活動節(jié)點Agenti與Agentj處于標(biāo)準(zhǔn)距離d0下,其最小通信能量的消耗是P0,那么Agenti通信能量消耗Pi和兩個節(jié)點的空間距離dij有關(guān),具體表達式為 (9) 從網(wǎng)絡(luò)內(nèi)的節(jié)點智能體轉(zhuǎn)換成本身的狀態(tài),可以通過監(jiān)測能耗的角度對其有效性進行分析,計算能量的消耗,觀察是否需要對其進行監(jiān)測[12]。如果簇頭節(jié)點Agenti在活動的狀態(tài)下功耗是Pactive,而處于休眠的狀態(tài)時功耗會降為Psleep,如果它處于tsleep時刻是由活動狀態(tài)轉(zhuǎn)換到休眠的狀態(tài)時,其轉(zhuǎn)換所需要花費的時間為τoff,若在τoff內(nèi)的平均能耗是Eoff=τoff(Pactive+Psleep)/2,接著維持Psleep直到tactive時再度被激活,那么休眠狀態(tài)所需要的能量公式為 Esleep=τoff(Pactive+Psleep)/2+Psleep(tactive-tsleep-τoff) (10) 從另外一方面如果它從tsleep到tactive的時間段內(nèi),一直處于維持活動的狀態(tài),而不進行狀態(tài)的轉(zhuǎn)換,那么Agenti即為此時間段中能耗,具體公式為 Eactive=Pactive(tactive-tsleep) (11) 如果tactive時刻Agenti再次被監(jiān)測的電場強度值超出閾值,則重新激活需要時間為τon,相同設(shè)置τon時間中轉(zhuǎn)換能量消耗為Eon=τon(Pactive+Psleep)/2,因此只有在Esaved>Eon時,Agenti經(jīng)過轉(zhuǎn)換至休眠狀態(tài)時,所進行的節(jié)能方式才會有效。 如果檢測過程內(nèi),節(jié)點智能體從休眠到再度被激活之間,會具有很大的時間間隔,或者是智能體在轉(zhuǎn)換本身狀態(tài)時所消耗的能量會比較小,可以忽略不計。因此只需要監(jiān)測正常通信的過程中,所消耗的能量,完成剩余節(jié)點的能量監(jiān)測。 為了驗證本文方法的有效性,在無線傳感器的網(wǎng)絡(luò)平臺上,使用Micaz進行分析。先將收集到的數(shù)據(jù)信號傳輸至電腦上,利用電腦記錄實時測量數(shù)據(jù)且繪制能量消耗曲線。因為MicaZ節(jié)點運行的是開源嵌入式操作系統(tǒng)上點的Blink程序,程序在操作節(jié)點上3個LED顯示燈是以不同頻率進行閃爍的。通常處理器經(jīng)過定時從休眠的狀態(tài)下喚醒,且操作LED燈開關(guān),在完成處理器的任務(wù)之后,從空閑的狀態(tài)又重新進入休眠的狀態(tài)。其整體過程是處于Ti-nyOS動態(tài)能量消耗的管理框架下自動運轉(zhuǎn)的,以此就能觀察到LED燈與處理器的工作狀態(tài)。 實驗設(shè)置如下:將供電電壓設(shè)置為3.3V,而傳感器部分,對MTS310CA傳感器板上的每個傳感器進行供電,具體每一個傳感器的工作狀態(tài)所消耗電流如表1所示。 表1 感應(yīng)器供電狀態(tài)下能量消耗 對硬件方面考慮,無線傳感器的節(jié)點消耗部分,主要有:無線通信模塊、處理器模塊以及傳感器模塊。因為傳感器的絕大部分能量都是損耗在無線通信的模塊上,具體如圖1所示。 圖1 無線傳感器網(wǎng)絡(luò)的能量消耗 通過圖1能夠看出,傳感器與處理器在工作時能量所消耗的比例已經(jīng)非常小了,以此即可證明,其中絕大部分能量都是消耗在無線通信的模塊上。所以在圖1內(nèi)給出了詳細無線通信的各工作模式下功耗,但并沒有對處理器以及傳感器工作狀態(tài)進行討論。 在采用本文的節(jié)點剩余能量監(jiān)測方法,對MicaZ節(jié)點和配套的MTS310CA的傳感器板能量消耗進行監(jiān)測,具體如圖2所示。 圖2 剩余能量消耗監(jiān)測 通過圖2所得到的監(jiān)測數(shù)據(jù),與歷史所監(jiān)測到的數(shù)據(jù)進行對比,數(shù)據(jù)幾乎相同。其中,處理器的部分采取的是單片機活動狀態(tài),并沒有休眠機制,而無線部分采用的是無線監(jiān)聽,讓無線模塊一直處于在接收監(jiān)聽的狀態(tài)。以此可以看出,各部分未使用休眠策略,無線傳感器的實際損耗能量并沒有像圖1所示一樣。在對無線通信采用了能量管理策略下(把無線傳感器的節(jié)點發(fā)射功率設(shè)置成0、-3、-6、-9dBm),例如:動態(tài)功耗的管理TinyOS系統(tǒng),通信與處理器的能耗都獲得了管理優(yōu)化,此時傳感器的能量消耗會具有不可忽視比重。 除此之外,通過改變發(fā)送數(shù)據(jù)包大小和改變通信距離,對節(jié)點的剩余能量進行監(jiān)測,具體可以獲得的監(jiān)測數(shù)據(jù)結(jié)果如表2和表3所示。 表2 改變發(fā)送的數(shù)據(jù)包大小節(jié)點能量消耗測試 表3 改變通信距離節(jié)點能量的消耗測試 由表2和表3可以驗證,傳輸通信消耗和兩個節(jié)點之間的距離成正比關(guān)系,可得出本文檢測方法能夠敏銳感知節(jié)點能量變化,通過實時監(jiān)測傳感器的能量損耗,得出自身節(jié)點剩余的能量多少,且監(jiān)測的數(shù)據(jù)精準(zhǔn),效果良好。 本文提出的基于多跳分簇算法的傳感器節(jié)點剩余能量監(jiān)測方法,能夠及時地對剩余能量進行監(jiān)測,且監(jiān)測的數(shù)據(jù)精確,效果良好,不過由于網(wǎng)絡(luò)的技術(shù)快速發(fā)展,所需求的工作量也越來越大,這就導(dǎo)致節(jié)點的能量消耗也越來越快,所以未來本文還需要進一步研究,爭取能夠更加精確快速地監(jiān)測剩余能量。2.3 鄰居節(jié)點
2.4 傳感器節(jié)點剩余能量監(jiān)測
3 實驗證明
3.1 實驗數(shù)據(jù)
3.2 傳感器剩余能量損耗監(jiān)測
4 結(jié)束語