趙菊敏, 張子辰, 李燈熬
(太原理工大學(xué) 信息工程學(xué)院,山西 太原 030024)
無線傳感器網(wǎng)絡(luò)是由布設(shè)在某檢測區(qū)域內(nèi)大量的無線傳感器節(jié)點(diǎn)所構(gòu)成。其通過無線信號(hào)傳輸通信的方式,組成一個(gè)自組網(wǎng)絡(luò),并通過節(jié)點(diǎn)間多跳的方式傳播信號(hào)[1],最終將信號(hào)傳送到相應(yīng)基站(中心匯聚節(jié)點(diǎn))。無線傳感器網(wǎng)絡(luò)具有對(duì)其所覆蓋的環(huán)境進(jìn)行數(shù)據(jù)采集、環(huán)境監(jiān)控、時(shí)間同步定位等功能,已經(jīng)大量應(yīng)用到軍事國防、生物醫(yī)療、搶險(xiǎn)救災(zāi)等領(lǐng)域[2]。
在無線傳感器網(wǎng)絡(luò)中,路由的選擇極為重要,一個(gè)較好的路由可以增長網(wǎng)絡(luò)的存活時(shí)間,提高網(wǎng)絡(luò)的穩(wěn)定性?,F(xiàn)階段LEACH( low energy adaptive clustering hierarchy)路由協(xié)議是一種最經(jīng)典最成熟的路由協(xié)議。其利用分簇的方式,將網(wǎng)絡(luò)分為幾個(gè)小部分,在簇內(nèi)各個(gè)節(jié)點(diǎn)將信號(hào)傳遞給簇頭,再由簇頭傳送給基站。LEACH協(xié)議具有一定的局限性,在特定環(huán)境下可能會(huì)造成網(wǎng)絡(luò)不穩(wěn)定和不能正常工作的情況。本文設(shè)計(jì)以LEACH算法為基礎(chǔ),提出了一種適應(yīng)長直空間環(huán)境,信號(hào)從內(nèi)部單向傳輸?shù)酵獠?基站位置)的鏈?zhǔn)絺鬏敺执芈酚陕酚蓞f(xié)議(cluster-based routing protocols of chain transmission,CRPCT)。本協(xié)議中簇頭節(jié)點(diǎn)不是直接將信號(hào)傳遞給基站,而是由空間內(nèi)部的簇頭采用鏈?zhǔn)降姆椒ㄖ鹨幌蛲獠總鬏?克服了內(nèi)部節(jié)點(diǎn)死亡過快的問題。同時(shí),簇內(nèi)也采用鏈?zhǔn)絺鬏?。在簇頭和成簇半徑的選擇上也做了改進(jìn),穩(wěn)定了成簇個(gè)數(shù)。最終降低了網(wǎng)絡(luò)的能量消耗,提高了穩(wěn)定性。
本文采用隨機(jī)播撒無線傳感器的方法布設(shè)傳感器節(jié)點(diǎn),這種方法可以較為均勻的隨機(jī)布設(shè)傳感器節(jié)點(diǎn),這樣在部分節(jié)點(diǎn)死亡后,整個(gè)網(wǎng)絡(luò)依然可以保證正常的工作,大大提高了整體網(wǎng)絡(luò)的穩(wěn)定性。同時(shí)假設(shè)傳感器網(wǎng)絡(luò)滿足以下條件:
1)無線傳感器節(jié)點(diǎn)被隨機(jī)的分布在某個(gè)M1×M2的區(qū)域,同時(shí),每個(gè)傳感器節(jié)點(diǎn)在整體工作網(wǎng)絡(luò)中只有唯一身份(地址)標(biāo)識(shí)。
2)所有傳感器節(jié)點(diǎn)都應(yīng)安裝有GPS模塊,并可以在所布設(shè)的環(huán)境條件下準(zhǔn)確地測算出自身地理位置。
3)基站和所有節(jié)點(diǎn)在網(wǎng)絡(luò)生存周期內(nèi)都是靜止不動(dòng)的,并且基站搭建在離傳感區(qū)域不遠(yuǎn)的某位置。同時(shí),傳感器節(jié)點(diǎn)與基站之間的通信能耗應(yīng)遠(yuǎn)大于普通節(jié)點(diǎn)相互之間正常通信的能耗。
4)在網(wǎng)絡(luò)中,所有傳感器都為同一種傳感器,并且節(jié)點(diǎn)都是能量受限的。
5)節(jié)點(diǎn)可根據(jù)數(shù)據(jù)傳輸距離的不同,小幅度地調(diào)整傳感器自身的發(fā)射功率。
6)傳感器節(jié)點(diǎn)能量都由自身電池提供并且不能更換,當(dāng)節(jié)點(diǎn)初始能量耗盡后節(jié)點(diǎn)即死亡。
7)基站能量不受限制,計(jì)算和存儲(chǔ)能力較強(qiáng)。
傳感器節(jié)點(diǎn)所消耗的總體能量由接收模塊、發(fā)送模塊等因素組成;發(fā)送模塊的能耗由信號(hào)發(fā)送電路消耗的能量和放大電路所消耗的能量共同組成,如圖1所示。
圖1 網(wǎng)絡(luò)能耗模型
發(fā)送模塊發(fā)送電路消耗能量數(shù)學(xué)模型為[3]
ET=ET×Efs+Efs×dλ=Eelec×k+Efs×k×d2,d≤d0,
(1)
ET=ET×Efs+Efs×dλ
=Eelec×k+Eamp×k×d4,d>d0.
(2)
接收模塊所消耗的能量數(shù)學(xué)模型為[3]
ER=Eelec×k,
(3)
式中ET,ER分別為發(fā)送部分與接收部分傳感器所消耗的能量,k為數(shù)據(jù)量值參數(shù),Eelec為發(fā)送1 bit數(shù)據(jù)電路的消耗。由于無線通信存在遠(yuǎn)距離傳送信號(hào),因此,傳輸模式分為自由空間模型和多徑衰落模型。當(dāng)d≤d0,采取自由空間模型,同時(shí),Efs為自由空間衰減放大器的能量消耗模型參數(shù)[4]。當(dāng)d>d0,采取多徑衰落模型,Eamp為多徑衰落放大器的能量消耗模型參數(shù)[4]。
無線傳感器網(wǎng)絡(luò)在某一長直空間內(nèi)進(jìn)行通信,通信信號(hào)需要由內(nèi)部(最深處)傳輸?shù)酵獠浚疚挥陂L直空間的最外端。很明顯較深處的節(jié)點(diǎn)要比靠外的節(jié)點(diǎn)消耗能量多,因此,LEACH協(xié)議在這種長直空間內(nèi)應(yīng)用會(huì)遇到多種困難,例如:較深處節(jié)點(diǎn)死亡過快,分簇不均勻等。為了適應(yīng)此環(huán)境,本文設(shè)計(jì)了新的簇頭選擇方式,采用不同的分簇方法,節(jié)點(diǎn)鏈?zhǔn)铰?lián)通結(jié)構(gòu)和簇頭節(jié)點(diǎn)多跳的傳輸方式來克服長直空間內(nèi)節(jié)點(diǎn)數(shù)據(jù)單向傳輸?shù)葐栴}。通信數(shù)據(jù)流向如圖2。
圖2 數(shù)據(jù)流向圖
由圖2非常明顯看出:在空間較深處(距離基站較遠(yuǎn))的節(jié)點(diǎn)在進(jìn)行傳輸數(shù)據(jù)時(shí),需要傳輸更遠(yuǎn)的距離(相比于空間中距離基站較近的節(jié)點(diǎn))。因此,會(huì)損耗更多的能量。
1)在簇建立階段,針對(duì)于LEACH的簇頭分布不均勻和能量過小的節(jié)點(diǎn)仍有可能被選為簇頭的不足,本算法采用一種適長直空間的閾值設(shè)定方法[5]
n∈G.
(4)
2)在數(shù)據(jù)采集融合階段,簇頭采用多跳的傳輸方式,這樣更加適合長直空間的數(shù)據(jù)傳輸。簇頭節(jié)點(diǎn)不再單獨(dú)直接傳送數(shù)據(jù)給基站,而是將全部簇頭節(jié)點(diǎn)根據(jù)其剩余能量與到基站的距離;首先確定根節(jié)點(diǎn),再將每個(gè)簇頭以多跳的方式聯(lián)接起來。設(shè)立權(quán)重值
(5)
其中,Ec為節(jié)點(diǎn)剩余能量,Estart為節(jié)點(diǎn)初始能量,Dsink為節(jié)點(diǎn)到基站距離。[6]各個(gè)簇頭通過公式計(jì)算出權(quán)值,選擇權(quán)值大于自己,并且距離自身最近的簇頭為自己的父節(jié)點(diǎn);以此類推,網(wǎng)絡(luò)中權(quán)值最大將成為最終根節(jié)點(diǎn),簇首應(yīng)該距離基站較近,并且直接發(fā)送信息給基站,其示意圖如圖3,圖4。
圖3 簇頭將數(shù)據(jù)直接傳送到基站
圖4 簇頭采用多跳方式傳輸數(shù)據(jù)
3)普通簇節(jié)點(diǎn)是成鏈的方式向簇頭節(jié)點(diǎn)傳送數(shù)據(jù),簇成員分別從簇頭的2個(gè)方向以貪婪算法形成2個(gè)節(jié)點(diǎn)鏈,匯聚到簇頭上。這樣,每個(gè)簇節(jié)點(diǎn)就可以只接收發(fā)送融合數(shù)據(jù)1次,大大降低了節(jié)點(diǎn)的能耗。節(jié)點(diǎn)能耗模型如下
Ec=2×k×(Eelec+Ed).
(6)
其中,Eelec為發(fā)送1 bit數(shù)據(jù)消耗的能量,Ed為融合1 bit數(shù)據(jù)所消耗的能量[7],k為傳送數(shù)據(jù)量。LEACH算法的節(jié)點(diǎn)能耗模型為
Eleach=(n-1)×k×(Eelec+Ed).
(7)
因此
ΔE=Eleach-Ec=(n-3)×k×(Eelec+Ed).
(8)
很明顯,采用鏈?zhǔn)絺鬏斀Y(jié)構(gòu)可以節(jié)省節(jié)點(diǎn)消耗能量。
本算法采用與LEACH相似的的執(zhí)行方法,整個(gè)流程分為簇建立和穩(wěn)定階段2個(gè)階段。簇的建立又包括簇頭的選擇和分簇等階段,之后還要進(jìn)行簇間多跳和簇內(nèi)成鏈的簇重組階段。穩(wěn)定階段主要是數(shù)據(jù)采集和傳輸。一個(gè)輪次的時(shí)間就是簇建立階段的時(shí)間和穩(wěn)定時(shí)間的總和,這其中穩(wěn)定階段的時(shí)間必須大于簇建立階段的時(shí)間[8]。其示意圖如圖5。
圖5 算法協(xié)議的運(yùn)作周期圖
算法執(zhí)行步驟如下:
簇頭選取過程中,各節(jié)點(diǎn)計(jì)算自身剩余能量,并且計(jì)算出修改后的閾值和權(quán)值后,確定簇頭節(jié)點(diǎn)。確定簇頭節(jié)點(diǎn)后,各個(gè)簇頭節(jié)點(diǎn)向外廣播簇頭信息Head_massege,告訴周圍節(jié)點(diǎn)自己是簇頭并廣播自身ID和權(quán)值,同時(shí)建立3個(gè)集合cluster_choices ,cluster_M和cluster_Dist分別存放其他簇頭ID,其他簇頭的權(quán)值和其他簇頭到本簇頭的距離;之后,等待普通節(jié)點(diǎn)發(fā)送join信息。各個(gè)節(jié)點(diǎn)根據(jù)成簇半徑Ri計(jì)算自身位置,根據(jù)接收簇頭信號(hào)的強(qiáng)度和ID選擇離自己距離較近的簇首發(fā)送 Node_massege信息和join信息要求加入該簇,簇建立完成。
分簇完成后進(jìn)行簇頭多跳和簇間鏈?zhǔn)絺鬏數(shù)拇刂亟M階段。首先各個(gè)簇頭通過上次收到得其他簇頭權(quán)值,確定根節(jié)點(diǎn)與自身父親節(jié)點(diǎn)。在自身的Head_next中存儲(chǔ)自己父親節(jié)點(diǎn)的ID,準(zhǔn)備在發(fā)送信息的時(shí)候?qū)⑿畔⒅苯影l(fā)送給父親節(jié)點(diǎn)。簇成員節(jié)點(diǎn)也采用成鏈的方式進(jìn)行數(shù)據(jù)傳輸。在一個(gè)簇內(nèi)兩端距離簇頭最遠(yuǎn)的2個(gè)節(jié)點(diǎn)向簇頭以貪婪算法形成2個(gè)節(jié)點(diǎn)鏈,向簇頭傳遞信息[9]。節(jié)點(diǎn)分布圖如圖6、圖7。
圖6 LEACH算法節(jié)點(diǎn)分布圖
圖7 CRPCT節(jié)點(diǎn)與分簇分布圖
由圖6中LEACH節(jié)點(diǎn)分布圖可以看出實(shí)心節(jié)點(diǎn)為簇頭節(jié)點(diǎn),簇頭節(jié)點(diǎn)明顯分布不均勻,而且有的簇頭節(jié)點(diǎn)相鄰過近,這樣會(huì)在很大程度上影響算法的執(zhí)行,增大能耗。圖7中顯示簇內(nèi)節(jié)點(diǎn)的鏈?zhǔn)竭B接結(jié)構(gòu),虛線為簇頭多跳連接示意,實(shí)線圓圈為簇頭成簇半徑,實(shí)直線范圍內(nèi)為每一塊的分簇范圍。CRPC算法的簇頭明顯分布均勻,克服了LAECH算法分簇不均的問題。
圖8、圖9分別為算法的死亡節(jié)點(diǎn)示意圖,小星號(hào)是死亡節(jié)點(diǎn),CRPCT死亡節(jié)點(diǎn)從左下方基站位置開始,符合算法要求。
圖8 LEACH算法死亡節(jié)點(diǎn)示意圖
圖9 CRPCT算法死亡節(jié)點(diǎn)示意圖
數(shù)據(jù)采集階段,本算法采用以TDMA[10]時(shí)隙數(shù)據(jù)從簇成員傳輸鏈最外端的簇節(jié)點(diǎn)向簇頭傳輸數(shù)據(jù),并最終將數(shù)據(jù)傳輸給簇頭。簇頭進(jìn)行數(shù)據(jù)融合處理后,再以CDMA編碼方式進(jìn)行簇間數(shù)據(jù)傳輸,目的是為了減小簇間干擾并最終以多跳的方式傳輸?shù)交?。算法的?zhí)行流程如圖10。
圖10 算法執(zhí)行流程圖
為了測試CRPCT性能,本文采用Matlab進(jìn)行模擬仿真。實(shí)驗(yàn)設(shè)計(jì)參數(shù)如下:
1)整個(gè)無線傳感器網(wǎng)絡(luò)覆蓋區(qū)域?yàn)?00 m×200 m的區(qū)域內(nèi);
2)基站位置為坐標(biāo)(-50,-50)m點(diǎn);
3)傳感器節(jié)點(diǎn)個(gè)數(shù)為200;
4)每個(gè)節(jié)點(diǎn)的初始能量為0.5 J;
5)數(shù)據(jù)分組大小為2 000 bits;
6)發(fā)送1 bit數(shù)據(jù)消耗的能量Eelec為50 nJ;
7)融合1 bit數(shù)據(jù)所消耗的能量Ed為5 nJ。
本文將對(duì)系統(tǒng)生命周期和總體能耗進(jìn)行的仿真,對(duì)比LEACH算法與CRPCT算法,突出本算法的優(yōu)越性。
圖11為系統(tǒng)生命周期圖, LEACH算法大概在180輪時(shí)出現(xiàn)第一個(gè)死亡節(jié)點(diǎn),620輪左右節(jié)點(diǎn)全部死光,而CRPCT算法大約在700輪左右才出現(xiàn)第一個(gè)死亡節(jié)點(diǎn),1000輪左右節(jié)點(diǎn)才全部死光,很明顯CRPCT算法大大推遲了節(jié)點(diǎn)死亡的時(shí)間,并且從圖中可以看出CRPCT算法的曲線相對(duì)平滑,這證明本算法比LEACH更加穩(wěn)定。
圖11 系統(tǒng)生命周期圖
圖12為網(wǎng)絡(luò)總體能耗圖,很明顯CRPCT算法在1 000輪左右能量消耗完,而LEACH算法在600輪左右能量就已經(jīng)消耗完,CRPCT比LEACH提高了近70%,大大節(jié)省了能量,并且曲線平滑,提高了穩(wěn)定性。
圖12 網(wǎng)絡(luò)總體能耗圖
本文采取鏈?zhǔn)絺鬏斅酚蓞f(xié)議去解決長直空間內(nèi)較深處加點(diǎn)能量消耗過大和節(jié)點(diǎn)死亡過快問題。顯著特點(diǎn)為:1)添加簇頭閾值參數(shù),使能量消耗分布均勻,避免簇頭節(jié)點(diǎn)相鄰過近,同時(shí)適應(yīng)長直空間環(huán)境。2)簇內(nèi)形成鏈?zhǔn)絺鬏?,簇間簇頭成鏈多跳傳輸,減少節(jié)點(diǎn)間傳輸能量消耗,提高系統(tǒng)的穩(wěn)定性。同時(shí),本算法繼承了LEACH算法的操作簡單,算法執(zhí)行率高的特點(diǎn),有很高的可行性和創(chuàng)新性。
參考文獻(xiàn):
[1] 嚴(yán) 英,郭 麗,許建真.一種基于 LEACH 與 PEGASIS 協(xié)議的分層成鏈優(yōu)化路由算法[J].傳感技術(shù)學(xué)報(bào),2011(9):1311-1312.
[2] 張 鵬.基于能量優(yōu)化的無線傳感器網(wǎng)絡(luò)LEACH路由協(xié)議的研究與仿真[D].武漢:武漢理工大學(xué),2010:2-3.
[3] 杜 寬.無線傳感器網(wǎng)絡(luò)路由節(jié)能算法[D].沈陽:沈陽工業(yè)大學(xué),2011:26-27.
[4] 劉鐵流,巫詠群.一種新型的基于分簇的無線傳感器網(wǎng)絡(luò)多跳節(jié)能路由協(xié)議[J].信息與控制,2012(2):27-31.
[5] 李振科,陳國定,王淑華.基于 LEACH 協(xié)議的改進(jìn)路由算法[J].計(jì)算機(jī)應(yīng)用,2009(12): 63-65.
[6] 李推卿.基于分簇?zé)o線傳感器網(wǎng)絡(luò)低能耗安全路由協(xié)議的研究[D].武漢:武漢理工大學(xué),2009:49-50.
[7] 王聲榮.無線傳感器網(wǎng)絡(luò)LEACH協(xié)議的研究與改進(jìn)[D].濟(jì)南:山東大學(xué),2008: 17-19.
[8] Heinzelman W.Application specific protocol architectures for wireless networks[D]. Boston: Massachusetts Institute of Technology,2000.
[9] Akcan H,Bronnimann H.A new determi-nistic data aggregation method for wireless sensor networks[J].Signal Processing,2007,87(12): 2965 -2977.
[10] 杜 衛(wèi).無線傳感器網(wǎng)絡(luò)路由協(xié)議研究[D].南京:南京郵電大學(xué),2008:21-22.