孫正宇, 張禹
(沈陽工業(yè)大學(xué) 機械工程學(xué)院,沈陽110870)
六維力傳感器可以在空間內(nèi)測量沿三維坐標(biāo)軸上的力Fx、Fy、Fz及繞這3條坐標(biāo)軸產(chǎn)生的力矩Mx、My、Mz,可為操作者提供力反饋,提高臨場感[1],被廣泛用于空間機械臂[2]、水下機器人[3]、醫(yī)療機器人[4]等領(lǐng)域。而六維力傳感器被固定在機械臂末端用來測量力信號時,由于受到機械臂的振動、應(yīng)變片熱噪聲、放大電路噪聲、彈性體蠕變噪聲及周圍環(huán)境電磁干擾[5]等影響,使得測得的數(shù)據(jù)精度較差,難以對數(shù)據(jù)進行分析。因此,需要對六維力傳感器采集的數(shù)據(jù)進行濾波處理,從而提高力信號的準(zhǔn)確性及穩(wěn)定性。
本文對常用的濾波方法進行分析,提出一種基于正態(tài)分布的滑動平均濾波法,在保證濾波實時性好、平滑性高的同時,消除個別極端噪聲對濾波曲線的影響。
卡爾曼濾波法是一種通過上一刻的最優(yōu)估算值對當(dāng)前時刻的測量值進行加權(quán)得到當(dāng)前最優(yōu)解的最優(yōu)估計濾波方法[6]。卡爾曼濾波法可以有效地抑制過高或過低的噪聲,但該濾波法平滑程度較低,波動性比較大,而且卡爾曼濾波法公式復(fù)雜,計算機計算壓力大,依賴系統(tǒng)模型及噪聲模型的準(zhǔn)確程度,在實際工作環(huán)境中,噪聲協(xié)方差矩陣難以準(zhǔn)確獲得,導(dǎo)致無法估計線性最優(yōu)值,從而使卡爾曼濾波效果下降[7]。
算數(shù)平均值濾波法是一種簡單快速的濾波法,通過對一組采樣數(shù)據(jù)進行算數(shù)平均值計算,從而得到這一組數(shù)據(jù)的采樣值。該種濾波法每組采樣數(shù)據(jù)越多,平滑性越高,算法簡單,解決了卡爾曼濾波計算繁雜、平滑性差的缺點,但濾波結(jié)果相對于數(shù)據(jù)采集延后嚴(yán)重,無法保證實時性。
滑動平均濾波法結(jié)合了算數(shù)平均值濾波法的優(yōu)點,設(shè)置一個可容納N個數(shù)據(jù)的緩存區(qū),傳感器連續(xù)采樣并將N個采樣值存入緩存區(qū)中進行算數(shù)平均值計算,然后每測得一個采樣值就會剔除緩存區(qū)內(nèi)最舊的采樣值,并對緩存區(qū)內(nèi)新的數(shù)據(jù)進行計算。這種濾波方法實時性好,平滑程度高,但對工作環(huán)境中突然波動較嚴(yán)重的噪聲抑制能力較差[8]。采用緩沖區(qū)內(nèi)剔除最大值及最小值再進行算數(shù)平均值計算的方法[9],對極端噪聲的消除有一定效果,但對于連續(xù)的極端噪聲抑制能力較低,且去除緩存區(qū)內(nèi)數(shù)據(jù)會降低平滑性。
去除最大值、最小值的滑動平均濾波法的弊端在于無法識別隨機分布的噪聲及個別極端的噪聲。為了結(jié)合普通滑動平均濾波法運算簡單、實時性好、平滑性高的優(yōu)點,同時可以準(zhǔn)確去除個別極端噪聲數(shù)據(jù),本文采用基于正態(tài)分布的滑動平均濾波法,以正態(tài)分布為依據(jù),對滑動平均濾波法緩存區(qū)內(nèi)的數(shù)據(jù)進行判定,將不符合的數(shù)據(jù)剔除,從而降低極端噪聲對濾波曲線的影響,并對去除的數(shù)據(jù)用平均值進行補償,從而保證平滑性。
首先令計算機將連續(xù)采樣的n個采樣值存入緩存區(qū),然后每采樣一個數(shù)據(jù)便將采樣值加入緩存區(qū)首端,同時去除緩存區(qū)末端的采樣值。假設(shè)某一時刻緩存區(qū)內(nèi)n個數(shù)據(jù)為a1…an,計算緩存區(qū)內(nèi)算數(shù)平均值:


