何世鈞,謝圣東,熊中敏,唐瑩莉,李 煜
(上海海洋大學(xué)信息學(xué)院,上海201306)
隨著制造工藝的提高和集成電路技術(shù)的不斷進(jìn)步,傳感器節(jié)點(diǎn)中傳感模塊和處理器模塊的功耗已經(jīng)變得很低,節(jié)點(diǎn)的主要能耗在無(wú)線通信模塊上[1]。由于傳感器節(jié)點(diǎn)的能量由電池提供并且難以得到補(bǔ)充,所以,功率控制技術(shù)是無(wú)線傳感器網(wǎng)絡(luò)(WSNs)中的一個(gè)重要研究課題[2]。其中,鄰居節(jié)點(diǎn)級(jí)功率控制技術(shù)因其靈活性和分布式的特點(diǎn)成為功率控制技術(shù)中的一個(gè)研究熱點(diǎn)。
鄰居節(jié)點(diǎn)級(jí)功率控制技術(shù)是指在保證網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)連通的基礎(chǔ)上,每個(gè)節(jié)點(diǎn)使用可覆蓋鄰居節(jié)點(diǎn)的功率值發(fā)送數(shù)據(jù),使節(jié)點(diǎn)的能量消耗最小,從而降低網(wǎng)絡(luò)整體能耗。近年來(lái),已提出的WSNs功率控制算法較多。文獻(xiàn)[3]提出了本地平均(local mean algorithm,LMA)算法和本地鄰居平均(local mean of neighbors,LMN)算法,這兩種算法雖然通過(guò)少量的局部信息使網(wǎng)絡(luò)性能達(dá)到了一定程度的優(yōu)化,但是調(diào)整和收斂速度很慢且存在很大的冗余。文獻(xiàn)[4]提出了基于控制理論中的PID控制鄰居節(jié)點(diǎn)算法,該算法在網(wǎng)絡(luò)啟動(dòng)能耗和時(shí)耗上有了進(jìn)一步優(yōu)化,但是局限性在于PID參數(shù)在整個(gè)控制過(guò)程中是不可調(diào)的,算法不能對(duì)發(fā)射功率進(jìn)行實(shí)時(shí)有效的調(diào)整。
為此,本文建立了WSNs傳輸功率模型,并提出了一種基于單神經(jīng)元PID的WSNs鄰居節(jié)點(diǎn)級(jí)功率控制算法,能對(duì)網(wǎng)絡(luò)中傳感器節(jié)點(diǎn)的發(fā)射功率進(jìn)行實(shí)時(shí)地調(diào)整且收斂速率較快,達(dá)到有效降低網(wǎng)絡(luò)能耗的目的。
神經(jīng)網(wǎng)絡(luò)具有強(qiáng)魯棒性、容錯(cuò)性、并行處理、自學(xué)習(xí)等特點(diǎn),本文將神經(jīng)元模型和PID 控制器結(jié)合并形成了具有自適應(yīng)能力的單神經(jīng)元PID鄰居節(jié)點(diǎn)級(jí)功率控制算法,能夠根據(jù)網(wǎng)絡(luò)的變化情況實(shí)時(shí)地調(diào)整節(jié)點(diǎn)的發(fā)射功率,解決了PID控制算法中PID參數(shù)不可調(diào)的問(wèn)題。該算法的控制結(jié)構(gòu)圖如圖1所示。
圖1 控制結(jié)構(gòu)圖Fig 1 Diagram of control structure
其中,e(k)為偏差信號(hào),是教師信號(hào);x1(k)=e(k),x2(k)=e(k)-e(k-1),x3(k)=e(k)-2e(k+1)-e(k-1);wi(k)為k時(shí)刻狀態(tài) xi(k)所對(duì)應(yīng)的權(quán)值;ηI,ηP,ηD分別為積分、比例、微分的學(xué)習(xí)速率;KU為神經(jīng)元的比例系數(shù),KU>0。
其中,RSSI為節(jié)點(diǎn)的接收信號(hào)強(qiáng)度指示,dBm;PT為無(wú)線信號(hào)的發(fā)射功率,dBm;r為收發(fā)節(jié)點(diǎn)之間的距離,m;n為路徑損耗指數(shù),它的大小與環(huán)境相關(guān)[7]。由式(4)可知,在相同發(fā)射功率下,RSSI隨著通信距離增大而明顯降低,當(dāng)RSSI降到一定值時(shí),節(jié)點(diǎn)間的鏈路質(zhì)量會(huì)很差,通信就可能發(fā)生中斷。
本文采用RSSI作為鄰居節(jié)點(diǎn)是否存在的依據(jù),當(dāng)接收節(jié)點(diǎn)的RSSI大于閾值Rth時(shí)認(rèn)定其為鄰居節(jié)點(diǎn)。節(jié)點(diǎn)通過(guò)保持一定的鄰居節(jié)點(diǎn)個(gè)數(shù)保證網(wǎng)絡(luò)的連通性,在文獻(xiàn)[8]中已有相應(yīng)的證明,即
其中,Plink為網(wǎng)絡(luò)的連通率,Nneighbor為節(jié)點(diǎn)的鄰居節(jié)點(diǎn)個(gè)數(shù),m為網(wǎng)絡(luò)中存在的節(jié)點(diǎn)個(gè)數(shù)。
每個(gè)節(jié)點(diǎn)所需的鄰居節(jié)點(diǎn)數(shù)隨著網(wǎng)絡(luò)中生存節(jié)點(diǎn)個(gè)數(shù)的變化而變化,本文以RSSI為判斷依據(jù),將RSSI和網(wǎng)絡(luò)連通率形成關(guān)聯(lián),建立WSNs傳輸功率模型。在保證網(wǎng)絡(luò)連通性的前提下實(shí)時(shí)控制鄰居節(jié)點(diǎn)數(shù),調(diào)整節(jié)點(diǎn)發(fā)射功率以降低網(wǎng)絡(luò)能耗。
該算法分為網(wǎng)絡(luò)初始化、功率調(diào)整和動(dòng)態(tài)實(shí)時(shí)跟蹤三個(gè)階段。算法執(zhí)行流程如圖2所示。
圖2 算法流程圖Fig 2 Algorithm flow chart
1)網(wǎng)絡(luò)初始化階段:每個(gè)節(jié)點(diǎn)以最小發(fā)射功率開(kāi)始工作。依據(jù)使用的具體傳感器節(jié)點(diǎn)確定接收靈敏度RSSI閾值Rth,當(dāng)RSSI高于Rth時(shí)認(rèn)定存在這個(gè)鄰居節(jié)點(diǎn)。通過(guò)上述方式獲取節(jié)點(diǎn)當(dāng)前的鄰居節(jié)點(diǎn)個(gè)數(shù)y(k)。對(duì)于Zig Bee節(jié)點(diǎn),當(dāng)接收節(jié)點(diǎn)的RSSI值大于-58 dBm時(shí),絕大多數(shù)丟包率小于1%,此時(shí)可認(rèn)為Zig Bee節(jié)點(diǎn)之間的通信具有較高的可靠性[9]。本文亦采用Rth為-58 dBm。
2)功率調(diào)整階段:根據(jù)網(wǎng)絡(luò)中節(jié)點(diǎn)的個(gè)數(shù)得出每個(gè)節(jié)點(diǎn)需要的鄰居節(jié)點(diǎn)個(gè)數(shù)為r(k)=5.177 4 lg m,經(jīng)比較得到誤差節(jié)點(diǎn)個(gè)數(shù)為e(k)=r(k)-y(k)。當(dāng)節(jié)點(diǎn)誤差個(gè)數(shù)e(k)作為單神經(jīng)元PID控制器的輸入,對(duì)下個(gè)周期的發(fā)射功率p(k)進(jìn)行調(diào)整時(shí),單神經(jīng)元PID控制器會(huì)利用其自學(xué)習(xí)和自適應(yīng)能力準(zhǔn)確快速地對(duì)發(fā)射功率進(jìn)行調(diào)整,使節(jié)點(diǎn)在最短的時(shí)間內(nèi)獲取理想的鄰居節(jié)點(diǎn)個(gè)數(shù)。若鄰居節(jié)點(diǎn)個(gè)數(shù)已達(dá)到理想值,則當(dāng)前調(diào)整階段結(jié)束。
3)動(dòng)態(tài)實(shí)時(shí)跟蹤階段:節(jié)點(diǎn)的數(shù)量在一段時(shí)間內(nèi)若有變化,則所要求的鄰居節(jié)點(diǎn)個(gè)數(shù)也會(huì)相應(yīng)的變化,單神經(jīng)元PID控制器會(huì)實(shí)時(shí)地跟蹤調(diào)整發(fā)射功率,保證全網(wǎng)的連通性同時(shí)降低網(wǎng)絡(luò)能耗。節(jié)點(diǎn)的數(shù)量若沒(méi)有變化,則控制算法處于監(jiān)聽(tīng)狀態(tài),節(jié)點(diǎn)以當(dāng)前發(fā)射功率運(yùn)行。
本文采用Matlab作為仿真工具,在Matlab中隨機(jī)生成并分布有50個(gè)節(jié)點(diǎn)。主要仿真參數(shù)設(shè)置為區(qū)域大小為100 m×100 m;節(jié)點(diǎn)類型為CC2430;路徑損耗指數(shù)為3;節(jié)點(diǎn)閑置狀態(tài)消耗功率為10-6W;節(jié)點(diǎn)接收狀態(tài)消耗功率為3×10-4W;節(jié)點(diǎn)初始能量為1 J;節(jié)點(diǎn)最大發(fā)射功率為10-3W;節(jié)點(diǎn)最小發(fā)射功率為3×10-6W。
為了驗(yàn)證本文提出的基于單神經(jīng)元PID功率控制算法的優(yōu)越性,在Matlab中仿真,并就網(wǎng)絡(luò)初始化時(shí)調(diào)整的響應(yīng)時(shí)間、網(wǎng)絡(luò)中節(jié)點(diǎn)變化時(shí)實(shí)時(shí)跟蹤調(diào)整的響應(yīng)時(shí)間以及網(wǎng)絡(luò)的總能耗與LMA,PID控制鄰居節(jié)點(diǎn)算法進(jìn)行了比較。
1)網(wǎng)絡(luò)初始化時(shí)布放有50個(gè)節(jié)點(diǎn),所以,需要的鄰居節(jié)點(diǎn)數(shù)為8個(gè)。三種算法分別完成整個(gè)網(wǎng)絡(luò)連接時(shí),節(jié)點(diǎn)的發(fā)射功率調(diào)整時(shí)間響應(yīng)的對(duì)比如圖3所示。從圖3中可見(jiàn),單神經(jīng)元PID控制算法用了3個(gè)周期完成網(wǎng)絡(luò)連接,系統(tǒng)輸出沒(méi)有震蕩,收斂速度很快;PID控制鄰居節(jié)點(diǎn)算法用了10個(gè)周期;LMA用了22個(gè)周期,且LMA不能精準(zhǔn)控制鄰居數(shù),只能將其控制在一定的范圍之間。
圖3 網(wǎng)絡(luò)初始化時(shí)功率調(diào)整時(shí)間對(duì)比Fig 3 Comparison of power adjustment time in network initialization phase
2)隨著網(wǎng)絡(luò)的運(yùn)行和節(jié)點(diǎn)能量的消耗,網(wǎng)絡(luò)中生存節(jié)點(diǎn)的數(shù)量會(huì)不斷減少。在仿真時(shí)設(shè)定網(wǎng)絡(luò)中節(jié)點(diǎn)數(shù)量減少了,所需的鄰居節(jié)點(diǎn)數(shù)從8個(gè)降到6個(gè),三種算法的調(diào)整時(shí)間對(duì)比如圖4所示。單神經(jīng)元PID控制算法幾乎是實(shí)時(shí)跟蹤,會(huì)立即調(diào)整節(jié)點(diǎn)發(fā)射功率,使鄰居節(jié)點(diǎn)數(shù)減少至6個(gè);PID控制算法用了28個(gè)周期進(jìn)行調(diào)整穩(wěn)定,大量的時(shí)間耗費(fèi)在后期消除震蕩上;LMA則用了8個(gè)周期,穩(wěn)定后仍未能達(dá)到實(shí)際控制效果。
圖4 動(dòng)態(tài)實(shí)時(shí)跟蹤階段功率調(diào)整時(shí)間對(duì)比Fig 4 Comparison of power adjustment time in dynamic real-time tracking phase
3)整個(gè)網(wǎng)絡(luò)運(yùn)行過(guò)程中,三種算法控制下的總能耗比較如圖5所示。從圖5中可見(jiàn),當(dāng)網(wǎng)絡(luò)處于正常工作狀態(tài)時(shí),單神經(jīng)元PID控制算法的能耗是PID控制鄰居節(jié)點(diǎn)算法的84%,是LMA的75%;當(dāng)網(wǎng)絡(luò)處于跟蹤調(diào)整階段時(shí),單神經(jīng)元PID控制算法的能耗是PID控制鄰居節(jié)點(diǎn)算法的82%,是LMA的69%。所以,單神經(jīng)元PID控制算法較其他兩種算法的功率控制效果好,實(shí)現(xiàn)了實(shí)時(shí)平穩(wěn)地控制節(jié)點(diǎn)發(fā)射功率,有效地降低了網(wǎng)絡(luò)總能耗。
圖5 網(wǎng)絡(luò)總能耗對(duì)比Fig 5 Comparison of total energy consumption of network
本文結(jié)合對(duì)WSNs傳輸功率模型的分析,將單神經(jīng)元PID控制器引入到功率控制中,提出了基于單神經(jīng)元PID的WSNs鄰居節(jié)點(diǎn)級(jí)功率控制算法。仿真結(jié)果表明:該算法更優(yōu)越,能根據(jù)網(wǎng)絡(luò)連通性要求精準(zhǔn)控制鄰居節(jié)點(diǎn)的數(shù)量,調(diào)整傳感器節(jié)點(diǎn)的功率,實(shí)時(shí)跟蹤響應(yīng)速度快,收斂性強(qiáng)。采用此方法可有效降低WSNs的整體能耗,延長(zhǎng)網(wǎng)絡(luò)生命周期。
[1]李 巧.工業(yè)無(wú)線網(wǎng)絡(luò)功率控制策略研究[D].重慶:西南大學(xué),2012:17.
[2]趙學(xué)健,莊 毅,趙 潔,等.無(wú)線傳感器網(wǎng)絡(luò)自適應(yīng)功率控制策略[J].電子與信息學(xué)報(bào),2010,32(9):2231-2235.
[3]Kubisch M,Karl H,Wolisz A,et al.Distributed algorithms for transmission power control in wireless sensor networks[C]∥Proc of Wireless Communications and Networking,New Orleans,LA,USA:IEEE Communications Society,2003:558-563.
[4]張建輝,申興發(fā),陳積明,等.基于PID算法的無(wú)線傳感器網(wǎng)絡(luò)傳輸功率控制研究[J].傳感技術(shù)學(xué)報(bào),2007,20(1):177-182.
[5]劉金琨.先進(jìn)PID控制Matlab仿真[M].3版.北京:電子工業(yè)出版社,2011:301.
[6]黃庭培,李 棟,張招亮,等.突發(fā)性鏈路感知的自適應(yīng)鏈路質(zhì)量估計(jì)方法[J].通信學(xué)報(bào),2012,33(6):30-39.
[7]文春武,宋 杰,姚家振.基于RSSI校正的無(wú)線傳感器網(wǎng)絡(luò)定位算法[J].傳感器與微系統(tǒng),2014,33(12):134-136.
[8]Xue F,Kumar P R.The number of neighbors needed for connectivity of wireless networks[J].Wireless Networks,2004,10(2):169-181.
[9]徐立鴻,早明華,蔚瑞華,等.溫室無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)發(fā)射功率自適應(yīng)控制算法[J].農(nóng)業(yè)工程學(xué)報(bào),2014,30(8):142-148.