郭晨霞,李 達(dá),楊瑞峰
(1.中北大學(xué)儀器與電子學(xué)院,山西太原 030051;2.山西省自動(dòng)化檢測裝備與系統(tǒng)工程技術(shù)研究中心,山西太原 030051)
目前,動(dòng)態(tài)稱重?cái)?shù)據(jù)處理算法有平均值算法、極大似然估計(jì)法、濾波法、EMD 算法、神經(jīng)網(wǎng)絡(luò)法等[1],但是針對動(dòng)物動(dòng)態(tài)稱重的研究比較少。機(jī)器視覺技術(shù)應(yīng)用于無接觸測量動(dòng)物體重是熱門研究方向,但是目前只能估測且成本較高[2]、難以適應(yīng)規(guī)模化養(yǎng)殖的需求。孫建英研制的智能稱重系統(tǒng)滿足規(guī)模化需求,稱重平均相對誤差只有1.2%,但是樣本小且未對算法進(jìn)行深入研究[3]。在動(dòng)態(tài)稱重前對羊只進(jìn)行一周的適應(yīng)性訓(xùn)練,能有效降低平均相對誤差[4]。在稱重算法研究領(lǐng)域,Ma W 利用改進(jìn)的限幅濾波算法和BP 神經(jīng)網(wǎng)絡(luò)降低肉雞動(dòng)態(tài)稱重的誤差[5]。唐思豪利用ADAM 改進(jìn)的BP 神經(jīng)網(wǎng)絡(luò)對動(dòng)態(tài)檢重秤的砝碼稱重?cái)?shù)據(jù)進(jìn)行處理,能夠準(zhǔn)確估計(jì)動(dòng)態(tài)稱量結(jié)果[6]。魏赫通過粒子群優(yōu)化RBF 神經(jīng)網(wǎng)絡(luò)算法對車輛動(dòng)態(tài)稱重?cái)?shù)據(jù)處理后提升了動(dòng)態(tài)稱重的精度[7]。
針對動(dòng)態(tài)稱重?cái)?shù)據(jù)樣本不平穩(wěn)、真實(shí)信號(hào)淹沒在噪聲中導(dǎo)致難以快速準(zhǔn)確測量的問題,使用收斂速度快的RBF 神經(jīng)網(wǎng)絡(luò)對數(shù)據(jù)進(jìn)行處理。通過與EMD 算法進(jìn)行對比,驗(yàn)證RBF 神經(jīng)網(wǎng)絡(luò)在動(dòng)物動(dòng)態(tài)稱重中的優(yōu)越性。
利用RBF 神經(jīng)網(wǎng)絡(luò)模型處理動(dòng)態(tài)稱重?cái)?shù)據(jù)本質(zhì)是預(yù)測問題。將徑向基函數(shù)(RBF)引入神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)中,形成了RBF神經(jīng)網(wǎng)絡(luò)。RBF神經(jīng)網(wǎng)絡(luò)是一種由輸入層、隱含層和輸出層構(gòu)成的三層前向型網(wǎng)絡(luò)[8-9]。
輸入層用于為網(wǎng)絡(luò)傳輸預(yù)處理后的稱重?cái)?shù)據(jù)。隱含層完成對輸入信號(hào)的非線性映射。輸出層完成對各隱含層神經(jīng)元輸出的加權(quán)求和[10]。
高斯函數(shù)是RBF 神經(jīng)網(wǎng)絡(luò)中常用的徑向基函數(shù),因此徑向基神經(jīng)網(wǎng)絡(luò)的激活函數(shù)可表示為:
RBF 神經(jīng)網(wǎng)絡(luò)的輸出為:
式中,j=1,2,…,n;||xp-ci||為歐氏范數(shù);xp為第p個(gè)輸入樣本;ci為網(wǎng)絡(luò)隱含層結(jié)點(diǎn)的中心;σ為高斯函數(shù)的方差;wij為隱含層到輸入層的連接權(quán)值;h為隱含層節(jié)點(diǎn)數(shù);yi為與輸入樣本對應(yīng)網(wǎng)絡(luò)的第j個(gè)輸出節(jié)點(diǎn)的實(shí)際輸出[11]。
RBF 神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)算法分為三步,第一步是求取基函數(shù)的中心,第二步是求解方差,第三步是求取隱含層和輸出層之間的權(quán)值。
常采用K-均值聚類方法確定隱含層的中心[12],徑向基函數(shù)為高斯函數(shù)時(shí),方差σi的求解公式為:
式中,i=1,2,…,h。cmax是所選取中心之間的最大距離。隱含層和輸出層之間的權(quán)值可以通過最小二乘法直接計(jì)算得到,計(jì)算公式為:
K-均值聚類算法流程圖如圖1 所示。

