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

发布时间:2010-3-11 23:14    发布者:李宽
关键词: Matlab , 检测 , 滤波器 , 数字 , 谐波
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,并可观察其幅度响应、相位响应,还可以观察脉冲响应、阶跃响应、滤波器的零极点绘制图以及系统函数的各个系数等指标。

1.jpg

2.2 利用Simulink检验滤波效果

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

2.jpg

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中即可实现低通滤波器的功能。

4 结束语

本文利用Matlab中的FDATool实现了IIR数字低通滤波器的设计及仿真,设计过程简单、直接,大大缩减了设计开发的时间。采用FPGA进行滤波器的硬件设计,能够达到谐波检测实时性和准确性的要求,为电力有源滤波器谐波检测中低通滤波器的设计提供了参考。同时在实际应用中,可以方便地对滤波器参数进行修改,很容易实现其他各种滤波器的设计,具有一定的工程设计参考价值。

参考文献

   1. 薛年喜.MATLAB在数字信号处理中的应用[M].北京:清华大学出版社,2008.
   2. 梁二虎,刘文怡,等.基于FPGA的IIR数字滤波器硬件模块的设计[J].微计算机信息,2008,(2):205+225-226.
   3. 张园,王辉.基于MATLAB和Quartus Ⅱ的FIR滤波器设计与仿真[J].电子工程师,2008,(2):25-27.
   4. 曾菊容,杨小雪.用于谐波检测中的数字低通滤波器的设计[J].现代电子技术,2008,(3):103-105.
   5. 王勇,吕征宇,等.有源电力滤波器中谐波提取的数字法实现[J].电力系统及其自动化学报,2004,(4):64-67.

作者:泰山学院物理与电子工程学院 姜春玲  魏强   
   
来源:电子技术 2009(12)
本文地址:https://www.eechina.com/thread-9240-1-1.html     【打印本页】

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。
您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

相关在线工具

相关视频

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表