王瑞琦
(西安航空學(xué)院 電子工程學(xué)院,西安710077)
電能,作為我國經(jīng)濟(jì)增長的主要能源支柱,是發(fā)展國民經(jīng)濟(jì)的重要基礎(chǔ),是現(xiàn)代社會發(fā)展之必需。研發(fā)一款使用方便、攜帶便捷、不但能夠滿足人們的測量要求,還必須擁有較好用戶體驗的電能分析儀器顯得特別緊迫。
就目前而言,國內(nèi)制造電能分析檢測裝置的知名公司寥寥可數(shù),上海復(fù)旦微電子股份有限公司、廣州廣電計量檢測股份有限公司(GRGT)、浙江恒業(yè)電子有限公司等都還算不錯的企業(yè)。與國內(nèi)其他公司的產(chǎn)品相比,這些公司的產(chǎn)品工作穩(wěn)定、質(zhì)量好、價格公道,但與世界上其他著名的大廠商相比,則在以下幾個方面有較大差距:精度要求遠(yuǎn)遠(yuǎn)低于國際先進(jìn)水平;檢測的項目太過簡單;沒有完善的軟件配套功能;缺乏較好的用戶體驗。
本文設(shè)計采用Arduino 芯片作為核心控制裝置[1],主要的測量模塊為CS5463 電能測量芯片,并用ZMCT103C 電流互 感器[2]、ZMPT101B 電壓互感器[3]和外圍測量電路組成信號采集和數(shù)據(jù)處理電路。220 V 的交流電壓通過電壓互感器,電流互感器的處理,變成只有幾百毫伏的交流信號,經(jīng)測量芯片CS5463 處理后轉(zhuǎn)換成數(shù)字信號,由與單片機(jī)進(jìn)行通信的SPI 口發(fā)送給Arduino,由Arduino處理后,在LCD12864 顯示屏上進(jìn)行相關(guān)參數(shù)的顯示。
將交流220V 的市電電壓,經(jīng)過電源模塊的處理,變?yōu)橹绷? V,為單片機(jī)和LCD12864 供電。220 V的市電經(jīng)電壓互感器和電流互感器處理,變成只有幾百毫伏的電流信號,經(jīng)電路把交流信號傳到CS5463 電能計量芯片,它將模擬信號轉(zhuǎn)換成數(shù)字信號,然后由串口把信號送入Arduino 控制核心,處理后,在LCD12864 上進(jìn)行相關(guān)參數(shù)的顯示。系統(tǒng)框圖如圖1所示。
圖1 系統(tǒng)總體框圖Fig.1 System overall block diagram
本設(shè)計的硬件部分主要有數(shù)據(jù)采集電路(CS5463電能計量芯片及其周圍電路)、Arduino 單片機(jī)、電源、繼電器和液晶顯示器。
將市電為交流220 V 的電壓,經(jīng)ZMPT103B 電壓互感器和ZMCT103 電流互感器處理,變成只有幾百毫伏的交流信號,經(jīng)電路把交流信號傳給CS5463 進(jìn)行模數(shù)轉(zhuǎn)換[4]。信號的采集和處理電路如圖2所示。
圖2 信號采集和處理電路Fig.2 Signal acquisition and processing circuits
該電路由ZMCT 型號的電流互感器、去抖動電容與電阻共同組成采樣電路。使用電流互感器的目的是將低壓和高壓進(jìn)行隔離。在電流檢測中,看似是對電流的檢測,實際上則是對電壓檢測,只不過該電壓信號是電流轉(zhuǎn)變?yōu)殡妷汉蟮碾妷盒盘枴S秒娮璋鸦ジ须娏鬓D(zhuǎn)成電壓,再經(jīng)過限流電阻限流、濾波電容濾波,將輸出的信號送給VIN-和VIN+。
CS5463 電能測量芯片,由美國Cirrus Logic 公司制造,采用24 腳SSOP 窄間距小外型塑封封裝形式,是一款功能多樣、性能良好、精度較高的電能測量芯片[5]。它不僅繼承了上一代廣受歡迎的CS5460A芯片的全部功能,在結(jié)構(gòu)上,不但與其引腳完全相同,而且在功能上有所增加,功率因數(shù)與溫度也能準(zhǔn)確測量,不但測量精度高,而且還能夠滿足不同用戶的需求。
CS5463 的內(nèi)部結(jié)構(gòu)如圖3所示,主要的結(jié)構(gòu)有2 個可編程增益放大器,其主要用來采集電壓和電流數(shù)據(jù)[6];2 個△-∑調(diào)制器(1 個四階△-∑調(diào)制器和1 個二階△-∑調(diào)制器)用來對模擬量進(jìn)行采樣,高通濾波器可以得到電壓或電流的數(shù)字信號,有功功率、無功功率和視在功率等功率參量都可以通過功率計算引擎進(jìn)行計算得到。
圖3 CS5463 的內(nèi)部結(jié)構(gòu)Fig.3 Internal structure of CS5463
CS5463 的工作原理是將大電壓信號經(jīng)過電壓互感器變成小電壓信號,小電壓信號經(jīng)過電壓通道將模擬信號送入10 倍增益放大器進(jìn)行放大,放大后的信號進(jìn)入二階△-Σ調(diào)制器進(jìn)行速度采樣,采樣后的結(jié)果進(jìn)入數(shù)字濾波器進(jìn)行濾波得到數(shù)字信號。大電流信號經(jīng)過電流互感器變成小電流信號,小電流信號經(jīng)過電流通道將模擬信號送入PGA 進(jìn)行放大,放大后的信號進(jìn)入四階△-Σ調(diào)制器進(jìn)行速度采樣,采樣后的結(jié)果進(jìn)入數(shù)字濾波器進(jìn)行濾波得到數(shù)字信號。將得到的電壓和電流的數(shù)字信號一起送入功率計算引擎,兩者的乘積則為瞬時有功功率。在每個采樣周期后,得到的瞬時采樣功率將存入功率寄存器,將N 個瞬時采樣功率值作為一組,用于計算能量數(shù)值,電壓和電流的值也采用這種方法得到。工作原理如圖4所示。
圖4 CS5463 的工作原理Fig.4 Working principle of CS5463
2.2.1 電壓和電流測量
從CS5463 原理可以知道,從校準(zhǔn)后的數(shù)字濾波器得到的電壓和電流是有效的,它們是以N 個采樣值作為起始,可以從寄存器中讀出:
2.2.2 功率測量
瞬時功率的計算可以通過其瞬時電壓和瞬時電流的乘積,取N 個瞬時功率有效值驅(qū)動E1 輸出。
視在功率:
功率因數(shù):
平均無功功率:
三角無功功率:
Arduino Mega2560 也是采用USB 接口的核心電路板,如圖5所示。它最大的特點就是具有多達(dá)54 路數(shù)字輸入輸出,特別適合需要大量IO 接口的設(shè)計。Mega2560 的處理器核心是ATmega2560,同時具有54 路數(shù)字輸入/輸出口(其中16 路可作 為PWM輸出),16路模擬輸入,4 路UART 接口,一個16 MHz 晶體振蕩器,一個USB 口,一個電源插座,一個ICSP header和一個復(fù)位按鈕。Ar duino Mega2560 也能兼容為Arduino UNO 設(shè)計的擴(kuò)展板。
圖5 Arduino 開發(fā)板Fig.5 Arduino demoboard
調(diào)試時,因Arduino Mega2560 上的ATmega2560已經(jīng)預(yù)置了bootloader 程序,因此可以通過Arduino軟件直接下載程序到Mega2560 中,也可以直接通過Mega2560 上ICSP header 直接下載程序ATmega2560 ATmega16U2 的Firmware(固件),也可以通過DFU 工具升級。
本裝置程序采用C 語言編寫,用主函數(shù)main調(diào)用已經(jīng)編好的電壓處理函數(shù)、電流處理函數(shù)、功率處理函數(shù)和溫度處理函數(shù)等功能函數(shù)實現(xiàn)基本功能。程序流程如圖6所示。
圖6 程序流程Fig.6 Program flow chart
測量裝置上電后,CS5463 測量芯片和LCD12864顯示屏就會進(jìn)行初始化,完成相關(guān)配置,然后裝置就處于檢測模式,當(dāng)檢測到有電流通過或功率大于0 W 時,CS5463 就開始工作,將檢測到的電流、電壓、功率和溫度等參數(shù)的數(shù)字量傳送給Arduino 單片機(jī),單片機(jī)經(jīng)過處理(其中有對數(shù)據(jù)顯示位置和顯示方式的處理,以及根據(jù)電流的大小判斷用電器的種類,也就是學(xué)習(xí)模式)就會在LCD12864 上進(jìn)行顯示。
測試時采用逐步測量、逐步校正的方案。測試時,分別對每一個模塊進(jìn)行單獨驗證,理論分析和實際相結(jié)合,測試每一個輸入輸出點的正確值,并分析和調(diào)整誤差。測試從第一步測試信號轉(zhuǎn)換電路開始,測試輸出電壓和理論值之間的誤差,結(jié)合測試儀器臺式萬用表,雙蹤示波器,直流穩(wěn)壓電源等。調(diào)整之后依次往后測試,按照整體系統(tǒng)框圖的順序依次分析調(diào)整并記錄數(shù)據(jù)和誤差[7]。
認(rèn)真、仔細(xì)地檢查硬件電路,確保其焊接與連線圖一樣,無錯接漏接,利用萬用表、示波器等工具對其進(jìn)行檢查。圖7 為測試過程,表1 為用電器電流有效值和功率的測量值和標(biāo)準(zhǔn)值比較。
圖7 測量值對比Fig.7 Comparison of measured values
表1 用電器電流有效值、功率值的測量Tab.1 Measurements of current RMS and power value for electric appliances
從測試結(jié)果可以看出,測量值與用電器的標(biāo)準(zhǔn)值存在較小的誤差,但總的來說滿足任務(wù)書的要求,能夠?qū)崿F(xiàn)對基本電能質(zhì)量參數(shù)的測量,比如電壓、電流、功率和室溫,能根據(jù)用電器電流的大小判斷出用電器的種類,實現(xiàn)任務(wù)書中的學(xué)習(xí)功能。
本裝置誤差的來源有2 點,一是測量芯片CS5463,它是整個裝置的關(guān)鍵,它的誤差可以通過用萬用表測量真實值與其進(jìn)行對比[8],然后在程序里進(jìn)行修改。二是整個線路本身的誤差,本裝置的線路是自己用錫絲和導(dǎo)線搭建,其結(jié)構(gòu)也比較復(fù)雜,在搭建的過程中難免出現(xiàn)焊接處的空隙、焊絲的均勻程度、電阻阻值的大小與標(biāo)準(zhǔn)值不一樣,這種誤差需要仔細(xì)認(rèn)真地檢查線路,盡可能地去減小
誤差,但這是不可避免的。商用的電能測量儀是PCB板,為了滿足用戶的需求,線路誤差接近于零,其測量要求的精度都很高,這是手工制作不可企及的。
本文設(shè)計采用Arduino 芯片作為核心控制裝置,使用CS5463 作為測量芯片,使用ZMCT103C 電流互感器、ZMPT101B 電壓互感器和外圍電路組成信號采集和處理電路。可將220 V 的交流電壓轉(zhuǎn)化為僅幾百毫伏的交流信號,經(jīng)測量芯片CS5463 處理后變成數(shù)字信號,由與單片機(jī)進(jìn)行通信的SPI 口發(fā)送給Arduino,由Arduino 處理后,在LCD12864顯示屏上進(jìn)行相關(guān)參數(shù)的顯示。
設(shè)計中采用了集成的電壓互感器與電流互感器,安全可靠,誤差較小,實現(xiàn)了一款具備基本功能的用電器分析檢測裝置設(shè)計。