圖1 K-均值聚類算法流程圖
EMD 是由美籍華人Noden E.Huang 等在上個(gè)世紀(jì)九十年代提出的一種新的信號(hào)分析方法[13],近年來被用于動(dòng)態(tài)稱重?cái)?shù)據(jù)的處理,EMD 分解的信號(hào)包含真實(shí)的物理信號(hào)。一些學(xué)者認(rèn)為動(dòng)態(tài)體重測量值是靜態(tài)體重和噪聲疊加而成,靜態(tài)體重可看作EMD分解的殘余量,干擾信號(hào)可看作本征函數(shù),所以通過EMD 逐步分解,最終可以得到殘余量,也就是真實(shí)的體重值。
EMD 分解的過程為:
1)確定單個(gè)真值對應(yīng)所有測量值的局部極大值和極小值點(diǎn),用三次樣條插值曲線將所有局部極大值點(diǎn)和局部極小值點(diǎn)連接起來,形成單次測量信號(hào)的上包洛線yup(t)、下包絡(luò)線ylow(t)[14]。
沿河地區(qū)村莊成村較早,歷史悠久。綜合考慮日照、灌溉、飲水及防災(zāi)減災(zāi)等因素,聚落選址講究,多位于沿河兩岸較高的坪臺(tái)上,背山面水,形成“山-水-田-人”共生共榮的人文景觀(圖2、3)。
2)按照式(5)獲取上、下包絡(luò)線的均值曲線:
3)x(t)減去平均值m1(t)后得到一個(gè)去掉低頻成分的新序列h1(t):
如果h1(t) 滿足IMF 條件,則就得到x(t) 的首個(gè)IMF 分量h1(t)。
4)如果h1(t)不符合IMF 的條件,則將h1(t)作為初始數(shù)據(jù),再次執(zhí)行步驟(1)、(2),得到上下包絡(luò)線的均值m11(t),再判斷式(7)是否符合IMF 條件:
如果不符合,則重復(fù)循環(huán)k次,得到:
當(dāng)h1k(t)滿足IMF 條件時(shí),將h1k(t)賦值給c1(t),這就是信號(hào)x(t)的第一階IMF 分量。
5)將c1(t)從信號(hào)中去除,得到一個(gè)新的信號(hào):
將Res1(t)作為新的原始數(shù)據(jù)重復(fù)上述步驟,得到第二階IMF 分量,然后再重復(fù)上述步驟直到無法從剩余信號(hào)中提取滿足條件的IMF 分量,剩余的信號(hào)記作Resn(t),n為重復(fù)的次數(shù)。
文中使用的稱重設(shè)備主要由裝有四個(gè)稱重傳感器的秤臺(tái)、高精度數(shù)據(jù)采集卡、控制臺(tái)組成。其中控制臺(tái)負(fù)責(zé)控制稱重流程、讀取和保存稱重?cái)?shù)據(jù)。圖2所示為動(dòng)態(tài)稱重的簡要過程。

