黃藝璇,羅利文
(上海交通大學(xué) 電子信息與電氣工程學(xué)院,上海 200240)
隨著智能電能網(wǎng)發(fā)展的趨勢(shì),國(guó)家電網(wǎng)公司推出的Q/GDW 356-2009《三相智能電能表型式規(guī)范》[1]等相關(guān)企業(yè)標(biāo)準(zhǔn),對(duì)智能電能表提出了更高的技術(shù)要求。智能電能表從普通功能型向長(zhǎng)生命周期、高測(cè)量精度、分時(shí)段計(jì)量計(jì)費(fèi)、多功能、網(wǎng)絡(luò)化等高科技含量和高附加值的方向發(fā)展。智能電能表在電能計(jì)量方面的準(zhǔn)確性,直接關(guān)系到電力系統(tǒng)發(fā)電量,供電量,用電量等各項(xiàng)技術(shù)經(jīng)濟(jì)指標(biāo)的計(jì)算。同時(shí)越來(lái)越多的電子設(shè)備接入電網(wǎng),系統(tǒng)中產(chǎn)生的大量諧波,降低了電能質(zhì)量,所以在保證電能表精確計(jì)量電量的同時(shí),不能忽視諧波計(jì)量和分析的重要性。
設(shè)計(jì)了一種電能計(jì)量與質(zhì)量分析系統(tǒng),可以準(zhǔn)確計(jì)量電能參數(shù),快速進(jìn)行諧波分析??傮w設(shè)計(jì)如圖1所示。該系統(tǒng)選用STM32F401RET6為主控芯片,32位的ARM CortexTM-M4內(nèi)核完成外圍芯片控制、數(shù)據(jù)傳輸和上位機(jī)通信控制。選用某公司一款高集成度的三相模擬前端ADE 9000實(shí)現(xiàn)電能計(jì)量,該芯片集成七路高性能的和一個(gè)DSP內(nèi)核,可實(shí)現(xiàn)三相電壓電流及中線電流信號(hào)每周期128個(gè)采樣點(diǎn)的輸出。芯片內(nèi)部集成一個(gè)高速串行通信接口,可以將電壓和電流的波形采樣數(shù)據(jù),有功功率,無(wú)功計(jì)算值等計(jì)算數(shù)據(jù)通過(guò)SPI通訊方式傳輸給主控芯片。
主控芯片獲取數(shù)據(jù)后,通過(guò)USB CDC類虛擬串口,與虛擬儀器LabVIEW中的上位機(jī)進(jìn)行大量高速的數(shù)據(jù)通信。在LabVIEW的虛擬儀器開(kāi)發(fā)環(huán)境中進(jìn)行快速傅里葉變換和各次諧波分類分析,同時(shí)實(shí)現(xiàn)測(cè)量數(shù)據(jù)和分析結(jié)果的可視化。
圖1 系統(tǒng)總體設(shè)計(jì)框圖Fig.1 Overall design block diagram of the system
電壓信號(hào)和電流信號(hào)的采集分別使用電壓互感器和電流互感器。電壓互感器選用TV 1013-2 mA/2 mA電流型電壓互感器測(cè)單相電壓。因互感器的輸出是電流信號(hào),需將電流信號(hào)經(jīng)取樣電阻轉(zhuǎn)換為±0.707Vrms范圍內(nèi)的差分電壓信號(hào)??紤]精度要求,限流電阻和取樣電阻都選取誤差小于0.1%的精密電阻。
電流互感器選用TA 1623-1M小型精密電流互感器測(cè)量單相電流。對(duì)于電流和電壓信號(hào)采集電路而言,都要選用低失調(diào)的運(yùn)算放大器對(duì)電流型互感器進(jìn)行相位補(bǔ)償,減小角差。此外還需要使用高精度的電能表實(shí)測(cè)互感器比差,通過(guò)軟件的方式進(jìn)行誤差校正。典型應(yīng)用電路如圖2所示。其中:
圖2 TV1013典型應(yīng)用電路Fig.2 TV1013 typical application circuit
對(duì)于中線電流的測(cè)量,選用某公司的CTRS-0.3P霍爾傳感器。傳感器輸出電壓以2.5 V為參考基準(zhǔn),無(wú)法滿足計(jì)量芯片±0.707Vrms范圍內(nèi)的差分電壓輸入要求。所以電路中需連接一個(gè)低失調(diào)運(yùn)放AD623(見(jiàn)圖3),用來(lái)抑制共模分量。
根據(jù)香農(nóng)定理,當(dāng)連續(xù)信號(hào)的最高頻率小于1/2的采樣頻率時(shí),采樣的數(shù)字信號(hào)不再為原始信號(hào)。為了防止電壓互感器和電流互感器采集到的無(wú)用信號(hào)與有用信號(hào)發(fā)生混疊,必須對(duì)信號(hào)進(jìn)行抗混疊濾波,以衰減高頻噪聲并防止目標(biāo)頻段失真[3]。根據(jù)ADE 9000芯片資料[2],為了在片內(nèi)調(diào)制器時(shí)鐘頻率附近提供足夠的帶外信號(hào)衰減,建議選定轉(zhuǎn)折頻率為7 kHz的RC濾波器,以消除傳統(tǒng)電流傳感器的混疊效應(yīng)。
圖3 中線電流互感器電路Fig.3 Central line current transformer circuit
在電能質(zhì)量的檢測(cè)儀中ADC轉(zhuǎn)換精度應(yīng)保證在14位以上,根據(jù)國(guó)家對(duì)諧波檢測(cè)儀器的要求,A級(jí)儀器需檢測(cè)到50次諧波,通常采樣點(diǎn)個(gè)數(shù)為128個(gè)點(diǎn),因此ADC的采樣頻率應(yīng)大于6.4 kHz。根據(jù)ADE 9000的數(shù)據(jù)手冊(cè)[2],ADE 9000 可在動(dòng)態(tài)范圍10 000:1下保證有功和無(wú)功功率誤差為0.2%,已經(jīng)滿足對(duì)電能計(jì)量0.2S級(jí)表的精度和動(dòng)態(tài)要求。芯片內(nèi)部的7路24 bits的Σ-(型ADC,可以準(zhǔn)確同步采集三相四線制系統(tǒng)的電壓電流信號(hào)。相較于ADE 78xx系列芯片[4],ADE 9000集成了唯一的SPI串行通信接口,雖然無(wú)法選擇I2C和HSDC接口,但是SPI的通信速率由2.5 MHz提高到20 MHz。雖然系統(tǒng)實(shí)現(xiàn)中并未對(duì)20 MHz的理論值進(jìn)行極限測(cè)試,但是配合USB CDC全速設(shè)備的12 MHz通信速率能夠正常通信。4個(gè)靈活配置的脈沖輸出,脈沖頻率可以指示電能累積的情況。
ADE 9000芯片可用于三相三線制或四線制系統(tǒng),片內(nèi)DSP內(nèi)核可快速完成多種電能參量的計(jì)量。芯片內(nèi)部框圖如圖4所示,對(duì)于三相電壓、電流及中線電流的七路信號(hào),可計(jì)量的電能參量以及可配置的功能包括:
(1)總體和基波有效值,線頻率和相位。有效值計(jì)算可選整周期、半周期和10/12周期三種模式;
(2)總體和基波有功功率,無(wú)功功率,視在功率和復(fù)功率。三相功率因素和總諧波失真;
(3)動(dòng)態(tài)配置采樣頻率,保證每個(gè)周期產(chǎn)生128個(gè)采樣點(diǎn),便于后續(xù)進(jìn)行FFT,進(jìn)行諧波分析;
(4)過(guò)零點(diǎn)、電壓跌落和電壓驟升檢測(cè),并且均可配置事件中斷;
(5)數(shù)字補(bǔ)償。通過(guò)補(bǔ)償相位,調(diào)整電壓、電流有效值和功率增益,進(jìn)一步提高測(cè)量精度。
圖4 ADE9000芯片內(nèi)部框圖Fig.4 Internal block diagram of ADE 9000 chip
前級(jí)電路中電流傳感器和電壓傳感器輸出各相電壓信號(hào),經(jīng)過(guò)調(diào)理后得到符合ADE 9000輸入范圍的差分信號(hào)。由7路差分輸入引腳進(jìn)入芯片內(nèi)部可編程放大器進(jìn)行放大,然后經(jīng)ADC轉(zhuǎn)換為對(duì)應(yīng)數(shù)字信號(hào),ADC后接有相位校正和高通濾波器。在電壓電流瞬時(shí)信號(hào)基礎(chǔ)上,進(jìn)行其他電能數(shù)值的計(jì)算。
電能計(jì)量尤其關(guān)注有功功率的計(jì)算,因?yàn)橛泄β逝c電能計(jì)費(fèi)直接相關(guān)。在實(shí)際電力系統(tǒng)中,諧波分量不可避免,電壓電流瞬時(shí)表達(dá)式如下:
(1)
(2)
式中Vk、Ik分別為各諧波的電壓和電流有效值;φk、γk是各諧波的相位延遲。電力系統(tǒng)的瞬時(shí)功率p(t)總是等于兩者乘積,而p(t)的直流分量即為系統(tǒng)的總有功功率,用P表示,將k=1帶入得到基波有功功率,用FP表示。
(3)
FP=V1I1cos(φ1-r1)
(4)
ADE 9000為了實(shí)現(xiàn)總有功功率的計(jì)算,芯片內(nèi)部首先將各相電流和電壓信號(hào)相乘,再利用一個(gè)低通濾波器提取各相瞬時(shí)功率信號(hào)的直流成分。由于LPF不是理想濾波器,因此還需要對(duì)提取出來(lái)的信號(hào)進(jìn)行一段時(shí)間的積分,消除紋波。而對(duì)于基波有功功率,ADE 9000需要初始化電網(wǎng)頻率和電壓通道中測(cè)得的標(biāo)稱值,然后應(yīng)用專有算法,計(jì)算出基波有功功率。
主控單元在本系統(tǒng)中主要承擔(dān)與前后級(jí)的數(shù)據(jù)通訊和傳輸任務(wù)。前級(jí)的電能計(jì)量前端與主控芯片之間采用SPI串行通信協(xié)議高速傳輸大量數(shù)據(jù)。SPI接口連接方式如圖5所示。
圖5 ADE9000與MCU的SPI接口Fig.5 SPI interface between ADE9000 and MCU
ADE 9000內(nèi)部集成的SPI串行通信接口工作在從器件方式。作為主器件,主控芯片產(chǎn)生和輸出同步串行時(shí)鐘脈沖信號(hào)SCLK。選取STM32F401[5]的一個(gè)GPIO口模擬從器件選擇線,輸出SS片選信號(hào)。ADE 9000的兩個(gè)中斷信號(hào)引腳IRQ0B和IRQ1B,同時(shí)連接LED指示燈和主控芯片的兩個(gè)GPIO口,給主控芯片提供外部中斷信號(hào)[6]。
在選擇主控芯片STM32F401與上位機(jī)的通信方式時(shí),主要考慮的是數(shù)據(jù)傳輸速率。由于電能計(jì)量芯片可實(shí)現(xiàn)高達(dá)20 MHz的SPI通信速率,一般的串口通訊以及常用的USB轉(zhuǎn)串口芯片(如PL2303,CH340D等)都難以滿足系統(tǒng)實(shí)時(shí)性的要求。最終,設(shè)計(jì)選擇USB CDC類的虛擬串口方式實(shí)現(xiàn)與LabVIEW上位機(jī)進(jìn)行數(shù)據(jù)通信與傳輸。使用主控芯片的一個(gè)GPIO引腳作為USB設(shè)備的上拉使能信號(hào),使能信號(hào)輸出為低電平時(shí)三極管導(dǎo)通,USB設(shè)備的D+信號(hào)線經(jīng)過(guò)上拉電阻至高電平。根據(jù)USB2.0規(guī)范,全速USB設(shè)備的D+信號(hào)線的上拉電阻阻值為1.5 kΩ,D-信號(hào)線不連接上拉或下拉電阻。
軟件程序?qū)DE9000的功能設(shè)定和數(shù)據(jù)讀取,均通過(guò)讀寫(xiě)ADE9000片內(nèi)寄存器的方式實(shí)現(xiàn)。在讀、寫(xiě)每個(gè)寄存器時(shí),先要進(jìn)行一個(gè)SPI寫(xiě)操作。需要將目標(biāo)寄存器的地址以及要進(jìn)行的讀/寫(xiě)操作選擇合成為16位的指令寫(xiě)入ADE 9000,然后才能進(jìn)行數(shù)據(jù)讀寫(xiě)的操作。根據(jù)芯片資料[2],ADE 9000可以工作在SPI典型工作模式0和模式3下。本設(shè)計(jì)基于模式3,即時(shí)鐘脈沖線空閑時(shí)為高電平,在第2個(gè)跳變沿開(kāi)始捕捉信號(hào)。SS 是芯片的片選信號(hào),當(dāng) SS為低電平時(shí),選中芯片進(jìn) 行數(shù) 據(jù) 傳 輸。圖6給出了SPI讀寫(xiě)操作的工作時(shí)序圖。當(dāng) SCLK 為下降沿時(shí),單片機(jī)器通過(guò) MOSI 信號(hào)線寫(xiě)入 16位CMD。當(dāng)SCLK為上升沿時(shí),單片機(jī)通過(guò)MISO 信號(hào)線讀取 ADE 9000 的采樣數(shù)據(jù)。SPI總是以8 bit為單位進(jìn)行數(shù)據(jù)傳輸,16-bit和32-bit的數(shù)據(jù)都是先讀寫(xiě)MSB,再讀寫(xiě) LSB。
圖6 ADE9000 SPI 讀寫(xiě)操作工作時(shí)序圖Fig.6 SPI read and write operation sequence diagram
寫(xiě)操作以設(shè)定A相電壓通道增益為例。當(dāng) SCLK 為下降沿時(shí),單片機(jī)器通過(guò) MOSI 信號(hào)線寫(xiě)入 16位CMD。當(dāng) SCLK 為上升沿時(shí),寫(xiě)入32位AVGAIN的設(shè)定值,即可完成對(duì)A相電壓增益值得設(shè)定。
本設(shè)計(jì)利用了某公司的圖形化軟件設(shè)置工具STM32CubeMX快速地完成對(duì)USB設(shè)備的初始化。STM32CubeMX的HAL庫(kù)和作為中間件的USB設(shè)備庫(kù),極大簡(jiǎn)化了開(kāi)發(fā)工作。在應(yīng)用程序接口層的程序設(shè)計(jì)中,需要實(shí)現(xiàn)設(shè)備枚舉和數(shù)據(jù)讀取/發(fā)送。設(shè)備的枚舉首先通過(guò)控制端口0響應(yīng)USB主機(jī)的讀寫(xiě)請(qǐng)求和獲得系統(tǒng)配置,實(shí)現(xiàn)USB設(shè)備與USB主機(jī)的連接,然后將輸入、輸出端口配置成為塊傳輸類型[7]。在USB CDC類通信的配置和數(shù)據(jù)傳輸過(guò)程中,在ST的USB設(shè)備庫(kù)中,以下函數(shù)至關(guān)重要:
(1)初始化函數(shù)
HAL_PCD_MspInit( )函數(shù)實(shí)現(xiàn)了初始化GPIO接口硬件和時(shí)鐘,并且設(shè)定了USB全局中斷的優(yōu)先級(jí)。
(2) 數(shù)據(jù)發(fā)送函數(shù)
USBD_CDC_SetTxBuffer( )函數(shù)將緩存的指針和大小放到USBD_CDC_HandleTypeDef結(jié)構(gòu)變量中暫存。USBD_CDC_TransmitPacket( )函數(shù)的作用是在USB的空閑狀態(tài)下,將暫存的緩存的指針和數(shù)據(jù)大小告知USB發(fā)送器,等待USB自動(dòng)發(fā)送緩存數(shù)據(jù)。執(zhí)行完該函數(shù),需查看返回的USB狀態(tài)值,確定數(shù)據(jù)是否成功發(fā)送。
(3) 數(shù)據(jù)接收函數(shù)
USBD_CDC_SetRxBuffer()函數(shù)用來(lái)指定接收緩沖區(qū),每當(dāng)USB控制器收到數(shù)據(jù),控制器將調(diào)用CDC_Itf_Receive()函數(shù)接收和標(biāo)記數(shù)據(jù),并將數(shù)據(jù)被存放在之前指定的緩沖區(qū)內(nèi)。數(shù)據(jù)接收完成后,USBD_CDC_ReceivePacket()函數(shù)被調(diào)用,復(fù)位OUT端點(diǎn)接收緩沖區(qū)。
MCU程序分為主程序、外部中斷處理程序及定時(shí)中斷處理程序。主程序用于系統(tǒng)初始化,各個(gè)模塊初始化配置以及開(kāi)啟中斷服務(wù)等。相關(guān)程序流程圖如圖7所示。主程序?qū)?ADE9000的初始化配置,包括電源模式、測(cè) 量模式、中斷模式和波形采樣模式等。
ADE 9000通過(guò)中斷方式與 MCU 進(jìn)行數(shù)據(jù)交換。在初始化配置中需要對(duì)中斷屏蔽寄存器MASK0和MASK1進(jìn)行寫(xiě)操作,使能相應(yīng)中斷。正常工作時(shí)根據(jù)不同中斷產(chǎn)生響應(yīng)信號(hào), IRQ0和IRQ1 引腳輸出電平由高變低。當(dāng)MCU 對(duì)應(yīng)的外部中斷引腳檢測(cè)下降沿信號(hào)后進(jìn)入中斷處理程序。在中斷處理程序中,通過(guò)讀取狀態(tài)寄存器STATUS0和STATUS1,找出數(shù)值被置為1的標(biāo)志位,確定中斷源。ADE 9000片內(nèi)中斷源主要是采樣數(shù)據(jù)更新和過(guò)零點(diǎn)檢測(cè),也可配置電流過(guò)大,斷相連接等異常中斷。
上位機(jī)LabVIEW 軟件程序的編寫(xiě)利用NI-VISA 總線接口函數(shù)。下位機(jī)連接USB設(shè)備并成功枚舉為虛擬串口,對(duì)于LabVIEW而言通信為簡(jiǎn)單串口通信方法。主要使用到VISA資源配置,VISA寫(xiě)入,VISA讀取取以及VISA關(guān)閉四個(gè)函數(shù)[8]。程序運(yùn)行后,首先使用VISA資源配置函數(shù)設(shè)置波特率,數(shù)據(jù)位,奇偶校驗(yàn)方式等參數(shù)。VISA 讀取函數(shù)使用前需通過(guò)VISA Bytes at Serial Port 節(jié)點(diǎn)查詢當(dāng)前串口接收緩沖區(qū)中可用數(shù)據(jù)字節(jié)數(shù)[9]。最后需要調(diào)用VISA 關(guān)閉函數(shù)結(jié)束會(huì)話,釋放VISA資源。程序設(shè)計(jì)流程如圖8所示。
圖7 主程序和外部中斷程序流程圖Fig.7 Flow chart of main program and external interrupt program
串口緩沖區(qū)接收以特定標(biāo)志結(jié)束的數(shù)據(jù)后,還需檢查周期數(shù)據(jù)的長(zhǎng)度以確保沒(méi)有丟包情況。字符數(shù)據(jù)格式轉(zhuǎn)換過(guò)程中,需根據(jù)對(duì)應(yīng)的電能參數(shù)在ADE9000寄存器中的數(shù)據(jù)長(zhǎng)度做相應(yīng)處理。在轉(zhuǎn)換后的數(shù)據(jù)基礎(chǔ)上做數(shù)據(jù)計(jì)算及可視化實(shí)現(xiàn)。系統(tǒng)可視化總面板和諧波分析子面板如圖9所示??偯姘逯饕赏ㄐ艆?shù)設(shè)置,實(shí)時(shí)波形顯示,電能質(zhì)量指標(biāo)顯示。電能質(zhì)量指標(biāo)主要包括各相電壓電流有效值,有功和無(wú)功功率值,視在功率值,三相電壓電流矢量圖。而總面板上“諧波分析”按鈕則是開(kāi)始諧波分量計(jì)算和分析的判定條件,按鈕按下時(shí)子界面跳出。
圖8 LabVIEW程序流程圖Fig.8 Flow chart of LabVIEW program
設(shè)計(jì)使用LabVIEW的諧波失真分析函數(shù)(見(jiàn)圖10)。由用戶選擇三相電壓電流采樣信號(hào)中的一種信號(hào)加Hanning窗處理。加窗后頻譜的旁瓣效應(yīng)減弱,可以抑制頻譜泄露[10]。再做FFT,提取幅值最大的分量,即基頻信號(hào)。然后從加窗后信號(hào)中除去基頻量,循環(huán)進(jìn)行FFT單頻提取,得到其余各次諧波分量。
圖9 系統(tǒng)總面板和諧波分析子面板Fig.9 System master panel and harmonic analysis panel
圖10 諧波分析子程序框圖Fig.10 Block diagram of harmonic analysis
給出了基于ADE 9000的三相電能計(jì)量與質(zhì)量分析系統(tǒng)的設(shè)計(jì)方案。介紹了系統(tǒng)整體架構(gòu)以及系統(tǒng)軟硬件的主要實(shí)現(xiàn)方法。該方案電路集成度高,通信速度和運(yùn)算速度快,可以保證實(shí)時(shí)性測(cè)量的要求。同時(shí)方案設(shè)計(jì)注重對(duì)各個(gè)環(huán)節(jié)誤差的分析和控制,能夠?qū)崿F(xiàn)高精度的電能計(jì)量和電能質(zhì)量分析。