微波EDA网,见证研发工程师的成长!
首页 > 应用设计 > 工业电子 > 基于MATLAB用于谐波检测的数字低通滤波器的设计

基于MATLAB用于谐波检测的数字低通滤波器的设计

时间:03-11 来源:互联网 点击:
0 引言

由于电力系统中非线性电子元件的大量使用,使得谐波污染问题日益严重,当谐波含量超过一定限度时就可能对电网和用户造成极大的危害,且增加线路损耗,降低线路传输能力,干扰通信信号等。因此,应该积极寻找一种治理谐波污染的有效手段。

目前有源电力滤波器(APF)是治理电网谐波污染的一种有效手段,APF的补偿原理是实时产生一个与系统中的无功和谐波电流大小相等、方向相反的补偿电流,用以抵消非线性负载产生的无功和谐波电流,使流入电网的电流全是有功分量,因此无功和谐波电流的实时检测就成为实时补偿的关键。而谐波及无功电流的检测实质就是低通滤波器的设计。本文利用MATLAB中的FDAtool实现了对数字低通滤波器模型的快速设计,并采用VHDL语言在FPGA上实现。

1 低通滤波器的选择

滤波器有模拟滤波器和数字滤波器两种。这里选用数字滤波器,因为它相对于模拟滤波器更容易进行滤波代数运算,而且它不会像模拟滤波器那样随时间、温度、电压漂移,还有就是它能实现近似理想的响应和线性相位,所以能更好地达到谐波检测的实时性和准确性的要求。
数字滤波器有无限冲激响应(IIR)系统和有限冲激响应(FIR)系统两种。虽然FIR滤波器相对于IIR滤波器可以得到严格的线性相位,但在相同技术指标下,IIR滤波器由于存在输出对输入的反馈,因而可用大约1/10~1/5FIR滤波器的阶数来满足指标的要求,从而使得所用空间少,运算次数少,实时性强。由于谐波检测环节对相位要求不高,而对计算速度要求极高,因此选择IIR滤波器作为研究的对象。

2 利用MATLAB设计IIR滤波器

目前数字滤波器的设计有许多现成的高级语言设计程序,但他们都存在设计效率较低,不具有可视图形,不便于修改参数等缺点,而Matlab为数字滤波的研究和应用提供了一个直观、高效、便捷的工具。它以矩阵运算为基础,把计算、可视化、程序设计融合到了一个交互式的工作环境中。尤其是Matlab工具箱使各个领域的研究人员可以直观而方便地进行科学研究与工程应用。其中的信号处理工具箱、图像处理工具箱、小波工具箱等更是为数字滤波研究的蓬勃发展提供了可能。

2.1 在Matlab中进行仿真设计

许多文献中在利用Matlab设计IIR数字滤波器时,采用先设计一个模拟滤波器,然后利用脉冲响应不变法或者双线性变换法,将模拟滤波器的传输函数转换成数字滤波器的系统函数,设计过程比较复杂,编写的程序比较长,没有很专业的知识是设计不出来的。而本文利用 FDAFool工具可以非常方便地设计出数字滤波器。

FDATool(Filter Design&Analysis Tool)是Matlab中的一种图形用户工具,为滤波器的设计提供了一个综合、简便的图形用户界面。本文要设计一个谐波检测电路中的低通滤波器,对于三相电路而言,其交流侧主要是5次和7次谐波,因此本文设计的低通滤波器的指标为:模拟信号采样频率Fs=2000Hz,通带截止频率 Fpass=100Hz,阻带截止频率Fstop=200Hz,通带波动不大于0.1dB,阻带衰减不小于32dB。在图1界面中设置好参数,并且选择 IIR中的Elliptic滤波器,然后点击Design Filter,即可得到所设计滤波器的模型:Order(阶)=4,Sections(节)=2,并可观察其幅度响应、相位响应,还可以观察脉冲响应、阶跃响应、滤波器的零极点绘制图以及系统函数的各个系数等指标。



2.2 利用Simulink检验滤波效果

打开Simulink新建一个文件untitledl如图2,在FDATool界面中点击Realize Model,将设计好的滤波器模型导入Simulink中,然后添加三个频率分别为50Hz、250Hz、350Hz的正弦波,利用Scope见察通过数字低通滤波器Filter的滤波效果。



Scopel显示的是50Hz正弦波,Scope2显示的是50Hz叠加上250Hz、350Hz正弦波后的波形,Scope显示的是通过我们设计的低通滤波器后的波形,对比图3(a)、(b)可以看出,滤波后的波形保留了50Hz的信号,且略有延迟,并将高频部分有效地滤除,说明设计的滤波器符合要求。

3 数字低通滤波器FPGA实现

数字滤波器的实现方法一般有以下几种:

(1)采用加法器、乘法器、延时器设计专用的滤波电路。
(2)在通用计算机系统中加上专用的加速处理机设计实现。
(3)用通用的可编程DSP芯片实现。
(4)用专用的DSP芯片实现。在一些特殊的场合,要求的信号处理速度极高,用通用DSP芯片很难实现。这种芯片将相应的滤波算法在芯片内部用硬件实现,无需进行编程。
(5)采用FPGA/CPLD设计实现。

在上述几种方法中,第(2)种方法的缺点是速度较慢,一般可用于DSP算法的模拟。第(1)、(4)种方法专用性强,应用受到很大的限制。第 (3)、(5)种方法都可以通过编程来实现各种数字滤波,使用DSP器件实现虽然简单,但由于程序顺序执行,执行速度必然不快。FPGA有着规整的内部逻辑阵列和丰富的连线资源,特别适合于数字信号处理任务,相对于串行运算为主导的通用DSP芯片来说,其并行性和可扩展性更好。但长期以来,FPGA一直被用于系统逻辑或时序控制上,很少有信号处理方面的应用,其原因主要是因为在FPGA中缺乏实现乘法运算的有效结构。现在这个问题得到了解决,使FPGA在数字信号处理方面有了长足的发展。

文献中是在Matlab中设计出数字低通滤波器后,得到其系统函数H(z)的系数,然后将系数转换为二进制,再利用VHDL语言进行编程,而编程的过程非常繁琐。

本文利用FDATool可以直接得到VHDL文件,在其菜单栏中的选择Fargets\Generate HDL,在打开的界面中选择VHDL file,建立文件名为filter.vhd,同时可以得到测试文件filter tb.vhd。利用QuartusII软件打开以上文件进行编译、综合,最后将其下载到FPGA中即可实现低通滤波器的功能。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top