APP下载

一种基于正态分布的滑动平均滤波法

2020-09-08孙正宇张禹

机械工程师 2020年8期
关键词:算数正态分布卡尔曼滤波

孙正宇, 张禹

(沈阳工业大学 机械工程学院,沈阳110870)

0 引 言

六维力传感器可以在空间内测量沿三维坐标轴上的力Fx、Fy、Fz及绕这3条坐标轴产生的力矩Mx、My、Mz,可为操作者提供力反馈,提高临场感[1],被广泛用于空间机械臂[2]、水下机器人[3]、医疗机器人[4]等领域。而六维力传感器被固定在机械臂末端用来测量力信号时,由于受到机械臂的振动、应变片热噪声、放大电路噪声、弹性体蠕变噪声及周围环境电磁干扰[5]等影响,使得测得的数据精度较差,难以对数据进行分析。因此,需要对六维力传感器采集的数据进行滤波处理,从而提高力信号的准确性及稳定性。

本文对常用的滤波方法进行分析,提出一种基于正态分布的滑动平均滤波法,在保证滤波实时性好、平滑性高的同时,消除个别极端噪声对滤波曲线的影响。

1 滤波方法分析

1.1 卡尔曼滤波

卡尔曼滤波法是一种通过上一刻的最优估算值对当前时刻的测量值进行加权得到当前最优解的最优估计滤波方法[6]。卡尔曼滤波法可以有效地抑制过高或过低的噪声,但该滤波法平滑程度较低,波动性比较大,而且卡尔曼滤波法公式复杂,计算机计算压力大,依赖系统模型及噪声模型的准确程度,在实际工作环境中,噪声协方差矩阵难以准确获得,导致无法估计线性最优值,从而使卡尔曼滤波效果下降[7]。

1.2 算数平均值滤波

算数平均值滤波法是一种简单快速的滤波法,通过对一组采样数据进行算数平均值计算,从而得到这一组数据的采样值。该种滤波法每组采样数据越多,平滑性越高,算法简单,解决了卡尔曼滤波计算繁杂、平滑性差的缺点,但滤波结果相对于数据采集延后严重,无法保证实时性。

1.3 滑动平均滤波

滑动平均滤波法结合了算数平均值滤波法的优点,设置一个可容纳N个数据的缓存区,传感器连续采样并将N个采样值存入缓存区中进行算数平均值计算,然后每测得一个采样值就会剔除缓存区内最旧的采样值,并对缓存区内新的数据进行计算。这种滤波方法实时性好,平滑程度高,但对工作环境中突然波动较严重的噪声抑制能力较差[8]。采用缓冲区内剔除最大值及最小值再进行算数平均值计算的方法[9],对极端噪声的消除有一定效果,但对于连续的极端噪声抑制能力较低,且去除缓存区内数据会降低平滑性。

1.4 基于正态分布的滑动平均滤波法

去除最大值、最小值的滑动平均滤波法的弊端在于无法识别随机分布的噪声及个别极端的噪声。为了结合普通滑动平均滤波法运算简单、实时性好、平滑性高的优点,同时可以准确去除个别极端噪声数据,本文采用基于正态分布的滑动平均滤波法,以正态分布为依据,对滑动平均滤波法缓存区内的数据进行判定,将不符合的数据剔除,从而降低极端噪声对滤波曲线的影响,并对去除的数据用平均值进行补偿,从而保证平滑性。

2 基于正态分布的滑动平均滤波法算法设计

2.1 滤波法原理

首先令计算机将连续采样的n个采样值存入缓存区,然后每采样一个数据便将采样值加入缓存区首端,同时去除缓存区末端的采样值。假设某一时刻缓存区内n个数据为a1…an,计算缓存区内算数平均值:

图1 程序流程图

2.2 滤波法程序设计

根据正态分布判定与滑动平均滤波法的前后逻辑关系,可设计程序流程框图,如图1所示。

本文实验使用安徽埃力智能科技有限公司生产的Bioforcen六维力传感器,使用基于VC6.0 的C++编程语言编写,因此将算法转化为C++程序如下:

将程序写入传感器源文件中,准备实验。

3 实验分析

图2 滑动平均滤波法与原始数据对比

将六维力传感器放置在无外部干扰的环境中,对Z轴的零负载读数进行测量,采用厂商多维力数据采集系统对数据进行采样,并分别使用普通滑动平均滤波法,去除最大值、最小值的滑动平均滤波法及基于正态分布的滑动平均滤波法进行滤波,抽取其中连续100个数值进行比对。

首先使用普通滑动平均滤波法对数据进行滤波处理,实验结果如图2所示。

由图2可知,滑动平均滤波法有效地提高了原始数据的平滑性,对于噪声有良好的抑制效果,但对于例如点46及点56处的随机极端噪声,波动性增大,抑制效果不明显。

由图3可知,与普通滑动平均滤波法相比,去除最大值、最小值的滑动平均滤波法对于点46、点56处的随机极端噪声有良好的滤波作用,波动小于普通滑动平均滤波法。如图4所示,在处理连续周期性极端噪声上,由于去除最大值、最小值的滑动平均滤波法每个缓存区内只能去除2个数据,因此对缓存区内存在多个极端噪声数据时,滤波处理效果不明显,缓存区内n值降低导致平滑性略微低于普通滑动平均滤波法。用基于正态分布的滑动平均滤波法对原始数据进行处理,与前两种滤波法的效果做比较,在随机极端噪声时对比如图5所示。由图5可知,基于正态分布的滑动平均滤波法可以有效地抑制个别极端噪声,在噪声较少的区间平滑性略高于另外两种滤波方法。在连续的周期性极端噪声中,如图6所示,基于正态分布的滑动平均滤波法可以连续对缓存区内的数据进行判定及补偿,曲线平滑性比其他两种滤波方法更高。

图3 两种滤波法极端噪声处效果对比图

图4 两种滤波法周期性噪声处效果对比图

图5 正态分布滑动平均滤波法随机噪声处效果图

图6 正态分布滑动平均滤波法连续噪声处效果图

4 结 论

本文经过分析几种常见的滤波方法,对滑动平均滤波法及去除最大值、最小值的滑动平均滤波法进行改进,利用正态分布来判定的滑动平均滤波法对采集数据进行滤波。实验分析表明,基于正态分布的滑动平均滤波法可以有效抑制随机及连续的极端噪声,可以使滤波曲线更加平滑。

猜你喜欢

算数正态分布卡尔曼滤波
基于深度强化学习与扩展卡尔曼滤波相结合的交通信号灯配时方法
关于n维正态分布线性函数服从正态分布的证明*
生活常态模式
一屋三室
说话要算数
偏对称正态分布的若干性质
卡尔曼滤波在信号跟踪系统伺服控制中的应用设计
秋天不会算数
基于递推更新卡尔曼滤波的磁偶极子目标跟踪
人生没有白走的路,每一步都算数