圖2 動(dòng)態(tài)稱重簡要過程
三個(gè)不同體重的工作人員攜帶不同的砝碼通過實(shí)驗(yàn)室搭建的稱重平臺(tái)獲得2 967 組實(shí)驗(yàn)數(shù)據(jù)。實(shí)驗(yàn)數(shù)據(jù)包括稱量物體的靜態(tài)體重和四組傳感器測量值。得到測量值以后,通過靜態(tài)標(biāo)定公式將四個(gè)傳感器測量值轉(zhuǎn)換為動(dòng)態(tài)體重測量值,然后剔除三組存在極大誤差的數(shù)據(jù),將處理后的動(dòng)態(tài)體重測量值和靜態(tài)體重保存在Excel 表中。實(shí)驗(yàn)用到的靜態(tài)標(biāo)定公式如下:
其中,x1、x2、x3、x4分別為四個(gè)傳感器的輸出信號(hào),x為傳感器輸出信號(hào)的和,y為動(dòng)態(tài)體重。
3.3.1 EMD算法處理
將2 964 組實(shí)驗(yàn)數(shù)據(jù)中相同真值的數(shù)據(jù)提取出來,一共有96 組有共同目標(biāo)體重的數(shù)據(jù),對每組數(shù)據(jù)通過EMD 算法進(jìn)行處理,由于每組數(shù)據(jù)兩端的數(shù)據(jù)不一定是極值點(diǎn),這樣在數(shù)據(jù)兩端無法畫出準(zhǔn)確的上下包絡(luò)線,無疑為實(shí)驗(yàn)結(jié)果帶來了誤差而且誤差層層累積[15],為此采用鏡像延拓法[16]對每組數(shù)據(jù)進(jìn)行預(yù)處理后,再通過EMD 算法對每組數(shù)據(jù)進(jìn)行分解,并取SD=0.2,得到的Resn(t) 即為想要的體重信號(hào),對Resn(t) 求平均即可得到理想的體重測量值。實(shí)驗(yàn)結(jié)果如圖3 和圖4 所示。

圖3 EMD測試數(shù)據(jù)

圖4 EMD測試數(shù)據(jù)相對誤差
求得95 組數(shù)據(jù)的平均相對誤差為9.523%,由圖4 可知,樣本數(shù)據(jù)中間和右端部分誤差較小。
3.3.2 RBF算法處理
盡管EMD 算法對部分?jǐn)?shù)據(jù)有較好的處理效果,但是其整體誤差仍然較大,嘗試?yán)脧较蚧窠?jīng)網(wǎng)絡(luò)對數(shù)據(jù)進(jìn)行處理。
首先對實(shí)驗(yàn)數(shù)據(jù)進(jìn)行隨機(jī)排序,然后選擇前2 864 組數(shù)據(jù)進(jìn)行訓(xùn)練,剩下的100 組數(shù)據(jù)進(jìn)行測試。利用Matlab 中的newrb()函數(shù)對數(shù)據(jù)進(jìn)行仿真實(shí)驗(yàn),均方誤差設(shè)置為0.01、徑向基函數(shù)的擴(kuò)展速度設(shè)置為1。RBF 神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程中隱含層神經(jīng)元個(gè)數(shù)增加到50 時(shí),均方誤差即不再改變,此時(shí)均方誤差為0.047 87。訓(xùn)練結(jié)果如圖5、圖6 所示。

圖5 RBF神經(jīng)網(wǎng)絡(luò)測試數(shù)據(jù)誤差

圖6 RBF神經(jīng)網(wǎng)絡(luò)測試數(shù)據(jù)相對誤差
由圖6 可看出,RBF 算法對某些數(shù)據(jù)處理的誤差接近0%,對動(dòng)態(tài)稱重?cái)?shù)據(jù)進(jìn)行10 次隨機(jī)排序,并利用RBF 神經(jīng)網(wǎng)絡(luò)進(jìn)行處理得到測試數(shù)據(jù)的平均相對誤差為5.866%,將其視作RBF 神經(jīng)網(wǎng)絡(luò)算法的平均相對誤差。
表1 為EMD 算法和RBF 神經(jīng)網(wǎng)絡(luò)對動(dòng)態(tài)稱重?cái)?shù)據(jù)處理的對比,可以看出,RBF 神經(jīng)網(wǎng)絡(luò)是比EMD算法更有效的動(dòng)態(tài)稱重處理模型。

表1 EMD算法和RBF神經(jīng)網(wǎng)絡(luò)的比較
針對動(dòng)物動(dòng)態(tài)稱重精度較低的問題,文中提出一種適用于動(dòng)物動(dòng)態(tài)稱重的RBF 模型,實(shí)驗(yàn)結(jié)果表明,相比于EMD 模型,提出的RBF 擬合模型具有更高的精度,同時(shí)由于動(dòng)物動(dòng)態(tài)稱重的復(fù)雜性,利用RBF 神經(jīng)網(wǎng)絡(luò)可以不對稱重模型進(jìn)行復(fù)雜的分析就可得到較為準(zhǔn)確的數(shù)據(jù),由此可以看出,RBF 神經(jīng)網(wǎng)絡(luò)在動(dòng)物動(dòng)態(tài)稱重領(lǐng)域有實(shí)際的應(yīng)用價(jià)值。