孫玉文,沈明霞,陸明洲,熊迎軍,劉龍申
(南京農(nóng)業(yè)大學(xué)工學(xué)院江蘇省智能化農(nóng)業(yè)裝備重點(diǎn)實(shí)驗(yàn)室,江蘇南京 210031)
無線傳感器網(wǎng)絡(luò)(WSNs)具有低成本、低功耗和自組織的特點(diǎn),在農(nóng)業(yè)中得到了廣泛的應(yīng)用,如在溫室或農(nóng)田中部署大量節(jié)點(diǎn)以監(jiān)測(cè)農(nóng)業(yè)相關(guān)信息[1~4]。由于,傳感器節(jié)點(diǎn)要周期性地獲取監(jiān)測(cè)數(shù)據(jù),并不斷地將數(shù)據(jù)向Sink節(jié)點(diǎn)匯集,而網(wǎng)絡(luò)中節(jié)點(diǎn)的能量是有限的,這樣就會(huì)造成負(fù)載過重的節(jié)點(diǎn)提前“死亡”,致使網(wǎng)絡(luò)壽命縮短。因此,構(gòu)建一個(gè)高效節(jié)能的路由策略,達(dá)到降低節(jié)點(diǎn)能耗、延長網(wǎng)絡(luò)生存時(shí)間是十分必要的。
近年來,通過模擬自然界中螞蟻集體覓食行為提出的蟻群算法在WSNs的相關(guān)應(yīng)用中取得了一定的效果[5~14]?;诖耍疚奶岢鲆环N分層次的元胞蟻群優(yōu)化(CACO)算法,即將網(wǎng)絡(luò)節(jié)點(diǎn)映射成元胞自動(dòng)機(jī)中的元胞,在區(qū)域內(nèi)產(chǎn)生搜索螞蟻,用來將隨機(jī)生成的簇頭節(jié)點(diǎn)的數(shù)據(jù)高效、節(jié)能地傳輸?shù)絊ink節(jié)點(diǎn),實(shí)現(xiàn)信息的路由過程,能夠有效減少搜索路徑的盲目性,均衡網(wǎng)絡(luò)能量,延長網(wǎng)絡(luò)生命期。為了簡(jiǎn)化網(wǎng)絡(luò)復(fù)雜性,本文在農(nóng)田環(huán)境二維平面內(nèi)進(jìn)行研究,假設(shè)傳感器節(jié)點(diǎn)的數(shù)量和位置部署后都不再改動(dòng),簇內(nèi)節(jié)點(diǎn)的初始能量都相同。
實(shí)驗(yàn)場(chǎng)地選在江蘇某溫室,長約為98 m,寬約為68 m。溫室內(nèi)種植各類實(shí)驗(yàn)花卉,作物對(duì)地高度在1.00 m左右。結(jié)合溫室實(shí)際環(huán)境,將傳感器節(jié)點(diǎn)按照正六邊形進(jìn)行部署,安裝在固定支架上,都處于1.5 m高度。傳感器節(jié)點(diǎn)采用CC2430無線模塊,開源操作系統(tǒng)TinyOS,協(xié)議棧采用nesC語言開發(fā)。傳感器節(jié)點(diǎn)負(fù)責(zé)采集空氣溫度、濕度、光照強(qiáng)度和CO2濃度和土壤pH值等環(huán)境信息。
溫室傳感器網(wǎng)絡(luò)可以用一個(gè)四元組的元胞自動(dòng)機(jī)(V,S,N,f)表示,其中,V={v1,v2,…,vn}表示傳感器節(jié)點(diǎn)集合;S是有限的狀態(tài)集合,本文設(shè)置2個(gè)狀態(tài):0代表睡眠,1代表活躍;N為鄰居元胞的集合;f為狀態(tài)轉(zhuǎn)移函數(shù),可以記為:St→St+Δt。
根據(jù)溫室節(jié)點(diǎn)部署情況可知,一個(gè)傳感器節(jié)點(diǎn)對(duì)應(yīng)一個(gè)元胞,其周圍相鄰6個(gè)節(jié)點(diǎn)為該中心元胞的鄰居,該節(jié)點(diǎn)會(huì)以一定的概率選擇其鄰居元胞,從而確定最優(yōu)路徑。如圖 1 所示,v1,v2,v3,v4,v5,v6是v0的鄰居,鄰居半徑為R,其鄰居
其中,(xj,yi)表示鄰居的坐標(biāo),(xi,yi)表示中心元胞的坐標(biāo)。
圖1 元胞節(jié)點(diǎn)分布圖Fig 1 Celluar node deployment
傳感器節(jié)點(diǎn)消耗能量主要集中在無線通信模塊上。在分析能量消耗時(shí),采用無線傳輸能量消耗模型。將bit的信息傳送距離d時(shí),每個(gè)傳感器節(jié)點(diǎn)在T時(shí)間內(nèi)消耗的能量為
式中d為發(fā)送裝置到接收電路的距離;Eeleck為發(fā)射裝置和接收電路發(fā)送或接收單位bit的耗能;εamp為發(fā)射放大器將每bit傳送單位平方米所耗的能量;n為傳播衰減指數(shù),通常2<n<5。
每個(gè)節(jié)點(diǎn)在T時(shí)間內(nèi)的剩余能量為
由于農(nóng)業(yè)環(huán)境對(duì)信息采集實(shí)時(shí)性要求不高,因此,可以周期性進(jìn)行數(shù)據(jù)采集處理。設(shè)置元胞節(jié)點(diǎn)周期地在活動(dòng)與休眠狀態(tài)之間轉(zhuǎn)換。
設(shè)元胞節(jié)點(diǎn)vi在t時(shí)刻活躍狀態(tài)為
缸徑為D0=125 mm,桿徑為d1=60 mm,油缸額定壓力Pe=32 MPa,則油缸能承受的最大載荷為
當(dāng)檢測(cè)區(qū)域內(nèi)即鄰居半徑內(nèi)存在目標(biāo)螞蟻時(shí),則元胞節(jié)點(diǎn)狀態(tài)可能發(fā)生改變,狀態(tài)轉(zhuǎn)換值wi(t)受鄰居節(jié)點(diǎn)距離和剩余能量影響,因此,令
其中,dij為節(jié)點(diǎn)vi與其他節(jié)點(diǎn)的距離,Er為節(jié)點(diǎn)剩余能量。
元胞節(jié)點(diǎn)可以周期性地進(jìn)行喚醒,元胞節(jié)點(diǎn)的活動(dòng)狀態(tài)在0~1之間互相轉(zhuǎn)換,若節(jié)點(diǎn)vi在t時(shí)刻是1態(tài),則在t+Δt時(shí)刻變?yōu)?態(tài),而若節(jié)點(diǎn)在t時(shí)刻是0態(tài),則在t+Δt時(shí)刻是否變?yōu)?態(tài),要通過設(shè)定狀態(tài)轉(zhuǎn)換值wi(t)的一個(gè)閾值來決定,當(dāng)wi(t)大于閾值時(shí),則變?yōu)?態(tài)。
CACO算法將溫室傳感器網(wǎng)絡(luò)n個(gè)節(jié)點(diǎn)映射成n個(gè)元胞,每個(gè)元胞節(jié)點(diǎn)vi中都存儲(chǔ)其所有鄰居節(jié)點(diǎn)的剩余能量值、禁忌表Tabu、節(jié)點(diǎn)距離、信息素表等信息,如圖2所示。將m只螞蟻放在n個(gè)元胞節(jié)點(diǎn)上,對(duì)所有螞蟻置初始值,計(jì)算信息素概率,在鄰居范圍內(nèi)選擇下一個(gè)節(jié)點(diǎn)vj,并記錄最好解,通過不斷更新各條線路上的信息素,直到到達(dá)Sink節(jié)點(diǎn),得到最優(yōu)路徑并進(jìn)行信息傳輸。
圖2 元胞節(jié)點(diǎn)結(jié)構(gòu)圖Fig 2 Cellular node structures
在路徑選擇過程中,每個(gè)螞蟻k根據(jù)各條路徑上的信息素濃度和路徑的啟發(fā)式信息等來計(jì)算選擇概率。概率值越大,說明螞蟻選擇下一節(jié)點(diǎn)vj的可能性越大。因此,螞蟻k選擇下一個(gè)節(jié)點(diǎn)的概率pkij與下列因素有關(guān)
其中,Tabuk用以記錄螞蟻k當(dāng)前所走過的節(jié)點(diǎn),稱為禁忌表。ηij是表示從節(jié)點(diǎn)vi轉(zhuǎn)移到節(jié)點(diǎn)vj的啟發(fā)信息。τij(t)為t時(shí)刻在從節(jié)點(diǎn)vi到節(jié)點(diǎn)vj的路徑上的殘留信息素。
啟發(fā)信息與節(jié)點(diǎn)的鏈路強(qiáng)度lij有關(guān),令
由上式可知,螞蟻在尋找路徑的過程中轉(zhuǎn)移概率受節(jié)點(diǎn)能量和距離的影響,這樣在搜索最優(yōu)解的同時(shí),均衡了節(jié)點(diǎn)間的能量消耗,從而延長整個(gè)網(wǎng)絡(luò)的生命周期。
當(dāng)每只螞蟻k走完一步或者完成了一次的搜索后,要對(duì)殘留信息進(jìn)行更新處理。模型要考慮某些傳感器節(jié)點(diǎn)能量耗盡后導(dǎo)致拓?fù)浒l(fā)生變化情況與節(jié)點(diǎn)狀態(tài),因此,從時(shí)刻t到時(shí)刻t+Δt時(shí)刻,在路徑l上信息素包含三部分
其中,ρ為信息素?fù)]發(fā)系數(shù),ρ∈[0,1],可以根據(jù)網(wǎng)絡(luò)拓?fù)渥兓念l度調(diào)制ρ的值,Δτij(t)表示從時(shí)刻t到t+Δt之間在路徑l上的信息素濃度增量,?為元胞狀態(tài)系數(shù),?∈[0,1]。
仿真平臺(tái)采用Matlab 2011。網(wǎng)絡(luò)模擬實(shí)際溫室環(huán)境,共有100個(gè)節(jié)點(diǎn),均勻分布在100 m×100 m的正方形區(qū)域內(nèi),1個(gè) Sink節(jié)點(diǎn),節(jié)點(diǎn)的發(fā)送能耗70 mW,接收能耗90 mW,節(jié)點(diǎn)的通信距離是30 m,每個(gè)無線傳感器節(jié)點(diǎn)的初始能量為2 J,能量閾值為0.05 J。如果某節(jié)點(diǎn)的鄰居節(jié)點(diǎn)剩余能量低于能量閾值時(shí),則認(rèn)為節(jié)點(diǎn)失效。具體實(shí)驗(yàn)參數(shù)如表1所示。
表1 仿真參數(shù)Tab 1 Simulation parameters
1)網(wǎng)絡(luò)的死亡節(jié)點(diǎn)數(shù)
圖3是網(wǎng)絡(luò)節(jié)點(diǎn)死亡數(shù),CACO第一個(gè)節(jié)點(diǎn)死亡是第926輪,而LEACH算法第一個(gè)節(jié)點(diǎn)死亡的時(shí)間是第799輪,存活時(shí)間提高了15.9%,另外從第一個(gè)節(jié)點(diǎn)死亡到最后節(jié)點(diǎn)死亡之間的跨度也明顯是CACO要大一些,跨度反映了網(wǎng)絡(luò)中節(jié)點(diǎn)的能量均衡情況,時(shí)間跨度越大,說明網(wǎng)絡(luò)的能量使用越高效。由于充分利用了剩余能量比較和節(jié)點(diǎn)休眠轉(zhuǎn)換機(jī)制,CACO算法有效地延長了網(wǎng)絡(luò)的生命周期。
2)網(wǎng)絡(luò)的平均剩余能量
圖4反映了節(jié)點(diǎn)的平均剩余能量情況,隨著運(yùn)行時(shí)間的增大,剩余能量迅速減少,并且CACO算法減少速度相對(duì)慢些,當(dāng)運(yùn)行時(shí)間大約達(dá)到1000輪左右時(shí),剩余能量減少速度減緩。整個(gè)運(yùn)行時(shí)間內(nèi)CACO算法平均剩余能量一直高于LEACH算法,反映了CACO算法更加注重能量消耗均衡性。
圖3 網(wǎng)絡(luò)死亡節(jié)點(diǎn)數(shù)圖Fig 3 Numbers of dead nodes in the network
圖4 網(wǎng)絡(luò)的平均剩余能量Fig 4 Average residual energy of network
利用本文設(shè)計(jì)的節(jié)點(diǎn)路由策略,在溫室內(nèi)部署16個(gè)傳感器節(jié)點(diǎn),并進(jìn)行WSNs組網(wǎng)實(shí)驗(yàn),在溫室內(nèi)進(jìn)行測(cè)試進(jìn)行為期15d的數(shù)據(jù)采集,設(shè)定每隔15min采集一次數(shù)據(jù),初始電壓為3.3 V,節(jié)點(diǎn)電壓消耗情況如表2所示。
表2 實(shí)測(cè)剩余電壓Tab 2 Tested residual voltage
元胞蟻群算法作為一種新型的仿生算法,具有分布性好、尋優(yōu)能力強(qiáng)、算法簡(jiǎn)單等優(yōu)點(diǎn),將其應(yīng)用于WSNs中具有很大的優(yōu)勢(shì)?;?,本文設(shè)計(jì)了基于CACO算法的WSNs路由優(yōu)化算法,通過設(shè)計(jì)元胞節(jié)點(diǎn)休眠轉(zhuǎn)換機(jī)制和信息素更新規(guī)則,延長網(wǎng)絡(luò)生命周期,平衡網(wǎng)絡(luò)能量消耗。分析結(jié)果表明:該算法能有效地延長網(wǎng)絡(luò)存活節(jié)點(diǎn)數(shù)量,提高網(wǎng)絡(luò)的數(shù)據(jù)傳輸率。
[1] 馮友兵,張榮標(biāo),沈 敏.面向精確灌溉的無線傳感器網(wǎng)絡(luò)構(gòu)建[J].農(nóng)業(yè)機(jī)械學(xué)報(bào),2009,40(1):56 -59.
[2] 何東健,鄒志勇,周 曼.果園環(huán)境參數(shù)遠(yuǎn)程檢測(cè)WSN網(wǎng)關(guān)節(jié)點(diǎn)設(shè)計(jì)[J].農(nóng)業(yè)機(jī)械學(xué)報(bào),2010,41(6):182 -186.
[3] 蔡義華,劉 剛,李 莉,等.基于無線傳感器網(wǎng)絡(luò)的農(nóng)田信息采集節(jié)點(diǎn)設(shè)計(jì)與試驗(yàn)[J].農(nóng)業(yè)工程學(xué)報(bào),2009,25(4):176-178.
[4] 張瑞瑞,趙春江,陳立平,等.農(nóng)田信息采集無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)設(shè)計(jì)[J].農(nóng)業(yè)工程學(xué)報(bào),2009,25(11):213 -218.
[5] 任豐原,黃海寧,林 闖.無線傳感器網(wǎng)絡(luò)[J].軟件學(xué)報(bào),2003,14(7):1282 -1291.
[6] Muhammad S,Gianni A D C,Muddassar F.Swarm intelligence based routing protocol for wireless sensor networks:Survey and future directions[J].Information Sciences,2011,181:4597 -4624.
[7] 宋 超,劉 明,龔海剛.基于蟻群優(yōu)化解決傳感器網(wǎng)絡(luò)中的能量洞問題[J].軟件學(xué)報(bào),2009,20(10):2729 -2743.
[8] 朱思峰,劉 方,柴爭(zhēng)義.一種基于蟻群優(yōu)化的無線傳感器網(wǎng)絡(luò)路由算法[J].北京理工大學(xué)學(xué)報(bào),2010,30(11):1295-1300.
[9] 樊棠懷,肖賢建,殷玲玲,等.無線傳感器網(wǎng)絡(luò)的元胞自動(dòng)機(jī)自組織算法[J].計(jì)算機(jī)工程,2009,35(21):26 -28.
[10]曹春紅,王利民,趙大哲.基于離散元胞螞蟻算法的幾何約束求解技術(shù)研究[J].電子學(xué)報(bào),2011,39(5):1127 -1130.
[11] Wang A,Heinzelman W B,Sinha A,et al.Energy-scalable protocols for battery-operated micro-sensor networks[J].Journal of VLSI Signal Processing,2001,29(3):223 -237.
[12] Luis C,Alejandro Q,Samuel P.Ant-based routing for wireless multimedia sensor networks using multiple QoS metrics[J].Computer Networks,2010,54:2991 -3010.
[13] Liao Wenhwa,KaoYucheng,Wu Rutin.Ant colony optimization based sensor deployment protocol for wireless sensor networks[J].Expert Systems with Applications,2011,38:6599 -6605.
[14] Saleem K,F(xiàn)isal N,Baharudin M A,et al.Ant colony inspired self-optimized routing protocol based on cross layer architecture for wireless sensor networks[J].WSEAS Transactions on Communications,2010,9(10):669 -678.