用于諧波檢測中的數(shù)字低通濾波器的MATLAB設(shè)計
由于電力系統(tǒng)中非線性電子元件的大量使用,使得諧波污染問題日益嚴重,當諧波含量超過一定限度時就可能對電網(wǎng)和用戶造成極大的危害,且增加線路損耗,降低線路傳輸能力,干擾通信信號等。因此,應(yīng)該積極尋找一種治理諧波污染的有效手段。
目前有源電力濾波器(APF)是治理電網(wǎng)諧波污染的一種有效手段,APF的補償原理是實時產(chǎn)生一個與系統(tǒng)中的無功和諧波電流大小相等、方向相反的補償電流,用以抵消非線性負載產(chǎn)生的無功和諧波電流,使流入電網(wǎng)的電流全是有功分量,因此無功和諧波電流的實時檢測就成為實時補償?shù)年P(guān)鍵。而諧波及無功電流的檢測實質(zhì)就是低通濾波器的設(shè)計。本文利用MATLAB中的FDAtool實現(xiàn)了對數(shù)字低通濾波器模型的快速設(shè)計,并采用VHDL語言在FPGA上實現(xiàn)。
1 低通濾波器的選擇
濾波器有模擬濾波器和數(shù)字濾波器兩種。這里選用數(shù)字濾波器,因為它相對于模擬濾波器更容易進行濾波代數(shù)運算,而且它不會像模擬濾波器那樣隨時間、溫度、電壓漂移,還有就是它能實現(xiàn)近似理想的響應(yīng)和線性相位,所以能更好地達到諧波檢測的實時性和準確性的要求。
數(shù)字濾波器有無限沖激響應(yīng)(IIR)系統(tǒng)和有限沖激響應(yīng)(FIR)系統(tǒng)兩種。雖然FIR濾波器相對于IIR濾波器可以得到嚴格的線性相位,但在相同技術(shù)指標下,IIR濾波器由于存在輸出對輸入的反饋,因而可用大約1/10~1/5FIR濾波器的階數(shù)來滿足指標的要求,從而使得所用空間少,運算次數(shù)少,實時性強。由于諧波檢測環(huán)節(jié)對相位要求不高,而對計算速度要求極高,因此選擇IIR濾波器作為研究的對象。
2 利用MATLAB設(shè)計IIR濾波器
目前數(shù)字濾波器的設(shè)計有許多現(xiàn)成的高級語言設(shè)計程序,但他們都存在設(shè)計效率較低,不具有可視圖形,不便于修改參數(shù)等缺點,而Matlab為數(shù)字濾波的研究和應(yīng)用提供了一個直觀、高效、便捷的工具。它以矩陣運算為基礎(chǔ),把計算、可視化、程序設(shè)計融合到了一個交互式的工作環(huán)境中。尤其是Matlab工具箱使各個領(lǐng)域的研究人員可以直觀而方便地進行科學研究與工程應(yīng)用。其中的信號處理工具箱、圖像處理工具箱、小波工具箱等更是為數(shù)字濾波研究的蓬勃發(fā)展提供了可能。
2.1 在Matlab中進行仿真設(shè)計
許多文獻中在利用Matlab設(shè)計IIR數(shù)字濾波器時,采用先設(shè)計一個模擬濾波器,然后利用脈沖響應(yīng)不變法或者雙線性變換法,將模擬濾波器的傳輸函數(shù)轉(zhuǎn)換成數(shù)字濾波器的系統(tǒng)函數(shù),設(shè)計過程比較復(fù)雜,編寫的程序比較長,沒有很專業(yè)的知識是設(shè)計不出來的。而本文利用FDAFool工具可以非常方便地設(shè)計出數(shù)字濾波器。
FDATool(Filter DesignAnalysis Tool)是Matlab中的一種圖形用戶工具,為濾波器的設(shè)計提供了一個綜合、簡便的圖形用戶界面。本文要設(shè)計一個諧波檢測電路中的低通濾波器,對于三相電路而言,其交流側(cè)主要是5次和7次諧波,因此本文設(shè)計的低通濾波器的指標為:模擬信號采樣頻率Fs=2000Hz,通帶截止頻率Fpass=100Hz,阻帶截止頻率Fstop=200Hz,通帶波動不大于0.1dB,阻帶衰減不小于32dB。在圖1界面中設(shè)置好參數(shù),并且選擇IIR中的Elliptic濾波器,然后點擊Design Filter,即可得到所設(shè)計濾波器的模型:Order(階)=4,Sections(節(jié))=2,并可觀察其幅度響應(yīng)、相位響應(yīng),還可以觀察脈沖響應(yīng)、階躍響應(yīng)、濾波器的零極點繪制圖以及系統(tǒng)函數(shù)的各個系數(shù)等指標。
2.2 利用Simulink檢驗濾波效果
打開Simulink新建一個文件untitledl如圖2,在FDATool界面中點擊Realize Model,將設(shè)計好的濾波器模型導入Simulink中,然后添加三個頻率分別為50Hz、250Hz、350Hz的正弦波,利用Scope見察通過數(shù)字低通濾波器Filter的濾波效果。
Scopel顯示的是50Hz正弦波,Scope2顯示的是50Hz疊加上250Hz、350Hz正弦波后的波形,Scope顯示的是通過我們設(shè)計的低通濾波器后的波形,對比圖3(a)、(b)可以看出,濾波后的波形保留了50Hz的信號,且略有延遲,并將高頻部分有效地濾除,說明設(shè)計的濾波器符合要求。
3 數(shù)字低通濾波器FPGA實現(xiàn)
數(shù)字濾波器的實現(xiàn)方法一般有以下幾種:
(1)采用加法器、乘法器、延時器設(shè)計專用的濾波電路。
(2)在通用計算機系統(tǒng)中加上專用的加速處理機設(shè)計實現(xiàn)。
(3)用通用的可編程DSP芯片實現(xiàn)。
(4)用專用的DSP芯片實現(xiàn)。在一些特殊的場合,要求的信號處理速度極高,用通用DSP芯片很難實現(xiàn)。這種芯片將相應(yīng)的濾波算法在芯片內(nèi)部用硬件實現(xiàn),無需進行編程。
(5)采用FPGA/CPLD設(shè)計實現(xiàn)。
在上述幾種方法中,第(2)種方法的缺點是速度較慢,一般可用于DSP算法的模擬。第(1)、(4)種方法專用性強,應(yīng)用受到很大的限制。第(3)、(5)種方法都可以通過編程來實現(xiàn)各種數(shù)字濾波,使用DSP器件實現(xiàn)雖然簡單,但由于程序順序執(zhí)行,執(zhí)行速度必然不快。FPGA有著規(guī)整的內(nèi)部邏輯陣列和豐富的連線資源,特別適合于數(shù)字信號處理任務(wù),相對于串行運算為主導的通用DSP芯片來說,其并行性和可擴展性更好。但長期以來,F(xiàn)PGA一直被用于系統(tǒng)邏輯或時序控制上,很少有信號處理方面的應(yīng)用,其原因主要是因為在FPGA中缺乏實現(xiàn)乘法運算的有效結(jié)構(gòu)?,F(xiàn)在這個問題得到了解決,使FPGA在數(shù)字信號處理方面有了長足的發(fā)展。
文獻中是在MATLAB中設(shè)計出數(shù)字低通濾波器后,得到其系統(tǒng)函數(shù)H(z)的系數(shù),然后將系數(shù)轉(zhuǎn)換為二進制,再利用VHDL語言進行編程,而編程的過程非常繁瑣。
本文利用FDATool可以直接得到VHDL文件,在其菜單欄中的選擇Fargets\Generate HDL,在打開的界面中選擇VHDL file,建立文件名為filter.vhd,同時可以得到測試文件filter tb.vhd。利用QuartusII軟件打開以上文件進行編譯、綜合,最后將其下載到FPGA中即可實現(xiàn)低通濾波器的功能。
4 結(jié)束語
本文利用Matlab中的FDATool實現(xiàn)了IIR數(shù)字低通濾波器的設(shè)計及仿真,設(shè)計過程簡單、直接,大大縮減了設(shè)計開發(fā)的時間。采用FPGA進行濾波器的硬件設(shè)計,能夠達到諧波檢測實時性和準確性的要求,為電力有源濾波器諧波檢測中低通濾波器的設(shè)計提供了參考。同時在實際應(yīng)用中,可以方便地對濾波器參數(shù)進行修改,很容易實現(xiàn)其他各種濾波器的設(shè)計,具有一定的工程設(shè)計參考價值。
評論