黃 嫻 陳 佳 陳可心
(1.無錫科技職業學院,江蘇 無錫 214028;2.蘇州大學,江蘇 蘇州 215325)
糧食問題是關系到基本民生的重大戰略問題。目前,中國在糧食倉儲方面的技術能力一般,存在糧食變質和蟲害等問題[1]。無線傳感器網絡(Wireless Sensor Network,WSN)具有成本低、密度高和分布隨機等優點,有效解決了傳統倉儲監測的不足,提高了倉儲環境的監測能力[2]。
季欣然等[3]提出了一種無線傳感器網絡自適應動態路由算法,結合平面路由和層次路由,建立了雙路由網絡框架,有效降低了路由數據傳輸的能耗,該方法節能效果好,適用性強。曹迪等[4]提出了一種改進蟻群路由算法用于無線傳感器網絡,引入能量波動指數篩選蟻群路由候選集,引入多目標優化機制。仿真結果表明,改進的蟻群路由算法有效地提高了能量利用率,收斂速度比傳統算法快,改善了網絡節點的能量平衡。李偉[5]提出了一種將遺傳算法和K-均值算法相結合的無線傳感器網絡節能算法,與傳統無線網絡的路由協議相比,該方法能耗顯著降低。張華南[6]將協議和超低功耗喚醒接收機相結合,有效降低了網絡的能耗,與系統方案相比,該方案在能耗、效率、吞吐量等方面均有顯著提高。但實際應用中,外部環境的變化是隨機的,因此很難通過設計一個統一模型來處理各個節點環境的差異性,其適應性有待進一步提高。
文章擬提出一種基于節點剩余能量分簇的節點調度方法用于糧食倉儲環境監測的無線傳感器網絡,從網絡覆蓋率和監控精度兩個方面計算簇內活動節點數,根據節點的能量和分布確定最終的工作節點,并通過仿真驗證該節能策略的優越性,旨在為無線傳感器網絡在糧食倉儲環境檢測中的應用提供依據。
根據倉儲環境監控系統目標,將整個系統架構分為感知層、網絡傳輸層和應用層(見圖1)。在架構的底層,感知層由探測器節點、匯聚節點和執行器節點組成[7]。探測器節點負責采集環境參數,包括溫度傳感器、濕度傳感器、聲音傳感器、熱釋電紅外傳感器。執行器節點的主要職責是驅趕倉儲害蟲,根據接收到的命令進行控制。匯聚節點和探測節點是一對多的,根據監控環境的要求進行配置[8]。網絡傳輸層負責數據傳輸,通過485總線與匯聚節點進行通信,通過網線連接后臺服務器,用戶可以直接訪問后臺服務器。應用層主要是后臺服務器管理系統,其主要目的是對整個糧食貯存環境監測系統的參數進行匯總、處理和分析,對貯存環境數據進行可視化和管理,對全廠區的所有數據進行匯總、存儲和分析。

圖1 系統整體框架
根據糧食倉儲監控環境中節點密度高的問題,在節點剩余能量分簇算法(ECA)的基礎上,提出一種節點調度方法來延長網絡壽命。基于能耗最小的原則,進一步優化簇間的數據傳輸協議[9]。從網絡覆蓋率和監控精度兩個方面對系統中的節點進行調度,同時,只有一些節點在工作。
ECA結構如圖2所示。在ECA中,通過簇頭管理簇內節點的各種活動[10]。簇頭節點會消耗大量的能量,節點不能長時間充當簇頭,否則,網絡中的節點會越來越少。因此,在選擇簇頭節點時要定期更換,保證網絡能量均衡[11]。

圖2 分簇路由算法
2.1.1 分簇 其步驟如下:
(1)初始化網絡。
(2)對節點剩余能量Ecur進行計算,判斷是否滿足節點成為簇頭的最低能量,如式(1)所示[12]。
Ecur≥2ntrl[dg(2Eelec+Efusion+EampR2)],
(1)
式中:
Efusion——節點的單位能耗,J;
Eelec——節點發射和接收能耗,J;
Eamp——節點感知能耗,J;
ntr——節點的探測頻率,kHz;
dg——相鄰節點數;
l——數據長度,byte;
R——感知半徑,m。
如果節點有權競爭簇頭,獲取廣播競爭簇頭消息的時間TC為:
(2)
式中:
k1——權重因子;
T2——節點初始化完成后進入競爭簇首階段所需的時間長度,ms;
Emax——節點最大能量,J;
Ecur——節點剩余能量,J。
(3)確定簇頭節點。如果一個節點在TC時間之前收到另一個節點廣播的簇頭競爭消息,該節點狀態設置為普通節點[13]。如果節點未接收到該消息,其將向檢測范圍內的所有節點發送競爭簇頭消息。
(4)節點選擇加入各簇,并將分簇時間長度設置為T3。此時,分簇過程完成。節點根據每個簇頭的剩余能量加入簇。
2.1.2 簇間數據傳輸路由及優化 網絡最終將監控數據發送到接收器節點,接收器節點將監控數據提供給用戶。數據傳輸中,簇頭節點采集簇內節點數據并對數據進行處理,然后以多跳方式將其發送到匯聚節點。匯聚節點首先向網絡發送Inter_CH_M消息。
當簇頭節點接收到Inter_CH_M時,發送消息到簇中節點。簇間路由選擇如式(3)所示[14]。
(3)
式中:
k2、k3——權重因子;
Ei、Ej——節點i和j剩余能量,J;
di_sink——節點i到匯聚節點的距離,m。
簇頭節點需先處理簇中成員節點發送的數據,然后將這些數據發送到匯聚節點[15]。簇頭節點能耗高,傳輸數據量大。但存在簇頭節點距離匯聚節點較遠的情況,能量不足而丟失,導致監控盲區問題,因此對其進行進一步優化。
根據式(4)的能量消耗函數,對相鄰的簇首節點進行選擇,并進行數據傳輸,反復執行直到數據傳輸至匯聚節點[16]。
(4)
式中:
w——權值系數;
ECHi——簇首節點i的能耗,J;
ECHj——簇首節點j的能耗,J;
文中通過調度的方法降低能耗,簇內活動節點數量從網絡覆蓋率和監控精度兩個方面進行計算,減少網絡能耗和數據采集冗余,避免節點睡眠造成的監控盲點問題[17]。


