解决方案

Simulink 窄带陷波滤波器(Notch filter)仿真到代码生成

seo靠我 2023-09-22 22:17:20

目录

窄带陷波滤波器(Notch filter)原理

设计一个Notch filter

生成代码

离散传递函数生成代码配置

差分方程生成代码

方程推导

构建差分方程模型

总结

窄带陷波滤波器(Notch filter)SEO靠我原理

陷波滤波器指的是可以将某一频率迅速衰减的滤波器,直接上效果图,如下图所示在常数100的信号上叠加了一个幅值为10的100Hz的频率,通过Notch filter后就得到了稳定的信号100,相当于抑SEO靠我制了振荡。可以用来抑制系统的共振点或者消除周期性的振荡等。

蓝色滤波前的信号,黄色滤波后的信号

设计一个Notch filter

传递函数如下:

 传递函数的伯德图:

从伯德图可以看出在某一个频率点会衰减,我们需SEO靠我要根据振荡的频率去调整w0=2*pi*f  (这里f是振荡频率),达到过滤掉振荡的效果。Q的值影响的是稳定的速度。

Q=1.9的伯德图和仿真效果

Q= 0.9的伯德图和仿真效果(衰减变小): 

生成代码

前面是SEO靠我s域的仿真,要能生成代码在硬件里面运行,需要把s域转成z域。这里生成代码的方式有以下两种,一种直接用离散传递函数,一种把离散传递函数转成差分方程。经对比,离散域传递函数会涉及到除法计算,有些单片机执行SEO靠我效率可能不高,而差分方法只有乘加,不涉及除法,计算效率会更高

离散传递函数生成代码配置

通过.m脚本实现s的传递函数转z. 15e-006是采样频率。

G_z = c2d(G_s,15e-006,tustiSEO靠我n);

这里有个小坑,Matlab的命令窗口只显示小数点后4位,可能会因为数据的精度影响到滤波效果,还需要对Matlab进行数据小数位数的设置,设置如下:

设置好后一般的除法可以显示到小数位后15位,但是SEO靠我传递函数形式的数据还是只显示4位。因此用如下指令取到传递函数的分子和分母的系数。

G_z_Numerator= G_z.Numerator{1};

G_z_Denominator=G_z.DenominaSEO靠我tor{1};

 display(G_z_Numerator);

display(G_z_Denominator);

 这样就得到了离散传递函数的参数,我们把得到的分子和分母的系数放到模型中仿真

差分方程生成代码SEO靠我

方程推导

差分方程只需要把离散传递函数转一下就好了,转的步骤如下:

 传递函数转差分方程步骤:

1. 改写成如下形式

2.分子分母同时除z^2

3.交叉相乘

4.把Y(z)移到等式左边

5.把上面等式写成差分方程的形SEO靠我

构建差分方程模型

通过Simulink构建方程模型。

 离散传递函数和差分方程仿真效果一样(这里Q值有些不同)

总结

总结下学习心得,通过对Notch filter的学习

1.了解Notch filter的工程SEO靠我意义应用场合和参数调试

2. 实际工程利用Matlab如何把s传递函数转为z传递函数再转成差分方程,方便生成代码

参考模型:

NotchFilter陷波滤波器仿真-快应用文档类资源-CSDN下载

“SEO靠我”的新闻页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与 我们联系删除或处理,客服邮箱:html5sh@163.com,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同 其观点或证实其内容的真实性。

网站备案号:浙ICP备17034767号-2