關(guān)鍵詞:數(shù)據(jù)采集;用電行為;云平臺;可視化
中圖分類號:TP391. 9;TN929. 5 文獻標(biāo)志碼:A 開放科學(xué)(資源服務(wù))標(biāo)識碼(OSID):
文章編號:1003-3106(2024)11-2710-08
0引言
隨著“雙碳”目標(biāo)的提出,提高能源效率是全社會關(guān)注的問題。根據(jù)用戶的用電數(shù)據(jù),分析了解用戶的用電行為規(guī)律,對不符合預(yù)期的用電行為進行異常判斷,從而提高能源效率,避免能源浪費。雖然目前智能電表已經(jīng)普及,但是智能電表一般安裝在總配電箱內(nèi),以通用分組無線服務(wù)(General PacketRadio Service,GPRS)技術(shù)實現(xiàn)遠程抄表[1],將用電數(shù)據(jù)傳送至供電公司。智能電表“一管總”的方式,對用戶而言,無法及時獲得實時用電數(shù)據(jù)而導(dǎo)致用戶無法對自己的用電行為進行有效學(xué)習(xí),當(dāng)出現(xiàn)異常的用電行為時也無法及時處理而導(dǎo)致能源浪費。
針對智能電表遠程抄表技術(shù),文獻[2]結(jié)合Long Range Wide Area Network(LoRaWAN)技術(shù),電量采集端由ESP32 控制Atmel M90E32AS 三相計量芯片,實現(xiàn)電能參數(shù)采集,915 MHz 頻段的射頻模塊和基于Semtech SX1278 收發(fā)器的遠距離無線電(Long Range Radio,LoRa)協(xié)議,傳輸數(shù)據(jù)到云服務(wù)器。文獻[3]結(jié)合ZigBee 網(wǎng)絡(luò)技術(shù),STM32 作為主控芯片來讀取ATM90E26 計量芯片采集到的電氣參數(shù),數(shù)據(jù)發(fā)送給CC2530 模塊,CC2530 模塊發(fā)送給網(wǎng)關(guān)模塊,最后通過LwIP (Light weight IP)協(xié)議把數(shù)據(jù)傳給服務(wù)器。文獻[4]設(shè)計了一個嵌入式系統(tǒng),監(jiān)測電氣參數(shù),利用WiFi 技術(shù)將傳感器遠程采集的數(shù)據(jù)傳輸?shù)介_發(fā)的網(wǎng)站上進行遠程監(jiān)控,WiFi傳輸速度較快,但傳輸距離不長。文獻[5]提出了一個稱為智能家居能源管理系統(tǒng),該系統(tǒng)的通信層使用ZigBee 作為通信協(xié)議,經(jīng)過驗證,可以實現(xiàn)家庭舒適、安全和節(jié)能的效果,但缺乏有關(guān)所用電計量裝置的信息。以上文獻用到的LoRa 和ZigBee 技術(shù)都需要部署網(wǎng)關(guān),而窄帶物聯(lián)網(wǎng)(Narrow BandInternet of Things,NB-IoT)無需額外部署網(wǎng)關(guān)[6]。文獻[7]設(shè)計基于NB-IoT 技術(shù)的遠程抄表采集系統(tǒng),通過實驗驗證了該系統(tǒng)即使在信號較差的環(huán)境下依然能夠穩(wěn)定運行,但此系統(tǒng)只應(yīng)用于單相電。以上研究通過不同的通信方式實現(xiàn)了用電信息的數(shù)據(jù)采集和上傳云服務(wù)器,但系統(tǒng)應(yīng)用場景比較單一且沒有對用電行為進行分析。異常檢測是指在數(shù)據(jù)中發(fā)現(xiàn)不符合預(yù)期行為模式的問題[8],通過識別用戶的異常用電行為,可以提高能源效率、節(jié)能減排[9-10]、減少能源支出、節(jié)約用電成本[11],實現(xiàn)有序用電和能源管理[12-13]。
基于以上考慮,本文設(shè)計了一種基于物聯(lián)網(wǎng)(Internet of Things,IoT)的實時異常用電行為監(jiān)測系統(tǒng),可以根據(jù)不同的用電場景進行部署,既可以采集單相電的電氣參數(shù),也可以采集三相電的電氣參數(shù)。以電能監(jiān)測芯片ATT7022E 和主控芯片STM32F103C8T6 為核心,監(jiān)測用電數(shù)據(jù),無線傳感模塊NB-IoT 定時將采集的電流、電壓和功率數(shù)據(jù)傳送至云平臺,云平臺對數(shù)據(jù)流轉(zhuǎn)和存儲;使用eXtreme Gradient Boosting(XGBoost)算法對異常用電行為進行判斷,并在Web 端進行數(shù)據(jù)管理、可視化和異常用電行為監(jiān)測。
1系統(tǒng)總體設(shè)計
1.1系統(tǒng)需求分析
本系統(tǒng)可以實時監(jiān)測用戶的用電數(shù)據(jù),并對用電數(shù)據(jù)進行用電行為分析,實現(xiàn)同時對用電數(shù)據(jù)和異常用電行為的事實監(jiān)測。通過用電數(shù)據(jù)分析,可以對用電行為中不科學(xué)、無效率的用電用能情況實時監(jiān)管,降低用戶能耗的同時,實現(xiàn)節(jié)能減排。實時監(jiān)測用戶的用電數(shù)據(jù)需要將用電數(shù)據(jù)采集終端采集的用電數(shù)據(jù)定時上傳云端以實現(xiàn)遠程監(jiān)測的功能。
由于用戶的配電箱電路已經(jīng)安裝固定完好,為了不破壞原來的線路和另外布線,將無線通信模塊集成在用電數(shù)據(jù)采集終端上,只需將終端接在空開的進線與出線處,即可實現(xiàn)對用電數(shù)據(jù)的監(jiān)測。目前,家庭用戶使用的是單相220 V 供電,但是企業(yè)的機械加工車間一般使用的是三相電380 V 的供電,因此,設(shè)計一款既可以采集單相電也可以采集三相電的終端非常必要。
1.2系統(tǒng)整體結(jié)構(gòu)
本系統(tǒng)主要從感知層、傳輸層、平臺層和應(yīng)用層設(shè)計實現(xiàn),系統(tǒng)的整體結(jié)構(gòu)如圖1 所示。感知層通過主控芯片實現(xiàn)對用戶的用電信息電壓、電流和功率等的采集,傳輸層實現(xiàn)用電數(shù)據(jù)的無線通信,平臺層實現(xiàn)用電數(shù)據(jù)的接收、流轉(zhuǎn)與存儲,應(yīng)用層對平臺層的數(shù)據(jù)進行Web端的應(yīng)用程序設(shè)計。
(1)感知層設(shè)計
既可實現(xiàn)對單相電也可以對三相電進行用電數(shù)據(jù)監(jiān)測的采集終端設(shè)備由電源電路、主控模塊、無線通信模塊和電能檢測模塊組成,采集用戶的電壓、電流和功率等參數(shù),無線通信模塊NB-IoT 通過消息隊列遙測傳輸(Message Queuing Telemetry Transport,MQTT)協(xié)議定時將采集的電流、電壓和功率數(shù)據(jù)傳送至云平臺,實現(xiàn)數(shù)據(jù)上云。
(2)平臺層設(shè)計
本系統(tǒng)所需要的應(yīng)用軟件全部部署在Docker容器里。Docker 容器主要由EMQX 服務(wù)器、Node-RED 服務(wù)器、關(guān)系型數(shù)據(jù)庫MySQL、engine x(Ngnix)服務(wù)器和Python 軟件組成。其中EMQX 服務(wù)器用于接收感知層發(fā)送的數(shù)據(jù);Node-Red 服務(wù)器實現(xiàn)數(shù)據(jù)的流轉(zhuǎn)與存儲到MySQL;Ngnix 服務(wù)器運行Web端的應(yīng)用程序,實現(xiàn)隨時隨地對Web 端的訪問;Py-thon 編寫用電行為學(xué)習(xí)算法的應(yīng)用程序。
(3)應(yīng)用層設(shè)計
對構(gòu)建好的Web 端程序和用電行為學(xué)習(xí)算法進行展示,實現(xiàn)隨時隨地監(jiān)測用電信息和用戶注冊登錄、查詢用電信息歷史數(shù)據(jù)、用電數(shù)據(jù)實時可視化以及異常用電行為預(yù)警。用戶只需要在瀏覽器輸入網(wǎng)址,登錄成功后,可實現(xiàn)對用電數(shù)據(jù)進行查看,通過電腦端可以直觀查看用電監(jiān)測信息。
2系統(tǒng)硬件設(shè)計
采集終端是整個系統(tǒng)基礎(chǔ)的部分,其采用模塊化的設(shè)計方法,采集終端的硬件組成如圖2 所示。下面主要對三相計量芯片采集電路進行介紹。
三相計量芯片采集電路是采集各相電氣參數(shù)的關(guān)鍵,因此采樣電路的設(shè)計非常重要。采集電路采用的ATT7022E 芯片是國產(chǎn)多功能高精度三相電能專用芯片,可以應(yīng)用于三相三線制和三相四線制電路,本系統(tǒng)選用的是三相四線的電路。三相四線制電路的設(shè)計將零線考慮進來,方便采集終端應(yīng)用不同的用電場景。一般情況下,采集終端安裝在待監(jiān)測區(qū)域或者設(shè)備的配電箱內(nèi),將空開的總進線接到采集終端的進線處,空氣開關(guān)的出線與采集終端的出線處相接。
三相計量芯片無法直接采樣各相的用電參數(shù),在采集用電參數(shù)之前需要使用電壓互感器和電流互感器,用于隔離較大的電壓和電流,對電路和芯片起到保護作用。下面對電壓互感器和電流互感器的電路設(shè)計做介紹,在此只介紹其中一相電壓采樣電路和電流采樣電路,其余兩相原理相同。ATT7022E芯片的電壓通道和電流通道采用完全差動輸入方式,輸入有效值為1~500 mV 時,測量誤差小于0.2% ,本系統(tǒng)ATT7022E 的電壓通道和電流通道的輸入有效值分別為約110、50 mV。電壓通道和電流通道的采樣電路如圖3 和圖4 所示。在電壓采樣電路中,需要電壓互感器將220 V 左右的市電轉(zhuǎn)換為低電壓信號,本系統(tǒng)選用電壓互感器的規(guī)格是1000∶1000、2 mA ∶2 mA,即電壓互感器兩端的電流信號等比例傳輸至采樣電阻R10和R3 兩端,圖3 中的V2P 和V2N 之間的電壓U2 計算如下:
電壓采樣電路和電流采樣電路中1.2 kΩ 的電阻和0.01 μF 的電容構(gòu)成了抗混疊濾波器,對信號進行濾波,以提高采樣精度。ATT7022E 芯片外圍電路設(shè)計如圖5 所示。
3系統(tǒng)軟件設(shè)計
本系統(tǒng)軟件設(shè)計遵循嵌入式軟件構(gòu)件化思想,將要實現(xiàn)的功能代碼封裝成函數(shù),只需要在主程序中調(diào)用相關(guān)函數(shù),從而簡化程序,增加代碼的可移植性,系統(tǒng)軟件設(shè)計整體框架如圖6 所示。
3.1采集終端軟件設(shè)計
采集終端設(shè)備上電后,主控芯片先對系統(tǒng)時鐘、中斷、定時器和串口進行初始化,對外設(shè)設(shè)備NB-IoT 無線通信模塊、三相計量芯片初始化,搜索網(wǎng)絡(luò),網(wǎng)絡(luò)連接成功后,以1 min 的間隔將各相電氣參數(shù)的數(shù)據(jù)通過串口方式發(fā)送無線通信模塊,無線通信模塊通過AT 指令連接云平臺,通過MQTT 協(xié)議將用電數(shù)據(jù)發(fā)送至云平臺,采集終端軟件工作流程如圖7 所示。
主控芯片與BC26 之間通過UART1 進行通信,串口通過AT 指令集對BC26 進行控制,BC26 工作流程如圖8 所示。BC26 入網(wǎng)成功后,開啟PSM 模式,等待定時器喚醒,之后向EMQX 服務(wù)器發(fā)送數(shù)據(jù)。BC26 與EMQX 服務(wù)器通過訂閱主題的方式實現(xiàn)數(shù)據(jù)通信。EMQX 服務(wù)器只需要訂閱主題,即可實現(xiàn)BC26 與EMQX 服務(wù)器之間通信。BC26 與EMQX 服務(wù)器之間實現(xiàn)數(shù)據(jù)收發(fā)的通信協(xié)議,選用的是MQTT 協(xié)議。MQTT 協(xié)議以JavaScript ObjectNotation(JSON)格式傳送數(shù)據(jù),其以鍵值對的形式來表示數(shù)據(jù)對象,上傳的數(shù)據(jù)主要是各相電壓、功率、電流和總功率。將需要上傳服務(wù)器的數(shù)據(jù)以JSON 格式封裝到函數(shù)中,在EMQX 服務(wù)器的Dash-board 可視化面板中,通過訂閱主題的方式可以查看到上傳的數(shù)據(jù)。
3.2云平臺軟件設(shè)計
本系統(tǒng)采用阿里云的輕量應(yīng)用型服務(wù)器,通過Xshell 軟件的安全外殼(Secure Shell,SSH)協(xié)議連接輕量應(yīng)用型服務(wù)器,將已構(gòu)建的程序部署在服務(wù)器內(nèi),用戶可以實現(xiàn)對用電數(shù)據(jù)實時進行監(jiān)測。在云服務(wù)器內(nèi)安裝Docker容器,容器作為一種輕量級的操作系統(tǒng)層面的虛擬化技術(shù),能夠為軟件應(yīng)用及其依賴組件提供一個資源獨立的運行環(huán)境[14]。將EMQX 服務(wù)器、Node-RED數(shù)據(jù)流轉(zhuǎn)平臺服務(wù)器、Ngnix 服務(wù)器、MySQL 數(shù)據(jù)庫和Python軟件等部署到容器中,為實現(xiàn)采集終端與云平臺之間通信、用電數(shù)據(jù)存儲和用電行為模型部署提供支持。
在本系統(tǒng)中不同的采集終端設(shè)備,通過發(fā)布不同的訂閱主題,利用MQTT 協(xié)議上傳數(shù)據(jù)。本系統(tǒng)使用的EMQX 是開源版本,不具備將數(shù)據(jù)流轉(zhuǎn)至關(guān)系型數(shù)據(jù)庫MySQL 的功能,所以借用Node-Red工具進行數(shù)據(jù)流轉(zhuǎn),Node-Red 與IBM 公司的云產(chǎn)品Bluemix 的Push 服務(wù)相結(jié)合,使整個數(shù)據(jù)處理流程變得十分簡單[15]。Node-Red工作流程如圖9所示。
為了便于后期系統(tǒng)開發(fā)的數(shù)據(jù)存儲,本系統(tǒng)使用關(guān)系型數(shù)據(jù)庫MySQL 存儲采集終端采集的用電數(shù)據(jù)、用戶信息和預(yù)測數(shù)據(jù)等信息。MySQL 中的用電數(shù)據(jù)和預(yù)測數(shù)據(jù)為Web 端數(shù)據(jù)可視化和用電行為檢測等部分提供數(shù)據(jù)基礎(chǔ)。為了節(jié)約本地硬盤存儲資源以及數(shù)據(jù)的多端共享,系統(tǒng)使用阿里云Rela-tional Database Service (RDS)實現(xiàn)數(shù)據(jù)云端存儲。RDS 通過白名單與安全組管理可以限制未授權(quán)的IP 地址訪問數(shù)據(jù)庫,具有良好的安全性。
為了實現(xiàn)數(shù)據(jù)無時無刻實時可視化與實時動態(tài)分析的功能,本文在云服務(wù)器部署Ngnix 服務(wù)器。Ngnix 是一個高性能的HTTP 和反向代理的Web 服務(wù)器,其作為Web 服務(wù)器可以將Springboot+Vue打包的項目部署,部署后的項目通過nohup 指令可以實現(xiàn)程序的運行,方便用戶實時觀察用電信息。
3.3Web 端軟件設(shè)計
Web 端采用前端和后端相分離的模式設(shè)計,后端采用Java Platform,Enterprise Edition(Java EE)企業(yè)級框架:SpringBoot+MyBatis Plus。使用IDEA 工具開發(fā)Java 程序,Maven 項目管理工具管理Java 項目,對Java 項目進行自動化構(gòu)建、依賴管理和統(tǒng)一開發(fā)結(jié)構(gòu)。后端成功讀取數(shù)據(jù)庫的信息后,需要選用前端框架對JSON 數(shù)據(jù)進行渲染,本系統(tǒng)前端采用核心框架:Vue+ElementUI+Echarts。Web端功能結(jié)構(gòu)如圖10所示。
當(dāng)用戶通過瀏覽器訪問系統(tǒng)時,進入登錄界面,用戶登錄成功后,首先進入的是系統(tǒng)主頁,主頁顯示當(dāng)前時間、監(jiān)測區(qū)域的當(dāng)前運行總功率、異常次數(shù)、監(jiān)測區(qū)域設(shè)備近24 h 和近7 d 運行總功率動態(tài)實時曲線。用戶通過左側(cè)導(dǎo)航欄進行界面切換,通過數(shù)據(jù)管理功能可以對歷史數(shù)據(jù)進行增刪改查;通過用電行為預(yù)測功能可以對用電數(shù)據(jù)進行預(yù)測;預(yù)警推送功能可以實現(xiàn)對非正常用電行為進行推送,并通過郵件的方式告知管理人員。
4用電行為學(xué)習(xí)
本系統(tǒng)的采集終端在數(shù)據(jù)傳輸過程中受外部因素的干擾偶爾會出現(xiàn)異常數(shù)據(jù),經(jīng)過分析本系統(tǒng)采集的用電數(shù)據(jù)沒有缺失值,但是存在重復(fù)值,對于重復(fù)值往往直接刪除。實驗使用辦公區(qū)域19 d(2023 年3 月13 日—31 日)的所有用電設(shè)備的總功率數(shù)據(jù),該數(shù)據(jù)屬于時間序列,包括2 個維度:總功率和時間戳。數(shù)據(jù)采集的時間間隔是1 min,共23040 條數(shù)據(jù),其中,21600條數(shù)據(jù)用于模型學(xué)習(xí),剩余的1440條數(shù)據(jù)用于模型測試。用電行為學(xué)習(xí)工作流程如圖11所示。
5系統(tǒng)測試與分析
5.1采集終端精度測試
整個系統(tǒng)先在實驗室搭建完成,采集終端調(diào)試如圖12所示。數(shù)據(jù)以1min時間間隔上傳至云平臺。
實驗調(diào)試過程中使用的負載是三相異步電動機,其輸入電壓380 V,輸出功率0.55 kW,電流1.5A。為了測試系統(tǒng)的精確度,將參考電表與負載接入同一個電路,采集終端測試數(shù)據(jù)如表1所示,電能表測試數(shù)據(jù)如表2所示。
對比并分析表格中的數(shù)據(jù)可知,A 相、B相、C相三相電壓的絕對誤差最大分別為0. 3% 、0.1% 、0.4% 左右,系統(tǒng)精度比較高。試驗結(jié)果表明,各項電壓相對誤差的幅值均小于0.5% ,滿足電力監(jiān)測儀技術(shù)指標(biāo)中的電壓測量精度0.5級以內(nèi)的指標(biāo)要求[18]。
5.2與其他模型預(yù)測結(jié)果對比
將XGBoost 與Category Boosting(CATBoost)模型進行對比,如圖13所示。
由圖13可以看出,XGBoost 模型在個別用電峰值學(xué)習(xí)效果不太理想外,其余時刻與真實值的擬合度較好。使用平均絕對誤差(Mean Absolute Error,MAE)和均方根誤差(Root Mean Square Error,RMSE)對模型進行評價,模型評價指標(biāo)對比如表3所示。
從表3可以看出,XGBoost具有較小的MAE和RMSE,模型學(xué)習(xí)效果相對更高。
5.3采集終端部署
將采集終端應(yīng)用到校園里的一間辦公場所,實際安裝時只需將采集終端接入空開的兩端即可,終端上電后自動連接云平臺,無需其他設(shè)置,實現(xiàn)即接即用。采集終端應(yīng)用如圖14所示。此辦公場所用電主要由兩路組成:一路電負責(zé)空調(diào)設(shè)備;另外一路主要包括一臺筆記本電腦、一臺臺式電腦、一臺打印復(fù)印一體機和一臺小型打印機。本系統(tǒng)定義C 相讀取的是空調(diào)的用電信息,B相讀取另外一路用電信息。
5.4Web 端功能測試
管理員通過密碼登陸后,進入后臺管理平臺的首頁,可以實時顯示當(dāng)前總功率數(shù)值,24 h、7d和一個月的總功率運行曲線,近2h 用電行為學(xué)習(xí)結(jié)果。用電行為監(jiān)測平臺如圖15 所示。
當(dāng)實際用電和用電行為學(xué)習(xí)結(jié)果不一致時,系統(tǒng)將預(yù)警信息通過郵件的方式發(fā)送給管理人員進行查驗,異常預(yù)警推送如圖16所示。
數(shù)據(jù)管理界面可以根據(jù)日期查詢相關(guān)數(shù)據(jù),并對數(shù)據(jù)進行刪除和導(dǎo)出,如圖17 所示。
6結(jié)束語
本文設(shè)計了一個基于IoT的實時異常用電行為監(jiān)測系統(tǒng),并對整個系統(tǒng)的軟硬件設(shè)計進行了詳細介紹。經(jīng)過實驗測試,系統(tǒng)設(shè)備運行正常,正常供電下,數(shù)據(jù)沒有缺失。系統(tǒng)選用國產(chǎn)的三相計量專用芯片ATT7022E 實現(xiàn)對用電數(shù)據(jù)的精準(zhǔn)測量,通過NB-IoT 無線通信方式將用電數(shù)據(jù)上傳至云平臺。管理員可以通過Web 端的用電數(shù)據(jù)監(jiān)測系統(tǒng)實現(xiàn)對用電數(shù)據(jù)進行遠程監(jiān)測,并對數(shù)據(jù)進行查詢,可視化界面可以對數(shù)據(jù)進行圖表化顯示,直觀展示用電數(shù)據(jù)。系統(tǒng)無需單獨組網(wǎng)、使用方便,在實際安裝時,只需將采集終端接入空開的兩端即可連接云平臺,實現(xiàn)對用電數(shù)據(jù)的精準(zhǔn)監(jiān)測。實驗結(jié)果表明,系統(tǒng)運行穩(wěn)定、數(shù)據(jù)傳輸可靠,在用電數(shù)據(jù)監(jiān)測領(lǐng)域具有現(xiàn)實意義。
作者簡介
于多 女,(1984—),碩士,高級工程師。主要研究方向:智能終端與物聯(lián)網(wǎng)應(yīng)用、自動檢測技術(shù)。
錢承山 男,(1971—),博士,教授,碩士生導(dǎo)師。主要研究方向:智能終端與物聯(lián)網(wǎng)應(yīng)用、非線性系統(tǒng)控制、自動檢測技術(shù)。
曹邁 男,(1994—),博士,講師,碩士生導(dǎo)師。主要研究方向:信息隱藏、自然語言處理、多媒體安全。
沈宇揚 男,(1975—),碩士,工程師。主要研究方向:邊緣計算。