何 勇,王曉麗,肖海飛,沈 正
(上海工程技術大學 電子電氣工程學院,上海 201620)
近年來,泛在電力物聯(lián)網(wǎng)和智能電網(wǎng)成為了電力系統(tǒng)發(fā)展的趨勢,而用戶設備的負荷特征與用電細節(jié)是實現(xiàn)智慧用電和需求響應的支撐[1]。非侵入式監(jiān)測技術則是獲得用戶用電信息的有效手段和關鍵技術[2]。因此,在物聯(lián)網(wǎng)背景下采用非侵入式監(jiān)測技術實現(xiàn)用電器的有效、快速監(jiān)測與識別顯得至關重要[1]。
傳統(tǒng)的用電器監(jiān)測主要是通過采用AD+MCU模式的用電器監(jiān)測儀等實現(xiàn),采集的數(shù)據(jù)通過自帶的顯示屏顯示[3-4]。這類檢測儀功能單一且存在著無法遠程監(jiān)測的問題,與電力物聯(lián)的發(fā)展相背。李成勇等人在Arduino 平臺下設計了單向用電器識別系統(tǒng),但只是簡單的通過對比用電器的電壓和功率等來區(qū)分用電器,對用電器的辨識能力有限且不具備說服力[5];汪穎等人提出了一種基于V-I 軌跡曲線精細化識別的非侵入式負荷監(jiān)測方法,識別效果較為優(yōu)越,但是相關成果未能廣泛驗證,并且面臨著樣本庫構建困難,算法普適性低的困難[6]。李靜等人提出了一種用于家用智能電表的負荷識別方法,但該識別方法較為復雜,在家庭用電中大規(guī)模投入使用時面臨著控制芯片難以實現(xiàn)的問題,并且未給出具體的實際應用方案[7]。
當前用電器監(jiān)測與識別無法兼顧識別方法的優(yōu)越性與實際應用時的切實可行性,因此,本文設計并實現(xiàn)了一種基于物聯(lián)網(wǎng)的非侵入式用電器監(jiān)測系統(tǒng),可以實現(xiàn)對家庭多個用電器的電參數(shù)采集,用電器識別和數(shù)據(jù)遠程傳輸?shù)裙δ?,在保證識別和監(jiān)測功能的前提下兼顧了實際應用的可行性。最終的驗證結果表明該系統(tǒng)很好地實現(xiàn)了監(jiān)測、識別、數(shù)據(jù)傳輸?shù)裙δ?,系統(tǒng)可靠穩(wěn)定,為家庭用電的智能化發(fā)展有實際推動作用。
用電器監(jiān)測系統(tǒng)結構,如圖1 所示,由線下采集設備、服務器和上位機3 部分組成[8]。線下采集設備包括用電器監(jiān)測儀和ZigBee 網(wǎng)絡兩部分。用電器監(jiān)測儀采用高性能STM32F407ZET6 作為主控芯片使用,完成電參數(shù)的采集,F(xiàn)FT 處理和運行多維識別算法識別用電器等功能。采用TI 的CC2530 單片機進行ZigBee 組網(wǎng),終端節(jié)點將用電器監(jiān)測儀的數(shù)據(jù)通過網(wǎng)絡統(tǒng)一匯總到協(xié)調器,再由協(xié)調器上傳到服務器,服務器存儲所有數(shù)據(jù),以便遠程訪問。
圖1 用電器監(jiān)測系統(tǒng)結構圖Fig.1 Structure diagram of power monitoring system
線下采集設備的硬件部分主要包括用電器監(jiān)測儀部分和ZigBee 無線通信網(wǎng)絡部分,其硬件結構如圖2 所示。
圖2 用電器監(jiān)測系統(tǒng)硬件結構圖Fig.2 Hardwarestructure diagram of power monitoring system
用電器監(jiān)測系統(tǒng)由主控模塊、電參數(shù)采集模塊、顯示模塊、電源模塊、存儲模塊、繼電器保護模塊等組成。具體的工作流程如下:電壓和電流經(jīng)互感器處理之后送入CS5463 電能計量芯片進行測算,STM32 讀取CS5463 芯片獲取用電參數(shù),得到用電器的電壓、電流、有功功率和功率因數(shù)等數(shù)字量;再運用芯片識別算法與提前錄入用電器數(shù)據(jù)庫的信息進行匹配,完成用電器種類識別的任務;最后由ZigBee 網(wǎng)絡將用電器電參數(shù)信息和用電器種類上傳到服務器,用戶通過訪問服務器在上位機端獲取監(jiān)測信息。
電參數(shù)采集電路選用CS5463 電能計量芯片,HCT215 電流互感器和ZMPT101B 電壓互感器的組合電路。CS5463 是一款低成本,高精度的電表計量芯片,可根據(jù)一定算法對50 Hz/60 Hz 交流信號精確計算電壓、電流的有效值、有功功率、無功功率、功率因數(shù)及諧波成分等主要電參量,可以很好地幫助實現(xiàn)本系統(tǒng)所需的電參數(shù)采集。電參數(shù)采集電路如圖3 所示。
圖3 電參數(shù)采集電路Fig.3 Electric parameter acquisition circuit
待測的電壓和電流信號經(jīng)過互感器處理后送入CS5463 芯片,CS5463 再通過內(nèi)部的集成電路得出電流,電壓和功率等電參數(shù)值,最后與STM32 采用SPI 協(xié)議進行數(shù)據(jù)通信,將電參數(shù)值送入STM32 供其處理。
本次設計基于CC2530 單片機搭建ZigBee 無線通信網(wǎng)絡,極大提高了系統(tǒng)的實時性,具體電路如圖4 所示。CC2530 移植官方的Z-Stack,實現(xiàn)自動組網(wǎng)的功能。該網(wǎng)絡分為協(xié)調器和終端節(jié)點兩部分,終端節(jié)點與監(jiān)測儀進行串口通信交互數(shù)據(jù),之后通過無線網(wǎng)絡將數(shù)據(jù)匯總到協(xié)調器,協(xié)調器使用GSM模塊通過MQTT 協(xié)議將數(shù)據(jù)發(fā)送到服務器,供遠程查看。
圖4 無線通訊網(wǎng)絡電路圖Fig.4 Circuit diagram of wireless communication network
用電器的種類和型號日益增加,采用單一參數(shù)做為用電器的識別依據(jù),辨識準確度較低,因此,采用多個電參數(shù)作為識別判據(jù)可以大大提高用電器識別的準確度。一般來說,用作用電器識別的電參數(shù)有電流、電壓、有功功率、無功功率、功率因數(shù)、電壓電流信號的諧波等,綜合考慮不同用電器的特征電參數(shù),本次設計選擇用電器穩(wěn)定工作時的電流有效值IRMS、有功功率P、功率因數(shù)λ和電流的k次諧波比IkHW(電流信號的第k次諧波有效值與基波有效值的比值)這4 個特征電參數(shù)作為用電器識別的判據(jù)。
電流有效值、有功功率和功率因數(shù)都可以通過CS5463 測量芯片測得,只需通過程序讀取即可。而電流的k次諧波比IkHW無法直接測得,離散傅立葉變換(DFT)可以幫助提取電流諧波,但其計算量太大,無法保證實時性,因此選擇采用計算更快的快速傅里葉變換(FFT)求解電流的各次諧波,進而計算其k次諧波比IHWk。
快速傅里葉變換有多種算法,本次設計采用按時間抽取的基4 算法[9]。(Decimation In Time FFT,DIT-FFT)基4 時間抽取法的基本原理是將N點的時域信號x(n)分成4 組序列,分別計算這4 組序列的離散傅立葉變換,從而減少運算量。通過蝶形運算,將N點DFT 的計算分解為4 個N/4 點DFT,每個N/4 點DFT 分解為4 個N/16 點DFT……經(jīng)過L級抽取后,一個復雜的FFT 就被分解為N個單點DFT 和L級蝶形運算,而單點DFT 就是該點時域序列本身,這樣就能快速算出x(n)的頻譜序列X(k)[10]。
本次設計將采集的長度為N的交流電流瞬時值數(shù)組,根據(jù)按時間抽取的基4 算法,經(jīng)FFT變換后得到長度為N的離散序列,該序列由各次諧波的電流的幅度譜X(k)構成,X(k)即為電流的k次諧波的振幅值。根據(jù)k次諧波比IkHW的定義,有式(1):
本次設計中取電流的3 次諧波比I3HW作為識別參數(shù)。
假設對于整個監(jiān)測系統(tǒng),所有的用電器種類為N,對其中的每一個用電器的電參數(shù)進行多次測量,取平均后得到一組特征向量,主要包括流有效值IRMS、有功功率P、功率因數(shù)λ和電流的k次諧波比I3HW,N個這樣的特征向量構成一個4×N的矩陣A,式(2):
矩陣A中每一列代表一種用電器,每一行代表N個用電器的某一特征電參數(shù),用電器的種類由列標號對應,用電器識別的數(shù)據(jù)模型庫表示為矩陣A。
對于某一待測用電器,經(jīng)過測量后得到其特征電參數(shù),表示為矩陣B,式(3):
將矩陣A中的每一列與矩陣B依次作差后取絕對值,得到的差值矩陣表示為矩陣C,式(4):
對矩陣C中的每一行按從小到大的順序排列,并用列標號代替原來的差值絕對值,每行取前n個差值最小的用電器,這里以n=4 為例,則可以得到一個4×4 的標號矩陣表示為矩陣D,式(5)。
矩陣D中的每個元素都是某一個用電器的列標號,即代表某個種類的用電器。理論上來說待測用電器越接近或等于某一數(shù)據(jù)模型庫用電器x,則x的列標號應該在矩陣D中出現(xiàn)最多且出現(xiàn)時最靠左。因此只要統(tǒng)計矩陣D中出現(xiàn)過的全部列標號的出現(xiàn)次數(shù),將次數(shù)最多的那個列標號所代表的用電器類型作為待測用電器的識別結果輸出。實際中,考慮對于矩陣D每一行都按照從小到大排列,那么最左一列的列標號的置信概率最大,因為其代表的測量值與數(shù)據(jù)庫記錄值的差值最小,待測用電器更有概率為該標號的用電器;不同的特征電參數(shù)在識別過程中對于結果的影響權重也是不同的。因此,對于矩陣D在統(tǒng)計列標號出現(xiàn)次數(shù)時,應該增加一個權重來體現(xiàn)這種置信差距。本系統(tǒng)設計中初步采用式(6)作為權重矩陣。
D中每一個列標號的加權值可從矩陣W中對應獲取,各用電器的加權出現(xiàn)次數(shù)由公式(7)求得:
Nikjk代表某個用電器出現(xiàn)了一次,Wikjk代表對應位置的加權值,通過式(7)可以求得所有識別結果的加權出現(xiàn)次數(shù),最大者對應的用電器即為識別結果。
本次設計的程序使用MDK5 和IAR 軟件,利用C 語言編寫程序。程序整體框圖如圖5 所示。
圖5 STM32 主程序流程圖Fig.5 STM32 main program flow chart
各功能子程序主要包括電參數(shù)的采集分析及存儲程序、FFT 算法程序、用電器識別算法程序、鍵盤程序、液晶顯示器顯示程序、ZigBee 通信程序和上位機通信程序等。通過電參數(shù)的采集和FFT 算法處理,得到用電器正常工作時的電參數(shù)信息,從而為用電器識別提供數(shù)據(jù)支撐,識別算法和用電器電參數(shù)數(shù)據(jù)模型庫通過用電器識別算法程序提前寫入。
為了在STM32 上實現(xiàn)FFT 算法程序[11],需下載官方提供的DSP 庫并添加至所建工程項目。添加時inc 文件下的stm32_dsp.h 和table_fft.h 兩個文件是必須的,src 文件夾下的文件可根據(jù)需要有選擇地添加,本次設計采用的是256 點的FFT,故只需添加cr4_fft_256_stm32.s 文件。
系統(tǒng)上電后,基于CC2530 單片機的ZigBee 網(wǎng)絡自動搭建,與此同時,監(jiān)測儀也對STM32 的I /O口、通用串口、SPI 接口、中斷寄存器等進行初始化設置;接著對外圍設備初始化,使外圍設備處于待工作狀態(tài)。用戶可以通過按鍵或者ZigBee 網(wǎng)絡遠程實現(xiàn)對監(jiān)測儀進行功能選擇和參數(shù)設置。監(jiān)測儀每采集到一次CS5463 數(shù)據(jù)后就會進行數(shù)據(jù)分析,將分析結果輸出在LCD 顯示屏上,并通過ZigBee 網(wǎng)絡將數(shù)據(jù)上傳至服務器。
識別算法是整個用電器識別功能的核心,其算法程序流程如圖6 所示。本次設計采用4 個電參數(shù)作為識別標準,擬建立8 類用電器的模型數(shù)據(jù)庫。二維數(shù)組儲存的是用電器識別數(shù)據(jù)模型庫,對應矩陣A;一維數(shù)組儲存的是測量和計算得到的特征電參數(shù),對應矩陣B;二維數(shù)組Differ[4][8]儲存的是差值絕對值,對應矩陣C;二維數(shù)組Sort[4][4] 儲存的是排序后的用電器類型,對應矩陣D。
圖6 識別算法程序流程圖Fig.6 Identification algorithm program flow chart
ZigBee 組網(wǎng)的整體過程非常復雜,這里采用TI公司給用戶提供的ZigBee 協(xié)議棧(Z-Stack)進行組網(wǎng)[12],Z-Stack 包含了一個實時操作系統(tǒng),用戶只需要熟悉其API,就能夠開發(fā)出滿足自身需求的嵌入式軟件。本系統(tǒng)需要完成對協(xié)調器和終端節(jié)點的軟件設計,協(xié)調器和終端節(jié)點的軟件設計流程分別如圖7 和圖8 所示。
圖7 協(xié)調器軟件設計流程圖Fig.7 Flow chart of coordinator software design
圖8 終端節(jié)點軟件設計流程圖Fig.8 Flow chart of terminal node software design
設計的ZigBee 網(wǎng)絡分為1 個協(xié)調器和4 個終端節(jié)點,采用星型拓撲結構完成網(wǎng)絡的搭建。協(xié)調器是網(wǎng)絡的第一個設備,協(xié)調器在自身的初始化后,完成網(wǎng)絡的啟動。啟動后,還負責接收來自終端節(jié)點的數(shù)據(jù),最后將數(shù)據(jù)通過串口發(fā)送給主控中心,同時接收主控中心的數(shù)據(jù),下發(fā)給下面的終端節(jié)點。終端節(jié)點是網(wǎng)絡的最后一環(huán),采集到的傳感器數(shù)據(jù)會發(fā)送給協(xié)調器匯總,同時接收協(xié)調器的指令,完成對設備的控制。
搭建mosquitto 服務器軟件,開啟MQTT 服務后,用戶連接MQTT 服務器,根據(jù)訂閱的主題,即可以收到所需的數(shù)據(jù)。服務器端編寫python 程序,對MQTT 數(shù)據(jù)進行監(jiān)聽,將所需的數(shù)據(jù)保存進Mysql數(shù)據(jù)庫,同時處理來自用戶的請求,可以實現(xiàn)對歷史記錄的訪問。
為了實現(xiàn)實時在線監(jiān)測,用電器監(jiān)測系統(tǒng)采用ZigBee 實現(xiàn)遠程無線數(shù)據(jù)傳輸,上位機采用具有跨平臺功能且移植方便的Qt 編寫,實現(xiàn)數(shù)據(jù)分析與展示。
本系統(tǒng)的主要功能是監(jiān)測多個用電器的用電信息和用電器種類,并且實現(xiàn)數(shù)據(jù)遠程傳輸。通過1個協(xié)調器和4 個終端結點及用電器監(jiān)測儀搭建系統(tǒng)并進行測試。協(xié)調器上電并初始化建立ZigBee 網(wǎng)絡,每個終端結點距離協(xié)調器不超過100 m,監(jiān)測儀和ZigBee 實物如圖9 所示。
圖9 ZigBee 終端結點和監(jiān)測儀實物圖Fig.9 Picture of ZigBee terminal node and monitor
對用電器實施遠程監(jiān)測前首先需對系統(tǒng)的識別功能進行測試。在測試前預先將用電器的特征電參量寫入識別數(shù)據(jù)模型庫,通過多次將用電器接入系統(tǒng)并記錄系統(tǒng)識別成功次數(shù)的方式進行識別功能的測試,測試結果見表1。
表1 用電器識別測試結果Tab.1 Electrical appliance identification test results
通過多次測試實驗可以看出,本文設計的用電器識別算法識別效果較好,對4 種用電器的識別準確度都在90%以上,滿足設計使用需求。
為進行在線監(jiān)測功能的測試,4 個終端結點分別接入筆記本電腦、LED 燈、電烙鐵、電風扇。上電后通過PC 端的Qt 上位機訪問服務器獲得監(jiān)測信息,從而實現(xiàn)對用電器的遠程監(jiān)測。上位機端主要包括對用電器的實時監(jiān)測和用電器監(jiān)測歷史信息記錄兩部分,在線監(jiān)測界面主要顯示用電器的識別結果和5 類電參數(shù)值,包括用電器的電壓,電流等。監(jiān)測中的上位機界面如圖10 所示,此時顯示的是1 號監(jiān)測點的1 號監(jiān)測儀的用電器識別和監(jiān)測界面。
圖10 上位機端監(jiān)測界面圖Fig.10 Monitoring of the host computer interface diagram
從圖10 上位機的實時監(jiān)測界面可以看出,監(jiān)測系統(tǒng)很好地完成了設計內(nèi)容,對監(jiān)測點1 的1 號監(jiān)測儀實現(xiàn)了數(shù)據(jù)的遠程傳輸和實時監(jiān)測,同時用電器種類識別正確,各電參數(shù)監(jiān)測顯示正常無誤。
上位機歷史信息如圖11 所示,歷史數(shù)據(jù)也可幫助用戶了解用電器的運行狀態(tài)。經(jīng)過多次長時間運行實驗,系統(tǒng)工作穩(wěn)定,識別和監(jiān)測效果良好,有利于用電器的智能化發(fā)展,保障用電安全。
圖11 歷史信息界面圖Fig.11 Historical information interface diagram
本文設計并實現(xiàn)了一種基于物聯(lián)網(wǎng)的非侵入式用電器在線監(jiān)測系統(tǒng),詳細介紹了該系統(tǒng)的工作原理和實現(xiàn)方法。從測試實驗來看,該系統(tǒng)具有以下優(yōu)勢:
(1)能準確實現(xiàn)用電器的非侵入式識別與監(jiān)測功能;
(2)通過對ZigBee,mosquitto 服務器軟件和Qt上位機的合理運用完成了數(shù)據(jù)的實時遠程傳輸,監(jiān)測方便且監(jiān)測范圍大,實現(xiàn)了基于物聯(lián)網(wǎng)的遠程監(jiān)測,系統(tǒng)的功能豐富,應用面廣;
(3)設計方案即保證了系統(tǒng)各功能的準確實現(xiàn)又兼顧了實際應用的可實施性。本系統(tǒng)的實現(xiàn)有助于推動電力物聯(lián)背景下非侵入式用電器監(jiān)測系統(tǒng)在實際應用領域的發(fā)展,對用電安全和電力物聯(lián)發(fā)展具有一定的促進作用。