基于FPGA的新型諧波分析儀設計
關鍵詞:FPGA Verilog HDL Nios 諧波分析儀 實時操作系統(tǒng)
引言
隨著節(jié)能技術和自動化技術的推廣,電力電子裝置如變頻設備、變流設備等,容量日益擴大,數(shù)量日益增多,使電網(wǎng)中的諧波污染日益嚴重,給電力系統(tǒng)和各類用電設備帶來危害,輕則增加能耗,縮短壽命,重則造成用電事故,影響安全生產(chǎn)。因此,消除諧波污染,把諧波含量控制在允許范圍內(nèi),已成為主管部門和用電單位的共同奮斗目標。
目前,電力系統(tǒng)中的諧波源,不但類型多,而且分布廣,用戶電網(wǎng)中的諧波電流可能來自本身的非線性設備,也可能來自外線路,如不加以區(qū)分將給諧波治理造成困難。因此進行諧波治理之前,必須要了解電網(wǎng)中諧波的次數(shù)及其含量,即必須進行諧波的測試。諧波測量是諧波問題的一個重要分支,它是諧波問題研究的主要依據(jù),也是研究分析問題的出發(fā)點。
當前諧波測量的主要方式有3種。
圖1
(1)采用模擬濾波器的諧波測量
最早的諧波測量是采用模擬濾波器實現(xiàn)的。即采用帶阻濾波器將基波分量濾波,得到諧波分量;或采用帶通濾波器得出基波分量,再與被檢測量相減得到諧波分量。該檢測方法的優(yōu)點是電路結(jié)構(gòu)簡單,造價低,輸出阻抗低,品質(zhì)因素易于控制。但也有很多缺點,如精度不高、誤差較大等。
(2)基于傅里葉變換的諧波測量
隨著計算機和微電子技術的發(fā)展,基于傅里葉變換的諧波測量是當今應用最多也是最廣的一種方法。它的核心理論建議在傅里葉變換的基礎上。根據(jù)傅里葉變換理論,將模擬信號采信變成離散化數(shù)字序列信號后,輸入微型計算機進行傅里葉變換,計算得到基波和頻率為基波頻率整數(shù)倍的多次諧波的幅值和相位,然后將計算獲得的數(shù)據(jù)顯示在屏幕上或存放在磁盤中供將來統(tǒng)計使用。
(3)利用小波分析方法的諧波測量
小波分析作為調(diào)和分析的重大進展,克服了傅里葉變換的頻域完全局部性,而在時域完全無局部性的缺點,即它在頻域和時域同時具有局部性。通過對含有諧波的電流信號進行正交小波分解,利用多分辨的概念,將低頻段(高尺度)上的結(jié)果看作不含諧波的基波分量?;谶@種算法,可以利用軟件構(gòu)成諧波檢測環(huán)節(jié),同時由于其計算速度快,能快速跟蹤諧波的變化。小波變換應用在諧波測量方面尚處于初始階段。
圖2
本文給出了種基于FPGA的新型諧波測量儀,該儀器集成了A/D采樣單元、FFT運算處理單元、顯示單元和網(wǎng)絡通信單元。系統(tǒng)使用FPGA內(nèi)部實現(xiàn)的處理器Nios作為系統(tǒng)的嵌入式處理器,來控制14位高速A/D采樣芯片、FFT運算核和實現(xiàn)網(wǎng)絡通信功能、顯示功能。其FFT運算處理單元核心為基于FPGA的FFT運算核,采用先進的多層并行流水線技術,可以在200μs內(nèi)完成1024點的標準單精度浮點數(shù)FFT運算,理論上可以實現(xiàn)8路工頻輸入信號的FFT運算處理;A/D采樣單元使用14位高速A/D采樣芯片實現(xiàn)8路信號掃描采樣功能,并利用鎖相環(huán)實現(xiàn)同步采樣;顯示單元為LCD顯示屏;網(wǎng)絡通信基于Ethernet和RS485,使用RFC 1600規(guī)范。該系統(tǒng)成本低廉,易于擴展、處理能力強大、可測量8路輸入信號50次以內(nèi)諧波,精度可以達到GB/T 17626.7規(guī)定的A級測量儀器精度要求。
1 系統(tǒng)總體設計
系統(tǒng)總體結(jié)構(gòu)如圖1所示。
該系統(tǒng)從結(jié)構(gòu)上分為CT/PT變送單元、A/D采樣單元、FFT運算處理單元、控制單元、顯示單元和網(wǎng)絡接口單元。CT/PT變送單元負責將輸入的150~390V電壓信號線性變換為5mA的電流信號,輸入的0~15A電流信號線性變換5mA的電流信號,并對信號進行相位補償;A/D采樣單元對從CT/PT變送單元輸出的模擬信號每周波采樣256點,精確變換成14位的數(shù)字量;FFT運算處理單元負責處理A/D采樣單元輸出的數(shù)字量,進行256點FFT變換運算;顯示單元負責顯示系統(tǒng)的全部顯示信息;網(wǎng)絡接口單元負責提供網(wǎng)絡通信的硬件實現(xiàn)電路;控制單元負責系統(tǒng)各個單元的控制,如控制A/D采樣單元的采樣頻率和采樣的啟動及停止、PLL電路的輸出頻率計算、鍵盤輸入的響應、網(wǎng)絡通信的軟件實現(xiàn)、FFT運算處理單元的控制和數(shù)據(jù)傳輸?shù)取?BR>
圖3
2 系統(tǒng)具體實現(xiàn)
CT/PT傳感器單元是該系統(tǒng)的關系環(huán)節(jié)之一,其性能直接決定整個系統(tǒng)能達到的精度等級。對其性能的主要要求有非線性度、相移、線性范圍、小信號響應和高頻衰減。非線性度、相移、線性范圍是最基本的性能指標,按照該系統(tǒng)的精度要求,非線性度必須小于0.1%;相移必須小于5';線性范圍必須大于系統(tǒng)的輸入范圍并20%的裕量。小信號響應主要針對于CT,因輸入電流從0~15A變化,當輸入電流非常小時仍然需要精確變換,因此對CT的小信號性能要求較高。高頻衰減指標主要對高次諧波,通常傳感器對于高頻率信號有較強的衰減作用,表現(xiàn)為低通濾波器。而本系統(tǒng)最高需對2.5kHz信號進行采樣分析,因此高頻衰減也是非常重要的指標不。本系統(tǒng)按照以上指標選用高性能CT/PT傳感器,滿足系統(tǒng)的精度要求。
A/D采樣單元采用了Maxim公司的MAX125高速8通道14位同步A/D采樣芯片,該芯片具有8個采樣通道,可以時對4個通道進行掃描采樣,每個采樣周期只需對該芯片進行兩次讀操作便能完成8個通道的采樣。A/D轉(zhuǎn)換使用逐次逼進去,采樣總速率為250kHz,4通道同步掃描采樣時單個通道的采樣速率大于30kHz,遠遠超過本系統(tǒng)對16個通道同步采樣的速率要求。該芯片通過內(nèi)部集成的多路開關來實現(xiàn)4通道同步掃描采樣,芯片內(nèi)部有一個416位的RAM用于存放每次掃描采樣的4通道數(shù)據(jù)。該芯片提供了14位的數(shù)據(jù)線,可以在一次掃描采樣結(jié)束后在4個時鐘周期內(nèi)將4個采樣結(jié)果全部輸出。當采樣位數(shù)為14位,其LSB代表(1/2 13)VIN(VIN為最大電壓輸入值)即VIN/8192,而該芯片的采樣誤差僅為2個LSB即2VIN/8192,約為0.025%VIN,所以該采樣芯片能較好滿足本系統(tǒng)的精度要求。系統(tǒng)對單個通道的采樣速率要求為12.8kHz(每工頻周波采樣256點),而該芯片的單通道采樣速率大于30kHz,所以該芯片能較好滿足本系統(tǒng)的采樣速率要求。
從FFT的分析可知,其誤差很大程度來自采樣窗口和實際波形的同步不嚴格,造成頻譜泄漏。為消除頻譜泄漏引起的誤差,常用的方法有:硬件同步、加窗處理。硬件同步的方法比較多,常用的主要有使用PLL電路進行同步。按照GB/T14549-1993要求,只允許使用矩形窗和漢寧窗,使用矩形窗時窗口間不能有間隔和重疊。為減少信號的混疊和頻譜泄漏,本系統(tǒng)的A/D采樣單元通過使用高精度的PLL實現(xiàn)嚴格的同步采樣,以保證窗口間無重疊和間隔,并能嚴格與被測信號頻同步,并在FFT運算單元實現(xiàn)了加漢寧窗處理。采樣單元基本原理如圖2所示。
FFT運算處理單元基于一塊Altera公司的EP1C20FPGA芯片,該芯片帶有294912位RAM,具有20060個LE,最大I/O引腳301。FFT運算處理單元采用先進的多層并行流水線技術,工作在30MHz的頻率下,可以在1ms內(nèi)完成8路工頻輸入信號的256點FFT運算處理。該處理單元的原理如圖3所示。
該單元實際包含兩大部分,即采樣控制邏輯部分和FFT運算部分。采樣邏輯部分負責MAX125的讀數(shù)據(jù)邏輯控制。FFT運算部分包括FFT控制邏輯、采樣數(shù)據(jù)緩存、FFT處理核與結(jié)果存儲FIFO。從IDT72V845輸出的14位采樣數(shù)據(jù),首先暫存于采樣數(shù)據(jù)緩存中;然后FFT處理核從該緩存中讀取數(shù)據(jù)進行處理;處理完畢的數(shù)據(jù)存放于結(jié)果FIFO中;FFT控制邏輯單元向Nios處理器申請中斷,Nios處理器響應應該中斷向FFT控制邏輯單元發(fā)送讀信號;然后從結(jié)果FIFO讀取分析結(jié)果。
以往FFT設計中,往往使用定點數(shù)。因為使用定點數(shù)時,系統(tǒng)結(jié)構(gòu)相對簡單、運算速度快,但精度不高。在FPGA中使用浮點數(shù)時,系統(tǒng)相對設計復雜,但精度高?;诒鞠到y(tǒng)對精度的苛刻要求,故采用浮點數(shù)進行FFT的硬件算術實現(xiàn)。FFT處理核采用先進的多層并行流水線技術,可以在1ms內(nèi)完成8路256點的FFT運算。該單元實際相當于一個基于標準單精度浮點數(shù)的FFT變換協(xié)處理器,提供了簡單可靠的接口以連接采樣單元和處理器,并能獨立進行FFT處理。
顯示單元為一塊普通點陣LCD顯示屏,可以顯示各種諧波分析的數(shù)據(jù)和簡單波形。該LCD顯示屏由處理器直接控制。
網(wǎng)絡接口單元是由1塊MAX485芯片和1塊RealTek8019以太網(wǎng)接口芯片構(gòu)成。MAX485芯片提供了標準的RS485接口,其通信協(xié)議為標準IEC4000-5-104規(guī)約,該規(guī)約為IEC規(guī)定的標準電力系統(tǒng)通信規(guī)約。通過處理器的系統(tǒng)軟件實現(xiàn),可以直接傳送分析結(jié)果數(shù)據(jù)給上層使用同樣規(guī)約的第三方綜合自動化站或監(jiān)控系統(tǒng)。RealTek8019是一塊全雙工以太網(wǎng)接口芯片,該芯片實現(xiàn)了RFC 1600規(guī)范中要求的物理層,提供了標準的以太網(wǎng)接口,其通信協(xié)議為標準的TCP/IP協(xié)議,通過處理器的軟件實現(xiàn)。
控制單元核心為使用FPGA實現(xiàn)的處理器Nios。Nios是Altera公司提供的基于Harvard結(jié)構(gòu)的RISC通用處理器IP Core,目前最新版本為3.0,有16位和32位兩個版本。兩個版本均使用16位的RISC指令集,差別主要于系統(tǒng)總線帶寬。在系統(tǒng)開發(fā)中使用Nios,可以根據(jù)需要自行配置處理器數(shù)目可多達512個。開發(fā)者可在FPGA容量允許范圍內(nèi),自由配置處理器的Cache大小、指令集ROM大小、片內(nèi)RAM和ROM大小、I/O引腳數(shù)目和類型、中斷引腳數(shù)目、定時器數(shù)目、通用串口數(shù)目、擴展地址和數(shù)據(jù)引腳等處理器的性能指標,而且可以在處理器ALU中直接加入自行定義的數(shù)字邏輯,并添加自行定義的處理器指令??梢?,使用Nios具有極大靈活性和很高的處理效率。使用Altera公司推出的SOPC Builder開發(fā)工具,開發(fā)者可以快速開發(fā)出滿足設計需要的處理器。該開發(fā)工具支持C、C++語言,并提供了常用的功能類庫。開發(fā)者可以直接使用C、C++語言進行系統(tǒng)軟件開發(fā),然后在線調(diào)試自行設計的Nios處理器和軟件。當軟件達到設計要求時,可通過該工具將執(zhí)行代碼轉(zhuǎn)換成Flash文件格式或HEX文件下載到啟動Flash或FPGA器件中,使所設計的系統(tǒng)可獨立運行。本系統(tǒng)使用的Nios為32位版本,約使用了2093個邏輯單元,具有64KB ROM和4KB RAM,工作在50MHz頻率。設計帶有3個中斷引腳、1個通用定時器/計數(shù)器和1個通用串行口,與FFT運算單元整合在同一FPGA芯片中。所有FPGA設計均使用Verilog HDL硬件描述語言進行設計。
在高速數(shù)字系統(tǒng)中,使用直接整合在FPGA芯片中的處理器具有優(yōu)越的性能。在高速數(shù)字系統(tǒng)中,由于信號頻率的增加導致PCB連線呈現(xiàn)傳輸線特性,從而影響到信號的完整性。線路間的串擾、芯片間的連接拓撲、芯片的引腳分布和封裝形式、PCB的幾何特性及介電特性、過孔及電壓參考平面等均會嚴重影響高速信號的完整性。將電路中的高速數(shù)字信號部分整合在同一FPGA芯片中,則能有效解決以上的大部分影響因素,且可充分利用FPGA內(nèi)部豐富的連線資源來增加系統(tǒng)的數(shù)字總線資源。FPGA可實現(xiàn)絕大部分數(shù)字電路設計,而將所需的功能直接整合在FPGA的設計中,因此可大大減小處理器外圍擴展電路數(shù)目,降低外圍電路和布局走線復雜度,減少影響高速信號完整性的因素,提高系統(tǒng)的抗干擾能力。FPGA具有豐富的部I/O引腳,可以充分滿足電路設計時的外部擴展連接需求。
圖4
由于處理器承擔著多重任務,因此在系統(tǒng)軟件中入了實時操作系統(tǒng)RTOS作為操作系統(tǒng)環(huán)境。使用RTOS的優(yōu)勢是非常明顯的,它可屏蔽底層設備,提供多進程的并發(fā)操作,合理調(diào)配優(yōu)先極不同的任務,有效管理內(nèi)存空間,使開發(fā)者可以集中精力關注于功能的實際算法,并且為軟件的調(diào)試、移植和有效復用提供良好的條件。本系統(tǒng)使用RTOS為源代碼開放的μC/OSII。ΜC/OSII是由Jean J.Labrosse編寫的源代碼公開的RTOS,目前被移植到多種平臺上廣泛使用,是一個經(jīng)過實踐考驗的優(yōu)秀RTOS。ΜC/OSII可以同時管理64個進程,每個進程必須有不同優(yōu)先級。其中優(yōu)先級0、1、2、3、OS_LOWEST+PRIO-3,OS_LOWEST_PRIO-2,OS_LOWEST_PRIO-1和OS_LOWEST_PRIO為系統(tǒng)保留,所以最大可使用54個進程。ΜC/OSII是一個搶占式的RTOS,即系統(tǒng)能中止低優(yōu)先級進程的執(zhí)行,使高優(yōu)先級的進程獲得執(zhí)行權,這樣能有效保障進程調(diào)度的實時性。由于μC/OSII的內(nèi)存管理功能過弱,因此本系統(tǒng)軟件中只使用了其進程調(diào)度、互斥同步機制及通信機制部分,自行編寫了內(nèi)存管理部分以適應系統(tǒng)網(wǎng)絡通信時對內(nèi)存管理的需求。在系統(tǒng)中創(chuàng)建了6個進程,包括中斷響應進程、Ethernet管理進程、串口管理進程、采樣控制進程、FFT管理進程及顯示進程,其優(yōu)先級依次下降。中斷響應進程負責處理中斷的響應和中斷的響應進程調(diào)用;Ethernet管理進程負責處理TCP/IP通信事件;串行口管理進程負責處理RS485串口通信事件;采樣控制進程負責管理采樣控制;FFT管理進程負責FPGA的FFT處理單元和處理器之間的事務處理;顯示進程負責控制LCD的顯示。
具體的軟件工作流程為:中斷響應進程由于優(yōu)先級最高,所以可以及時對所有中斷進行響應處理。在具體中斷發(fā)生時,中斷響應進程首先判斷為何種中斷,然后調(diào)用相應的處理進程,同時中斷響應進程放棄CPU主動休眠,從而讓處于低優(yōu)先級的處理進程可以獲得CPU時間運行。在處理完中斷后,處理進程主動休眠,在更低優(yōu)先級的處理進程可以處理完被打斷的工作。當所有處理進程均無處理工作時,主動喚醒中斷響應進程。處于休眠態(tài)的中斷響應進程可實時被中斷信號所喚醒,從而保證所有中斷均能得到實時響應。該系統(tǒng)軟件使用RTOS后,程序結(jié)構(gòu)清楚,開發(fā)人員可以把精力集中于控制算法上,而不必過多考慮底層的問題,從而有效縮短開發(fā)時間,程序的可靠性大大提高。
3 總結(jié)
按照本系統(tǒng)所制造的產(chǎn)品已經(jīng)通過實際測試,其基波幅值誤差小于0.2%,諧波幅值誤差小于5%,相位誤差小于0.2%,其精度滿足GB/T 17626.7規(guī)定的A級測量儀器精度要求。該產(chǎn)品成本低廉,結(jié)構(gòu)緊湊,抗干擾性強。實際應用中,用戶可按實際需求在變電站二次側(cè)任意設置諧波監(jiān)測點,并可通過局域網(wǎng)或RS485接口方便地接入變電站管理系統(tǒng)中,從而有效實現(xiàn)對線路諧波的監(jiān)測。
評論