呂淑芳,高宇鵬
(山西農業大學信息學院,山西 晉中 030800)
無線傳感器網絡是一種分布式的傳感網絡,其主要的末梢能夠感知與檢查外部世界傳感器。其中傳感器采用無線方式實現通信,因此網絡的設置較為靈活,設備能夠隨時進行更改,同時還能夠與互聯網實現無線或者有線的方式連接。傳感器網絡主要有:數據傳輸、處理以及采集三種功能,它和計算機技術以及通信技術一同組成了信息技術的三大支柱[1]。它主要是通過大量靜止或移動或靜止傳感器,通過多條以及自組織方式構建無線網絡,采用協作的感知、處理、采集以及傳輸網絡,覆蓋地理區域中全部被感知的對象信息,且最終將這些數據信息發送給使用者。因為無線傳感器網絡存在眾多種類的傳感器,能夠探測包括電磁、地震、噪聲、土壤成分、移動物體的大小、方向、速度等。所以可以應用在各行各業中:例如商業、工業、家居、醫療、航空、環境、軍事等領域。
無線傳感器網絡將數以萬計的傳感器節點采用自由式完成結合和組織,從而形成的網絡模式,構建傳感器節點單元分別是:數據處理單元、能量供應單元、數據傳輸單元以及數據采集單元,其中數據采集單元主要是用來采集監測區域內的信息進行轉換,例如濕度、光強、大氣壓力等等;數據傳輸單元是利用無線通信與交流信息的方式,來發送接收采集的數據;數據處理單元主要是處理所以節點路由協議與管理任務以及定位設備等,能量供應單元主要為了縮減傳感器節點所占據的面積。在無線傳感器網絡內,節點主要分為兩種:一種是匯聚節點,另外一種是傳感器節點[2]。匯聚節點主要工作是通過網關在傳感器節點內,把錯誤報告清除掉,同時將各個傳感器節點采集的數據整合,判斷發生的事情。用戶節點和中心節點進行連接,就能夠借助衛星或者是廣域網絡進行直接通信,且處理收集而來的數據。
無線傳感器網絡組建方式自由,不受外界條件的限制隨時隨地可以組建;網絡拓撲構造的不確定性,從網絡層次方向觀察,拓撲結構變化不定;控制方式不集中,雖然無線傳感器將基站與傳感器節點控制起來,不過每個傳感器間控制方式都是分散的,主機與路由功能全是利用網絡終端完成各個主機獨立運行,且互為干涉,所以無線網絡的強度較高,很難被破壞。利用無線通信的方式構成一個多跳自組織的網絡,因為它主要是利用節點進行構造的,包含移動電話與電腦等設備,這些設備全是利用無線連接到彼此,接著相互之間利用網絡進行轉發數據,使數據從一個節點跳至另外一個節點,直到目的地。除非全部節點出現故障,否則數據總是可用的,因此這種網絡拓撲結構可靠,并且擴展性較強[3]。不過一旦傳感器節點能量用盡,就會導致信息發送不出去,不能及時完成通信,所以需要對節點的剩余能量監測,在能量用盡時,及時更換節點,保證網絡通暢。為此提出一種基于多跳分簇算法的傳感器節點剩余能量監測方法,為了的是及時觀察到節點剩余的能量,對其進行處理,使通信過程順暢。
為了減少簇頭出現聚集情況以及均衡網絡的消耗,需要在簇頭選擇的階段,進行充分的考慮所在區域節點分布密度,通過引入密度因子,將簇頭的選擇概率T(n)進行加權,而能量因子會讓能量較高的節點作為簇頭的概率增加,能量小的減小節點的概率,且密度因子會讓密度比較高的區域內節點成為簇頭概率增加[4]。
當每一輪對簇頭進行提取時,此輪就會按照固定方法生成一個閾值T(n),在網絡內全部的存活節點會同時生成一個0至1間的隨機數,假如該數比閾值T(n)小時,就會成為簇頭,反之即為普通節點。從閾值計算公式可以看出,每個節點在被選出簇頭概率是相等的,能夠在網絡起始化時刻可以均衡網絡內每個節點的能量消耗,不過因為沒有考慮節點目前所剩余的能量是否適合做觸頭,經過工作一定時間之后,在網絡內節點的剩余能量比較少的會成為簇頭,加速能量損耗[5]。若在擔當簇頭期間它的能量損耗盡,那么會導致該輪中,此簇頭節點信息無法發送,嚴重則會導致網絡出現不連通,使網絡數據無法進行采集工作。
而在無線傳感器網絡內,需要充分通過節點自身有限資源以及信息來盡量降低節點能耗,無線傳感器網絡的節點通常都知道本身剩余能量以及鄰居節點個數。其中一個節點鄰居個數就能夠直接反映出此節點所在區域節點的大致密度。而鄰居節點越多,那么此區域節點的密度就越大,否則密度就越小。
引入能量因子,選取簇頭時,需要對節點目前剩余能量進行考慮,通過增加剩余能量的節點當選概率,然后引入能量的調節參數,具體公式為

