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