工程師青青 發表於 2018-07-16 18:22:00
基於FFT算法的電力系統諧波檢測裝置,大多採用DSP晶片設計。DSP晶片是採用哈佛結構設計的一種CPU,運算能力很強,速度很快;但是其順序執行的模式限制了其進行FFT運算的速度。而現場可編程邏輯門陣列(Field Programmable Gate Array, FPGA)在近年來獲得了突飛猛進的發展,目前已成為實現數字系統的主流平臺之一。與DSP相比,FPGA最大的優勢就是可以進行並行計算。在進行FFT這類並行運算為主的算法時,採用FPGA的優勢不言而喻。用FPGA實現FFT算法進行諧波檢測成為了一大熱點。
以往FPGA的設計主要依靠硬體描述語言來完成。Xilinx公司推出了專門針對實現DSP的設計軟體—System Generator。在使用FPGA為原型平臺運行算法時,它不僅能夠對硬體的真實情況進行仿真,還能夠自動生成硬體實現所需要的硬體描述語言代碼。與語言設計相比,使用System Generator有三大優勢:第一,圖形化操作,簡單易用;第二,實現的算法能確保與仿真結果相符;第三,無需為仿真和實現建立不同的模型。因此,利用System Generator可以大幅度減少用FPGA設計DSP的工作量,縮短開發周期[1,2]。
系統總體結構如圖1所示。
(1)採樣電路部分:包括互感器及濾波電路、鎖相倍頻電路和A/D轉換電路。
待測電壓、電流信號經互感器調理電路轉化成便於採樣的低壓信號,經濾波器濾除檢測範圍外的高次諧波、高頻幹擾信號和噪聲;然後進入A/D轉換電路,電壓、電流的模擬信號轉換成可以用於計算的數位訊號。鎖相倍頻電路用於跟蹤待測信號的頻率變化,以實現對信號的整周期採樣。
(2)如圖1所示,虛線框內部分由FPGA實現。最主要部分就是控制單元和FFT模塊。控制單元主要由狀態機的形式實現,當接收到鎖相倍頻電路送來的倍頻信號時,驅動A/D轉換器進行採樣。A/D轉換器完成一次採樣,先將數據送入到FIFO模塊暫存,當數據達到進行FFT計算所需點數後,狀態機控制FIFO模塊將數據送入FFT模塊進行計算。為保證數據由A/D轉換電路進入FPGA時的同步,A/D轉換電路中的時鐘由FPGA對開發板上的時鐘分頻後提供。
FPGA部分採用模塊化的設計方法。在Simulink環境下搭建仿真模型,如圖2所示。模型的核心部分是FFT計算模塊(FFT v4_1),圍繞它設計了數據輸入子系統data_in、數據輸出子系統(data_out)和控制單元模塊(st_ctr)。用simulink中的信號模塊模擬出電壓u(t)、電流信號i(t),考慮到後續數據輸出控制的設計,預留了中斷信號輸入INT(signal 3),為便於仿真,其間隔時間與採樣時間同步。數據輸入子系統主要用於對採樣數據的轉換和暫存, 數據輸入子系統的主要包括scale模塊、convert模塊和FIFO模塊。數據輸出子系統用於對FFT計算所得的結果進行處理,計算出電壓、電流基波及各次諧波的幅值和相位。
然後,搭建三相的電壓、電流諧波檢測模型(圖3),其中包括了控制模塊(ST_MA、da_out_ctr)和三個子系統A、B、C,每個子系統內均有一個單相諧波檢測模型。控制模塊ST_MA實現對整個模型運行時序的控制以及對硬體採樣電路的控制;da_out_ctr用於控制數據的輸出。
如圖4所示,系統硬體由兩大部分組成,分別是虛線框內的採樣電路部分和開發板部分[6-7]。本文採用的Spartan-3A DSP 入門級開發板是Xilinx公司出品的基於Spartan-3A DSP FPGA設計的一個開發平臺。採樣電路實現對三相電壓、電流的整周期同步採樣,其設計尺寸與Spartan-3A DSP開發板相同,通過EXP接口實現與開發板的通信。它包括:電壓、電流互感器、調理電路、低通濾波電路、鎖相倍頻電路、AD轉換器及電平轉換電路。
3.1 硬體聯合仿真
由於實驗條件所限,本文採用的是單相220V的市電為檢測對象。接入額定電壓220V,標稱功率800W的電加熱器為負載。首先用FLUKE434型電能質量分析儀檢測出該負載上的電壓、電流的各次諧波參數,如表1所列,其電壓總諧波畸變率THDV=4.9%,電流總諧波畸變率THDI=4.8%。
經採樣後得到的數位訊號量在0~5V之間,依照給定參數分別乘係數J、K,利用Simulink中模塊生成一組表徵電壓、電流的數位訊號作為系統的輸入信號。如圖5所示。
將FFT模塊中的採樣點數分別設置成為128、256、512、1024,並設置相應的採樣頻率,然後運行硬體聯合仿真模型;將計算結果再乘係數1/J、1/K,得到表2~表5所示結果。
3.2 仿真結果分析
由各表中可以看出,計算出的幅值以及根據幅值計算所得總諧波畸變率的誤差都比較小。隨著採樣點數的增加,計算所得基波和較低次數的諧波幅值的誤差和總諧波畸變率的誤差並沒有明顯減小,而次數較高的諧波誤差減小較明顯。究其原因,N點FFT計算可以分解出0~N/2-1次諧波,N=128時就可以分解出63次以內的諧波了。而對於次數較高的諧波,採樣點數的增加對其幅值誤差的改善還是比較明顯的。硬體實現時,在計算精度滿足要求的情況下,考慮到實時性的要求,可選用256點FFT進行計算。
此外,計算所得相位出現了很大的偏差;原本設想通過改變待測信號參數,分析仿真結果來推導出相位偏差的規律,但是隨著數值的改變,相位偏差規律並不明顯,並未達到預期目的。然而,在改變信號參數的分析過程中發現,相位的改變對諧波幅值和總諧波畸變率的計算並沒有太大影響,計算精度基本滿足要求。因此,實際硬體實現時,捨棄掉相位計算,只計算出各次諧波的幅值及總諧波畸變率。
本文提出了一種採用基於Xilinx FPGA 實現FFT算法的電壓、電流諧波檢測的模塊化的設計方法。使用System Generator設計了諧波檢測的模型及前端採樣電路,並以Spartan-3A DSP開發板為平臺進行了硬體聯合仿真驗證。
打開APP閱讀更多精彩內容聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容圖片侵權或者其他問題,請聯繫本站作侵刪。 侵權投訴