圖3 覆蓋拓撲結構
在以簇頭節點為中心、簇半徑R為半徑的圓中,如果節點的感知距離為rs,s為節點在其簇外的感知范圍,則需要至少h個活動節點來實現簇內的覆蓋η,活動節點h的范圍如式(5)所示[19]。
(5)

(6)
式中:
m——活動節點數。
由實際測量和概率論知識得到最終活動節點數m,如式(7)所示。
(7)
式中:
z——標準正態分布。
選擇設備為聯想PC,操作系統為windows1064位旗艦,Intel i5 2450m CPU,頻率為2.5 GHz,仿真平臺為NS2。在網絡中,執行器節點較少,主要接收匯聚節點發送的執行命令。試驗中,只分析倉儲環境中的探測節點,其相關參數見表1。

表1 試驗參數
為了驗證文中提出的路由算法的有效性,使用NS2仿真系統,不使用調度機制。
3.2.1 能耗比較 不同節點數的網絡結構下,將文中方法與LEACH分簇算法進行比較,驗證該方法的優越性,結果如圖4所示。
由圖4可知,隨著節點數的增加,ECA算法能量消耗速度比LEACH算法的慢,是因為LEACH路由協議中的簇頭節點直接與匯聚節點進行數據傳輸,如果簇頭距離匯聚節點較遠,則能量耗費非常多。

圖4 不同算法隨節點數變化的能耗曲線
3.2.2 節點間剩余能量差比較 網絡結束時,網絡中每個節點的剩余能量差在一定程度上反映了網絡節點的平均能耗和網絡生存周期的長度。與LEACH聚類算法進行比較,不同方法的節點剩余能量差隨節點數的變化曲線如圖5所示。
由圖5可知,隨著節點數的增加,ECA算法的節點剩余能量標準差小于LEACH分簇算法的。這是因為ECA算法的簇頭節點在網絡中分布更均勻,此外,在能量傳輸中還考慮了簇頭節點的能量消耗,因此節點能量分布相對均衡。

圖5 不同算法隨節點數變化的剩余能量差曲線
3.2.3 網絡壽命比較 網絡壽命定義為死區節點出現在網絡中時的程序循環數,即網絡生存期。與LEACH分簇算法進行比較,不同方法隨節點數變化的網絡生存期曲線如圖6所示。
由圖6可知,隨著節點數的增加,ECA算法的網絡生存期逐漸增加,而LEACH分簇算法的網絡生存周期相對較為穩定。這是因為ECA算法在簇頭競爭時以剩余能量作為約束,能量較少節點不再作為簇頭,有效均衡了網絡中節點能量。

圖6 不同算法隨節點數變化的網絡生存期曲線
使用調度機制時,分析節點調度前后的能耗和網絡生存期,并用NS2對系統進行仿真,以驗證文中方法的有效性,結果見圖7。對ECA改進前后進行分析,比較簇內調度前后節點能耗和網絡生存期的變化,結果如圖8所示。

圖8 改進前后隨節點數變化的網絡生存期曲線
由圖7可知,隨著節點數的增加,節點能耗逐漸增加,但ECA算法通過簇內調度能耗有明顯改善。網絡中節點數量越少,簇中冗余節點數量越少,此時進行簇內調度會增加網絡的能耗。這是因為如果簇中的節點數量較少,則簇中所有節點都處于活動狀態,以滿足覆蓋要求,簇內調度會消耗更多的能量,因此,當網絡節點數量較少,即節點冗余時,無需應用節點調度策略。

圖7 改進前后隨節點數變化的能耗曲線
由圖8可知,隨著節點數的增加,網絡生存期逐漸增加,在ECA算法進行簇內調度前,網絡生存期增加,但增加較小。在網絡中使用節點調度策略后,網絡壽命的變化趨勢保持不變,尤其是當網絡中存在大量節點時。這是因為網絡中節點的冗余度跟不上增長,使用節點調度策略后,可以有效利用網絡中的每個節點對監控區域進行監控,說明整個網絡的生命周期被延長。
研究提出了一種基于節點剩余能量分簇的節點調度方法用于糧食倉儲環境監測的無線傳感器網絡。結果表明,該協議的能量消耗明顯低于傳統的無線傳感器網絡路由協議,且網絡中各節點的能量消耗得到了有效平衡。與改進前相比,該方法可以有效降低數據采集過程中的能耗,具有一定的應用價值。在現有測試條件下,文中研究還處于初級階段,后續將不斷提高整個節能策略的性能。