黃 嫻 陳 佳 陳可心
(1.無錫科技職業(yè)學(xué)院,江蘇 無錫 214028;2.蘇州大學(xué),江蘇 蘇州 215325)
糧食問題是關(guān)系到基本民生的重大戰(zhàn)略問題。目前,中國在糧食倉儲方面的技術(shù)能力一般,存在糧食變質(zhì)和蟲害等問題[1]。無線傳感器網(wǎng)絡(luò)(Wireless Sensor Network,WSN)具有成本低、密度高和分布隨機(jī)等優(yōu)點,有效解決了傳統(tǒng)倉儲監(jiān)測的不足,提高了倉儲環(huán)境的監(jiān)測能力[2]。
季欣然等[3]提出了一種無線傳感器網(wǎng)絡(luò)自適應(yīng)動態(tài)路由算法,結(jié)合平面路由和層次路由,建立了雙路由網(wǎng)絡(luò)框架,有效降低了路由數(shù)據(jù)傳輸?shù)哪芎?,該方法?jié)能效果好,適用性強(qiáng)。曹迪等[4]提出了一種改進(jìn)蟻群路由算法用于無線傳感器網(wǎng)絡(luò),引入能量波動指數(shù)篩選蟻群路由候選集,引入多目標(biāo)優(yōu)化機(jī)制。仿真結(jié)果表明,改進(jìn)的蟻群路由算法有效地提高了能量利用率,收斂速度比傳統(tǒng)算法快,改善了網(wǎng)絡(luò)節(jié)點的能量平衡。李偉[5]提出了一種將遺傳算法和K-均值算法相結(jié)合的無線傳感器網(wǎng)絡(luò)節(jié)能算法,與傳統(tǒng)無線網(wǎng)絡(luò)的路由協(xié)議相比,該方法能耗顯著降低。張華南[6]將協(xié)議和超低功耗喚醒接收機(jī)相結(jié)合,有效降低了網(wǎng)絡(luò)的能耗,與系統(tǒng)方案相比,該方案在能耗、效率、吞吐量等方面均有顯著提高。但實際應(yīng)用中,外部環(huán)境的變化是隨機(jī)的,因此很難通過設(shè)計一個統(tǒng)一模型來處理各個節(jié)點環(huán)境的差異性,其適應(yīng)性有待進(jìn)一步提高。
文章擬提出一種基于節(jié)點剩余能量分簇的節(jié)點調(diào)度方法用于糧食倉儲環(huán)境監(jiān)測的無線傳感器網(wǎng)絡(luò),從網(wǎng)絡(luò)覆蓋率和監(jiān)控精度兩個方面計算簇內(nèi)活動節(jié)點數(shù),根據(jù)節(jié)點的能量和分布確定最終的工作節(jié)點,并通過仿真驗證該節(jié)能策略的優(yōu)越性,旨在為無線傳感器網(wǎng)絡(luò)在糧食倉儲環(huán)境檢測中的應(yīng)用提供依據(jù)。
根據(jù)倉儲環(huán)境監(jiān)控系統(tǒng)目標(biāo),將整個系統(tǒng)架構(gòu)分為感知層、網(wǎng)絡(luò)傳輸層和應(yīng)用層(見圖1)。在架構(gòu)的底層,感知層由探測器節(jié)點、匯聚節(jié)點和執(zhí)行器節(jié)點組成[7]。探測器節(jié)點負(fù)責(zé)采集環(huán)境參數(shù),包括溫度傳感器、濕度傳感器、聲音傳感器、熱釋電紅外傳感器。執(zhí)行器節(jié)點的主要職責(zé)是驅(qū)趕倉儲害蟲,根據(jù)接收到的命令進(jìn)行控制。匯聚節(jié)點和探測節(jié)點是一對多的,根據(jù)監(jiān)控環(huán)境的要求進(jìn)行配置[8]。網(wǎng)絡(luò)傳輸層負(fù)責(zé)數(shù)據(jù)傳輸,通過485總線與匯聚節(jié)點進(jìn)行通信,通過網(wǎng)線連接后臺服務(wù)器,用戶可以直接訪問后臺服務(wù)器。應(yīng)用層主要是后臺服務(wù)器管理系統(tǒng),其主要目的是對整個糧食貯存環(huán)境監(jiān)測系統(tǒng)的參數(shù)進(jìn)行匯總、處理和分析,對貯存環(huán)境數(shù)據(jù)進(jìn)行可視化和管理,對全廠區(qū)的所有數(shù)據(jù)進(jìn)行匯總、存儲和分析。
圖1 系統(tǒng)整體框架
根據(jù)糧食倉儲監(jiān)控環(huán)境中節(jié)點密度高的問題,在節(jié)點剩余能量分簇算法(ECA)的基礎(chǔ)上,提出一種節(jié)點調(diào)度方法來延長網(wǎng)絡(luò)壽命。基于能耗最小的原則,進(jìn)一步優(yōu)化簇間的數(shù)據(jù)傳輸協(xié)議[9]。從網(wǎng)絡(luò)覆蓋率和監(jiān)控精度兩個方面對系統(tǒng)中的節(jié)點進(jìn)行調(diào)度,同時,只有一些節(jié)點在工作。
ECA結(jié)構(gòu)如圖2所示。在ECA中,通過簇頭管理簇內(nèi)節(jié)點的各種活動[10]。簇頭節(jié)點會消耗大量的能量,節(jié)點不能長時間充當(dāng)簇頭,否則,網(wǎng)絡(luò)中的節(jié)點會越來越少。因此,在選擇簇頭節(jié)點時要定期更換,保證網(wǎng)絡(luò)能量均衡[11]。
圖2 分簇路由算法
2.1.1 分簇 其步驟如下:
(1)初始化網(wǎng)絡(luò)。
(2)對節(jié)點剩余能量Ecur進(jìn)行計算,判斷是否滿足節(jié)點成為簇頭的最低能量,如式(1)所示[12]。
Ecur≥2ntrl[dg(2Eelec+Efusion+EampR2)],
(1)
式中:
Efusion——節(jié)點的單位能耗,J;
Eelec——節(jié)點發(fā)射和接收能耗,J;
Eamp——節(jié)點感知能耗,J;
ntr——節(jié)點的探測頻率,kHz;
dg——相鄰節(jié)點數(shù);
l——數(shù)據(jù)長度,byte;
R——感知半徑,m。
如果節(jié)點有權(quán)競爭簇頭,獲取廣播競爭簇頭消息的時間TC為:
(2)
式中:
k1——權(quán)重因子;
T2——節(jié)點初始化完成后進(jìn)入競爭簇首階段所需的時間長度,ms;
Emax——節(jié)點最大能量,J;
Ecur——節(jié)點剩余能量,J。
(3)確定簇頭節(jié)點。如果一個節(jié)點在TC時間之前收到另一個節(jié)點廣播的簇頭競爭消息,該節(jié)點狀態(tài)設(shè)置為普通節(jié)點[13]。如果節(jié)點未接收到該消息,其將向檢測范圍內(nèi)的所有節(jié)點發(fā)送競爭簇頭消息。
(4)節(jié)點選擇加入各簇,并將分簇時間長度設(shè)置為T3。此時,分簇過程完成。節(jié)點根據(jù)每個簇頭的剩余能量加入簇。
2.1.2 簇間數(shù)據(jù)傳輸路由及優(yōu)化 網(wǎng)絡(luò)最終將監(jiān)控數(shù)據(jù)發(fā)送到接收器節(jié)點,接收器節(jié)點將監(jiān)控數(shù)據(jù)提供給用戶。數(shù)據(jù)傳輸中,簇頭節(jié)點采集簇內(nèi)節(jié)點數(shù)據(jù)并對數(shù)據(jù)進(jìn)行處理,然后以多跳方式將其發(fā)送到匯聚節(jié)點。匯聚節(jié)點首先向網(wǎng)絡(luò)發(fā)送Inter_CH_M消息。
當(dāng)簇頭節(jié)點接收到Inter_CH_M時,發(fā)送消息到簇中節(jié)點。簇間路由選擇如式(3)所示[14]。
(3)
式中:
k2、k3——權(quán)重因子;
Ei、Ej——節(jié)點i和j剩余能量,J;
di_sink——節(jié)點i到匯聚節(jié)點的距離,m。
簇頭節(jié)點需先處理簇中成員節(jié)點發(fā)送的數(shù)據(jù),然后將這些數(shù)據(jù)發(fā)送到匯聚節(jié)點[15]。簇頭節(jié)點能耗高,傳輸數(shù)據(jù)量大。但存在簇頭節(jié)點距離匯聚節(jié)點較遠(yuǎn)的情況,能量不足而丟失,導(dǎo)致監(jiān)控盲區(qū)問題,因此對其進(jìn)行進(jìn)一步優(yōu)化。
根據(jù)式(4)的能量消耗函數(shù),對相鄰的簇首節(jié)點進(jìn)行選擇,并進(jìn)行數(shù)據(jù)傳輸,反復(fù)執(zhí)行直到數(shù)據(jù)傳輸至匯聚節(jié)點[16]。
(4)
式中:
w——權(quán)值系數(shù);
ECHi——簇首節(jié)點i的能耗,J;
ECHj——簇首節(jié)點j的能耗,J;
文中通過調(diào)度的方法降低能耗,簇內(nèi)活動節(jié)點數(shù)量從網(wǎng)絡(luò)覆蓋率和監(jiān)控精度兩個方面進(jìn)行計算,減少網(wǎng)絡(luò)能耗和數(shù)據(jù)采集冗余,避免節(jié)點睡眠造成的監(jiān)控盲點問題[17]。
圖3 覆蓋拓?fù)浣Y(jié)構(gòu)
在以簇頭節(jié)點為中心、簇半徑R為半徑的圓中,如果節(jié)點的感知距離為rs,s為節(jié)點在其簇外的感知范圍,則需要至少h個活動節(jié)點來實現(xiàn)簇內(nèi)的覆蓋η,活動節(jié)點h的范圍如式(5)所示[19]。
(5)
(6)
式中:
m——活動節(jié)點數(shù)。
由實際測量和概率論知識得到最終活動節(jié)點數(shù)m,如式(7)所示。
(7)
式中:
z——標(biāo)準(zhǔn)正態(tài)分布。
選擇設(shè)備為聯(lián)想PC,操作系統(tǒng)為windows1064位旗艦,Intel i5 2450m CPU,頻率為2.5 GHz,仿真平臺為NS2。在網(wǎng)絡(luò)中,執(zhí)行器節(jié)點較少,主要接收匯聚節(jié)點發(fā)送的執(zhí)行命令。試驗中,只分析倉儲環(huán)境中的探測節(jié)點,其相關(guān)參數(shù)見表1。
表1 試驗參數(shù)
為了驗證文中提出的路由算法的有效性,使用NS2仿真系統(tǒng),不使用調(diào)度機(jī)制。
3.2.1 能耗比較 不同節(jié)點數(shù)的網(wǎng)絡(luò)結(jié)構(gòu)下,將文中方法與LEACH分簇算法進(jìn)行比較,驗證該方法的優(yōu)越性,結(jié)果如圖4所示。
由圖4可知,隨著節(jié)點數(shù)的增加,ECA算法能量消耗速度比LEACH算法的慢,是因為LEACH路由協(xié)議中的簇頭節(jié)點直接與匯聚節(jié)點進(jìn)行數(shù)據(jù)傳輸,如果簇頭距離匯聚節(jié)點較遠(yuǎn),則能量耗費非常多。
圖4 不同算法隨節(jié)點數(shù)變化的能耗曲線
3.2.2 節(jié)點間剩余能量差比較 網(wǎng)絡(luò)結(jié)束時,網(wǎng)絡(luò)中每個節(jié)點的剩余能量差在一定程度上反映了網(wǎng)絡(luò)節(jié)點的平均能耗和網(wǎng)絡(luò)生存周期的長度。與LEACH聚類算法進(jìn)行比較,不同方法的節(jié)點剩余能量差隨節(jié)點數(shù)的變化曲線如圖5所示。
由圖5可知,隨著節(jié)點數(shù)的增加,ECA算法的節(jié)點剩余能量標(biāo)準(zhǔn)差小于LEACH分簇算法的。這是因為ECA算法的簇頭節(jié)點在網(wǎng)絡(luò)中分布更均勻,此外,在能量傳輸中還考慮了簇頭節(jié)點的能量消耗,因此節(jié)點能量分布相對均衡。
圖5 不同算法隨節(jié)點數(shù)變化的剩余能量差曲線
3.2.3 網(wǎng)絡(luò)壽命比較 網(wǎng)絡(luò)壽命定義為死區(qū)節(jié)點出現(xiàn)在網(wǎng)絡(luò)中時的程序循環(huán)數(shù),即網(wǎng)絡(luò)生存期。與LEACH分簇算法進(jìn)行比較,不同方法隨節(jié)點數(shù)變化的網(wǎng)絡(luò)生存期曲線如圖6所示。
由圖6可知,隨著節(jié)點數(shù)的增加,ECA算法的網(wǎng)絡(luò)生存期逐漸增加,而LEACH分簇算法的網(wǎng)絡(luò)生存周期相對較為穩(wěn)定。這是因為ECA算法在簇頭競爭時以剩余能量作為約束,能量較少節(jié)點不再作為簇頭,有效均衡了網(wǎng)絡(luò)中節(jié)點能量。
圖6 不同算法隨節(jié)點數(shù)變化的網(wǎng)絡(luò)生存期曲線
使用調(diào)度機(jī)制時,分析節(jié)點調(diào)度前后的能耗和網(wǎng)絡(luò)生存期,并用NS2對系統(tǒng)進(jìn)行仿真,以驗證文中方法的有效性,結(jié)果見圖7。對ECA改進(jìn)前后進(jìn)行分析,比較簇內(nèi)調(diào)度前后節(jié)點能耗和網(wǎng)絡(luò)生存期的變化,結(jié)果如圖8所示。
圖8 改進(jìn)前后隨節(jié)點數(shù)變化的網(wǎng)絡(luò)生存期曲線
由圖7可知,隨著節(jié)點數(shù)的增加,節(jié)點能耗逐漸增加,但ECA算法通過簇內(nèi)調(diào)度能耗有明顯改善。網(wǎng)絡(luò)中節(jié)點數(shù)量越少,簇中冗余節(jié)點數(shù)量越少,此時進(jìn)行簇內(nèi)調(diào)度會增加網(wǎng)絡(luò)的能耗。這是因為如果簇中的節(jié)點數(shù)量較少,則簇中所有節(jié)點都處于活動狀態(tài),以滿足覆蓋要求,簇內(nèi)調(diào)度會消耗更多的能量,因此,當(dāng)網(wǎng)絡(luò)節(jié)點數(shù)量較少,即節(jié)點冗余時,無需應(yīng)用節(jié)點調(diào)度策略。
圖7 改進(jìn)前后隨節(jié)點數(shù)變化的能耗曲線
由圖8可知,隨著節(jié)點數(shù)的增加,網(wǎng)絡(luò)生存期逐漸增加,在ECA算法進(jìn)行簇內(nèi)調(diào)度前,網(wǎng)絡(luò)生存期增加,但增加較小。在網(wǎng)絡(luò)中使用節(jié)點調(diào)度策略后,網(wǎng)絡(luò)壽命的變化趨勢保持不變,尤其是當(dāng)網(wǎng)絡(luò)中存在大量節(jié)點時。這是因為網(wǎng)絡(luò)中節(jié)點的冗余度跟不上增長,使用節(jié)點調(diào)度策略后,可以有效利用網(wǎng)絡(luò)中的每個節(jié)點對監(jiān)控區(qū)域進(jìn)行監(jiān)控,說明整個網(wǎng)絡(luò)的生命周期被延長。
研究提出了一種基于節(jié)點剩余能量分簇的節(jié)點調(diào)度方法用于糧食倉儲環(huán)境監(jiān)測的無線傳感器網(wǎng)絡(luò)。結(jié)果表明,該協(xié)議的能量消耗明顯低于傳統(tǒng)的無線傳感器網(wǎng)絡(luò)路由協(xié)議,且網(wǎng)絡(luò)中各節(jié)點的能量消耗得到了有效平衡。與改進(jìn)前相比,該方法可以有效降低數(shù)據(jù)采集過程中的能耗,具有一定的應(yīng)用價值。在現(xiàn)有測試條件下,文中研究還處于初級階段,后續(xù)將不斷提高整個節(jié)能策略的性能。