圖1 程序流程圖
根據(jù)正態(tài)分布判定與滑動平均濾波法的前后邏輯關(guān)系,可設(shè)計程序流程框圖,如圖1所示。
本文實驗使用安徽埃力智能科技有限公司生產(chǎn)的Bioforcen六維力傳感器,使用基于VC6.0 的C++編程語言編寫,因此將算法轉(zhuǎn)化為C++程序如下:

將程序?qū)懭雮鞲衅髟次募校瑴?zhǔn)備實驗。

圖2 滑動平均濾波法與原始數(shù)據(jù)對比
將六維力傳感器放置在無外部干擾的環(huán)境中,對Z軸的零負載讀數(shù)進行測量,采用廠商多維力數(shù)據(jù)采集系統(tǒng)對數(shù)據(jù)進行采樣,并分別使用普通滑動平均濾波法,去除最大值、最小值的滑動平均濾波法及基于正態(tài)分布的滑動平均濾波法進行濾波,抽取其中連續(xù)100個數(shù)值進行比對。
首先使用普通滑動平均濾波法對數(shù)據(jù)進行濾波處理,實驗結(jié)果如圖2所示。
由圖2可知,滑動平均濾波法有效地提高了原始數(shù)據(jù)的平滑性,對于噪聲有良好的抑制效果,但對于例如點46及點56處的隨機極端噪聲,波動性增大,抑制效果不明顯。
由圖3可知,與普通滑動平均濾波法相比,去除最大值、最小值的滑動平均濾波法對于點46、點56處的隨機極端噪聲有良好的濾波作用,波動小于普通滑動平均濾波法。如圖4所示,在處理連續(xù)周期性極端噪聲上,由于去除最大值、最小值的滑動平均濾波法每個緩存區(qū)內(nèi)只能去除2個數(shù)據(jù),因此對緩存區(qū)內(nèi)存在多個極端噪聲數(shù)據(jù)時,濾波處理效果不明顯,緩存區(qū)內(nèi)n值降低導(dǎo)致平滑性略微低于普通滑動平均濾波法。用基于正態(tài)分布的滑動平均濾波法對原始數(shù)據(jù)進行處理,與前兩種濾波法的效果做比較,在隨機極端噪聲時對比如圖5所示。由圖5可知,基于正態(tài)分布的滑動平均濾波法可以有效地抑制個別極端噪聲,在噪聲較少的區(qū)間平滑性略高于另外兩種濾波方法。在連續(xù)的周期性極端噪聲中,如圖6所示,基于正態(tài)分布的滑動平均濾波法可以連續(xù)對緩存區(qū)內(nèi)的數(shù)據(jù)進行判定及補償,曲線平滑性比其他兩種濾波方法更高。

圖3 兩種濾波法極端噪聲處效果對比圖

圖4 兩種濾波法周期性噪聲處效果對比圖

圖5 正態(tài)分布滑動平均濾波法隨機噪聲處效果圖

圖6 正態(tài)分布滑動平均濾波法連續(xù)噪聲處效果圖
本文經(jīng)過分析幾種常見的濾波方法,對滑動平均濾波法及去除最大值、最小值的滑動平均濾波法進行改進,利用正態(tài)分布來判定的滑動平均濾波法對采集數(shù)據(jù)進行濾波。實驗分析表明,基于正態(tài)分布的滑動平均濾波法可以有效抑制隨機及連續(xù)的極端噪聲,可以使濾波曲線更加平滑。