劉陳男,羅 恒,2
(1.蘇州科技大學(xué) 電子與信息工程學(xué)院,江蘇 蘇州 215000;2.江蘇省建筑智慧節(jié)能重點(diǎn)實(shí)驗(yàn)室,江蘇 蘇州 215000)
近年來(lái),隨著人們對(duì)室內(nèi)環(huán)境健康和舒適性的關(guān)注度不斷提高,室內(nèi)環(huán)境數(shù)據(jù)采集在研究和實(shí)踐中變得越來(lái)越重要,進(jìn)行室內(nèi)環(huán)境數(shù)據(jù)采集可以保障人們的健康和安全,提高室內(nèi)環(huán)境的舒適度和節(jié)能效率,以及優(yōu)化室內(nèi)空間布局和設(shè)計(jì),讓人們?cè)谑覂?nèi)獲得更好的使用體驗(yàn)和感受[1]。室內(nèi)溫濕度,光照度,二氧化碳濃度等指標(biāo)是影響室內(nèi)環(huán)境的關(guān)鍵因素。
對(duì)于以時(shí)間序列來(lái)進(jìn)行采集的室內(nèi)環(huán)境數(shù)據(jù)[2]。最常見的是以分鐘為單位進(jìn)行多次采集,采集的密度高種類多,隨著時(shí)間的推移,越來(lái)越多的環(huán)境數(shù)據(jù)會(huì)堆疊,數(shù)據(jù)的復(fù)雜程度和數(shù)量會(huì)大幅提高。數(shù)據(jù)融合是指將來(lái)自不同數(shù)據(jù)源[3]、不同傳感器或不同模態(tài)的數(shù)據(jù)進(jìn)行整合、分析和處理的過(guò)程。在國(guó)外,數(shù)據(jù)融合的研究已經(jīng)有數(shù)十年的歷史,主要應(yīng)用于軍事、情報(bào)、醫(yī)療、環(huán)境監(jiān)測(cè)等領(lǐng)域。數(shù)據(jù)融合技術(shù)已經(jīng)發(fā)展出多種方法和算法,例如基于貝葉斯網(wǎng)絡(luò)的數(shù)據(jù)融合[4]、基于神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)融合等[5]。通常的傳感器數(shù)據(jù)融合本質(zhì)是物理量融合,指對(duì)多個(gè)傳感器測(cè)量得到的相同物理量進(jìn)行融合,如溫度、濕度、二氧化碳濃度等。但在實(shí)際生活中,一個(gè)普通的室內(nèi)空間有著不止一類傳感器,而且同種類傳感器的數(shù)量也是有限的,以溫濕度傳感器為例,溫濕度的變化過(guò)程是比較緩慢的,假設(shè)按照固定的采樣頻率進(jìn)行采樣,會(huì)產(chǎn)生冗余數(shù)據(jù)并且加重了網(wǎng)絡(luò)傳輸?shù)呢?fù)荷,所以傳感器的數(shù)據(jù)融合成為了研究的重點(diǎn)。文獻(xiàn)[6]研究了基于卡爾曼濾波算法的溫室數(shù)據(jù)采集系統(tǒng),通過(guò)在溫室中放置多個(gè)相同種類的傳感器監(jiān)測(cè)溫度及濕度,對(duì)多個(gè)同種類的傳感器數(shù)據(jù)進(jìn)行靜態(tài)的數(shù)據(jù)融合,提高了數(shù)據(jù)采集的準(zhǔn)確性。文獻(xiàn)[7]設(shè)計(jì)了在礦井中利用多個(gè)同種類傳感器對(duì)瓦斯數(shù)據(jù),一氧化碳濃度,粉塵濃度進(jìn)行分批估計(jì)和自適應(yīng)加權(quán),對(duì)監(jiān)測(cè)數(shù)據(jù)進(jìn)行融合。數(shù)據(jù)融合技術(shù)在環(huán)境數(shù)據(jù)處理和分析中具有十分廣泛的應(yīng)用前景。
針對(duì)各種數(shù)據(jù)融合算法的提出,已經(jīng)在融合精度和復(fù)雜度方面取得了一定的提高。然而,這些算法都是在對(duì)同一空間的多個(gè)傳感器的數(shù)據(jù)進(jìn)行橫向融合的基礎(chǔ)上實(shí)現(xiàn)的。實(shí)際應(yīng)用中,數(shù)據(jù)采集是以時(shí)間為單位的,采集的密度也很高。因此,將這些數(shù)據(jù)融合算法應(yīng)用于基于時(shí)間序列的數(shù)據(jù)融合會(huì)帶來(lái)相對(duì)較高的計(jì)算復(fù)雜性。為了降低數(shù)據(jù)傳輸量并提高融合數(shù)據(jù)的準(zhǔn)確性,可以采用縱向融合,即將基于時(shí)間序列的數(shù)據(jù)用卡爾曼濾波算法進(jìn)行數(shù)據(jù)融合[8]。然而,傳統(tǒng)的卡爾曼數(shù)據(jù)融合算法存在一個(gè)問(wèn)題,當(dāng)測(cè)量數(shù)據(jù)出現(xiàn)異常時(shí),可能會(huì)導(dǎo)致最終結(jié)果出現(xiàn)不同程度的波動(dòng)。因此,本文的重點(diǎn)研究?jī)?nèi)容在于如何處理異常值和缺失數(shù)據(jù),以進(jìn)一步提高數(shù)據(jù)融合算法的準(zhǔn)確性和可靠性。對(duì)此問(wèn)題的研究將有助于更好地利用基于時(shí)間序列的數(shù)據(jù),為各種實(shí)際應(yīng)用提供更好的數(shù)據(jù)融合解決方案。
進(jìn)行室內(nèi)溫度數(shù)據(jù)采集的系統(tǒng)包括溫度數(shù)據(jù)監(jiān)測(cè)功能和數(shù)據(jù)處理功能,系統(tǒng)結(jié)構(gòu)如圖1所示,系統(tǒng)包含三部分:終端節(jié)點(diǎn),網(wǎng)關(guān)節(jié)點(diǎn)和云服務(wù)器。LoRa終端節(jié)點(diǎn)中的STM32主控芯片控制DS18B20溫度傳感器采集室內(nèi)實(shí)時(shí)的溫度數(shù)據(jù),并通過(guò)串口將測(cè)量得到的溫度數(shù)據(jù)經(jīng)由LoRaWAN網(wǎng)絡(luò)傳輸?shù)絃oRa網(wǎng)關(guān)節(jié)點(diǎn),網(wǎng)關(guān)節(jié)點(diǎn)將其他由終端節(jié)點(diǎn)傳輸過(guò)來(lái)的溫度數(shù)據(jù)進(jìn)行匯總,由STM32主控芯片處理后通過(guò)4 G模塊上傳到云服務(wù)器進(jìn)行保存[9]。云服務(wù)器上掛載的Python數(shù)據(jù)處理程序?qū)⒔邮盏降臄?shù)據(jù)按照程序內(nèi)部邏輯進(jìn)行有規(guī)律的儲(chǔ)存和分析,最后再進(jìn)行數(shù)據(jù)融合。
圖1 系統(tǒng)整體結(jié)構(gòu)圖
網(wǎng)關(guān)節(jié)點(diǎn)和終端節(jié)點(diǎn)使用STM32F103RCT6作為主控芯片,并通過(guò)SX1278射頻芯片進(jìn)行LoRa網(wǎng)絡(luò)通信。終端節(jié)點(diǎn)由LoRa模塊、主控芯片和各種不同類型的傳感器構(gòu)成,這些傳感器采集環(huán)境數(shù)據(jù)并將其傳輸?shù)街骺匦酒?,最后通過(guò)LoRa模塊進(jìn)行發(fā)送。網(wǎng)關(guān)節(jié)點(diǎn)的LoRa模塊接收到數(shù)據(jù)后,通過(guò)STM32主控芯片將所有傳感器數(shù)據(jù)經(jīng)由4 G模塊發(fā)送到云服務(wù)器。通過(guò)這種方式,環(huán)境數(shù)據(jù)可以在云端進(jìn)行進(jìn)一步處理和分析,例如生成報(bào)告和制定決策等。在這個(gè)系統(tǒng)中,LoRa網(wǎng)絡(luò)通信技術(shù)被廣泛應(yīng)用,其具有較遠(yuǎn)的傳輸距離、較低的功耗和高度的可靠性等優(yōu)點(diǎn),能夠滿足室內(nèi)環(huán)境數(shù)據(jù)采集和傳輸?shù)囊?。同時(shí),STM32F103RCT6主控芯片具有高性能、低功耗和豐富的外設(shè)接口等特點(diǎn),為該系統(tǒng)的高效運(yùn)行提供了保障。
主控芯片STM32F103RCT6是由ST公司開發(fā),基于ARM Cortex-M3內(nèi)核,可以采用I2C,SPI,UART/USART等通信協(xié)議和外設(shè)模塊進(jìn)行數(shù)據(jù)傳輸。其內(nèi)置了48 K的RAM,256 K的FLASH,包括電源電路,晶振電路和復(fù)位電路,最高主頻可達(dá)72 MHz,滿足絕大部分的使用場(chǎng)景。
LoRa是一種基于擴(kuò)頻技術(shù)的低功耗、長(zhǎng)距離、低速率的無(wú)線通信技術(shù),它是低功耗廣域網(wǎng)(LPWAN)中的一種。使用頻率偏移調(diào)制(FSK)或擴(kuò)頻技術(shù)在無(wú)線電頻段發(fā)送數(shù)據(jù)包[10]。與其他低功耗無(wú)線通信技術(shù)相比,它具有更長(zhǎng)的通信范圍和更長(zhǎng)的電池壽命。它可以在數(shù)公里范圍內(nèi)傳輸數(shù)據(jù),同時(shí)保持非常低的功耗,這使得LoRa非常適合需要低速、低功耗和長(zhǎng)距離通信的應(yīng)用,如智能城市、智能家居、物聯(lián)網(wǎng)等。本系統(tǒng)使用SX1278射頻芯片通過(guò)SPI協(xié)議與STM32進(jìn)行數(shù)據(jù)傳輸。LoRa模塊的電路原理圖如圖2所示。
圖2 LoRa模塊電路原理圖
溫度采集模塊選取的是DS18B20傳感器,由于它采用的是單線通信協(xié)議[11],所以只需要一條數(shù)據(jù)線就可以實(shí)現(xiàn)數(shù)據(jù)的傳輸和控制,并且輸出數(shù)字信號(hào),便于數(shù)字化系統(tǒng)處理和數(shù)據(jù)傳輸。測(cè)量范圍在-55 ℃到+125 ℃,精度可以達(dá)到±0.5 ℃。DS18B20模塊的電路原理圖如圖3所示。
圖3 DS18B20模塊電路原理圖
為了避免在終端節(jié)點(diǎn)與網(wǎng)關(guān)節(jié)點(diǎn)進(jìn)行通信時(shí)出現(xiàn)主動(dòng)發(fā)送數(shù)據(jù)、信道搶占和互相干擾的情況,導(dǎo)致數(shù)據(jù)傳輸過(guò)程中出現(xiàn)差錯(cuò),采用了一種基于星型拓?fù)浣Y(jié)構(gòu)構(gòu)造的LoRa組網(wǎng)結(jié)構(gòu)。在該結(jié)構(gòu)中,整個(gè)LoRa網(wǎng)絡(luò)中的各終端節(jié)點(diǎn)通過(guò)點(diǎn)對(duì)點(diǎn)的方式連接到一個(gè)中央節(jié)點(diǎn),即LoRa網(wǎng)關(guān)。這種構(gòu)造方式可以避免終端節(jié)點(diǎn)之間的干擾,保證數(shù)據(jù)傳輸?shù)姆€(wěn)定性。同時(shí),終端節(jié)點(diǎn)和網(wǎng)關(guān)節(jié)點(diǎn)之間的交互方式采用了輪詢方式,使得通信過(guò)程更加高效和可靠。
在LoRa終端節(jié)點(diǎn)首次上電后,STM32主控芯片會(huì)對(duì)串口進(jìn)行使能以及SPI接口進(jìn)行初始化。通過(guò)使用C語(yǔ)言編程開發(fā),并借助Keil5軟件,對(duì)STM32主程序進(jìn)行開發(fā)。通過(guò)SPI接口發(fā)送AT指令對(duì)各節(jié)點(diǎn)的LoRa模塊進(jìn)行初始化并配置不同的地址和信道。這樣可以在網(wǎng)關(guān)節(jié)點(diǎn)上區(qū)分不同傳感器設(shè)備上傳的環(huán)境數(shù)據(jù),同時(shí)也減少了傳輸過(guò)程中可能出現(xiàn)的錯(cuò)誤數(shù)據(jù)。在主控芯片程序中,還定義了一些自定義函數(shù)用于傳感器的初始化,并在收到網(wǎng)關(guān)節(jié)點(diǎn)發(fā)出的喚醒指令后,采集實(shí)時(shí)的環(huán)境數(shù)據(jù)。該數(shù)據(jù)隨后通過(guò)USART串口發(fā)送到主控芯片,主控芯片接收到數(shù)據(jù)后再將其按照固定的格式封裝成數(shù)據(jù)幀,并發(fā)送到網(wǎng)關(guān)節(jié)點(diǎn)[12]。LoRa終端節(jié)點(diǎn)的軟件流程圖如圖4所示。
圖4 終端節(jié)點(diǎn)軟件流程圖
在網(wǎng)關(guān)節(jié)點(diǎn)首次上電后,STM32主控芯片對(duì)4 G模塊發(fā)送AT指令進(jìn)行初始化配置,其中包括設(shè)置4 G模塊的傳輸模式和服務(wù)器的地址端口號(hào)等,同樣,需要對(duì)LoRa通信模塊配置地址和信道。STM32主控芯片的程序流程為將喚醒指令通過(guò)LoRa網(wǎng)關(guān)依次發(fā)給終端節(jié)點(diǎn),再接收LoRa終端上傳的傳感器數(shù)據(jù),接收完成后在主程序中進(jìn)行數(shù)據(jù)幀格式的判斷,保證數(shù)據(jù)的正確性和完整性。確認(rèn)數(shù)據(jù)無(wú)誤后,將接收到的數(shù)據(jù)通過(guò)4 G模塊發(fā)送給服務(wù)器進(jìn)行進(jìn)一步的數(shù)據(jù)預(yù)處理和算法過(guò)濾。LoRa網(wǎng)關(guān)節(jié)點(diǎn)的軟件流程圖如圖5所示。
圖5 網(wǎng)關(guān)節(jié)點(diǎn)軟件流程圖
卡爾曼濾波算法是一種高效率的遞歸濾波器,其主要應(yīng)用于估計(jì)動(dòng)態(tài)系統(tǒng)的狀態(tài),尤其是從一系列包含噪聲的測(cè)量中。該算法采用信號(hào)與噪聲的狀態(tài)空間模型[13],通過(guò)利用前一時(shí)刻的估計(jì)值和當(dāng)前時(shí)刻的觀測(cè)值來(lái)更新對(duì)狀態(tài)變量的估計(jì),從而計(jì)算出當(dāng)前時(shí)刻的估計(jì)值。由于其精度高、效率高和可靠性強(qiáng)等特點(diǎn),卡爾曼濾波算法已經(jīng)廣泛應(yīng)用于諸多領(lǐng)域,包括航空航天、自動(dòng)控制、信號(hào)處理等。其本質(zhì)是由量測(cè)值來(lái)重構(gòu)系統(tǒng)的狀態(tài)向量,以“預(yù)測(cè)—實(shí)測(cè)—修正”的順序遞歸來(lái)消除隨機(jī)干擾[14],逐步實(shí)現(xiàn)達(dá)到最優(yōu)估計(jì)的效果。
一般形式下的卡爾曼狀態(tài)空間方程為:
狀態(tài)方程:
Xt=AXt-1+BUt+Wt
(1)
觀測(cè)方程:
Yt=HXt+Vt
(2)
在上述的狀態(tài)方程和觀測(cè)方程中,Xt為t時(shí)刻的系統(tǒng)狀態(tài),Xt-1為上一時(shí)刻的系統(tǒng)狀態(tài),Ut為系統(tǒng)在t時(shí)刻的輸入信號(hào),Wt為系統(tǒng)在t時(shí)刻的過(guò)程噪聲,Vt為t時(shí)刻的觀測(cè)噪聲,A為狀態(tài)轉(zhuǎn)移矩陣,B為控制矩陣,H為觀測(cè)矩陣。由卡爾曼的狀態(tài)方程和t-1時(shí)刻的最優(yōu)估計(jì)值可得出t時(shí)刻的預(yù)測(cè)值,也就是先驗(yàn)估計(jì)為:
(3)
對(duì)應(yīng)的先驗(yàn)估計(jì)協(xié)方差為:
(4)
式中,Q的對(duì)應(yīng)的過(guò)程噪聲Wt的方差,為了得到當(dāng)前t時(shí)刻的最優(yōu)估計(jì)值Xt,需要結(jié)合公式(2)和(3)得出t時(shí)刻的最優(yōu)估計(jì)值,也就是后驗(yàn)估計(jì)值Xt,其公式為:
(5)
在計(jì)算出t時(shí)刻的最優(yōu)估計(jì)值后,需要對(duì)卡爾曼算法進(jìn)行迭代運(yùn)算,要更新上式中的卡爾曼增益Kt和Xt所對(duì)應(yīng)的后驗(yàn)估計(jì)協(xié)方差Pt,卡爾曼增益Kt和后驗(yàn)估計(jì)協(xié)方差Pt的公式如下:
(6)
(7)
式中,R為觀測(cè)噪聲Vt的方差,I為單位矩陣。
在實(shí)際的應(yīng)用中,需要根據(jù)測(cè)量數(shù)據(jù)的實(shí)際情況進(jìn)行參數(shù)的設(shè)置。該算法的應(yīng)用場(chǎng)景是建筑物內(nèi)部的某個(gè)有流通性的空間,并不是一個(gè)密閉空間,所以會(huì)與外界的空間存在熱量交換導(dǎo)致的過(guò)程噪聲[15],室內(nèi)的環(huán)境屬于一維系統(tǒng),將一般的卡爾曼濾波方程改造成一維狀態(tài)下的卡爾曼濾波方程,其中A=H=1,由于整個(gè)系統(tǒng)沒(méi)有控制量,Ut=0,過(guò)程噪聲Wt和觀測(cè)噪聲Vt對(duì)應(yīng)的方差分別是Q和R,R由測(cè)量?jī)x器的精度決定,Q一般設(shè)置為一個(gè)確定的值,取值越接近0,融合的曲線越光滑。初值X0可以取0或者初始的測(cè)量值。在一般情況下,初始協(xié)方差P0的值越小代表初始的估計(jì)較好。
4.3.1 孤立森林算法
在一個(gè)相對(duì)穩(wěn)定的數(shù)據(jù)采集環(huán)境中,傳統(tǒng)的卡爾曼濾波算法可以獲得一個(gè)較為理想的數(shù)據(jù)融合結(jié)果。然而,由于周圍環(huán)境的突然改變或傳感器本身的機(jī)械故障等原因,異常值或缺失值可能會(huì)出現(xiàn),導(dǎo)致傳統(tǒng)的卡爾曼濾波算法出現(xiàn)不同程度的波動(dòng)。為了解決此類問(wèn)題,引入孤立森林算法對(duì)原始數(shù)據(jù)進(jìn)行預(yù)處理[16],再利用卡爾曼數(shù)據(jù)融合算法進(jìn)行融合,從而得到更加準(zhǔn)確的融合結(jié)果。孤立森林算法是一種基于Ensemble的快速離群點(diǎn)檢測(cè)方法,具有線性時(shí)間復(fù)雜度和高精度。該算法不依賴于距離、密度等量化指標(biāo)來(lái)比較樣本之間的差異。它使用孤立樹iTree[17],這是一種結(jié)構(gòu)為二叉搜索樹的孤立樹,用于孤立樣本。由于異常值數(shù)量較少,樣本疏離度高等特征,異常值可以在樣本中被早期孤立出來(lái)。因此,通過(guò)使用孤立森林算法預(yù)處理數(shù)據(jù),可以更好地提高卡爾曼數(shù)據(jù)融合算法的融合效果,從而獲得更加準(zhǔn)確的融合結(jié)果。
該算法的大致流程可以分為兩個(gè)步驟,第一步是構(gòu)建出孤立樹組成孤立森林,具體過(guò)程如下:
對(duì)需要被測(cè)量的對(duì)象進(jìn)行多次測(cè)量,得到的數(shù)據(jù)集可表示為:
X={x1,x2,x3,…,xn}
(8)
從X數(shù)據(jù)集中隨機(jī)選擇ψ個(gè)樣本點(diǎn)并將其作為數(shù)據(jù)集X的子集X′放入根節(jié)點(diǎn)后,需要在數(shù)據(jù)集的m個(gè)維度中隨機(jī)選擇一個(gè)維度q,在當(dāng)前數(shù)據(jù)集中隨機(jī)選擇一個(gè)切割點(diǎn)p,以便滿足以下條件:
Min(xij,j=q)
(9)
以隨機(jī)選擇的切割點(diǎn)p生成一個(gè)超平面。該超平面將數(shù)據(jù)空間劃分成為兩個(gè)子空間,其中小于p的樣本點(diǎn)被指定為左子節(jié)點(diǎn),大于或等于p的樣本點(diǎn)被指定為右子節(jié)點(diǎn)。然后,遞歸地隨機(jī)選擇一個(gè)維度和一個(gè)點(diǎn)p,并重復(fù)上述操作,直到所有葉子節(jié)點(diǎn)都只有一個(gè)數(shù)據(jù)或達(dá)到了預(yù)設(shè)的iTree高度。最后,上述操作會(huì)循環(huán)執(zhí)行,直到生成T個(gè)iTree。然后使用這些iTree來(lái)預(yù)測(cè)數(shù)據(jù)的異常分?jǐn)?shù),并據(jù)此識(shí)別異常值。
第二步是將每個(gè)樣本點(diǎn)帶入孤立森林中的每棵孤立樹,以此來(lái)計(jì)算每個(gè)樣本點(diǎn)的異常值分?jǐn)?shù)和平均高度。其具體過(guò)程如下:
在獲得T個(gè)iTree后,對(duì)每一個(gè)數(shù)據(jù)xi,讓這個(gè)數(shù)據(jù)遍歷每一棵iTree,從而計(jì)算xi在森林中的平均高度h(xi),對(duì)所有的數(shù)據(jù)點(diǎn)的平均高度做歸一化處理。異常值分?jǐn)?shù)的計(jì)算公式如下所示:
s(x,ψ)=2E(h(x))/c(ψ)
(10)
s(x,ψ)代表記錄數(shù)據(jù)xi在ψ個(gè)樣本中的訓(xùn)練數(shù)據(jù)構(gòu)成的iTree的異常指數(shù),其中:
(11)
H(k)=lnk+ζ,ζ=0.5772156649
(12)
當(dāng)異常值被識(shí)別出,為了保證數(shù)據(jù)質(zhì)量和完整性,提高數(shù)據(jù)的可用性,避免誤導(dǎo)性分析,可以通過(guò)對(duì)異常點(diǎn)周圍數(shù)據(jù)取平均值來(lái)替代異常點(diǎn)數(shù)據(jù)來(lái)保證數(shù)據(jù)的完整性。
4.3.2 融合算法步驟
改進(jìn)的卡爾曼數(shù)據(jù)融合算法步驟如下:
1)將原始的室內(nèi)溫度數(shù)據(jù)導(dǎo)入孤立森林算法中,利用孤立森林算法識(shí)別異常數(shù)據(jù),并用平均值算法代替原始數(shù)據(jù)中的異常數(shù)據(jù)。
2)確定卡爾曼濾波算法的參數(shù),設(shè)置狀態(tài)轉(zhuǎn)移矩陣A,控制矩陣B,觀測(cè)矩陣H的值和X0,P0的初始值。
3)使用卡爾曼濾波算法對(duì)采樣數(shù)據(jù)進(jìn)行迭代運(yùn)算,得到數(shù)據(jù)融合的結(jié)果。
選取南方2月份一個(gè)學(xué)校內(nèi)的教室進(jìn)行為期一天的室內(nèi)溫度數(shù)據(jù)采集,每隔三分鐘進(jìn)行一次采樣,一小時(shí)會(huì)得到20個(gè)室內(nèi)溫度數(shù)據(jù),24小時(shí)可以得到480個(gè)采樣數(shù)據(jù),分別使用平均值法,傳統(tǒng)的卡爾曼數(shù)據(jù)融合算法和改進(jìn)的卡爾曼數(shù)據(jù)融合算法按小時(shí)對(duì)480個(gè)室內(nèi)溫度數(shù)據(jù)進(jìn)行融合,融合成為24個(gè)數(shù)據(jù)。
使用平均值法[18]、傳統(tǒng)的卡爾曼數(shù)據(jù)融合算法以及改進(jìn)的卡爾曼數(shù)據(jù)融合算法對(duì)采樣數(shù)據(jù)進(jìn)行了融合。如圖6所示,融合結(jié)果反映了一天內(nèi)室內(nèi)氣溫的變化趨勢(shì)。在下午2點(diǎn)到3點(diǎn)期間,室內(nèi)溫度達(dá)到最高點(diǎn)。3種方法在融合趨勢(shì)方面大致相同,但都存在微小的突變。然而,與平均值算法和傳統(tǒng)的卡爾曼數(shù)據(jù)融合算法相比,改進(jìn)的卡爾曼數(shù)據(jù)融合算法的突變程度更低,更加符合室內(nèi)溫度緩慢變化的客觀規(guī)律。這表明改進(jìn)的算法在數(shù)據(jù)融合方面具有更好的性能,能夠更準(zhǔn)確地反映室內(nèi)氣溫的變化。
圖6 3種方法的原始數(shù)據(jù)融合曲線
為了驗(yàn)證改進(jìn)的卡爾曼數(shù)據(jù)融合算法的性能,在原始的室內(nèi)溫度采集數(shù)據(jù)中添加了擾動(dòng)樣本和畸變數(shù)據(jù)[19-21]。擾動(dòng)樣本是指對(duì)原始數(shù)據(jù)進(jìn)行隨機(jī)增加或減少的操作,以模擬真實(shí)世界中可能出現(xiàn)的干擾情況。而畸變數(shù)據(jù)則是通過(guò)將原始數(shù)據(jù)設(shè)置為最大或最小值,來(lái)產(chǎn)生異常數(shù)據(jù)。這些異常數(shù)據(jù)的具體設(shè)置如表1所示,旨在考察算法在面對(duì)不同程度的干擾和異常數(shù)據(jù)時(shí)的魯棒性和性能表現(xiàn)。通過(guò)這些實(shí)驗(yàn),能更全面地評(píng)估改進(jìn)的卡爾曼數(shù)據(jù)融合算法的性能。
表1 設(shè)置的異常數(shù)據(jù)
將設(shè)置的8個(gè)異常數(shù)據(jù)替換原始數(shù)據(jù),將帶有異常值的480個(gè)數(shù)據(jù)帶入孤立森林算法進(jìn)行判別,異常數(shù)據(jù)均被識(shí)別成功并賦予了新的值,并且估計(jì)值與原始數(shù)據(jù)的誤差控制在-0.47~0.44,如表2所示。
表2 異常數(shù)據(jù)的估計(jì)值
對(duì)添加了擾動(dòng)樣本和畸變數(shù)據(jù)的采樣數(shù)據(jù)分別采用平均值法、傳統(tǒng)的卡爾曼濾波算法和改進(jìn)的卡爾曼濾波算法進(jìn)行融合結(jié)果的比較,帶有擾動(dòng)樣本的融合結(jié)果對(duì)比如圖7所示,同時(shí)對(duì)3種方法的融合誤差也進(jìn)行比較,如表3所示。帶有畸變數(shù)據(jù)的融合結(jié)果對(duì)比如圖8所示,3種方法的融合誤差如表4所示。
表3 3種融合方法帶有擾動(dòng)樣本的誤差
表4 3種融合方法帶有畸變數(shù)據(jù)的誤差
圖7 3種方法帶有擾動(dòng)樣本的融合曲線
圖8 3種方法帶有畸變數(shù)據(jù)的融合曲線
由圖7和表3可得,在4個(gè)時(shí)間點(diǎn)設(shè)置的擾動(dòng)樣本,平均值法均有較大程度的波動(dòng),平均值法的誤差在-0.6~0.29的大范圍變化,傳統(tǒng)的卡爾曼數(shù)據(jù)融合算法在-0.17~0.56之間波動(dòng),相較于平均值法,波動(dòng)范圍已經(jīng)縮小,而改進(jìn)的卡爾曼數(shù)據(jù)融合算法波動(dòng)范圍控制在-0.12~0.1之間,基本上不受擾動(dòng)樣本的干擾。
通過(guò)觀察圖8和表4可以得出,畸變數(shù)據(jù)對(duì)數(shù)據(jù)融合結(jié)果的影響遠(yuǎn)大于擾動(dòng)樣本的影響。在12點(diǎn)和17點(diǎn),平均值法和傳統(tǒng)的卡爾曼數(shù)據(jù)融合算法都出現(xiàn)了較大程度的變化。然而,通過(guò)改進(jìn)后的卡爾曼濾波算法處理畸變數(shù)據(jù),由于孤立森林算法能夠準(zhǔn)確地識(shí)別和替換畸變數(shù)據(jù),融合誤差范圍在-0.03至0.14之間。相比之下,平均值法的誤差范圍在-0.99至0.95之間,傳統(tǒng)的卡爾曼濾波算法的誤差范圍在-1.11至0.36之間。
綜合以上實(shí)驗(yàn)結(jié)果,可以得出改進(jìn)的卡爾曼數(shù)據(jù)融合算法在處理類似于擾動(dòng)樣本和畸變數(shù)據(jù)等異常數(shù)據(jù)時(shí),不會(huì)出現(xiàn)融合值的突變,能夠獲得較為平滑的融合效果,融合曲線也更加平緩。因此,改進(jìn)后的卡爾曼數(shù)據(jù)融合算法具有較強(qiáng)的魯棒性,能夠更加穩(wěn)定和可靠的處理異常數(shù)據(jù)。
本研究采用了LoRa無(wú)線通信模塊和傳感器組成了室內(nèi)環(huán)境數(shù)據(jù)采集系統(tǒng)來(lái)監(jiān)測(cè)室內(nèi)溫度數(shù)據(jù)的變化。由于室內(nèi)溫度數(shù)據(jù)變化緩慢,并且是在同一空間下的基于時(shí)間序列的數(shù)據(jù),所以提出了一種應(yīng)用在一維線性空間中的改進(jìn)的卡爾曼濾波算法。經(jīng)過(guò)實(shí)驗(yàn)驗(yàn)證,該算法可以規(guī)避擾動(dòng)樣本和畸變數(shù)據(jù)帶來(lái)的影響,提高了融合算法的魯棒性,能夠更加準(zhǔn)確的掌握室內(nèi)溫度的變化。