(東南大學(xué) 儀器科學(xué)與工程學(xué)院,江蘇 南京 210096)
在無(wú)線傳感器網(wǎng)絡(luò)中,通常布置有大量的傳感器節(jié)點(diǎn)。一方面,由于監(jiān)測(cè)環(huán)境復(fù)雜多變,這些傳感器節(jié)點(diǎn)會(huì)不可避免地受到各種干擾,隨機(jī)噪聲對(duì)監(jiān)測(cè)數(shù)據(jù)的影響不容忽略;另一方面,監(jiān)控系統(tǒng)對(duì)節(jié)點(diǎn)能耗有較高要求,大量冗余數(shù)據(jù)的傳輸和處理將快速耗盡節(jié)點(diǎn)能量,使節(jié)點(diǎn)失效。因此,將數(shù)據(jù)融合技術(shù)應(yīng)用在WSN中,可以增強(qiáng)數(shù)據(jù)的準(zhǔn)確性(降低隨機(jī)噪聲的影響),提高系統(tǒng)的可靠性(當(dāng)某個(gè)或某些節(jié)點(diǎn)因能量耗盡或受到干擾而失效時(shí),不會(huì)影響系統(tǒng)的正常感知)。
數(shù)據(jù)融合是指通過(guò)建模對(duì)不同源的數(shù)據(jù)進(jìn)行處理[1]。通過(guò)對(duì)這些不同源數(shù)據(jù)的充分利用和合理支配,并結(jié)合數(shù)據(jù)估計(jì)、建模、采集管理等手段,依據(jù)某種準(zhǔn)則綜合考慮其在時(shí)間和空間上的冗余或互補(bǔ)信息,產(chǎn)生被測(cè)對(duì)象更準(zhǔn)確的信息、更一致的解釋和描述,以獲得最大可信度的最優(yōu)結(jié)果[2-3]。常用的算法有卡爾曼濾波算法和基于支持度函數(shù)的加權(quán)平均算法。
(1) 卡爾曼濾波算法。
卡爾曼濾波公式如下:
X(k|k-1)=A·X(k-1|k-1)+W(k-1)
(1)
Z(k)=H·X(k|k-1)+V(k)
(2)
P(k|k-1)=A·P(k-1|k-1)·AT+q
(3)
(4)
X(k|k)=X(k|k-1)+Kg(k)·V(k)
(5)
P(k|k)=(I-Kg(k)·H)·P(k|k-1)
(6)
式中,X(k-1|k-1)為系統(tǒng)上一狀態(tài)的最優(yōu)估計(jì)值;X(k|k)為系統(tǒng)現(xiàn)階段的最優(yōu)估計(jì)值;Z(k)為系統(tǒng)在現(xiàn)階段的測(cè)量值;W(k-1)和V(k)是零均值、方差分別為q、r的相互獨(dú)立的白噪聲;Kg(k)定義為其增益陣;P(k|k)定義為其協(xié)方差陣。
(2) 基于支持度函數(shù)的加權(quán)平均算法。
支持度函數(shù)sup(a,b)表示兩個(gè)值a,b間的相互支持程度,其必須滿足以下條件:
①sup(a,b)∈[0,1];
②sup(a,b)=sup(b,a);
③ 若|a-b|<|x-y|,則sup(a,b)>sup(x,y),a,b,x,y>0。
文獻(xiàn)[4]提出一種新型支持度函數(shù)進(jìn)行數(shù)據(jù)融合:
(7)
式中,α∈[0,1]為支持度函數(shù)的幅度;β>0為支持度衰減因子,β越大,支持度衰減越快。兩個(gè)值越接近,它們的相互支持度越高。
通過(guò)該算法求得子系統(tǒng)內(nèi)各節(jié)點(diǎn)的權(quán)值,以做加權(quán)融合運(yùn)算。
本文所提出的數(shù)據(jù)融合流程如圖1所示,主要包括以下步驟:
① 通過(guò)自適應(yīng)閾值函數(shù),對(duì)各節(jié)點(diǎn)在一段時(shí)間內(nèi)的原始數(shù)據(jù)進(jìn)行異常數(shù)據(jù)剔除;
② 對(duì)各節(jié)點(diǎn)數(shù)據(jù)分別采用遞推最小二乘法融合,求得其在該時(shí)間段內(nèi)的估計(jì)值;
③ 將系統(tǒng)分解成多個(gè)子系統(tǒng),分批對(duì)每個(gè)子系統(tǒng)的待融合數(shù)據(jù)采用基于改進(jìn)支持度函數(shù)的加權(quán)融合算法,從而求得此刻該子系統(tǒng)的環(huán)境估計(jì)值,并將此值作為下一級(jí)融合的輸入,以此類(lèi)推進(jìn)行融合。
在WSN中,由于環(huán)境參數(shù)(如空氣溫濕度、土壤溫濕度、光照等)變化緩慢,且有較大冗余,節(jié)點(diǎn)在相鄰幾個(gè)采集周期內(nèi)的數(shù)據(jù)不會(huì)出現(xiàn)跳變現(xiàn)象,因此可以通過(guò)對(duì)各節(jié)點(diǎn)在一段時(shí)間內(nèi)采集到的原始數(shù)據(jù)進(jìn)行預(yù)處理來(lái)減少節(jié)點(diǎn)的數(shù)據(jù)傳輸量,最終達(dá)到減小能耗、延長(zhǎng)生命周期的效果。
圖1 數(shù)據(jù)融合流程
由于環(huán)境噪聲的存在以及傳感器性能不穩(wěn)定等因素,傳感器會(huì)產(chǎn)生異常數(shù)據(jù)。為確保數(shù)據(jù)的可靠性,本文利用自適應(yīng)閾值剔除這些異常值。
將一段時(shí)間內(nèi)節(jié)點(diǎn)i采集到的原始數(shù)據(jù)自小到大排列為Xi=[x1,x2,…,xn]。
定義中位數(shù)為
(8)
上四分位數(shù)Fu定義為xm與xn間的中位數(shù),下四分位數(shù)Fd定義為x1與xm間的中位數(shù)。
定義閾值函數(shù):
ρ=β×(Fu-Fd)
(9)
式中,β與傳感器節(jié)點(diǎn)精度相關(guān)。當(dāng)測(cè)量值xj(j=1,2,…,n)滿足
|xj-xm|>ρ
(10)
時(shí),可視其為無(wú)效數(shù)據(jù),將其剔除。
根據(jù)式(1)~式(6),卡爾曼濾波算法的難點(diǎn)在于:
① 矩陣乘法甚至矩陣連乘運(yùn)算的存在,導(dǎo)致運(yùn)算復(fù)雜度增加;
② 當(dāng)矩陣的階數(shù)增加時(shí),其求逆運(yùn)算的復(fù)雜度以幾何級(jí)數(shù)增加;
③ 由于卡爾曼濾波算法的核心在于迭代,即式(1)~式(6)均要進(jìn)行多次的重新運(yùn)算,計(jì)算量繁重。
在WSN中,各節(jié)點(diǎn)體積小,只能攜帶能量有限的電池,同時(shí)其低廉的價(jià)格必然造成存儲(chǔ)器和處理器性能不佳的問(wèn)題,將卡爾曼濾波直接應(yīng)用在WSN中,可能出現(xiàn)計(jì)算量超出系統(tǒng)承載能力的情況。因此,降低卡爾曼濾波的計(jì)算量成為將其應(yīng)用在WSN中的關(guān)鍵。
將卡爾曼濾波的矩陣參數(shù)做降維處理,即考慮一維系統(tǒng),可將其簡(jiǎn)化為一維遞推最小二乘法。遞推最小二乘法計(jì)算過(guò)程較為簡(jiǎn)單,精度可以保證,同時(shí)無(wú)需掌握太多的系統(tǒng)先驗(yàn)知識(shí),依靠測(cè)量值即可進(jìn)行濾波。根據(jù)文獻(xiàn)[5]和文獻(xiàn)[6],得到其遞推關(guān)系如下:
(11)
xk=xk-1+pk(zk-xk-1)
(12)
式中,xk和xk-1分別為系統(tǒng)現(xiàn)階段與前一階段的估計(jì)值;zk為系統(tǒng)的當(dāng)前測(cè)量值;x0與p0為系統(tǒng)初始值。為了提高在初期的融合精度,將前一個(gè)融合周期的融合值作為后一個(gè)融合周期的系統(tǒng)初值。
節(jié)點(diǎn)內(nèi)部的數(shù)據(jù)融合會(huì)導(dǎo)致數(shù)據(jù)的大量丟失,為減小因傳輸過(guò)程中數(shù)據(jù)丟包等情況造成的影響,通常采用冗余傳感器部署,通過(guò)節(jié)點(diǎn)間的數(shù)據(jù)融合獲得最優(yōu)估計(jì)值。
Nahin和Pokoski在文獻(xiàn)[7]中定量證明了利用增加傳感器的方法所獲得的正確分類(lèi)的邊界線。通過(guò)使用N個(gè)相同的傳感器來(lái)觀測(cè)需要正確識(shí)別或分類(lèi)的現(xiàn)象。假設(shè)每個(gè)傳感器是統(tǒng)計(jì)獨(dú)立的,且先驗(yàn)概率相等,通過(guò)計(jì)算機(jī)仿真表明增加參與融合的傳感器數(shù)量能夠提高觀測(cè)數(shù)據(jù)的精度,但當(dāng)傳感器數(shù)目N超過(guò)某臨界值(高精度傳感器數(shù)目大于7或低精度傳感器數(shù)目大于11)時(shí),再繼續(xù)增加傳感器對(duì)觀測(cè)精度的提高不會(huì)有明顯有效的改善。
因此,將待融合的數(shù)據(jù)每7個(gè)為一個(gè)子系統(tǒng),對(duì)每個(gè)子系統(tǒng)分別進(jìn)行基于改進(jìn)支持度函數(shù)的數(shù)據(jù)融合處理,并將融合結(jié)果作為下一級(jí)融合的輸入值,以此類(lèi)推進(jìn)行分級(jí)融合。其流程圖如圖2所示。
圖2 分批融合示意圖
由式(7)可知,新型支持度函數(shù)存在以下問(wèn)題:
① 使用該函數(shù)時(shí),參數(shù)β是人為設(shè)定的,具有較強(qiáng)主觀性,會(huì)影響實(shí)際融合的結(jié)果;
② 未考慮同一節(jié)點(diǎn)在觀測(cè)區(qū)間內(nèi)采集到數(shù)據(jù)的可信度,數(shù)據(jù)融合的精確度有待提高。
為了更可靠地評(píng)估節(jié)點(diǎn)數(shù)據(jù)間的支持度,提出一種改進(jìn)的支持度函數(shù)。
根據(jù)灰色接近度理論[8],定義節(jié)點(diǎn)i的自支持度si(k)為
(13)
式中,σi(k)為該節(jié)點(diǎn)的系統(tǒng)方差,其表達(dá)式為
(14)
式中,xi(k)為節(jié)點(diǎn)內(nèi)部融合值;xik(t)為節(jié)點(diǎn)i在第k個(gè)采樣周期內(nèi)經(jīng)過(guò)異常剔除后的采樣值。
改進(jìn)的支持度函數(shù)為
(15)
節(jié)點(diǎn)間的相互支持度矩陣為
(16)
節(jié)點(diǎn)i獲得其他(n-1)個(gè)節(jié)點(diǎn)的總支持度為
(17)
對(duì)總支持度進(jìn)行歸一化處理,得到節(jié)點(diǎn)i的最優(yōu)融合權(quán)值為
(18)
由此可得融合后該組傳感器在此采樣周期內(nèi)的最優(yōu)估計(jì)值為
(19)
設(shè)計(jì)了一套無(wú)線傳感器網(wǎng)絡(luò),并于2016年8月在廣州白云現(xiàn)代農(nóng)業(yè)示范基地內(nèi)的一座溫室大棚進(jìn)行了測(cè)試實(shí)驗(yàn)。該系統(tǒng)包括7個(gè)無(wú)線傳感器節(jié)點(diǎn)。
在實(shí)驗(yàn)中,節(jié)點(diǎn)每隔30 s采集一次數(shù)據(jù)。然后以5 min為周期,將各節(jié)點(diǎn)連續(xù)的10個(gè)值作為節(jié)點(diǎn)內(nèi)融合的輸入,輸出作為各節(jié)點(diǎn)在該周期內(nèi)的估計(jì)值發(fā)送,以進(jìn)行節(jié)點(diǎn)間的數(shù)據(jù)融合。與融合前需要發(fā)送的數(shù)據(jù)量相比,融合后的數(shù)據(jù)傳輸次數(shù)減少了90%,這可以有效減少節(jié)點(diǎn)無(wú)線通信的能耗,因此可以有效地延長(zhǎng)網(wǎng)絡(luò)的生命周期。
傳感器節(jié)點(diǎn)在某5 min內(nèi)采集的溫度值如下:
a1=[36.4,34.0,34.3,34.6,34.8,34.7,37.4,35.4,36.0,36.5];
a2=[36.0,32.3,35.0,34.2,34.5,35.5,35.3,35.6,35.6,35.9];
a3=[36.2,34.9,32.5,35.0,34.1,33.8,37.5,34.9,35.4,36.2];
a4=[36.8,31.4,34.6,34.3,35.8,34.8,34.1,35.0,35.8,37.0];
a5=[35.9,32.0,33.9,34.5,36.0,35.0,34.0,35.3,35.0,36.4];
a6=[34.5,36.2,36.6,35.1,34.7,40.9,33.3,34.2,35.8,34.9];
a7=[34.9,36.9,37.9,35.4,35.1,40.5,34.8,34.6,35.3,36.5];
經(jīng)過(guò)異常剔除后,得
b1=[36.4,34.0,34.3,34.6,34.8,34.7,35.4,36.0,36.5];
b2=[36.0,35.0,34.5,35.5,35.3,35.6,35.6,35.9];
b3=[36.2,34.9,35.0,34.1,33.8,34.9,35.4,36.2];
b4=[34.6,34.3,35.8,34.8,34.1,35.0,35.8];
b5=[35.9,33.9,34.5,36.0,35.0,34.0,35.3,35.0,36.4];
b6=[34.5,36.2,36.6,35.1,34.7,34.2,35.8,34.9];
b7=[34.9,36.9,35.4,35.1,34.8,34.6,35.3,36.5];
實(shí)驗(yàn)顯示,溫度差值均未超過(guò)2.5 ℃,因此本文采用的自適應(yīng)閾值法能夠準(zhǔn)確有效地檢驗(yàn)出數(shù)據(jù)的異常,保證后續(xù)融合數(shù)據(jù)的可靠性。
利用計(jì)算機(jī)隨機(jī)生成一系列(35±2.5)℃的隨機(jī)數(shù)據(jù)。數(shù)據(jù)共有100組,每組包含10個(gè)數(shù)值。分別利用遞推最小二乘法和算術(shù)平均法對(duì)每組數(shù)據(jù)進(jìn)行融合。采用遞推最小二乘法和算術(shù)平均法融合后的均方誤差分別為0.1956和0.1958。與一階卡爾曼濾波相比,遞推最小二乘法的計(jì)算量減少46.15%。可見(jiàn),遞推最小二乘法在減少運(yùn)算復(fù)雜度的同時(shí),仍然能夠保證融合結(jié)果的較高準(zhǔn)確性。
新型支持度函數(shù)的特征曲線如圖3所示。根據(jù)本次實(shí)驗(yàn)各節(jié)點(diǎn)內(nèi)部融合值及其系統(tǒng)方差可知,改進(jìn)支持度函數(shù)的特征曲線位于D(a,b,1,0.5)與D(a,b,1,1)之間。實(shí)驗(yàn)中溫度傳感器的測(cè)量誤差在 0.5 ℃左右。由圖3可知,函數(shù)值在誤差為0~0.5 ℃范圍內(nèi)時(shí),衰減速度較緩;在誤差為0.5~2 ℃范圍內(nèi)迅速衰減。這符合溫度傳感器的測(cè)量誤差以及各點(diǎn)溫度差值變化,因此能夠在加權(quán)融合算法中顯著地增加有效數(shù)據(jù)的權(quán)重,同時(shí)盡可能地減小誤差偏大的數(shù)據(jù)對(duì)融合結(jié)果的影響。
圖3 新型支持度函數(shù)特征曲線圖
上述7組數(shù)據(jù)的融合結(jié)果如表1所示。
表1 部分?jǐn)?shù)據(jù)融合結(jié)果
在該周期內(nèi),各節(jié)點(diǎn)的系統(tǒng)方差分別為:0.7588,0.2094,0.6598,0.3898,0.6899,0.6425,0.5998。經(jīng)過(guò)融合后的系統(tǒng)方差為0.1520??梢?jiàn),所提出的算法可以獲得高精度的估計(jì)值。
在實(shí)驗(yàn)中,將高精度溫度計(jì)讀數(shù)作為真值,與改進(jìn)后的融合值對(duì)比,其對(duì)比圖如圖4所示,融合后的均方誤差為0.1597??芍岢龅幕诟倪M(jìn)卡爾曼濾波和支持度的WSN數(shù)據(jù)融合算法能夠有效地反映溫度參數(shù)變化情況,且在實(shí)際應(yīng)用中融合結(jié)果準(zhǔn)確可靠。
圖4 本文算法融合值與真值對(duì)比圖
本文提出了一種基于遞推最小二乘法和改進(jìn)支持度的WSN數(shù)據(jù)融合算法,并對(duì)其進(jìn)行了實(shí)驗(yàn)驗(yàn)證。結(jié)果表明:自適應(yīng)閾值函數(shù)能夠有效剔除異常數(shù)據(jù);基于遞推最小二乘法以及改進(jìn)支持度函數(shù)的數(shù)據(jù)融合算法可以有效減少數(shù)據(jù)傳輸和計(jì)算量,且融合后的數(shù)據(jù)精度能夠滿足實(shí)際應(yīng)用要求。