周俊華,雷孟飛,梁曉東
(湖南聯(lián)智科技股份有限公司,湖南 長(zhǎng)沙 410000)
在物聯(lián)網(wǎng)傳感技術(shù)領(lǐng)域,經(jīng)常需要用到各種各樣的傳感器對(duì)物理世界進(jìn)行感知,傳感器的一般原理是將現(xiàn)實(shí)世界的物理量通過(guò)各種手段變?yōu)殡妼W(xué)量,通過(guò)標(biāo)定物理量和電學(xué)量之間的對(duì)應(yīng)關(guān)系后,則可以通過(guò)測(cè)量電學(xué)量的值反推出被測(cè)物理量。
現(xiàn)實(shí)世界中的很多物理量在一定的條件限制下,具有限定的變化趨勢(shì),如隨著時(shí)間的變化,松軟地面的沉降呈現(xiàn)出遞增趨勢(shì),混合液體中易揮發(fā)組分的含量會(huì)呈現(xiàn)遞減趨勢(shì)。對(duì)于這些具有明確呈遞增或遞減變化趨勢(shì)的物理量,其真實(shí)值只有可能在變化趨勢(shì)內(nèi)單向變化,而因傳感器的原理及其精度等因素的制約,會(huì)出現(xiàn)部分測(cè)量的原始數(shù)據(jù)不符合已知的變化趨勢(shì)的問(wèn)題,這種明顯的錯(cuò)誤在數(shù)據(jù)展示的時(shí)候是不能出現(xiàn)的。
常用的處理方法為通過(guò)多個(gè)同類型的傳感器一起測(cè)量,然后采用數(shù)據(jù)融合的算法得到融合結(jié)果[1],但是目前針對(duì)不同信息的融合算法仍然缺乏合適的評(píng)價(jià)體系[2];另外基于成本考慮,單傳感器的系統(tǒng)目前仍然在大量采用[3];廣大學(xué)者對(duì)單傳感器的數(shù)據(jù)處理方法也進(jìn)行了很多研究,一般的處理技術(shù)可分為基于統(tǒng)計(jì)、基于最近鄰、基于聚類等方法[4];另外也可基于傳感器的系統(tǒng)誤差原理,通過(guò)濾波的方式進(jìn)行處理[5],比如曾金芳提出了基于最大熵方法的數(shù)據(jù)處理[3],宋強(qiáng)提出了極大似然法的數(shù)據(jù)處理等[6]。
筆者認(rèn)為對(duì)于該類原始數(shù)據(jù),其處理具有一定的特殊性。由于事物的“真值”是不可得的,只能通過(guò)不斷地提高測(cè)量精度逼近,所以對(duì)于傳感器所測(cè)量的每一個(gè)原始數(shù)據(jù),都不能隨意地篡改或者剔除,更不能簡(jiǎn)單地采用擬合或者其他的算法對(duì)整個(gè)原始數(shù)據(jù)做替換處理。本文基于可信傳感器測(cè)量得到的每一個(gè)數(shù)據(jù),以及使曲線符合限定的變化趨勢(shì)的原則提出一種數(shù)據(jù)處理方法,該方法能夠通過(guò)剔除最少的數(shù)據(jù)個(gè)數(shù)來(lái)滿足上述需求。
在原始數(shù)據(jù)中選取n(n≥3)個(gè)連續(xù)的原始數(shù)據(jù)作為一個(gè)處理窗口進(jìn)行數(shù)據(jù)處理,窗口隨時(shí)間依次往后推移,最終實(shí)現(xiàn)對(duì)所有數(shù)據(jù)的處理。
假設(shè)處理窗口內(nèi)原始數(shù)據(jù)滿足函數(shù)關(guān)系式Y(jié)=F(xi),其中i=1, 2,...,n,n為處理窗口內(nèi)原始數(shù)據(jù)的總數(shù)量。找出處理窗口內(nèi)不符合已知限定變化趨勢(shì)的個(gè)別原始數(shù)據(jù)記為問(wèn)題數(shù)據(jù)點(diǎn),且問(wèn)題數(shù)據(jù)對(duì)應(yīng)的序號(hào)為jk,其中k=1, 2,...,m,m為問(wèn)題數(shù)據(jù)的總數(shù)量;如果有連續(xù)p個(gè)數(shù)據(jù)不符合變化趨勢(shì)的則只記錄為一個(gè)問(wèn)題數(shù)據(jù)點(diǎn),同時(shí)引入?yún)?shù)tk,tk=p-1。
對(duì)于序號(hào)為jk的問(wèn)題數(shù)據(jù)點(diǎn)分別判斷其前后相鄰的原始數(shù)據(jù)是否符合處理窗口內(nèi)原始數(shù)據(jù)的變化趨勢(shì),若在序號(hào)為jk的問(wèn)題數(shù)據(jù)之前相鄰的原始數(shù)據(jù)有不符合的,記為事件Jk1并統(tǒng)計(jì)事件包含的問(wèn)題數(shù)據(jù)個(gè)數(shù),若在序號(hào)為jk的問(wèn)題數(shù)據(jù)之后相鄰的原始數(shù)據(jù)有不符合的,記為事件并統(tǒng)計(jì)事件包含的問(wèn)題數(shù)據(jù)個(gè)數(shù)。
變化趨勢(shì)受限定則說(shuō)明數(shù)據(jù)滿足呈遞增變化趨勢(shì)或遞減變化趨勢(shì),遞增量(即后一個(gè)大數(shù)減去前一個(gè)小數(shù)的值)或遞減量(即前一個(gè)大數(shù)減去后一個(gè)小數(shù)的值)大于等于0。
(1)若處理窗口內(nèi)的原始數(shù)據(jù)的變化趨勢(shì)為遞增變化趨勢(shì),則:
如果F(xj)≥F(xj-2),則處理窗口內(nèi)序號(hào)jk之前的原始數(shù)據(jù)已經(jīng)符合遞增變化趨勢(shì),事件Jk1包含的問(wèn)題數(shù)據(jù)個(gè)數(shù)為剔除的數(shù)據(jù)數(shù)量加上tk。
如果F(xj)<F(xj-2),取jk=jk-1,若jk-1>jk-2,則返回步驟①;若jk-1≤jk-2,則結(jié)束,刪除小于等于jk且大于jk-1之間的所有數(shù)據(jù)。
如果F(xj+1)≥F(xj-1),則處理窗口內(nèi)序號(hào)jk之后且序號(hào)jk+1之前的原始數(shù)據(jù)已經(jīng)符合遞增變化趨勢(shì),事件包含的問(wèn)題數(shù)據(jù)個(gè)數(shù)為剔除的數(shù)據(jù)數(shù)量。
如果F(xj+1)<F(xj-1),取jk=jk+1,若jk+1<jk+1,則返回步驟①;若jk+1≥jk+1,則結(jié)束,刪除大于等于jk且小于jk+1之間的所有數(shù)據(jù)。
(2)若處理窗口內(nèi)的原始數(shù)據(jù)的變化趨勢(shì)為遞減變化趨勢(shì),則:
①對(duì)于Jk1事件,具體是:剔除序號(hào)為jk-1的問(wèn)題數(shù)據(jù);判斷序號(hào)為jk-2的原始數(shù)據(jù)Y=F(xj-2)與序號(hào)為jk原始數(shù)據(jù)Y=F(xj)的關(guān)系。
如果F(xj)≤F(xj-2),則處理窗口內(nèi)序號(hào)jk之前的原始數(shù)據(jù)已經(jīng)符合遞減變化趨勢(shì),事件包含的問(wèn)題數(shù)據(jù)個(gè)數(shù)為剔除的數(shù)據(jù)數(shù)量加上tk;
如果F(xj)>F(xj-2),取jk=jk-1,若jk-1>jk-1,則返回步驟①;若jk-1≤jk-1,則結(jié)束,刪除小于等于jk且大于jk-1之間的所有數(shù)據(jù)。
如果F(xj+1)≤F(xj-1),則處理窗口內(nèi)序號(hào)jk之后且序號(hào)jk+1之前的原始數(shù)據(jù)已經(jīng)符合遞減變化趨勢(shì),事件包含的問(wèn)題數(shù)據(jù)個(gè)數(shù)為剔除的數(shù)據(jù)數(shù)量;
如果F(xj+1)>F(xj-1),取jk=jk+1,若jk+1<jk+1,則返回步驟①;若jk+1≥jk+1,則結(jié)束,刪除大于等于jk且小于jk+1之間的所有數(shù)據(jù)。
若上述不存在多組A值相等的情況,則所得數(shù)據(jù)為最終保留數(shù)據(jù);若上述存在至少兩組A值相等的情況,則分別記為Ap,p為1, 2,...,q,q為A值相等的總組數(shù)。對(duì)多組A值相等的數(shù)據(jù)采用線性方程最小二乘法進(jìn)行數(shù)據(jù)擬合,結(jié)合偏差平方和來(lái)進(jìn)行輔助判斷,如下:
對(duì)原始數(shù)據(jù)函數(shù)Y=F(xi)進(jìn)行擬合,得到擬合函數(shù)Yi=f(xi)=a'xi+b',其中i=1, 2,...,n,求出a'和b'的值。
比較σ2p值之間的大小,選取數(shù)值最小的偏差平方和作為最優(yōu)解,所述最優(yōu)解對(duì)應(yīng)的數(shù)據(jù)剔除方案為最優(yōu)方案,采用最優(yōu)方案剔除數(shù)據(jù)后得到最終保留數(shù)據(jù)為最佳處理結(jié)果。
采用激光測(cè)距儀測(cè)量一處具有沉降趨勢(shì)的淤泥堆積場(chǎng)的表面高度變化情況,由于淤泥具有沉降趨勢(shì),所以測(cè)量數(shù)據(jù)應(yīng)該呈現(xiàn)限定的遞增變化趨勢(shì)。原始數(shù)據(jù)見(jiàn)表1所列。
表1 原始數(shù)據(jù)表
在原始數(shù)據(jù)中選取n=24(n≥3)個(gè)連續(xù)的原始數(shù)據(jù)作為一個(gè)處理窗口進(jìn)行處理,窗口內(nèi)不符合原始數(shù)據(jù)變化趨勢(shì)的數(shù)據(jù)點(diǎn)為j1=7,j2=15和j3=20,且t1=0,t2=0,t3=1。
(1)對(duì)于J11事件,剔除序號(hào)為j1-1=7-1=6的問(wèn)題數(shù)據(jù)之后,判斷序號(hào)為j1-2=7-2=5的原始數(shù)據(jù)Y=F(xj-2)=F(x5)與序號(hào)為j1=7的原始數(shù)據(jù)Y=F(xj)=F(x7)的關(guān)系。
因F(x7)≥F(x5),所以處理窗口內(nèi)序號(hào)j1=7之前的原始數(shù)據(jù)已經(jīng)符合遞增變化趨勢(shì),事件包含的問(wèn)題數(shù)據(jù)個(gè)數(shù)為1。
(2)對(duì)于J12事件,剔除序號(hào)為j1=7的問(wèn)題數(shù)據(jù)之后,判斷序號(hào)為j1+1=7+1=8的原始數(shù)據(jù)Y=F(xj+1)=F(x8)與序號(hào)為j1-1=7-1=6的原始數(shù)據(jù)Y=F(xj-1)=F(x6)的關(guān)系。
因F(x8)<F(x6),所以繼續(xù)剔除序號(hào)為j1+1=7+1=8的問(wèn)題數(shù)據(jù),判斷序號(hào)為j1+2=7+2=9的原始數(shù)據(jù)Y=F(xj+2)=F(x9)與序號(hào)為j1-1=7-1=6的原始數(shù)據(jù)Y=F(xj-1)=F(x6)的關(guān)系。
因F(x9)≥F(x6),則處理窗口內(nèi)序號(hào)j1=7之后且序號(hào)j2=15之前的原始數(shù)據(jù)已經(jīng)符合遞增變化趨勢(shì),事件J12包含的問(wèn)題數(shù)據(jù)個(gè)數(shù)為2。
依此類推,分別判斷序號(hào)為j2和j3的問(wèn)題數(shù)據(jù)的情況,求得 :J11=1,J12=2,J21=1,J22=1,J31=3,J32=2。
將上述的事件J11,J12,J21,J22,J31和J32包含的問(wèn)題數(shù)據(jù)個(gè)數(shù)按照表達(dá)式A=min(J11,J12)+min(J21,J22)+min(J31,J32)=min(J11,J21,J32)=min(J11,J22,J32)=1+1+2=4計(jì)算出最少問(wèn)題數(shù)據(jù)個(gè)數(shù)A,得到相應(yīng)的剔除問(wèn)題數(shù)據(jù)最少的方案。由于有兩種方案得到的A值相等,所以繼續(xù)進(jìn)行后續(xù)的處理判斷。
對(duì)處理窗口內(nèi)的原始數(shù)據(jù)采用線性方程最小二乘法進(jìn)行數(shù)據(jù)擬合,得到擬合函數(shù)Yi=f(xi)=a'xi+b',其中i=1, 2,..., 24;求出a'=0.133 7和b'=5.378 3。
上述兩組A值相等的情況分別記為。
比較σ12和σ22值的大小,選取數(shù)值最小的偏差平方和σ22作為最優(yōu)解,所述最優(yōu)解對(duì)應(yīng)的數(shù)據(jù)剔除方案為最優(yōu)方案,采用最優(yōu)方案剔除數(shù)據(jù)后得到最終保留數(shù)據(jù)為最佳處理結(jié)果,如圖1所示。
基于剔除最小數(shù)據(jù)量的原則進(jìn)行受特定變化趨勢(shì)限制的單傳感器的數(shù)據(jù)處理,通過(guò)采用平滑窗口的方法依次處理所有數(shù)據(jù),采用直觀選取不符合變化趨勢(shì)的數(shù)據(jù)并通過(guò)窮舉法結(jié)合排列組合選出剔除數(shù)據(jù)量最小的方案,對(duì)于存在多種情況得到剔除同樣數(shù)據(jù)量的方法,則繼續(xù)利用線性方程最小二乘法擬合并分別求取偏差平方和的方法,比較其離散程度,選取較小的值對(duì)應(yīng)的方案作為最佳處理方法。結(jié)果表明,使用該方法能夠通過(guò)剔除較少的誤差數(shù)據(jù)使受特定變化趨勢(shì)限制的傳感器數(shù)據(jù)符合變化趨勢(shì),并且曲線整體變化平穩(wěn),可信度較高。本文方法能有效地解決現(xiàn)有技術(shù)中存在的因傳感器測(cè)量得到的部分?jǐn)?shù)據(jù)不符合已知變化趨勢(shì)的問(wèn)題。