基于FPGA的智能用電器識別系統(tǒng)
一.項目背景
隨著電子技術的發(fā)展,以單片機為核心的多功能電能表已逐漸普及,這一類電能表具有較高的測量精度和運算速度,能夠?qū)Ω髟码娔艿南倪M行記錄,保存電能的最大需求量,設置參數(shù)等。但這僅僅局限于計量用戶全部用電器的電能消耗,并不能精確到每個用電器。并且這一類電表在測量方法上是僅根據(jù)電網(wǎng)的電壓電流的幅值進行電能的計量和統(tǒng)計,因而功能比較單一。上述電表網(wǎng)絡的通信能力很差或者根本不具備網(wǎng)絡通信能力,難以實現(xiàn)同網(wǎng)絡上位機的通信和數(shù)據(jù)同步?,F(xiàn)有的用電器識別技術僅能在用戶有大功率的用電器加載時進行控制繼電器斷電處理,并沒有實現(xiàn)單個用電器識別的功能。如果要檢測每個用電器的用電量,現(xiàn)行的通用方法是在每個家用電器的電源入口安裝電壓、電流傳感器,再根據(jù)收集到的數(shù)據(jù)進行電量測量。這樣雖然能夠達到相應的目的,但是價格偏高,安裝復雜,可行性較差。
基于上述背景的分析,我們希望能夠創(chuàng)造出一套系統(tǒng),改進現(xiàn)有電器識別系統(tǒng),力爭使用最低的成本實現(xiàn)最簡潔最精確的電器識別,并通過一個客戶端反饋給用戶,實時反映家庭用各種電器的功耗指標。
在此,我們提出了一種基于基于閾值的加權識別算法的用電器識別算法,并通過實驗驗證了其可行性。
二.項目方案
智能電器識別系統(tǒng)以Xilinx Spartan 6 FPGA 為控制核心,通過對母線電流進行諧波分析,提取用電器的特征參數(shù);以模糊識別為基礎,以遞歸求解方程實現(xiàn)了對單個用電器、多個用電器的識別,并對新用電器加入數(shù)據(jù)庫提供簡易的解決方案。
三.項目詳細設計
硬件設計
智能電器識別系統(tǒng)硬件電路的設計主要包括電網(wǎng)電壓電流的采樣電路,以及主控制器電路。由于系統(tǒng)的對用電器的參數(shù)采集主要來自硬件電路,所以對電壓電流的采樣必須準確。系統(tǒng)僅根據(jù)電線進戶端的電壓和電流就能識別出正處于使用狀態(tài)的用電器,并記錄相應的用電量,投入較低,安裝簡單。
Microblaze控制電路設計
智能電器識別子系統(tǒng)的硬件設計包括設計電網(wǎng)電壓電流采樣電路以及控制器電路。
電器識別模塊主控芯片采用Xilinx Spartan-6 ,利用片外的12位多通道高性;能ADC的數(shù)據(jù)采集系統(tǒng),對電網(wǎng)電流信號進行采樣,提取相應的特征參數(shù)。利用板載的BPI-Flash存儲器,對數(shù)據(jù)進行記錄。內(nèi)核是Microblaze,它是一個32位哈佛結構的處理器,其最高性能峰值高達83.3 MIPS。基于此芯片研發(fā)的系統(tǒng)可以方便的完成用電器的識別、電量測量、數(shù)據(jù)的傳輸,事件管理等工作,精度高可靠性強。
采樣電路設計
電網(wǎng)電壓采樣電路以電壓互感器TVA1421-01為核心構成,如上圖所示。此電壓互感器為電流型,先將待測電壓轉(zhuǎn)換成電流信號輸入互感器的一次側,電阻R27將互感器二次側的輸出電流流轉(zhuǎn)換為電壓信號。電阻R27和并聯(lián)電容C59構成低通濾波器。
在輸入正弦信號的正半周上升的四分之一周期內(nèi),LM311的輸出三極管導通,電容兩端的電壓跟隨輸入正弦信號;當正弦信號到達峰值以后,LM311 的輸出三極管截止,電容兩端的電壓保持為輸入正弦信號的峰值,等待單片機采樣;單片機采樣后,輸出高電平信號,Q1導通,給峰值保持電容放電。最后一路為實時電壓采樣電路,將電壓互感器輸出的交流電壓抬高2.5V,送至ADC。
電網(wǎng)側電流測量
并網(wǎng)電流即輸出濾波電感的電流,為了保證安全和控制系統(tǒng)的可靠性,并網(wǎng)電流的采樣電路必須采用隔離。本電路采用電流霍爾傳感器CSM010SY進行隔離采樣,該電流霍爾應用霍爾效應閉環(huán)原理的電流傳感器,能在電隔離條件下測量直流、交流、脈沖以及各種不規(guī)則波形的電流。傳感器參數(shù):線性度<0.1%,精度<0.7%,響應時間<1us,帶寬200KHz,全部滿足本測量要求。采用霍爾采樣相對電流互感器的好處是能夠檢測并網(wǎng)電流的直流分量,并能通過軟件及時將其消除。電流霍爾輸出交流電壓,將其通過加法電路抬高2.5V后,送入ADC。
軟件設計
智能電器識別系統(tǒng)采用了基于閾值的加權識別算法和解多維線性方程組兩種核心算法。
首先運用12位ADC ADS7841對電壓電流信號進行采樣。在數(shù)據(jù)采樣階段,為了使系統(tǒng)運行時數(shù)據(jù)不發(fā)生紊亂,只能使系統(tǒng)在適當時刻采集數(shù)據(jù)。在數(shù)據(jù)處理過程中,數(shù)據(jù)采樣是需要被禁止的。然而,為了保證每次數(shù)據(jù)處理過程保持一定的一致性,采樣的開始時刻必須要有基準。由于本系統(tǒng)對電網(wǎng)電壓做了過零檢測,電壓剛好過零的時刻為數(shù)據(jù)采樣提供了可能性?;谝陨戏治?,實施數(shù)據(jù)采樣的具體方法為:設立標志位Data_hold用來指示數(shù)據(jù)是否需要保持,置1則系統(tǒng)認為需要保持,它僅發(fā)生在數(shù)據(jù)采滿256個點的時刻,置0則認為采樣可以在某個時刻進行,它僅發(fā)生在數(shù)據(jù)處理完畢的時刻;設立標志位AD_enable用來指示AD采樣時刻是否到來,置1僅發(fā)生在Data_hold為0且電壓過零時刻到來的時刻,置0發(fā)生在Data_hold為1的時刻。為滿足在50Hz電網(wǎng)頻率下,一周期采樣256個點的需求,設定了一個20000/256us的定時器。采樣完成后把本次的采樣數(shù)據(jù)和上一次的采樣數(shù)據(jù)做差,得出本次所新增用電器的采樣數(shù)據(jù),而后對采樣數(shù)據(jù)提取相應的特征參數(shù),同時對采樣到的數(shù)據(jù)進行FFT變換,再次提取相應的特征參數(shù)。本系統(tǒng)用電器的特征參數(shù)包含電流峰值、電流均值、電流有效值、電流基波、電流諧波幅值、電流諧波相位、用電器有功功率、電流諧波長度等。電流峰值、電流均值在采樣時實時對電流數(shù)據(jù)進行處理就能夠得到。而電流有效值、基波等特征參數(shù)能夠在FFT變換之后得到。FFT變換之后,所得到的數(shù)據(jù)是尚未歸一化的,為了保證特征參數(shù)在存取過程中的一致性,需要將數(shù)據(jù)進行歸一化。歸一化的準則為:以基波幅值分量為100,其他諧波成分相應等比調(diào)整。為了使歸一化數(shù)據(jù)能夠得到恢復,還需要存儲每個用電器的功率信息。然后,再根據(jù)這些參數(shù)與數(shù)據(jù)庫中相應參數(shù)做出比較,為了達到用電器識別的目的,本系統(tǒng)采用下圖所示的基于閾值的加權識別算法方法。首先針對某一特征參數(shù)和現(xiàn)有數(shù)據(jù)庫中的相應值進行模糊算法比較,如果特征值和現(xiàn)有值匹配非常好,則給出一個很高的分值,隨著匹配度的下降所打的分數(shù)也相應的降低。而后,針對每種特征參數(shù)模糊化的識別結果,都得到相應的匹配系數(shù),匹配系數(shù)乘以該參數(shù)占有分值,即能得到該參數(shù)的得分。最后,將所有特征參數(shù)的得分相加,即得到該用電器的匹配分值。對于數(shù)據(jù)庫中的每種用電器,都會得到一個相應的分值,通過最大分值與及格分值的比較,決定用電器識別是否成功。若最大分值已經(jīng)高過定義的及格線,則認為系統(tǒng)電器識別成功,結果即為得到最大分數(shù)所對應的用電器;若最大分值沒有超過及格線,則認為數(shù)據(jù)庫中尚不存在此種用電器,需進行下一步處理。
下圖所示為電器識別的流程圖。首先根據(jù)進戶端的功率變化判斷用電器是運行還是關閉,如果功率不變則驗證識別結果是否正確、更新數(shù)據(jù)庫特征信息權值信息、傳輸用電識別信息,之后再繼續(xù)檢測功率變化。由于用電器的打開識別和關閉識別是兩個類似的過程,下面以用電器打開識別為例說明識別過程:開始檢測到電線進戶端功率增加,說明有用電器開始運行,此時根據(jù)上文說明的提取特征參數(shù)方法對運行的用電器進行特征參數(shù)的提取,先與數(shù)據(jù)庫中單個用電器的相應參數(shù)進行對比,采取上文中所述的基于閾值的加權識別算法方法對用電器進行相關評分。[!--empirenews.page--]
實例說明
為了更清晰的說明下面列舉一個打分的實例:
表3. 1顯示器數(shù)據(jù)庫特征值表
Displayer |
||
Harm_length |
+006 |
|
Harm_num |
FFT_R |
FFT_I |
+001 |
-029 |
+095 |
+003 |
-014 |
-080 |
+005 |
+023 |
+067 |
+007 |
-025 |
-047 |
+009 |
+021 |
+032 |
+011 |
-014 |
-015 |
Database record Current_Harm |
如表上所示,為智能電器識別子系統(tǒng)的一個實例的數(shù)據(jù)庫中顯示器的電流諧波相關信息。Harm_length為總諧波長度;Harm_num為相應的諧波次數(shù);FFT_R為FFT變換后該次諧波的虛部;FFT_I為FFT變換后該次諧波的實部。
表3. 2新用電器特征數(shù)據(jù)表
New electrical equipment |
||
Harm_length |
+004 |
|
Harm_num |
FFT_R |
FFT_I |
+001 |
-011 |
+099 |
+003 |
-020 |
-050 |
+005 |
+011 |
+065 |
+007 |
-010 |
-060 |
New electrical equipment Current_Harm |
識別到一個新接入的用電器,分別和數(shù)據(jù)庫存儲的每個用電器相應參數(shù)作比較,給出分數(shù)。如上表所示,為本發(fā)明的一個實例的新識別到的用電器電流諧波相關的參數(shù),這里以這一參數(shù)為例說明打分過程:電流諧波的總權值為0.8,也就是百分制中的80分,而諧波長度的權值為0.3,也就是80*0.3=24分;每次諧波的分配權值以數(shù)據(jù)庫中的諧波參數(shù)為參考分配,比如本次和數(shù)據(jù)庫中的顯示器作比較,則每次諧波分配到的權值為0.7/6=0.117,再把新識別到的用電器的相應參數(shù)與其相比較得出分值,最后把這一參數(shù)所有分值相加,再把所有參數(shù)的分值相加可得出如下表。
表3. 3新接入用電器打分表(及格分數(shù)70分)
|
電流諧波 |
功率因數(shù) |
電流峰均值比 |
總分 |
|
電腦 |
12 |
2 |
5 |
19 |
|
顯示器 |
23 |
3 |
4 |
30 |
|
電風扇 |
72 |
9 |
9 |
90 |
正確 |
電燈 |
16 |
4 |
4 |
24 |
|
通過上表可知電風扇所打的分數(shù)最高,為90分,其余的分數(shù)都沒有及格,可知該新接入用電器被識別為電風扇。同時開始記錄該用電器的功率等相應參數(shù),上述單個用電器識別過程為識別的第一階段。如果所有分數(shù)均不及格則識別失敗,轉(zhuǎn)入識別的第二階段。
識別的第二階段:首先分析采集到用電器數(shù)據(jù)信息,將數(shù)據(jù)庫中的每個用電器參數(shù)記錄從Flash中讀出,通過各用電器的功率信息與諧波信息進行不同用電器參數(shù)之間的排列組合,以用電器諧波長度為優(yōu)先組合原則,按照用電器從少到多,得出不同用電器的組合參數(shù)。實際上,多個用電器的組合過程,就是一個解多維線性方程組的過程。之后,再使用類似單個用電器識別方法對多個同時開始運行的用電器進行識別。如果識別成功,開始記錄用電器的功率等參數(shù),并進行顯示。如果所有分數(shù)均不及格則識別失敗,轉(zhuǎn)入識別的下一階段。
識別的第三階段:上述識別均不成功,說明數(shù)據(jù)庫中沒有存儲該新接入用電器的特征參數(shù),此時會動態(tài)地將該新用電器的特征參數(shù)加載到數(shù)據(jù)庫,并提示輸入該用電器的名字,至此整個識別過程完畢。
識別過程中,由于外界干擾,會有一定的誤識別率。為防止系統(tǒng)的誤識別,即使沒有新用電器再接入系統(tǒng),此時系統(tǒng)仍處于實時驗證狀態(tài)。在這種狀態(tài)下,系統(tǒng)需要做的工作是:驗證用電器識別結果是否正確,驗證方法為,將識別結果疊加后的特征數(shù)據(jù)信息與實時信息模糊比較,得到識別結果,若識別結果不正確,則把識別結果清除,所有用電器重新識別,轉(zhuǎn)入上述第一階段,若正確,則繼續(xù)處理;然后,由實時數(shù)據(jù)更新數(shù)據(jù)庫特征參數(shù)的權值,以使系統(tǒng)更有本地化特征,更新數(shù)據(jù)庫中特征參數(shù)權值的過程,實際是使用電器的正確識別結果分值最大化的過程。
表3. 4用電器能耗記錄查詢示意表
用電器名稱 |
筆記本電腦 |
|||
使用時間段 |
使用時間 |
消耗電能 |
平均功率 |
|
2011.4.9 |
13:00-14:30 |
01小時30分鐘 |
0.093KWh |
62W |
2011.4.12 |
18:30-21:40 |
03小時10分鐘 |
0.411KWh |
65W |
2011.4.13 |
18:30-20:30 |
02小時00分鐘 |
0.140KWh |
70W |
如上表所示,用電器識別成功后,會記錄相應的能耗。其中,用電器能耗的查詢記錄格式為:用電器名稱、用電器使用時間段、用電器的單次使用時間累計,用電器的功率,用電器的能耗等,并能生成相應的日統(tǒng)計、月統(tǒng)計、年統(tǒng)計等。并能針對相應的用電器進行功率限制,如果超出限制,則會實施斷電處理。
用電器關閉識別過程和用電器打開識別過程類似,這里就不做過多贅述。