趙 鵬,李帥波,錢 美
(新疆理工學院 機電工程學院,阿克蘇 843000)
在家用電器中從低功耗的小夜燈到大功率的空調以及常用的電飯鍋、燈帶、充電寶等,其工作過程中無時無刻不在消耗著電能。 但其電流、電壓及功率具體有多大,非專業人士很難估計,特別是對于包含電機類的設備啟動瞬間電流非常大可能對其他正在運行的設備造成影響,甚至出現過載保護的情況。 在提倡低碳環保的今天,設計一款具備實時監控用電器運行狀態和功耗的儀器,使人們對不同用電器的功耗有定量的認識就顯得尤為重要。 鑒于此,本設計提出了一種5 mA~10 A 用電設備實時監控、識別、存儲及顯示系統,對于普及用電器功耗常識,了解常用電器的功率輸出特性,提高人們節能減排的意識有重要的意義。
采用傳統的分立元件搭建測試平臺,選擇1000:1電流互感器,但需要經過I/V 變換、放大、50 Hz 陷波、有效值檢測再通過24 位高精度A/D 轉換器ADS1256 將電壓信號轉換為數字信號經單片機處理后顯示[1-2]。 單片機處理過程中要嚴格按照標度變換識別不同的用電設備,存儲器選擇AT24C02,顯示器選擇I2C 型OLED,獨立按鍵則用來設置工作模式、保存或清除存儲器數據,具體結構如圖1 所示。

圖1 分立元件構成的系統結構圖Fig.1 System structure diagram composed of discrete elements
采用電能計量模塊實現,其以串口的形式輸出電流、電壓及有功功率[3-4],程序設計簡單,精度高,按鍵電路、 顯示電路及存儲電路與方案一相同,具體結構如圖2 所示。

圖2 電能計量模塊構成的系統結構圖Fig.2 System structure diagram composed of electric energy metering module
方案一結構清晰,因互感器對小電流檢測難度大,一般提高抗干擾能力要使用SMA 接頭,同時對PCB 布線要求較高,I/V 變換及放大環節要使用正負偏置電壓,如果放大倍數設置不合理還可能出現被檢測信號削頂的情況,使檢測信號失真或超出A/D 轉換器的檢測范圍,無法達到電流檢測的目的,同時成本較高。 而方案二電能計量模塊中采用專門的電能計量芯片,電路簡單,使用便捷,串口采集數據的程序移植方便且經濟實用,優勢非常明顯[5]。 因此,本設計中采用方案二。
電能計量模塊通過互感器將測量電源和工作電源隔離,電能計量模塊采用5 V 供電,最高不超過5.2 V。 通信接口電平輸出標準為TTL 電平,可直接與常規的5 V 單片機或3.3 V 供電的采用Cortex-M3 內核的STM32 單片機以串口的形式實現全雙工通信,無需電平轉換電路[6],其與工頻電源、負載、單片機及供電電源的連接方式如圖3 所示。

圖3 電能計量模塊的接線方式Fig.3 Wiring method of the electric energy metering module
標度變換是將電能計量模塊采集的數據轉換為有具體單位的物理量的過程。 本設計中所需轉換的數據為電流、電壓及功率。 電能計量模塊提供一套指令系統,當通過串口發送相應指令時,計量模塊就向上位機或單片機返回相關的電能參數,對于單片機以狀態機的編程形式提取電壓、電流及有功功率[7-8]。 具體標度變換如表1 所示。

表1 采集數據的處理Tab.1 Data acquisition and processing
設計中使用的增強型51 單片機IAP15 系列,可通過其配備的下載軟件STC-ISP 設定工作頻率和上電復位功能,無需外接時鐘和復位電路,節約了設計成本。 利用單片機的串口3 與電能計量模塊通信;采用7 路LED 實時顯示對應7 中用電器的工作狀態;I2C 型OLED 實時顯示用電設備的電流、電壓、有功功率及運行狀態;按鍵電路用以實現模式切換、用電設備運行狀態的存儲、刪除功能,為了提高效率對于按鍵的識別采用中斷和查詢相結合的形式。 具體硬件電路如圖4 所示。

