陳健,曾培炎,黎鵬
(1. 廣東工業(yè)大學(xué)機(jī)電工程學(xué)院,廣東廣州 510006;2.中國人民解放軍陸軍31627部隊(duì),廣東深圳 518109)
無線傳感網(wǎng)(Wireless Sensor Networks,WSNs)是由大量的、有無線通信和計(jì)算能力的小型傳感節(jié)點(diǎn)組成的自組織多跳網(wǎng)絡(luò),通常有計(jì)算能力小、能源受限等特點(diǎn)[1-4]。無線傳感網(wǎng)絡(luò)設(shè)備通常由電池供電,電池的容量決定了設(shè)備的運(yùn)行時(shí)長,因此,找到無線設(shè)備合適的能耗解決方案成為延長網(wǎng)絡(luò)運(yùn)行周期的關(guān)鍵。
目前,國內(nèi)外的無線傳感器網(wǎng)絡(luò)相關(guān)學(xué)者主要從能量采集、網(wǎng)絡(luò)控制、數(shù)據(jù)融合和自適應(yīng)采樣策略等方面開展WSNs的節(jié)能研究。在能量采集方面,文獻(xiàn)[1]和文獻(xiàn)[5]結(jié)合太陽能光伏發(fā)電技術(shù)解決設(shè)備的能源補(bǔ)充問題,但是增加了硬件成本且需要在有陽光的環(huán)境下實(shí)現(xiàn)。在網(wǎng)絡(luò)控制方面,文獻(xiàn)[6]基于改進(jìn)的蟻群算法提出一種改進(jìn)ZigBee路由算法,縮短網(wǎng)絡(luò)中節(jié)點(diǎn)的傳輸路徑;文獻(xiàn)[7]運(yùn)用模糊控制方法對網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)進(jìn)行優(yōu)化,控制網(wǎng)絡(luò)中不同位置簇的規(guī)模;文獻(xiàn)[8]運(yùn)用博弈理論建立了一種能耗均衡的拓?fù)淇刂颇P?,使得?jié)點(diǎn)能調(diào)整自身功率。但是網(wǎng)絡(luò)控制的角度更關(guān)注的是網(wǎng)絡(luò)的整體節(jié)能,且系統(tǒng)開發(fā)難度較大、不易拓展。在數(shù)據(jù)融合方面,文獻(xiàn)[9]基于壓縮感知理論提出一種時(shí)空壓縮簇內(nèi)數(shù)據(jù)收集算法減少傳輸量,但是數(shù)據(jù)反饋時(shí)間延長,不適用于實(shí)時(shí)性和數(shù)據(jù)精度要求高的場景。從自適應(yīng)采樣角度出發(fā),文獻(xiàn)[10]通過BP神經(jīng)網(wǎng)絡(luò)預(yù)測和閾值分析的方法,實(shí)現(xiàn)動(dòng)態(tài)采樣調(diào)度,但是計(jì)算量大且需要大量的訓(xùn)練數(shù)據(jù);文獻(xiàn)[3]通過分析多個(gè)節(jié)點(diǎn)的數(shù)據(jù)相關(guān)性選舉簇頭,并調(diào)整簇內(nèi)節(jié)點(diǎn)的采樣頻率,但是網(wǎng)絡(luò)維護(hù)會(huì)帶來額外的通信量;文獻(xiàn)[4]和文獻(xiàn)[11]通過上一個(gè)預(yù)測值與采樣值的誤差來決定下一步采樣的步長,易受到突變值的影響,且用戶端得到的數(shù)據(jù)在時(shí)間上不規(guī)則,不能很好地在用戶端還原采樣對象的實(shí)時(shí)情況。
針對上述節(jié)能方法的不足,文中從自適應(yīng)采樣角度出發(fā),首先通過在網(wǎng)絡(luò)的上位機(jī)端和終端節(jié)點(diǎn)上搭建相同的預(yù)測模型進(jìn)行同步預(yù)測,實(shí)現(xiàn)自適應(yīng)通信算法;然后在自適應(yīng)通信算法的基礎(chǔ)上進(jìn)行改進(jìn),提出一種基于多步預(yù)測的自適應(yīng)采樣算法,在保證數(shù)據(jù)精度的前提下更有效地降低終端節(jié)點(diǎn)的能耗;最后在基于ZigBee的船舶下水氣囊氣壓監(jiān)測系統(tǒng)平臺上進(jìn)行能耗分析和節(jié)能實(shí)驗(yàn)。
由于無線傳感網(wǎng)絡(luò)中終端節(jié)點(diǎn)通常由電池供電,運(yùn)算能力較低且存儲空間有限,因而要選擇運(yùn)算量低、容易部署的預(yù)測算法,增強(qiáng)算法可用性和可拓展性。
自回歸模型又稱AR模型,是用于研究平穩(wěn)時(shí)間序列的一種常用方法,有計(jì)算簡單、預(yù)測準(zhǔn)確的特點(diǎn)。AR(P)模型可表示為
Xt=φ0+φ1Xt-1+…+φpXt-p+εt
(1)
其中:{εt}是零均值同方差的獨(dú)立同分布白噪聲序列,方差為σ2,且εt與Xt-1、Xt-2、…相互獨(dú)立。建模過程分為以下部分:
(1)數(shù)據(jù)預(yù)處理
設(shè)獲取時(shí)間序列值為
(2)
實(shí)際獲取的數(shù)據(jù)序列一般為非平穩(wěn)序列,因此需要對時(shí)間序列進(jìn)行d次差分運(yùn)算轉(zhuǎn)換為平穩(wěn)序列。差分后數(shù)據(jù)經(jīng)單位根檢驗(yàn)(ADF檢驗(yàn))方法檢驗(yàn)平穩(wěn)性。預(yù)處理后數(shù)據(jù)記為
{Xt|t=1,2,…,n}
(3)
在實(shí)際分析中,如果一階差分結(jié)果的平穩(wěn)性檢驗(yàn)不通過,繼續(xù)進(jìn)行二次差分。
(2)模型識別
模型識別和定階問題主要確定合適的p參數(shù)。對給定的長度為n的數(shù)據(jù)樣本Xt,可通過偏自相關(guān)函數(shù)(Partical Autocorrelation Coefficient Function,PACF)獲取可能的p階數(shù)。
對于平穩(wěn)時(shí)間序列Xt,對n=1,2,…,有:
L(Xt|Xt-1,…,Xt-n)=φn0+φn1Xt-1+…+φnnXt-n
(4)
其中:φnn為時(shí)間序列{Xt}的偏自相關(guān)系數(shù)。
(3)定階
通過赤池信息準(zhǔn)則函數(shù)(Akaike Information Criterion,AIC)進(jìn)行定階:
(5)
(4)參數(shù)估計(jì)及模型檢驗(yàn)
采用最小二乘法估計(jì)AR模型參數(shù)φ0,…,φp,對擬合后殘差序列進(jìn)行白噪聲檢驗(yàn)。如能通過白噪聲檢驗(yàn)則說明模型能夠準(zhǔn)確刻畫數(shù)據(jù)變化規(guī)律,可以對時(shí)間序列進(jìn)行短期預(yù)測。若白噪聲檢驗(yàn)不通過則重新建立模型。
在一段時(shí)間的采樣中,如果環(huán)境狀態(tài)無變化或變化緩慢,保持固定短周期采樣則會(huì)出現(xiàn)多個(gè)數(shù)據(jù)相同或相差不大的情況,即產(chǎn)生冗余數(shù)據(jù)。終端節(jié)點(diǎn)和上位機(jī)通過融合AR模型,利用已有數(shù)據(jù)序列的最新數(shù)據(jù),同步預(yù)測下一次數(shù)據(jù)。終端節(jié)點(diǎn)在下一次采樣時(shí),若預(yù)測值與采樣值的誤差在設(shè)定閾值范圍內(nèi),則將此次采樣值視為冗余數(shù)據(jù),不發(fā)送至上位機(jī)。由此,能夠在滿足一定數(shù)據(jù)精度的要求下,減少冗余數(shù)據(jù)的發(fā)送操作而實(shí)現(xiàn)自適應(yīng)通信。
AR模型建模過程中,模型識別和定階過程計(jì)算量較大。為了進(jìn)一步降低終端節(jié)點(diǎn)的計(jì)算負(fù)擔(dān),將AR模型建模過程的步驟(2)—(4)搭載在上位機(jī)程序,由上位機(jī)經(jīng)協(xié)調(diào)器將參數(shù)p和φnn發(fā)送至終端節(jié)點(diǎn)。終端節(jié)點(diǎn)進(jìn)入節(jié)能模式,從上位機(jī)獲取預(yù)設(shè)參數(shù),以預(yù)設(shè)周期采樣并上傳nref次作為模型的初始數(shù)據(jù)序列。
終端節(jié)點(diǎn)已記錄的數(shù)據(jù)序列記為Sed(i),上位機(jī)中對應(yīng)的終端節(jié)點(diǎn)抽象對象記錄的數(shù)據(jù)序列記為Scoor(i),其中i=0,1,…,n。如圖1所示,在終端節(jié)點(diǎn)和上位機(jī)中,設(shè)置一個(gè)參考值窗口Wref,如圖1所示,長度為nref,記為
Wref={Xt|t=n-nref,…,n}
(6)
圖1 參考值窗口示意
在每次采樣時(shí)更新參考值窗口,確保窗口中的值為最新的采樣數(shù)據(jù)。
(7)
為確保AR模型的預(yù)測效果,設(shè)定最大限制錯(cuò)誤次數(shù)nmax_err。若上位機(jī)接收到終端節(jié)點(diǎn)上傳實(shí)測值次數(shù)大于錯(cuò)誤限制次數(shù),則以Wref為更新模型參數(shù),并發(fā)送至終端節(jié)點(diǎn)。
在自適應(yīng)通信算法中,終端節(jié)點(diǎn)在每個(gè)采樣周期里都進(jìn)行采樣操作,將浪費(fèi)大量能量。從減少傳感器采樣次數(shù)的角度出發(fā),對自適應(yīng)通信算法進(jìn)行改進(jìn),在終端節(jié)點(diǎn)加入步長更新機(jī)制,實(shí)現(xiàn)自適應(yīng)采樣算法。終端節(jié)點(diǎn)通過自適應(yīng)采樣算法,在環(huán)境變化不劇烈的采樣周期中,保持睡眠狀態(tài),減少采樣和發(fā)送操作。而當(dāng)判斷出環(huán)境變化劇烈時(shí),縮短采樣周期,及時(shí)采樣以確保采樣的精確度。
為實(shí)現(xiàn)采樣步長的自適應(yīng)變化,需要制定合理有效的步長更新機(jī)制,因此在終端節(jié)點(diǎn)中引入趨勢參考窗口。
趨勢參考窗口的值為Sed(i)的最新數(shù)據(jù),如圖2所示,設(shè)長窗口為Wed,長度記為nnew;短窗口為Wed的最新一半數(shù)據(jù),設(shè)為Wedhalf,長度記為nnew/2。
圖2 趨勢參考窗口示意
此窗口的數(shù)據(jù)反映了數(shù)據(jù)的最新動(dòng)態(tài)變化情況,通過最小二乘法擬合參考窗口數(shù)據(jù),可以得出此時(shí)間段中數(shù)據(jù)總體變化趨勢。通過計(jì)算長窗口和短窗口的方差,可以判斷出環(huán)境狀態(tài)的浮動(dòng)情況。當(dāng)浮動(dòng)較大時(shí),以短窗口判斷數(shù)據(jù)變化趨勢,避免時(shí)間較舊的數(shù)據(jù)的影響;當(dāng)浮動(dòng)較小時(shí),以長窗口判斷數(shù)據(jù)變化趨勢,避免跳變值對變化趨勢的影響。
利用現(xiàn)有變化趨勢,前向擬合接下來多個(gè)步長的數(shù)據(jù),將擬合值與AR模型的前向預(yù)測值逐步對比,誤差在設(shè)定閾值內(nèi)則累計(jì)作為下一采樣的步長。
把Wed的方差var(Wed)記為ved,以及Wedhalf窗口值的方差var(Wedhalf)記為vedhalf。設(shè)方差比的閾值為εed。
把擬合窗口Wref定義為
(8)
在終端節(jié)點(diǎn)采樣得到最新的采樣值后,利用AR模型進(jìn)行前向預(yù)測,得到n個(gè)步長的預(yù)測值,記為{Xj|j=1,2,…,n}。利用最小二乘法擬合Wref的結(jié)果計(jì)算出接下來的n個(gè)擬合值,記為{Yj|j=1,2,…,n}。設(shè)Xj與Yj的誤差閾值為εpre。
將步長新機(jī)制定義為
(9)
其中,令j從1開始,順序判斷Xj與Yj誤差是否大于閾值εpre。若不大于閾值則認(rèn)為該預(yù)測值Xj是可信的,繼續(xù)判斷下一時(shí)刻;當(dāng)大于閾值,則認(rèn)為當(dāng)前及以后的預(yù)測值Xj不可信,退出判斷,并以累計(jì)小于閾值個(gè)數(shù)S作為下一采樣的步長。為提高采樣精度,引入最大變化步長jmax,使得S≤jmax。
自適應(yīng)采樣算法在自適應(yīng)通信算法的基礎(chǔ)上進(jìn)行改進(jìn)。自適應(yīng)采樣算法流程如圖3所示。進(jìn)入自適應(yīng)采樣算法,終端節(jié)點(diǎn)將根據(jù)預(yù)設(shè)模式以最小的采樣頻率采樣nref次并上傳至上位機(jī)。終端節(jié)點(diǎn)維護(hù)歷史值序列Sed(i),上位機(jī)維護(hù)歷史值序列Scoor(i)。上位機(jī)通過參考值窗口Wref的值建立AR模型,并將模型參數(shù)p和φnn發(fā)送至終端節(jié)點(diǎn)。然后,上位機(jī)和終端節(jié)點(diǎn)將進(jìn)行同步預(yù)測。
圖3 自適應(yīng)采樣算法流程
進(jìn)入步長更新機(jī)制,終端節(jié)點(diǎn)以最新數(shù)據(jù)生成Wref參考值窗口,利用最小二乘法擬合并得到未來j個(gè)擬合值,同時(shí)利用AR模型前向預(yù)測得到j(luò)個(gè)預(yù)測值。通過順序判斷誤差是否大于閾值εpre來確認(rèn)更新的步長S。
更新步長S值后,終端節(jié)點(diǎn)將前向預(yù)測值{Xj|j=1,2,…,S}寫入序列Sed(t),同時(shí)設(shè)置下一次睡眠時(shí)間為S×Tcycle。在此次采樣周期結(jié)束后,終端節(jié)點(diǎn)在接下來的S個(gè)周期中都保持睡眠狀態(tài),直到被睡眠定時(shí)器喚醒。
同時(shí),為減少預(yù)測模型的累計(jì)誤差,在預(yù)測算法中加入修正機(jī)制。設(shè)參數(shù)Nnotsend為修正上傳次數(shù),在節(jié)點(diǎn)的每個(gè)工作周期中累減1,并在等于0時(shí)重置為初試值。當(dāng)Nnotsend達(dá)到0時(shí),不論預(yù)測值誤差是否在設(shè)定閾值內(nèi),此周期采樣后都將強(qiáng)制上傳并存儲采樣值X′i+1。節(jié)點(diǎn)每次確定睡眠步長S時(shí)進(jìn)行判定,S如果大于當(dāng)前的Nnotsend值,則更改S為當(dāng)前Nnotsend值,確保終端節(jié)點(diǎn)醒來采樣并上傳采樣值。
由于上位機(jī)與終端節(jié)點(diǎn)所維護(hù)的AR模型是一致的,雙方利用相同的數(shù)據(jù)進(jìn)行同步預(yù)測,能夠確保雙方數(shù)據(jù)的一致性。同時(shí),上位機(jī)在終端節(jié)點(diǎn)睡眠過程中,仍保持預(yù)設(shè)的采樣周期進(jìn)行數(shù)據(jù)更新,能夠及時(shí)地反映數(shù)據(jù)走勢。
終端節(jié)點(diǎn)的自適應(yīng)采樣算法如表1所示。
表1 終端節(jié)點(diǎn)自適應(yīng)采樣算法偽代碼
如圖4所示,在船舶下水場景中,氣囊氣壓監(jiān)測系統(tǒng)的ZigBee網(wǎng)絡(luò)包含3種硬件節(jié)點(diǎn)類型,分別為協(xié)調(diào)器、路由節(jié)點(diǎn)和終端節(jié)點(diǎn)[12-13]。對每個(gè)氣囊安裝終端節(jié)點(diǎn),由終端節(jié)點(diǎn)上的氣壓傳感器獲取氣壓數(shù)據(jù)??紤]從船舶起墩開始到最終成功下水,氣囊位置會(huì)不斷移動(dòng),因此部署多個(gè)無能量限制的路由節(jié)點(diǎn)以轉(zhuǎn)發(fā)數(shù)據(jù)包至協(xié)調(diào)器。協(xié)調(diào)器通過RS-232接口與上位機(jī)進(jìn)行通信,實(shí)現(xiàn)氣壓數(shù)據(jù)上傳和網(wǎng)絡(luò)控制命令的轉(zhuǎn)發(fā)。
圖4 船舶下水氣囊氣壓監(jiān)測場景示意
如圖5所示,船舶氣囊下水氣壓監(jiān)測系統(tǒng)的功能結(jié)構(gòu)分為上位機(jī)、ZigBee網(wǎng)絡(luò)和數(shù)據(jù)源。
圖5 監(jiān)測平臺功能結(jié)構(gòu)
上位機(jī)為每個(gè)終端節(jié)點(diǎn)建立相應(yīng)的抽象對象,以實(shí)現(xiàn)對所有終端節(jié)點(diǎn)進(jìn)行單獨(dú)的采樣控制和數(shù)據(jù)處理。終端節(jié)點(diǎn)作為一種由電池供電、需要密封且頻繁移動(dòng)的部件,是節(jié)能研究的關(guān)鍵對象。
終端節(jié)點(diǎn)有5種不同的運(yùn)行模式,分為主動(dòng)模式、空閑模式、PM1、PM2和PM3。設(shè)定終端節(jié)點(diǎn)的行為分為發(fā)送數(shù)據(jù)、接收數(shù)據(jù)、空閑監(jiān)聽和休眠,分別對應(yīng)發(fā)送狀態(tài)、接收狀態(tài)、監(jiān)聽狀態(tài)和休眠狀態(tài)。節(jié)點(diǎn)狀態(tài)轉(zhuǎn)換示意如圖6所示??紤]到空閑狀態(tài)除了CPU內(nèi)核空閑,其他功能及能耗與主動(dòng)模式一樣,PM2模式能夠由睡眠定時(shí)器喚醒,因此設(shè)定終端節(jié)點(diǎn)在發(fā)送狀態(tài)和接收狀態(tài)運(yùn)行在空閑模式,監(jiān)聽狀態(tài)工作在主動(dòng)模式,休眠狀態(tài)的運(yùn)行模式為PM2。
圖6 節(jié)點(diǎn)狀態(tài)轉(zhuǎn)換示意
考慮到實(shí)際場景中不需要全網(wǎng)時(shí)間同步,且信標(biāo)模式比非信標(biāo)模式帶來額外的數(shù)據(jù)收發(fā),故采用非信標(biāo)模式。在正常的周期采樣模式情況下,設(shè)定終端節(jié)點(diǎn)從睡眠狀態(tài)被喚醒將進(jìn)入監(jiān)聽狀態(tài),在此狀態(tài)下激活氣壓傳感器進(jìn)行采樣。采樣結(jié)束則進(jìn)入發(fā)送狀態(tài)上傳數(shù)據(jù)包,然后進(jìn)入接收狀態(tài)接收ACK數(shù)據(jù)包。在確認(rèn)上傳數(shù)據(jù)成功后,終端節(jié)點(diǎn)設(shè)置監(jiān)聽一定時(shí)間,如果在監(jiān)聽期間接收到下傳的工作模式控制的數(shù)據(jù)包,將回復(fù)ACK數(shù)據(jù)包并且按照新分配的參數(shù)修改相關(guān)變量。隨后在無任務(wù)進(jìn)行時(shí)進(jìn)入睡眠狀態(tài),直至被定時(shí)器喚醒。
參考文獻(xiàn)[11]對終端節(jié)點(diǎn)進(jìn)行能耗分析。在終端節(jié)點(diǎn)的能耗分析中,網(wǎng)絡(luò)中數(shù)據(jù)發(fā)送沖突或數(shù)據(jù)包丟失的情況與實(shí)際網(wǎng)絡(luò)狀態(tài)相關(guān),因此忽略數(shù)據(jù)重傳、不定時(shí)的網(wǎng)絡(luò)維護(hù)造成的數(shù)據(jù)收發(fā)以及各個(gè)狀態(tài)間轉(zhuǎn)換造成的能耗。
定義氣壓傳感器的供電電壓為Vsensor,平均電流為Isensor,采集時(shí)間為Tsensor,則采集一次數(shù)據(jù),氣壓傳感器消耗掉能量可表示為
Esensor=Vsensor×Isensor×Tsensor
(10)
定義終端節(jié)點(diǎn)發(fā)送一個(gè)數(shù)據(jù)包的能耗為
Etx=Vsupply×Itx×Ttx
(11)
其中:Vsupply為芯片電路平均供電電壓;Itx為發(fā)送狀態(tài)的平均電流;Ttx為發(fā)送一個(gè)數(shù)據(jù)包的平均時(shí)間。同理可以得到接收能耗Erx、監(jiān)聽能耗Elisten、睡眠能耗Esleep如下式:
Erx=Vsupply×Irx×Trx
(12)
Elisten=Vsupply×Ilisten×Tlisten
(13)
Esleep=Vsupply×Isleep×Tsleep
(14)
假設(shè)一個(gè)運(yùn)行周期為Tcycle,其中設(shè)發(fā)送次數(shù)為Ntx,接收次數(shù)為Nrx,采樣次數(shù)為Nsensor,則總能耗模型Etotal可以表示為
Etotal=EsensorNsensor+EtxNtx+ErxNrx+Elisten+Esleep
(15)
其中Tsleep=Tcycle-TtxNtx-TrxNrx-Tlisten。睡眠電流為最小,因此為達(dá)到節(jié)能目的,要盡可能減少采樣次數(shù)Nsensor和通信次數(shù)Ntx及Nrx,盡可能延長睡眠時(shí)間。查閱器件數(shù)據(jù)手冊,此實(shí)驗(yàn)平臺的能耗模型參數(shù)如表2所示。
表2 功耗模型參數(shù)
采用Berkeley大學(xué)的Intel實(shí)驗(yàn)室公開的傳感器數(shù)據(jù)集,及作者實(shí)驗(yàn)室對船舶下水場景模擬所獲取的氣囊氣壓數(shù)據(jù)集,以驗(yàn)證所述算法的節(jié)能效果。其中Berkeley公開數(shù)據(jù)集包含54個(gè)傳感器的溫濕度、亮度及電壓數(shù)據(jù),文中采用了編號為22的傳感節(jié)點(diǎn)在2004年3月20日的2 303個(gè)溫度數(shù)據(jù);作者實(shí)驗(yàn)室模擬數(shù)據(jù)為氣囊的1 305個(gè)氣壓數(shù)據(jù)。將自適應(yīng)通信算法記為算法1,基于多步預(yù)測的自適應(yīng)采樣算法記為算法2。
取Berkeley數(shù)據(jù)集在此實(shí)驗(yàn)平臺中仿真,算法1取參數(shù)nref=20,Tcycle=5 000 ms,εerror=0.07,nmax_err=5;算法2取參數(shù)nref=20,Tcycle=5 000 ms,εerror=0.03,εed=0.5,jmax=3,Nnotsend=8。圖7所示為Berkeley數(shù)據(jù)集在固定周期采樣、算法1和算法2下的能耗對比??梢钥闯觯合鄬τ诠潭ㄖ芷诓蓸拥姆绞?,算法1能夠節(jié)能15.137%,算法2能夠節(jié)能41.809%,算法2比算法1節(jié)能31.430%。
圖7 Berkeley數(shù)據(jù)集能耗
圖8所示為實(shí)驗(yàn)室數(shù)據(jù)集在固定周期采樣、算法1和算法2下的能耗對比。其中算法1取參數(shù)nref=20,Tcycle=5 000 ms,εerror=0.25,nmax_err=5;算法2取參數(shù)nref=20,Tcycle=5 000 ms,εerror=0.08,εed=0.025,jmax=5,Nnotsend=8。仿真結(jié)果表明:相對于固定周期采樣的方式,算法1能夠節(jié)能12.770%,算法2相對于固定周期采樣的方式能夠節(jié)能36.252%,算法2比算法1節(jié)能26.912%。
圖8 實(shí)驗(yàn)室數(shù)據(jù)集能耗
為驗(yàn)證模型的預(yù)測精度,需對結(jié)果進(jìn)行誤差分析。文中采用均方差根誤差RMSE(Root Mean Square Error)對實(shí)驗(yàn)所獲取的數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析。計(jì)算公式為
(16)
其中:ai為實(shí)際測量值;fi為協(xié)調(diào)器獲取的值;n為采樣次數(shù)。
圖9和圖10分別展示了利用Berkeley數(shù)據(jù)集和實(shí)驗(yàn)室數(shù)據(jù)集,算法1和算法2與固定采樣周期采樣結(jié)果的誤差對比。為便于觀察,已將算法1和算法2的結(jié)果偏置。εRMSE值如表3所示,其中,實(shí)驗(yàn)室數(shù)據(jù)集在算法2中的εRMSE值為0.089 2。
圖9 Berkeley數(shù)據(jù)集仿真效果
圖10 實(shí)驗(yàn)室數(shù)據(jù)集仿真效果
如表3所示,RMSE結(jié)果表明:算法1與算法2能達(dá)到較好的數(shù)據(jù)精度;在精度相同的情況下,算法2的節(jié)能效果比算法1要好。
表3 各數(shù)據(jù)集在不同算法下的εRMSE值
為展示數(shù)據(jù)動(dòng)態(tài)性對采樣次數(shù)的影響,以實(shí)驗(yàn)室的數(shù)據(jù)集為例,將實(shí)際采樣數(shù)據(jù)中對應(yīng)自適應(yīng)采樣階段的數(shù)據(jù)進(jìn)行一階差分。以25個(gè)采樣周期為窗口取一階差分結(jié)果的方差作為x,并取該窗口周期的總采樣次數(shù)作為y。從圖11可以看出:在數(shù)據(jù)動(dòng)態(tài)性增大時(shí)總采樣次數(shù)增大,自適應(yīng)采樣算法起到了很好的調(diào)整采樣步長的作用。
圖11 一階差分?jǐn)?shù)據(jù)方差σ與采樣次數(shù)n的關(guān)系
文中提出了一種基于多步預(yù)測的無線傳感網(wǎng)絡(luò)自適應(yīng)采樣算法,在確保較好數(shù)據(jù)精度的同時(shí),實(shí)現(xiàn)了終端節(jié)點(diǎn)的有效節(jié)能。通過在上位機(jī)和終端節(jié)點(diǎn)間建立自回歸預(yù)測模型進(jìn)行同步預(yù)測,并根據(jù)前向多步預(yù)測值與數(shù)據(jù)變化趨勢擬合值間的誤差,自適應(yīng)地改變采樣步長。實(shí)驗(yàn)結(jié)果表明,該算法在保證上位機(jī)和終端節(jié)點(diǎn)數(shù)據(jù)一致性以及上位機(jī)數(shù)據(jù)更新實(shí)時(shí)性的情況下,能達(dá)到較好的節(jié)能效果。