摘 要:有源電力濾波器諧波檢測(cè)中數(shù)字低通濾波器的設(shè)計(jì)是關(guān)鍵。通過(guò)選用現(xiàn)場(chǎng)可編程邏輯器件(FPGA)確定了數(shù)字低通濾波器的硬件實(shí)現(xiàn)方案,并按照層次化、模塊化、參數(shù)化的設(shè)計(jì)思路,采用VHDL硬件描述語(yǔ)言進(jìn)行了硬件設(shè)計(jì),并進(jìn)行了仿真驗(yàn)證,為有源電力濾波器諧波檢測(cè)中低通濾波器設(shè)計(jì)提供了參考。
關(guān)鍵詞:有源電力濾波器;諧波檢測(cè);數(shù)字低通濾波器;FPGA;VHDL
中圖分類(lèi)號(hào):TN713 文獻(xiàn)標(biāo)識(shí)碼:B
文章編號(hào):1004373X(2008)0310303
Design of Digital Low—pass Filter in Harmonic Detection
ZENG Jurong,YANG Xiaoxue
(Institute of Information Science Technology,Southwest Jiaotong University,Chengdu,610030,China)
Abstract:The key of active power filter harmonic detection is the design of digital low—pass filter.In this paper,a scheme of hardware implementation of digital low—pass filter is worked out by selecting FPGA,F(xiàn)rom the clew of implementing a stratified,modularized and parameterized design,the thesis describes the hardware implementation of digital low—pass filter with VHDL,the design is simulated and show that it is correct and provide reference to the design of digital low—pass filter of active power filter harmonic diction.
Keywords:active power filter;harmonic detection;digital low—pass filter;FPGA;VHDL
1 引 言
隨著電力電子技術(shù)的飛速發(fā)展,大量的非線(xiàn)性負(fù)荷投入電網(wǎng),使得電網(wǎng)產(chǎn)生大量的諧波電流和諧波電壓。通常把周期性非正弦波中幅值比基波小而頻率是基波整數(shù)倍的一系列正弦波分量稱(chēng)為諧波。諧波能夠產(chǎn)生很大的危害,會(huì)造成繼電保護(hù)非正常頻繁啟動(dòng),自動(dòng)化控制系統(tǒng)失靈,電動(dòng)機(jī)、發(fā)電機(jī)和電容器損壞,增加了對(duì)通信系統(tǒng)的干擾,還使產(chǎn)品的質(zhì)量降低,數(shù)量減少。因此,對(duì)電網(wǎng)諧波加以檢測(cè)和限制具有重要意義。
有源電力濾波器(APF)是治理電網(wǎng)諧波污染的有效手段之一,在APF的設(shè)計(jì)中,高精度、實(shí)時(shí)性的諧波檢測(cè)是其高性能補(bǔ)償?shù)那疤?。隨著數(shù)字信號(hào)處理技術(shù)的發(fā)展,在APF中采用最多、實(shí)時(shí)性最好的諧波檢測(cè)方法是基于瞬時(shí)無(wú)功功率理論的Ip—Iq諧波電流檢測(cè)方法,在該檢測(cè)方法中低通濾波器(LPF)的設(shè)計(jì)是關(guān)鍵。本文通過(guò)選用現(xiàn)場(chǎng)可編程邏輯器件(FPGA)確定了LPF的硬件實(shí)現(xiàn)方案,并按照層次化、模塊化、參數(shù)化的設(shè)計(jì)思路,采用VHDL硬件描述語(yǔ)言進(jìn)行了硬件設(shè)計(jì)并進(jìn)行了仿真驗(yàn)證。
2 低通濾波器的選擇
在APF中,低通濾波器的設(shè)計(jì)應(yīng)滿(mǎn)足:截止頻率低,過(guò)渡帶快,通帶內(nèi)增益接近1,阻帶內(nèi)增益接近0,在滿(mǎn)足精度要求的前提下階數(shù)盡量低,以使濾波器的運(yùn)算速度加快。
濾波器有模擬濾波器和數(shù)字濾波器兩種。這里選用數(shù)字濾波器,因?yàn)樗鄬?duì)于模擬濾波器更容易進(jìn)行濾波代數(shù)運(yùn)算,而且數(shù)字濾波器沒(méi)有模擬濾波器隨時(shí)間、溫度、電壓漂移的優(yōu)點(diǎn),另外數(shù)字濾波器還能實(shí)現(xiàn)近似的理想響應(yīng)和線(xiàn)性相位,所以能更好地達(dá)到諧波檢測(cè)的實(shí)時(shí)性和準(zhǔn)確性的要求。
數(shù)字濾波器有無(wú)限沖激響應(yīng)(IIR)系統(tǒng)和有限沖激響應(yīng)(FIR)系統(tǒng)兩種。IIR系統(tǒng)的優(yōu)點(diǎn)是實(shí)現(xiàn)的階數(shù)低,對(duì)于實(shí)現(xiàn)相同要求的數(shù)字濾波器,F(xiàn)IR濾波器的階數(shù)要比IIR濾波器的階數(shù)高5~10倍,IIR濾波器的設(shè)計(jì)相對(duì)簡(jiǎn)單,可以由對(duì)應(yīng)的模擬濾波器轉(zhuǎn)換而來(lái)。FIR系統(tǒng)的優(yōu)點(diǎn)是采用遞歸結(jié)構(gòu),可以得到嚴(yán)格的線(xiàn)性相位,運(yùn)算的誤差也較小,F(xiàn)IR的設(shè)計(jì)比IIR要靈活。結(jié)合IIR濾波器和FIR濾波器的優(yōu)缺點(diǎn),由于在APF諧波檢測(cè)中的低通數(shù)字濾波器是用于通過(guò)直流,濾掉交流,對(duì)相位的要求不高,而且希望運(yùn)算盡量小,因此選用IIR濾波器。
3 IIR數(shù)字低通濾波器的理論設(shè)計(jì)
一般而言,APF要求能夠?yàn)V掉的最低次諧波為2~3次,截止頻率可以相應(yīng)取在50~100 Hz。本文通過(guò)理論分析和仿真比較,采用二階巴特沃茲低通數(shù)字濾波器,其截止頻率為70 Hz,通帶內(nèi)的衰減≤1 dB,阻帶內(nèi)的衰減≤-30 dB,利用Matlab軟件,得到濾波器的傳遞函數(shù)如下:
4 IIR數(shù)字低通濾波器的硬件設(shè)計(jì)
將式(1)所示的傳遞函數(shù)表示為差分方程:
由式(2)可以看出,IIR數(shù)字濾波器需要通過(guò)大量的乘法運(yùn)算和加法運(yùn)算來(lái)得到結(jié)果。由于大多數(shù)FPGA芯片都具有查找表(LUT)結(jié)構(gòu),因此可以充分利用芯片具有的結(jié)構(gòu),設(shè)計(jì)出一個(gè)優(yōu)化的硬件實(shí)現(xiàn)方案。這里采用串行結(jié)構(gòu)方式,并將輸入信號(hào)和反饋信號(hào)取為不同的數(shù)據(jù)寬度,將IIR低通濾波器劃分為前饋路徑和反饋路徑兩個(gè)部分,共包含6個(gè)功能模塊。
4.1 控制模塊
控制模塊產(chǎn)生其他各模塊的控制信號(hào),實(shí)現(xiàn)對(duì)移位寄存器、并串轉(zhuǎn)換、查找表、移位累加和加法器各模塊的控制,使各模塊按照一定的時(shí)序依次執(zhí)行各自的功能,從而完成濾波。
4.2 移位寄存器模塊
在前饋路徑和反饋路徑中各有一個(gè)移位寄存器模塊,兩個(gè)模塊在結(jié)構(gòu)和功能上是完全相同的,只是由于他們處理的信號(hào)的數(shù)據(jù)寬度不同,所以占用的硬件資源有差異。移位寄存器模塊將接收到的信號(hào)經(jīng)過(guò)移位寄存操作而產(chǎn)生同步延遲,這里給出前饋路徑的移位寄存器模塊VHDL程序段及其仿真波形如圖1所示。
LIBRARY ieee;
USE ieee.std_logic_1164.all;
ENTITY shiftall1 IS
GENERIC(width:integer:=15);
PORT(clk,shift_in,clr: in std_logic;
data_in: in std_logic_vector(width downto 0);
out2,out1,out0: out std_logic_vector(width downto 0));
END ENTITY shiftall1;
ARCHITECTURE behave OF shiftall1 IS
SIGNALtempa,tempb,tempc:
std_logic_vector(width downto 0);
BEGIN
PROCESS(clk,clr,shift_en)
BEGIN
IF(clr='0') THEN
tempa <= (OTHERS=>'0');
tempb <= (OTHERS=>'0');
tempc <= (OTHERS=>'0');
ELSIF(clk'EVENT AND clk='1') THEN
IF(shift_en='1') THEN
tempc <= tempb;
tempb <= tempa;
tempa <= data_in;
END IF;
END IF;
out0 <= tempa;
out1 <= tempb;
out2 <= tempc;
END PROCESS;
END ARCHITECTURE behave;
圖1 移位寄存器模塊仿真波形
由圖1可見(jiàn),使能信號(hào)SHIFT_EN高電平有效,在時(shí)鐘信號(hào)CLK上升沿作用下,分別將輸入數(shù)據(jù)160,161,162作延時(shí)處理,對(duì)于輸入數(shù)據(jù)159,163,由于使能信號(hào)無(wú)效,不進(jìn)行處理,輸出仍保持上次結(jié)果。仿真結(jié)果表明,該模塊完全正確。
4.3 并/串轉(zhuǎn)換模塊
兩個(gè)并/串轉(zhuǎn)換模塊實(shí)現(xiàn)的功能是將移位寄存器模塊送來(lái)的并行數(shù)據(jù)轉(zhuǎn)換為串行數(shù)據(jù)輸出,這里給出前饋路徑并串轉(zhuǎn)換模塊的仿真波形如圖2所示。使能信號(hào)LOAD高電平有效,在時(shí)鐘信號(hào)CLK上升沿作用下,分別將輸入12位并行數(shù)據(jù)001101000111,011001001001,001000101000作并串轉(zhuǎn)換處理,輸出方向?yàn)榈臀坏礁呶弧?/p>
圖2 并/串轉(zhuǎn)換模塊仿真波形
4.4 查找表模塊
前饋路徑中的查找表存儲(chǔ)了IIR數(shù)字低通濾波器傳遞函數(shù)的分子多項(xiàng)式系數(shù)的全部組合,反饋路徑中的查找表則存儲(chǔ)的是傳遞函數(shù)的分母多項(xiàng)式系數(shù)的全部組合。并/串轉(zhuǎn)換模塊的串行輸出作為查找的地址輸入,獲取存儲(chǔ)在表中的相應(yīng)的系數(shù)組合的值。由式(1)可知傳遞函數(shù)的分子、分母多項(xiàng)式的系數(shù),并根據(jù)對(duì)量化誤差的分析計(jì)算確定在硬件實(shí)現(xiàn)時(shí)將系數(shù)轉(zhuǎn)化成數(shù)據(jù)寬度為16位的定點(diǎn)補(bǔ)碼的二進(jìn)制數(shù)字形式表示,令xj(n-2),xj(n-1),xj(n)為x(n-2),x(n-1),x(n)的第j位,yr(n-1),yr(n-2)為y(n-1),y(n-2)的第r位,則可構(gòu)造兩個(gè)查找表,查找表的地址和他對(duì)應(yīng)的十進(jìn)制、二進(jìn)制表示的數(shù)據(jù)值見(jiàn)表1。
里給出前饋路徑查找表的VHDL程序段及其仿真波形如圖3所示。
LIBRARYieee;
USEieee.std_logic_1164.all;
LIBRARYlpm;
USElpm.lpm_components.all;
ENTITYluta IS
GENERIC(awidth: integer:=3;
lutawidth: integer:=16);
PORT(clk: in std_logic;
Address: in std_logic_vector(awidth downto 1);
rom_out: out std_logic_vector(lutawidth downto 1));
END luta;
ARCHITECTURE rlt OF luta IS
COMPONENT lpm_rom
GENERIC(LPM_WIDTH: integer;
LPM_WIDTHAD: integer;
LPM_OUTDATA: string;
LPM_FILE: string;
LPM_ADDRESS_CONTROL: string);
PORT(address: in std_logic_vector(awidth downto 1);
inclock: in std_logic;
q: out std_logic_vector(lutawidth downto 1));
END COMPONENT;
BEGIN
a: lpm_rom
GENERIC MAP(LPM_WIDTH=>lutawidth,
LPM_WIDTHAD=>awidth,
LPM_OUTDATA=>\"unregistered\",
LPM_FILE=>\"luta1.mif\",
LPM_ADDRESS_CONTROL=>\"registered\")
PORT MAP(address=>address,
inclock=>clk,q=>rom_out);
END rlt;
表1 傳遞函數(shù)的分子分母多項(xiàng)式的系數(shù)
由仿真波形可見(jiàn)該模塊在時(shí)鐘信號(hào)CLK上升沿作用下,在不同的地址查詢(xún)結(jié)果均正確無(wú)誤,輸出結(jié)果用十進(jìn)制表示。
圖3 查找表模塊仿真波形
4.5 移位累加模塊
移位累加模塊接收來(lái)自前饋路徑查找表和反饋路徑查找表的數(shù)據(jù),將查表的數(shù)據(jù)進(jìn)行移位、相加或相減處理。假設(shè)信號(hào)為N位,那么就要進(jìn)行N-1次移位操作、N-1次加法運(yùn)算和1次減法運(yùn)算。該模塊由一個(gè)加減控制器和一個(gè)算術(shù)移位寄存器組成,在每個(gè)時(shí)鐘到來(lái)時(shí),查找表的輸出送到加減法控制器,其運(yùn)算結(jié)果輸出經(jīng)過(guò)算術(shù)移位寄存器作為下一個(gè)時(shí)鐘周期加減法控制器的輸入。當(dāng)SUB_EN等于1時(shí),使移位寄存器輸出的數(shù)據(jù)加上從DATA_B端輸入的數(shù),否則將減去DATA_B端輸入的數(shù),其仿真波形如圖4所示。
4.6 加法器模塊
加法器模塊將兩個(gè)移位累加模塊的輸出數(shù)據(jù)作為輸入,對(duì)輸入的兩個(gè)數(shù)據(jù)進(jìn)行加法運(yùn)算,加法運(yùn)算的結(jié)果就是最終的濾波結(jié)果,其仿真波形如圖5所示。
圖4 移位累加模塊仿真波形
圖5 加法器模塊仿真波形
4.7 頂層設(shè)計(jì)
前面已經(jīng)設(shè)計(jì)了構(gòu)造濾波器的所有子功能模塊,對(duì)所有模塊都進(jìn)行了編譯和仿真,驗(yàn)證了這些模塊都能夠正確地實(shí)現(xiàn)各自的功能,在此基礎(chǔ)上就可以進(jìn)行頂層文件的設(shè)計(jì)了。頂層文件采用了原理圖輸入方式,原理圖輸入方式非常的直觀,便于信號(hào)的觀察和電路的調(diào)節(jié),這里設(shè)計(jì)的頂層文件名為lowpass.gdf,設(shè)計(jì)生成的IIR數(shù)字低通濾波器的邏輯符號(hào)如圖6所示。
圖6 low—pass的邏輯符號(hào)
在Max+plusⅡ開(kāi)發(fā)平臺(tái)上進(jìn)行的仿真結(jié)果證明了所有的功能模塊都能達(dá)到預(yù)期的功能要求。通過(guò)仿真分析得出串行結(jié)構(gòu)濾波器的處理速度可達(dá)到4.5 Msps,從而表明采用FPGA實(shí)現(xiàn)的IIR低通濾波器具有很高的處理速度。
5 結(jié) 語(yǔ)
本文利用層次化、模塊化、參數(shù)化的思想設(shè)計(jì)了IIR數(shù)字低通濾波器,從而便于針對(duì)不同的實(shí)際要求進(jìn)行修改,采用現(xiàn)場(chǎng)可編程邏輯器件進(jìn)行濾波器的硬件設(shè)計(jì),能夠達(dá)到諧波檢測(cè)實(shí)時(shí)性和準(zhǔn)確性的要求,為電力有源濾波器諧波檢測(cè)中低通濾波器設(shè)計(jì)提供了參考。
參考文獻(xiàn)
[1]陳后金.數(shù)字信號(hào)處理[M].北京:高等教育出版社,2004.
[2]林海雪.電力網(wǎng)中的諧波[M].北京:電力出版社,1998.
[3]黃智偉.FPGA系統(tǒng)設(shè)計(jì)與實(shí)踐[M].北京:電子工業(yè)出版社,2005.
[4]劉翔宇,楊仁剛.基于Ip—Iq法諧波檢測(cè)中數(shù)字低通濾波器的設(shè)計(jì)及其DSP實(shí)現(xiàn)[J].電力自動(dòng)化設(shè)備,2006,26(8):81—84.
[5]侯伯亨,顧新.VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)[M].西安:西安電子科技大學(xué)出版社,2005.
[6]吳展遙.電能質(zhì)量數(shù)據(jù)采集和諧波分析方法的實(shí)現(xiàn)[J].現(xiàn)代電子技術(shù),2006,29(23):145—147.
作者簡(jiǎn)介 曾菊容 女,1978年出生,碩士研究生。研究方向?yàn)榧呻娐返脑O(shè)計(jì)。
注:本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文。