(1)
式中:Esur(n)代表節點n目前剩余的能量值,Ea代表此輪網絡全部節點能量預期平均值,具體大小公式為

(2)
式中:Et代表網絡起始時全部節點能量的總和,r代表目前輪數,N代表網絡起始時刻全部活動節點數目,rmax代表網絡預期能夠工作輪數。
引入密度因子,在網絡內節點通信時,通常接收節點所接收到的信息內,會具有一個信號的強度值,依據該值能夠計算出發送節點和接收節點間的距離[6],能夠確定鄰居節點個數,既而引入密度的調節參數,具體公式為

(3)
式中:Neighbor(n)代表節點n鄰居節點個數,Nr代表目前輪數全部存活節點個數,H代表最佳簇頭數。
在數據的傳輸過程中,采用多跳方式,那么就具有多跳路經選取,通過改進的蟻群算法來優化多跳路徑,具體如下所示:
1)引入全局更新,由于引進蟻群算法是對簇頭節點和匯聚節點之間距離進行優化,所以螞蟻并沒有爬完全部節點[7],而為了防止螞蟻不選取未爬過的路經上面信息素降低,通過引入全局更新的機制,將最大最小的系統以及螞蟻系統的兩個特征進行結合,從而完成全局更新,具體信息素的更新公式選取為
τij(t+1)=(1-ρ)τij(t)+ρΔτij(t,t+1)
(4)
通過引入信息素值上下界,就是τij(t)∈[τmin,τmax]。
2)改變啟發式因子,將發送節點和接收節點間的距離設置為dij,在dij (5) 3)能量損耗的最小路經,蟻群算法主要是求距離的最小值,在本著降低能量消耗,提升無線傳感器網絡的使用壽命下,因為距離和能耗是不成線性的變化,因此把求路經長度最小值更改成求能量消耗最小值,所以Δτij(t,t+1)同樣需要變動,具體公式為 (6) 求解路經應該是從簇頭節點至基站路經,就是目標節點子終點路經[9]。 簇頭至匯聚節點的通信路經主要有蟻群優化,因此最佳簇頭數和單跳網絡不一樣,利用dtoBS代表簇頭和匯聚節點通信多跳路經,在理想的狀態下,簇頭間數據的傳輸主要是自由空間傳輸數據的衰減模型,所以可以得到公式為 (7) (8) 在無線傳感器網絡的剩余監測工作過程中,簇頭始終是處于活動的智能體,來進行計算處理、傳輸通信以及數據采集等工作,而絕大部分能量的消耗都用于傳輸通信,在休眠狀態下的節點則會關閉無線通信的模塊,并不會進行通信傳輸的動作,而能量的消耗只是在本身所執行監測任務時消耗的能量,對于活動節點通信的能量損耗是忽略不計的,因此本文監測的剩余能量消耗都是指通信傳輸的部分。 而對于通信傳輸的消耗能量,主要是用于數據接收以及發送,假設簇內的活動節點Agenti與Agentj處于標準距離d0下,其最小通信能量的消耗是P0,那么Agenti通信能量消耗Pi和兩個節點的空間距離dij有關,具體表達式為 (9) 從網絡內的節點智能體轉換成本身的狀態,可以通過監測能耗的角度對其有效性進行分析,計算能量的消耗,觀察是否需要對其進行監測[12]。如果簇頭節點Agenti在活動的狀態下功耗是Pactive,而處于休眠的狀態時功耗會降為Psleep,如果它處于tsleep時刻是由活動狀態轉換到休眠的狀態時,其轉換所需要花費的時間為τoff,若在τoff內的平均能耗是Eoff=τoff(Pactive+Psleep)/2,接著維持Psleep直到tactive時再度被激活,那么休眠狀態所需要的能量公式為 Esleep=τoff(Pactive+Psleep)/2+Psleep(tactive-tsleep-τoff) (10) 從另外一方面如果它從tsleep到tactive的時間段內,一直處于維持活動的狀態,而不進行狀態的轉換,那么Agenti即為此時間段中能耗,具體公式為 Eactive=Pactive(tactive-tsleep) (11) 如果tactive時刻Agenti再次被監測的電場強度值超出閾值,則重新激活需要時間為τon,相同設置τon時間中轉換能量消耗為Eon=τon(Pactive+Psleep)/2,因此只有在Esaved>Eon時,Agenti經過轉換至休眠狀態時,所進行的節能方式才會有效。 如果檢測過程內,節點智能體從休眠到再度被激活之間,會具有很大的時間間隔,或者是智能體在轉換本身狀態時所消耗的能量會比較小,可以忽略不計。因此只需要監測正常通信的過程中,所消耗的能量,完成剩余節點的能量監測。 為了驗證本文方法的有效性,在無線傳感器的網絡平臺上,使用Micaz進行分析。先將收集到的數據信號傳輸至電腦上,利用電腦記錄實時測量數據且繪制能量消耗曲線。因為MicaZ節點運行的是開源嵌入式操作系統上點的Blink程序,程序在操作節點上3個LED顯示燈是以不同頻率進行閃爍的。通常處理器經過定時從休眠的狀態下喚醒,且操作LED燈開關,在完成處理器的任務之后,從空閑的狀態又重新進入休眠的狀態。其整體過程是處于Ti-nyOS動態能量消耗的管理框架下自動運轉的,以此就能觀察到LED燈與處理器的工作狀態。 實驗設置如下:將供電電壓設置為3.3V,而傳感器部分,對MTS310CA傳感器板上的每個傳感器進行供電,具體每一個傳感器的工作狀態所消耗電流如表1所示。 表1 感應器供電狀態下能量消耗 對硬件方面考慮,無線傳感器的節點消耗部分,主要有:無線通信模塊、處理器模塊以及傳感器模塊。因為傳感器的絕大部分能量都是損耗在無線通信的模塊上,具體如圖1所示。 圖1 無線傳感器網絡的能量消耗 通過圖1能夠看出,傳感器與處理器在工作時能量所消耗的比例已經非常小了,以此即可證明,其中絕大部分能量都是消耗在無線通信的模塊上。所以在圖1內給出了詳細無線通信的各工作模式下功耗,但并沒有對處理器以及傳感器工作狀態進行討論。 在采用本文的節點剩余能量監測方法,對MicaZ節點和配套的MTS310CA的傳感器板能量消耗進行監測,具體如圖2所示。 圖2 剩余能量消耗監測 通過圖2所得到的監測數據,與歷史所監測到的數據進行對比,數據幾乎相同。其中,處理器的部分采取的是單片機活動狀態,并沒有休眠機制,而無線部分采用的是無線監聽,讓無線模塊一直處于在接收監聽的狀態。以此可以看出,各部分未使用休眠策略,無線傳感器的實際損耗能量并沒有像圖1所示一樣。在對無線通信采用了能量管理策略下(把無線傳感器的節點發射功率設置成0、-3、-6、-9dBm),例如:動態功耗的管理TinyOS系統,通信與處理器的能耗都獲得了管理優化,此時傳感器的能量消耗會具有不可忽視比重。 除此之外,通過改變發送數據包大小和改變通信距離,對節點的剩余能量進行監測,具體可以獲得的監測數據結果如表2和表3所示。 表2 改變發送的數據包大小節點能量消耗測試 表3 改變通信距離節點能量的消耗測試 由表2和表3可以驗證,傳輸通信消耗和兩個節點之間的距離成正比關系,可得出本文檢測方法能夠敏銳感知節點能量變化,通過實時監測傳感器的能量損耗,得出自身節點剩余的能量多少,且監測的數據精準,效果良好。 本文提出的基于多跳分簇算法的傳感器節點剩余能量監測方法,能夠及時地對剩余能量進行監測,且監測的數據精確,效果良好,不過由于網絡的技術快速發展,所需求的工作量也越來越大,這就導致節點的能量消耗也越來越快,所以未來本文還需要進一步研究,爭取能夠更加精確快速地監測剩余能量。


2.3 鄰居節點



2.4 傳感器節點剩余能量監測


3 實驗證明
3.1 實驗數據

3.2 傳感器剩余能量損耗監測




4 結束語