圖4 系統硬件電路圖Fig.4 System hardware circuit diagram
軟件采用C 語言模塊化程序設計思路,以主程序為入口調用各個子程序,其中子程序主要由電參數采集及處理子程序、按鍵掃描子程序、OLED 子程序、數據存儲與刪除子程序等組成。 每個子程序都包含.H 頭文件和.C 可執行文件,頭文件通過防重復定義宏指令對函數聲明,可執行文件主要完成對聲明函數的定義并預留與主程序交互的接口,便于后期程序的移植、升級與維護。 因涉及到串口通信,為保證數據傳輸的穩定性與快速性,單片機晶振設置為22.1184 MHz, 設計中將每一種用電器的額定電流采用宏定義的形式定義,方便用電器更換后程序的修改。
為提高鍵盤掃描效率,采用有效利用單片機硬件資源的方案,將頻繁操作的功能按鍵采用下降沿觸發的中斷工作方式, 其次采用查詢工作方式,查詢工作方式通過軟件設置具備松手檢測和消抖功能。 系統在運行過程中當監控電流與某一種用電器或某一組合用電器相匹配時,將對應編號的用電器用電狀態置1,當按下存儲按鍵,將用電狀態存儲于相應空間,當按下清除按鍵,將用電狀態清0。 具體流程如圖5 所示。

圖5 主程序流程Fig.5 Flow chart of main program
將采集數據以隊列的形式排列,將新數據放入隊尾,淘汰隊首的數據并求剩余數據的算術平均值作為有效數據。 該濾波器能有效抑制周期性干擾,但對脈沖干擾的抑制能力較差。 同時隊列的長度越長數據采集的效率也越低。 在兼顧實時性的同時,為了降低求取算術平均值時的舍入誤差,隊列的長度應盡可能選擇求取算術平均值時能整除[9]。 本設計中由于部分電器為感性負載如電機、日光燈等,啟動電流波動較大,采用滑動平均值濾波能有效抑制電流波動,使程序易于識別小功率負載,而實時性方面滿足2 s 之內識別所工作的電器或電器組。
設計中7 種用電設備采用工頻電壓下功耗為5.63 mA 的LED、7.67 mA 的單片機開發板、1 m 燈帶工作電流為25.96 mA、LED 充電臺燈工作電流為45.5 mA、2 m 燈帶工作電流為53.81 mA。 前5 種電器獨立工作電流均小于60 mA, 第6 種電器為工作電流為1.539 A 的電熱鍋,第7 種電器為工作電流為8.375 A 的電吹風。 實現了獨立用電設備的識別功能;實現了當電吹風工作時,其中1 種大于20 mA 的電器獨立工作時的識別功能;實現了最小功率的2 種電器的識別功能。 具體硬件控制電路如圖6 所示。

圖6 主控電路Fig.6 Main control circuit
調試過程中采用五位半數字多用表實時監測電流、電壓,其與電能計量模塊的精度指標保持一致,且由于電流采用滑動平均值濾波,其測量結果受感性負載的運行影響較小[10-11]。 具體計量模塊的性能指標如表2 所示。

表2 電能計量模塊的性能指標Tab.2 Performance metrics of the energy metering module
利用本系統對7 種用電器電流的實時監測和五位半數字多用表SA5061 的測量結果進行對比,對比結果如表3 所示。

表3 測量結果對比Tab.3 Comparison of measurement results
通過對不同用電器在工頻交流電下監測值與高精度五位半數字多用表的測量值進行對比,其對電流的監測精度達到了設計要求[12-13]。
1)用電器狀態數據無法存儲
設計過程中利用初始化程序將AT24C02 內部數據清空,所以重新開始后數據無法保持。 通過取消初始化存儲器程序,而使用按鍵控制存儲與清除功能實現對用電器狀態的存儲與刪除。
2)OLED 屏幕顯示的切換
因OLED 要顯示多幅運行狀態,在設計中特設置了一個清屏按鍵,模式切換后要按一次清屏按鍵,避免和之前的顯示重疊。
3)如何在多種組合模式顯示中只顯示其中2 種
設計中其中一種工作模式為大功率負載與剩余6 種負載的任意組合,為了防止多種組合模式的串擾,一次只顯示其中2 種模式,大功率電器采用if語句判斷,后續的6 種設備軟件設計中采用條件判斷語句if……else if 或開關語句switch……case 語句,這樣如果大功率電器運行,后續電流大小的程序判斷只要符合要求只執行1 次便跳出判斷語句。
4)如果更換用電器如何調整程序的兼容性
采用宏定義設置不同設備運行的具體電流,如更換用電器則需修改對應的額定電流即可,同時也方便在調試過程中實時修改。
本文通過對用電器實時監控系統的方案論證、理論分析與計算、軟硬件設計、系統測試各個環節的介紹,完成了實物的制作與調試,總結了調試過程中所遇到的問題及解決的措施。 采用電能計量模塊與單片機系統相結合構成的用電器實時監控系統, 能有效監控用電器的電參數和特定的運行狀態,對電參數的測量與用電器狀態識別方面的設計有一定的借鑒作用。