本發(fā)明涉及檢測技術(shù)領(lǐng)域,特別是一種基于預(yù)測的及時加權(quán)傳感器網(wǎng)絡(luò)數(shù)據(jù)融合方法。
背景技術(shù):
本發(fā)明提出一種基于預(yù)測的及時加權(quán)傳感器網(wǎng)絡(luò)數(shù)據(jù)融合方法。由于單個傳感器節(jié)點采集的數(shù)據(jù)可能存在誤差,因此通常需要在廣闊空間中的多個位置布置多個傳感器節(jié)點,并通過網(wǎng)絡(luò)進(jìn)行相聯(lián)以形成傳感器網(wǎng)絡(luò)。結(jié)合傳感器網(wǎng)絡(luò)中所有傳感器節(jié)點所采集的信息,并進(jìn)行綜合判斷以得出最終的結(jié)果,這一過程被稱為傳感器網(wǎng)絡(luò)的數(shù)據(jù)融合,所采用的方法即為傳感器網(wǎng)絡(luò)的數(shù)據(jù)融合方法。由于傳統(tǒng)傳感器網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)融合時,通常要等到所有傳感器節(jié)點的數(shù)據(jù)都被匯聚節(jié)點所接收后,才能在匯聚節(jié)點上通過計算得出最終的融合結(jié)果,這事實上減慢了系統(tǒng)刷新的速率,降低了實時性。
技術(shù)實現(xiàn)要素:
有鑒于此,本發(fā)明的目的是提出一種基于預(yù)測的及時加權(quán)傳感器網(wǎng)絡(luò)數(shù)據(jù)融合方法,提高了數(shù)據(jù)融合方法的及時性以及準(zhǔn)確性。
本發(fā)明采用以下方案實現(xiàn):一種基于預(yù)測的及時加權(quán)傳感器網(wǎng)絡(luò)數(shù)據(jù)融合方法,具體包括以下步驟:
步驟S1:初始化處理:初始化融合決策值R0,采用全部節(jié)點的平均值作為初始融合決策值R0,具體采用下式:
其中,R0為初始化融合決策值,r0i為傳感節(jié)點i在初始化階段的檢測匯報值,n為場景中傳感節(jié)點總數(shù);
步驟S2:初始化每個傳感加權(quán)值ω0i:
采用下式計算每個傳感節(jié)點的加權(quán)值ω0i:
ω0i=ωiP+Δω0i;
其中,ωiP為比例加權(quán)因子,它在初始化后幾乎不變,是整個權(quán)值的重要參與因素;Δω0i為初始化時的積分加權(quán)因子,也即時刻0時的積分加權(quán)因子,其在系統(tǒng)運(yùn)行的過程中被動態(tài)調(diào)節(jié),從而提高系統(tǒng)的自適應(yīng)特性;所述初始化積分加權(quán)因子Δω0i的值為0;
步驟S3:進(jìn)入實時檢測:通過Kalman濾波器預(yù)測:在獲得了t-1時刻的融合值Rt-1后,系統(tǒng)通過Kalman濾波器預(yù)測t時刻的數(shù)據(jù)融合值Et,從而為后續(xù)的及時時間控制做出準(zhǔn)備;
步驟S4:計算數(shù)據(jù)融合結(jié)果:在t時刻,每收到一個傳感節(jié)點i的匯報rti時都按下式計算粗略融合結(jié)果R’t:
其中,k為當(dāng)前獲得的報告的傳感節(jié)點的總數(shù),k<n,n為場景中所有傳感節(jié)點的個數(shù),ωti為t時刻傳感節(jié)點i的加權(quán)值,rti為t時刻傳感節(jié)點i的報告數(shù)據(jù);
步驟S5:設(shè)置一個閾值λ,當(dāng)粗略結(jié)果R’t與Kalman濾波器預(yù)測的結(jié)果Et之間的差小于閾值λ時,即:
||Et-Rt′||<λ;
將粗略結(jié)果R’t作為t時刻的數(shù)據(jù)融合最終結(jié)果值Rt,并結(jié)束t時刻的數(shù)據(jù)融合計算,停止接收其他傳感節(jié)點的后續(xù)報告;
S6:根據(jù)新獲得的數(shù)據(jù)融合結(jié)果Rt,按下式修正加權(quán)值:
ωti=ωiP+Δωti;
其中,ωiP為比例加權(quán)因子,它在初始化后幾乎不變,是整個權(quán)值的重要參與因素;Δωti為t時刻的積分加權(quán)因子,其在系統(tǒng)運(yùn)行的過程中被動態(tài)調(diào)節(jié),從而提高系統(tǒng)的自適應(yīng)特性;令t=t+1,并返回步驟S3,進(jìn)入下一時刻的計算。
進(jìn)一步地,步驟S2中,所述比例加權(quán)因子ωiP的計算在系統(tǒng)初始化確定了R0后進(jìn)行,依據(jù)各節(jié)點采集值與R0之間的差確定,計算式如下:
di=||r0i-R0||;
di-norm=δ·(1-di/dmax);
其中,di表示傳感節(jié)點i的匯報值與初始化融合值R0之間的差,di-norm為將di進(jìn)行標(biāo)準(zhǔn)化操作得到的值,dmax為測試場景中最大的di值,δ為用戶指定的數(shù)值調(diào)整系數(shù),μ、σ為正態(tài)分布函數(shù)的參數(shù),由用戶指定。
進(jìn)一步地,步驟S5中,t時刻的積分加權(quán)因子Δωti依賴于t時刻傳感節(jié)點i的匯報值rti與融合值Rt之間的差值:
dti=||rti-Rt||;
其中,rti為時刻t傳感節(jié)點i的匯報值,Rt為時刻t計算出的融合值,計算出的dti為兩者之間的差值;將所有的dti從小到大進(jìn)行排序,并設(shè)定調(diào)整參數(shù)ε,當(dāng)與傳感節(jié)點i對應(yīng)的dti位于隊列的前ε位時,對應(yīng)的Δωti可獲得增量γ的獎勵,即:
Δωti=Δω(t-1)i+γ;
當(dāng)與傳感節(jié)點i對應(yīng)的dti位于隊列的后ε位時,對應(yīng)的Δωti可獲得減量γ的懲罰,即:
Δωti=Δω(t-1)i-γ。
進(jìn)一步地,所述傳感節(jié)點由任意一種微控制器作為中央處理器構(gòu)成,包括模擬或數(shù)字轉(zhuǎn)換器及相應(yīng)的傳感器器件,并通過有線或無線的方式組成傳感器網(wǎng)絡(luò)。
進(jìn)一步地,有線組網(wǎng)方式采用:RS-485總線、CAN總線、工業(yè)以太網(wǎng)或常規(guī)以太網(wǎng)方式;無線組網(wǎng)方式采用:ZigBee蜂窩式網(wǎng)絡(luò)協(xié)議、2.4G RF射頻網(wǎng)絡(luò)方式、無線以太網(wǎng)WiFi方式或移動通信3G/4G網(wǎng)絡(luò)方式。
與現(xiàn)有技術(shù)相比,本發(fā)明有以下有益效果:本發(fā)明數(shù)據(jù)融合方法采用加權(quán)投票機(jī)制,給被懷疑準(zhǔn)確性較低的傳感節(jié)點賦予較低的權(quán)值,使其在最終結(jié)果中的參與度下降,以達(dá)到提高最終結(jié)果精確度的目的。但這種權(quán)值也不是一成不變的,權(quán)值通過比例和積分兩種因子調(diào)節(jié),比例因子在初始化時設(shè)定并在此后一段較長的時間內(nèi)不改變,積分因子起調(diào)節(jié)作用,通過評估每次決策中傳感節(jié)點的表現(xiàn)來動態(tài)調(diào)整每個節(jié)點的權(quán)值。本發(fā)明還通過預(yù)測機(jī)制來提高數(shù)據(jù)融合的及時性,傳統(tǒng)方法在融合時需要收集完全部傳感節(jié)點的上報數(shù)據(jù)后才能得出結(jié)果;本發(fā)明采用歷史數(shù)據(jù)通過Kalman濾波器對下一時刻的數(shù)據(jù)進(jìn)行預(yù)測,匯聚節(jié)點每收到一個傳感數(shù)據(jù)就計算一個,當(dāng)計算的結(jié)果與預(yù)測結(jié)果的差值小于預(yù)設(shè)閾值時,就可以不必再等待其余傳感節(jié)點的后續(xù)報告而直接得出下一時刻最終融合結(jié)果,從而以犧牲少量精確度的代價換取更高的及時性,使本發(fā)明所提出的融合算法可被應(yīng)用于實時性要求高的應(yīng)用中。
附圖說明
圖1為本發(fā)明實施例的方法流程示意圖。
圖2為本發(fā)明實施例中室內(nèi)傳感器網(wǎng)絡(luò)節(jié)點布置示意圖。
圖3為本發(fā)明實施例中一種傳感器節(jié)點結(jié)構(gòu)圖。
具體實施方式
下面結(jié)合附圖及實施例對本發(fā)明做進(jìn)一步說明。
本實施例提供了一種基于預(yù)測的及時加權(quán)傳感器網(wǎng)絡(luò)數(shù)據(jù)融合方法。
如圖2所示的傳感器網(wǎng)絡(luò)布置用于測量室內(nèi)的溫度,智能家居控制系統(tǒng)依此通過暖氣片和空調(diào)來調(diào)節(jié)室內(nèi)的溫度以到設(shè)定值。從圖2中可以看出,靠近暖氣片的傳感節(jié)點受到其熱輻射的影響,其所測溫度偏高,而這一溫度顯然是偏離屋內(nèi)平均溫度較多的,這一現(xiàn)象我們可以將其稱作執(zhí)行機(jī)構(gòu)的干擾作用;而靠近窗口的傳感節(jié)點,由于空氣的流通作用,其所測溫度偏低,這一現(xiàn)象我們可以將其稱作環(huán)境的干擾作用。這些現(xiàn)象在人們?nèi)粘I罴肮まr(nóng)業(yè)生產(chǎn)中極為常見,例如距離空調(diào)近的位置空氣較冷,距離抽濕機(jī)較近的位置空氣較干燥。這些測量值的準(zhǔn)確程度都較低,如果將其平等地納入考慮范圍,即將所有傳感節(jié)點采樣的平均值直接作為最終結(jié)果,則獲得的最終結(jié)果的準(zhǔn)確度將較低,因此需要使用專門的數(shù)據(jù)融合算法來得到最終的結(jié)果。
本實施例數(shù)據(jù)融合方法采用加權(quán)投票機(jī)制,給被懷疑準(zhǔn)確性較低的傳感節(jié)點賦予較低的權(quán)值,使其在最終結(jié)果中的參與度下降,以達(dá)到提高最終結(jié)果精確度的目的。但這種權(quán)值也不是一成不變的,權(quán)值通過比例和積分兩種因子調(diào)節(jié),比例因子在初始化時設(shè)定并在此后一段較長的時間內(nèi)不改變,積分因子起調(diào)節(jié)作用,通過評估每次決策中傳感節(jié)點的表現(xiàn)來動態(tài)調(diào)整每個節(jié)點的權(quán)值。本實施例還通過預(yù)測機(jī)制來提高數(shù)據(jù)融合的及時性,傳統(tǒng)方法在融合時需要收集完全部傳感節(jié)點的上報數(shù)據(jù)后才能得出結(jié)果;本實施例采用歷史數(shù)據(jù)通過Kalman濾波器對下一時刻的數(shù)據(jù)進(jìn)行預(yù)測,匯聚節(jié)點每收到一個傳感數(shù)據(jù)就計算一個,當(dāng)計算的結(jié)果與預(yù)測結(jié)果的差值小于預(yù)設(shè)閾值時,就可以不必再等待其余傳感節(jié)點的后續(xù)報告而直接得出下一時刻最終融合結(jié)果,從而以犧牲少量精確度的代價換取更高的及時性,使本實施例所提出的融合算法可被應(yīng)用于實時性要求高的應(yīng)用中。
因此本實施例一種基于預(yù)測的及時加權(quán)傳感器網(wǎng)絡(luò)數(shù)據(jù)融合方法的計算流程有如下幾個步驟(如圖1所示):
1.初始化融合決策值R0:
初始化時由于沒有任何歷史數(shù)據(jù)可供利用,且初始化的結(jié)果需要為第二步的預(yù)測提供依據(jù),本實施例采用全部節(jié)點的平均值作為初始融合決策值R0。計算式如下式(1)所示:
其中R0為初始化融合決策值,r0i為傳感節(jié)點i在初始化階段的檢測匯報值,n為場景中傳感節(jié)點總數(shù)。在實際使用中,通常要反復(fù)測試求平均值,例如連續(xù)進(jìn)行10次試驗,求得對應(yīng)的R0,并取這10次實驗所得R0的平均值作為初始化值R0。由于初始化過程是在系統(tǒng)正式運(yùn)行前完成的,所以多次實驗并不會影響到系統(tǒng)運(yùn)行時的實時性。
2.計算每個傳感節(jié)點的初始加權(quán)值ω0i:
本實施例每個傳感節(jié)點的加權(quán)值由比例加權(quán)因子及積分加權(quán)因子兩部分構(gòu)成,如下式所示:
ω0i=ωiP+Δω0i
(2)
其中ωiP為比例加權(quán)因子,它在初始化后幾乎不變,是整個權(quán)值的重要參與因素;Δω0i為初始化時的積分加權(quán)因子,也即時刻0時的積分加權(quán)因子,其在系統(tǒng)運(yùn)行的過程中被動態(tài)調(diào)節(jié),從而提高系統(tǒng)的自適應(yīng)特性;所述初始化積分加權(quán)因子Δω0i的值為0。
本實施例中比例加權(quán)因子ωiP的計算在系統(tǒng)初始化確定了R0后進(jìn)行,依據(jù)各節(jié)點采集值與R0之間的差確定,計算式如下:
di=||r0i-R0||
(3)
di-norm=δ·(1-di/dmax)
(4)
其中式(3)計算了傳感節(jié)點i的匯報值與初始化融合值R0之間的差,通常r0i也需要多次采樣取平均,而這多次采樣的值直接利用計算R0時所采用的r0i值即可;接著式(4)用于將di進(jìn)行標(biāo)準(zhǔn)化操作得到di-norm,式中dmax為測試場景中最大的di值,δ為用戶指定的數(shù)值調(diào)整系數(shù);隨后,通過式(5)中正態(tài)分布函數(shù)的映射,得到比例加權(quán)因子ωiP,μ、σ為正態(tài)分布函數(shù)的參數(shù),由用戶指定。
而積分加權(quán)因子Δωi在系統(tǒng)運(yùn)行后每個時刻t計算得出融合值Rt后都會被刷新,從而使得加權(quán)總值ωi在系統(tǒng)運(yùn)行時具有自適應(yīng)性。Δωti的計算依賴于t時刻傳感節(jié)點i的匯報值rti與融合值Rt之間的差值:
dti=||rti-Rt||
(6)
其中rti為時刻t傳感節(jié)點i的匯報值,Rt為時刻t計算出的融合值,計算出的dti為兩者之間的差值。將所有的dti從小到大進(jìn)行排序,并設(shè)定調(diào)整參數(shù)ε,當(dāng)與傳感節(jié)點i對應(yīng)的dti位于隊列的前ε位時,對應(yīng)的Δωti可獲得增量γ的獎勵,即:
Δωti=Δω(t-1)i+γ
(7)
當(dāng)與傳感節(jié)點i對應(yīng)的dti位于隊列的后ε位時,對應(yīng)的Δωti可獲得減量γ的懲罰,即:
Δωti=Δω(t-1)i-γ
(8)
其中參數(shù)ε和γ都由工程師依據(jù)現(xiàn)場實際情況指定。系統(tǒng)在時刻t獲得融合值Rt后刷新所有傳感器節(jié)點的加權(quán)值ωi,這些新的ωi值將被用于下一時刻t+1時的數(shù)據(jù)融合。在式(2)中通常比例加權(quán)因子的值要大于積分加權(quán)因子,采用這一機(jī)制可使傳感器節(jié)點的加權(quán)值在擁有一定事實基礎(chǔ)的情況下隨著環(huán)境情況變化不斷微調(diào),即便在初始化時候有誤差,也能在運(yùn)行的過程中通過比例加權(quán)因子的不斷作用逐漸彌補(bǔ)。
3.通過Kalman濾波器預(yù)測:
在獲得了t-1時刻的融合值Rt-1后,系統(tǒng)可以通過Kalman濾波器預(yù)測t時刻的數(shù)據(jù)融合值Et,從而為后續(xù)的及時時間控制做出準(zhǔn)備。本實施例所采用的Kalman濾波器預(yù)測算法為最常使用的公知算法,主要通過預(yù)測和修正兩個步驟進(jìn)行向前預(yù)測,標(biāo)準(zhǔn)運(yùn)行過程如下所述:
算法利用系統(tǒng)的過程模型,來預(yù)測下一狀態(tài)的系統(tǒng)。假設(shè)現(xiàn)在的系統(tǒng)狀態(tài)是k,根據(jù)系統(tǒng)的模型,可以基于系統(tǒng)的上一狀態(tài)而預(yù)測出現(xiàn)在狀態(tài):
X(k|k-1)=A·X(k-1|k-1)+B·U(k)
(9)
式(9)中,X(k|k-1)是利用上一狀態(tài)預(yù)測的結(jié)果,X(k-1|k-1)是上一狀態(tài)最優(yōu)的結(jié)果,U(k)為現(xiàn)在狀態(tài)的控制量,如果沒有控制量,它可以為0。使用式(9)后,本實施例的系統(tǒng)結(jié)果已經(jīng)更新了,可是,對應(yīng)于X(k|k-1)的協(xié)方差矩陣還沒更新。本實施例用P表示協(xié)方差矩陣:
P(k|k-1)=A·P(k-1|k-1) ·A’+Q
(10)
式(10)中,P(k|k-1)是X(k|k-1)對應(yīng)的協(xié)方差矩陣,P(k-1|k-1)是X(k-1|k-1)對應(yīng)的協(xié)方差矩陣,A’表示A的轉(zhuǎn)置矩陣,Q是系統(tǒng)過程的協(xié)方差矩陣。式子(9)、(10)就是卡爾曼濾波器5個公式當(dāng)中的前兩個,也就是對系統(tǒng)的預(yù)測。
獲得現(xiàn)在狀態(tài)的預(yù)測結(jié)果后,可再收集現(xiàn)在狀態(tài)的測量值。結(jié)合預(yù)測值和測量值,本實施例可以得到現(xiàn)在狀態(tài)(k)的最優(yōu)化估算值X(k|k):
X(k|k)=X(k|k-1)+Kg(k)·(Z(k)-H·X(k|k-1))
(11)
其中Kg為卡爾曼增益(KalmanGain):
Kg(k)=P(k|k-1)·H’/(H·P(k|k-1)·H’+R)
(12)
目前為止,算法已經(jīng)得到了k狀態(tài)下最優(yōu)的估算值X(k|k)。但是為了要令卡爾曼濾波器不斷的運(yùn)行下去直到系統(tǒng)過程結(jié)束,本實施例還要更新k狀態(tài)下X(k|k)的協(xié)方差矩陣:
P(k|k)=(I-Kg(k)·H)·P(k|k-1)
(13)
其中I為1的矩陣,對于單模型單測量,I=1。當(dāng)系統(tǒng)進(jìn)入k+1狀態(tài)時,P(k|k)就是式子(10)的P(k-1|k-1)。這樣,算法就可以自回歸的運(yùn)算下去。以上就是卡爾曼濾波器算法的基本原理描述,式子(9)-(13)就是它的5個基本公式。根據(jù)這5個公式,可以很容易地實現(xiàn)計算機(jī)程序。
由于初始融合值R0已經(jīng)在初始化時候獲得,因此R1,R2,R3,…等后續(xù)值都可以通過上述卡爾曼濾波方法預(yù)測獲得。本實施例在已知t-1時刻的融合結(jié)果Rt-1后,在融合獲得t時刻的結(jié)果之前,先采用卡爾曼方法獲得t時刻的預(yù)測值Et,接著可以使用下文所述時間及時控制策略來縮短獲得最終結(jié)果所用的時間。
4.計算數(shù)據(jù)融合結(jié)果
本實施例在時刻t最終數(shù)據(jù)融合結(jié)果的計算采用節(jié)點加權(quán)投票的方式完成,而每個傳感節(jié)點i所對應(yīng)的權(quán)值ωti已按上述說明在t-1時刻取得,于是t時刻的融合結(jié)果可按下式計算:
其中k為當(dāng)前獲得的報告的傳感節(jié)點的總數(shù),因此k<n,n為場景中所有傳感節(jié)點的個數(shù)。
5.時間及時控制策略
由于本實施例屬于傳感檢測領(lǐng)域,該領(lǐng)域許多應(yīng)用對采集數(shù)據(jù)的實時性有較嚴(yán)苛的要求,不但要求數(shù)據(jù)有一定的精確性,還要求獲得數(shù)據(jù)刷新的時間要盡可能的短,為此本實施例提出一種基于預(yù)測的時間及時控制策略。通過上文第3點可以知道,使用Kalman濾波預(yù)測器可以利用歷史數(shù)據(jù)Rt獲得t時刻的結(jié)果預(yù)測值Et,但這只是預(yù)測并不能作為真實的結(jié)果。真實的結(jié)果需要通過式(14)進(jìn)行數(shù)據(jù)加權(quán)融合獲得。在傳統(tǒng)情況下,式(14)獲得最終的Rt結(jié)果需要等待場景中所有的傳感節(jié)點匯報完其在t時刻采集的數(shù)值后才能得到,即k=n;而每個傳感器節(jié)點i上報數(shù)據(jù)的時刻是不同的,本實施例要求系統(tǒng)在每收到一個傳感節(jié)點i的匯報ri時都計算式(14),并獲得粗略結(jié)果R’t,該結(jié)果只利用了部分傳感器節(jié)點的值獲得,因此精確度方面要稍遜于通過所有節(jié)點計算得到的結(jié)果Rt,但為了節(jié)約時間,本實施例設(shè)置了一個閾值λ,當(dāng)粗略結(jié)果R’t與Kalman濾波器預(yù)測的結(jié)果Et直接的差小于閾值λ時,即:
Et-Rt′||<λ
(15)
可以認(rèn)為粗略結(jié)果R’t與可能的真實決策值Rt之間的差異不大,可以近似替代使用。于是可將粗略結(jié)果R’t作為t時刻的數(shù)據(jù)融合最終結(jié)果值Rt,并結(jié)束t時刻的數(shù)據(jù)融合計算,進(jìn)入下一時刻t+1時刻的計算。本實施例上述時間及時控制策略,通過Kalman濾波器預(yù)測參考并指定閾值λ的方式,在可控范圍內(nèi)部分降低了結(jié)果的精確度,但顯著縮短了等待時間,提高了系統(tǒng)獲得數(shù)據(jù)的及時性。精確度和及時性之間的平衡關(guān)系由閾值λ調(diào)節(jié),該參數(shù)由工程師參照應(yīng)用的具體情況設(shè)定。
進(jìn)一步的,在本實施例中,傳感器網(wǎng)絡(luò)節(jié)點可由任意一種微控制器(Micro Control Unit,MCU)作為中央處理器構(gòu)成,包括模擬/數(shù)字轉(zhuǎn)換器及相應(yīng)的傳感器等器件,并通過有線或無線的方式組成傳感器網(wǎng)絡(luò)。有線組網(wǎng)方式可以采用:RS-485總線、CAN總線、工業(yè)以太網(wǎng)或常規(guī)以太網(wǎng)方式。無線組網(wǎng)方式可以采用:ZigBee蜂窩式網(wǎng)絡(luò)協(xié)議、2.4G RF射頻網(wǎng)絡(luò)方式、無線以太網(wǎng)WiFi方式或移動通信3G/4G網(wǎng)絡(luò)方式。
圖3即為本實施例可用的一種傳感器節(jié)點。該節(jié)點以美國德州儀器公司(TI)的無線傳感器網(wǎng)絡(luò)微控制器CC2530作為核心,并布置了溫度傳感器(Temperature sensor)和濕度傳感器(Humidity sensor),并可通過CC2530內(nèi)置的ZigBee無線協(xié)議模塊組成無線傳感器網(wǎng)絡(luò),信號發(fā)射通過50歐姆射頻天線(Antenna)實現(xiàn)。
以上所述僅為本發(fā)明的較佳實施例,凡依本發(fā)明申請專利范圍所做的均等變化與修飾,皆應(yīng)屬本發(fā)明的涵蓋范圍。