












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