前言
上期文章中对Discrete Derivative的用法做了说明,并在文章中提到了在第一个步长内加速度出现突变的问题,本期将对这个问题进行说明。上期文章回顾Discrete Derivative的使用
一、滤波处理是什么?
在使用Simulink进行建模时,经常会听到一阶低通滤波,二阶滤波,还有高通滤波等等。不明白的小伙伴可能会有疑问,啥是一阶?啥是滤波?先看常见的一阶滤波公式:
其中:
α为滤波系数,大小在0-1之间,α的大小表示对当前输入信号或上一时刻输出信号的依赖程度。
X(n)为本次输入
Y(n−1)为上次滤波输出值
Y(n)为本次滤波输出值
一阶就是X(n)的指数为1,如果是二阶表示的就是X(n)的指数为2;滤波就是过滤杂波。那在Simulink建模中,一阶低通滤波有啥用呢?
一阶低通滤波器是一种常见的信号滤波手段,具有简单的实现方式和有效的低频信号保留功能。它通常用于去除噪声或对信号进行平滑处理。当然,对信号进行平滑处理还有其他的方式。例如:均值滤波处理,就是取多个历史输出求平均值;还有带时间参数的一阶滤波处理。
二、仿真
1.建模
一阶滤波的模型如下:按照如上公式,即可快速搭建出模型,如图1所示,滤波系数α=0.5
图1
现在,就可以在Discrete Derivative后面加上一阶滤波来对信号进行平滑处理,使得加速度曲线变得平滑一些。模型如图2所示:
图2
FirstOrderFiltering是一个子系统,内部如图1所示。
2.分析数据
代码如下(示例):
a是未经处理的加速度,y_a是经一阶滤波处理之后的加速度。可以明显的看出,未经处理之前的加速度是从0直接突变到1000。处理之后的加速度是一个渐变上升的过程,这就是对信号进行平滑处理。
因此,我们在使用Discrete Derivative的时候,一般都会搭配一个一阶滤波模块,防止信号出现突变。对于一阶滤波模块,在使用的过程中,其实还是有一些小问题的,就是在第一个步长内,会出现初始输入信号的滞后。对于这个问题,会在后期的文章中给出解决方案。有兴趣的伙伴,可以关注我的同名公众号Simulink学堂。
总结
以上就是今天要讲的内容,本文介绍了一阶滤波的使用以及实际存在的一些小问题,后期会针对这个问题给出解决方案。