

昆山市拓恒機電有限公司
馮先生 137-7635-6532
E-mail: kstuoheng@126.com
江蘇省昆山市經(jīng)濟技術(shù)開發(fā)區(qū)
金沙江南路16號3號廠房
0 引 言
在農(nóng)業(yè)、食品等行業(yè)中,傳統(tǒng)的單秤稱量結(jié)構(gòu)簡單、功能單一,不能實現(xiàn)個性化的定量稱量。組合秤的出現(xiàn)則加快了定量稱量這一過程的速度,提高了生產(chǎn)效率。然而設(shè)備工作過程中一直伴隨重物的下落沖擊、料斗的開關(guān)閉合等動作,對稱重過程有一定的振動干擾,另外設(shè)備工作時間過長后,稱重傳感器會出現(xiàn)溫漂零漂等現(xiàn)象,導(dǎo)致稱重信號中含有噪聲
為解決噪聲問題,工業(yè)上對稱重模塊進行了部分優(yōu)化,其中硬件方面多采用高位數(shù)AD轉(zhuǎn)換芯片,并在參考電壓引腳端接入高精度穩(wěn)壓芯片,或者采用更高頻率的MCU芯片。這些方法增大了模塊制作成本,不利于生產(chǎn)推廣
因此,必須要對硬件進行低成本優(yōu)化,同時采用更復(fù)雜算法將噪聲濾除,確保參與計算的數(shù)據(jù)是去除噪聲后的有用數(shù)據(jù)
目前常用的信號去噪方法多為傅里葉變換、卡爾曼濾波等分析算法,然而上述算法對平穩(wěn)信號的過濾較為有效,當信號波動較大時,傳統(tǒng)去噪算法的函數(shù)很難與之匹配
小波變換方法是一種時域和頻域窗口形態(tài)都可改變的時頻分析方法,在高頻階段具有較高的時間分辨率和較低的頻率分辨率,尤其適合處理含噪信號中的高頻噪聲。本文針對工業(yè)上組合秤的稱重精度問題,開發(fā)了一款全新的基于小波去噪方法的組合秤稱重模塊,并在現(xiàn)場對該模塊的稱重性能進行了檢驗分析。
1 稱重模塊工作原理
目前市面上流行的組合秤主要由線振器、料斗、稱重模塊、主控模塊、電機模塊及擋板構(gòu)成。工作流程為:加料機將物料放在線振器上方的平臺上,通過線振器的振動將物料均勻運送到多個料斗,電機模塊控制料斗開合,稱重模塊進行稱重處理及數(shù)據(jù)傳輸,主控模塊負責對稱重模塊傳來的各斗重量進行組合,當組合出目標重量時,選中對應(yīng)料斗進行放料,物料通過擋板進入包裝機內(nèi),然后不斷循環(huán)整個過程
其中,稱重模塊是組合秤的核心部分,既要保證稱量精度與速度,又要配合主控模塊完成一定的業(yè)務(wù)邏輯。稱重模塊主要由壓力傳感器、放大電路、AD轉(zhuǎn)換芯片、MCU單片機及電源模塊構(gòu)成。工作原理如圖1所示。
圖1 稱重模塊工作原理 下載原圖
首先,壓力傳感器將壓力信號轉(zhuǎn)換為電壓信號。放大電路負責將該電壓放大至AD轉(zhuǎn)換芯片適配范圍進行輸出,AD轉(zhuǎn)換芯片根據(jù)基準電壓與輸入電壓的比例,將電壓信號轉(zhuǎn)換為數(shù)字信號,通過如SPI等協(xié)議傳輸給MCU。MCU可對該數(shù)據(jù)進行處理或包裝后進行傳輸。
實際生產(chǎn)中,一旦整體結(jié)構(gòu)發(fā)生振動,傳感器的輸出電壓就會發(fā)生跳變,而高精度的AD轉(zhuǎn)換芯片只會如實的將電壓轉(zhuǎn)換成數(shù)字量交給MCU處理
2 稱重模塊選型及設(shè)計
為方便硬件電路的布線及維修,本模塊采用雙面板設(shè)計。其中放大電路與AD采集電路放在背面與稱重傳感器連接,通訊電路與控制電路放在正面與PC端連接。正反面板在必要位置進行打孔,通過排針進行連接,實現(xiàn)電源供電或通訊協(xié)議傳輸。具體設(shè)計如下:
2.1 硬件選型及設(shè)計
模塊主要由壓力傳感器、放大電路、AD轉(zhuǎn)換芯片、MCU單片機及電源模塊構(gòu)成。
其中壓力傳感器是稱重數(shù)據(jù)的來源,必須要保證足夠的精準度。考慮到自制壓力傳感器的線性度低,不同重量下的補償度不一致等問題,本模塊選用市面上的德國HBM稱重傳感器,型號為SP5C3,其靈敏度能達到2 mV±10%/V,且能根據(jù)重物重量0~50 kg輸出0~10 mV的電壓。
放大電路選用由OPA2277及TLC2272兩個運放電路組成的推挽放大電路。在輸入端加入150 R/100 MHz磁珠,抑制信號線上的高頻噪聲和尖峰干擾,防止靜電擊穿。經(jīng)過串聯(lián)放大,輸出端AIN+達到0~2.5 V,滿足AD轉(zhuǎn)換芯片需要。輸出電壓接到AD轉(zhuǎn)換芯片輸入端,同時經(jīng)過采集卡將該電壓傳輸給PC端。
AD轉(zhuǎn)換芯片負責將電壓信號轉(zhuǎn)換為數(shù)字信號,是單片機的數(shù)據(jù)來源,必須要保證較高的精準度。本文選用美國CirrusLogic公司推出的24位模數(shù)轉(zhuǎn)換器CS5532-BSZ。該芯片可通過編程配置增益放大倍數(shù)1~32不等,轉(zhuǎn)換速率范圍為7.5 Hz~3.84 kHz,具有極佳的動態(tài)特性。芯片內(nèi)部有一個完整的自校正系統(tǒng),解決了A/D轉(zhuǎn)換器本身的零點增益和漂移誤差,方便調(diào)試者進行其他方面的優(yōu)化濾波
MCU是業(yè)務(wù)邏輯核心,負責數(shù)據(jù)的處理與傳輸。由于稱重模塊對定時器的數(shù)量要求不高,外圍電路少,不需要太多引腳,模塊采用stm32103c8t6芯片,其中串口2連接RS-485芯片進行傳輸通信,串口3連接串口轉(zhuǎn)USB接口,將數(shù)據(jù)打印到監(jiān)視窗口方便調(diào)試,引腳PA3~PA7用于電路板正反面之間的SPI通信,PB12~PB15負責撥碼開關(guān)的初始化及數(shù)值采集,來選擇本稱重模塊的傳輸編號。其余引腳負責連接穩(wěn)壓器、電源,控制LED燈的通斷進行狀態(tài)顯示等工作。
由于AD轉(zhuǎn)換芯片需要精準的參考電壓,模塊選擇雙電源獨立供電方式。模塊外接12 V獨立電源,連接至兩片LP2950CDT-5.0 V低壓差線性穩(wěn)壓器,其中一片給AD轉(zhuǎn)換芯片做基準電壓,另一片通過AMS1117-3.3 V穩(wěn)壓器輸出3.3 V電壓給MCU供電。由于雙點接地需要加入隔離電路,為避免增加成本,便將MCU地端與AD轉(zhuǎn)換芯片地端連接,中間加入0 Ω電阻進行緩沖。
2.2 軟件設(shè)計
硬件設(shè)計完成后,要根據(jù)業(yè)務(wù)需求進行軟件設(shè)計。
軟件部分可根據(jù)功能劃分為控制邏輯程序和驅(qū)動程序。其中,控制邏輯主要涉及與PC端通信、數(shù)據(jù)采集、平均處理。驅(qū)動程序涉及AD轉(zhuǎn)換芯片、SPI協(xié)議、各串口引腳的初始化。其中控制邏輯流程如圖2所示。
圖2 控制流程 下載原圖
具體實現(xiàn)為,首先執(zhí)行驅(qū)動程序初始化,然后每隔5 ms對SPI接口進行一次數(shù)據(jù)讀取,采集12次后把數(shù)值從小到大排列,去除兩個最大值、兩個最小值,求出剩余數(shù)值的平均值,然后判斷PC端有沒有數(shù)據(jù)傳入。如果有數(shù)據(jù)傳入,則將平均值與傳入值進行平均處理,計算出實際重量,否則重新采集。其次解析主控模塊的邏輯,判斷需要的工作模式,最后將重量數(shù)據(jù)進行輸出或存儲到SD卡以備算法的改進
驅(qū)動程序主要分為3個部分:
1)引腳初始化:上電后首先進行引腳初始化,將不同引腳設(shè)置為推挽輸出等工作模式。
2)SPI使能:設(shè)置SPI為雙線雙向全雙工模式,數(shù)據(jù)幀大小為8位,設(shè)置串行同步時鐘的空閑狀態(tài)為高電平,命令MCU于串行同步時鐘的第一個跳變沿采樣數(shù)據(jù),定義波特率為115 200。
3)AD轉(zhuǎn)換芯片初始化:首先延時1 000 ms,確保AD轉(zhuǎn)換芯片上電正常。然后通過SPI協(xié)議設(shè)置該芯片的時鐘頻率,根據(jù)手冊發(fā)送15個“0XFF”和1個“0XFE”進入命令模式,發(fā)送復(fù)位指令,讀取反饋數(shù)據(jù)。若復(fù)位成功則開始寫配置寄存器、通道設(shè)置寄存器來設(shè)置工作模式、轉(zhuǎn)換速率、增益放大倍數(shù)等參數(shù),執(zhí)行自校準后開始進行連續(xù)轉(zhuǎn)換
實際操作中,由于焊接不準確、芯片污損等原因,偶爾會出現(xiàn)初始化失敗的現(xiàn)象,因此設(shè)置初始化程序連續(xù)執(zhí)行兩次。
2.3 通訊協(xié)議設(shè)計
本設(shè)計在PC端進行小波去噪處理,需要通過串口與單片機進行數(shù)據(jù)通訊。為保證數(shù)值傳輸過程的準確可靠,設(shè)計一種包含校驗的通訊協(xié)議。每一幀數(shù)據(jù)由開始頭、編碼號、重量數(shù)據(jù)、BCC校驗碼組成,均用十六進制表示。其中開始頭設(shè)置為0XAA,編碼號可根據(jù)實際料斗個數(shù)進行設(shè)置,為避免小數(shù)的傳輸和換算,重量數(shù)據(jù)是實際重量的100倍,占4個字節(jié),單片機接收到后直接除以100。BCC校驗碼是工業(yè)上常用的校驗方式,原理是對該幀數(shù)據(jù)逐位進行異或運算,以檢驗傳輸數(shù)據(jù)的完整
3 數(shù)據(jù)分析
數(shù)據(jù)分析過程主要分為信號采集、小波去噪兩個階段。首先由采集卡采集放大電路輸出端的模擬電壓,根據(jù)AD轉(zhuǎn)換芯片的轉(zhuǎn)換系數(shù),編程進行重量換算。然后通過MATLAB工具對轉(zhuǎn)換后的數(shù)據(jù)進行小波去噪處理,最后根據(jù)通訊協(xié)議將數(shù)據(jù)傳輸給單片機。具體流程如下:
3.1 信號采集
首先清空料斗,在空斗狀態(tài)下,記錄當前電壓值為基準值。一旦電壓值發(fā)生變化,MATLAB便開始持續(xù)讀串口200 ms,同時將數(shù)值輸出到本地MATLAB工作路徑的txt文件下,為小波去噪提供數(shù)據(jù)依據(jù)。具體軟件流程如圖3所示。
圖3 數(shù)據(jù)分析流程 下載原圖
本文選用200 g±0.01 g砝碼進行實驗,將砝碼放在距離稱重模塊30 cm高處自由下落,每隔5 ms讀取一次電壓模擬量,計算重量并輸出。結(jié)果如圖4所示。
圖4 稱重信號 下載原圖
由時域圖可以看出,硬件結(jié)構(gòu)的振動導(dǎo)致了重量數(shù)值的不穩(wěn)定,經(jīng)過200 ms之后,輸出重量仍有5 g左右的偏差。接下來進行小波去噪處理。
3.2 小波去噪
設(shè)該噪聲信號S可由式1表示。
Sn=fn+un(1)
式中:fn是真實信號,un為噪聲信號,n代表離散時刻。為加快計算機的運算速度,選擇計算量較小的離散小波變化。真實信號主要是低頻信號,因此選擇較適合低頻信號的小波去噪方法:小波閾值去噪法
1)首先確定使用的小波基函數(shù),經(jīng)比較,選擇MATLAB提供的sym5小波基函數(shù)
2)確定小波閾值去噪的閾值函數(shù)和閾值選擇方法,其中閾值函數(shù)包括硬閾值和軟閾值。硬閾值函數(shù)的閾值不連續(xù),處理后的信號會產(chǎn)生振蕩,不能滿足稱重信號處理的平滑要求;軟閾值信號具有連續(xù)性,但去噪后的信號會丟失一些細節(jié),在保證曲線平滑的基礎(chǔ)上不會造成很大偏差,因此選用軟閾值函數(shù)
由于噪聲信號近似服從高斯分布,選擇以高斯噪聲為模型的固定閾值方法。算法由式2所示。
式中:N為信號長度,σ為噪聲標準方差,λ為閾值。
3)確定分解層數(shù)。為選取合適的分解層數(shù)N,分別將N賦值2~9,分別對信號進行處理得到重構(gòu)信號。并對重構(gòu)信號進行比較,各重構(gòu)信號如圖5~12所示。
圖5 N=2 下載原圖
圖6 N=3 下載原圖
圖7 N=4 下載原圖
圖8 N=5 下載原圖
圖9 N=6 下載原圖
圖10 N=7 下載原圖
圖11 N=8 下載原圖
圖12 N=9 下載原圖
由圖可知,當分解層數(shù)N從1逐漸增大時,輸出信號逐漸趨于穩(wěn)定,當N=7時,所需穩(wěn)定時間最短,輸出信號最為精準。當N繼續(xù)增大時,穩(wěn)定時間變長,且數(shù)據(jù)是否收斂無法預(yù)測,不利于做稱重數(shù)據(jù)處理。因此選擇7層分解層數(shù)
4)截取300 ms~350 ms階段的重構(gòu)信號,按固定時間間隔連續(xù)采集15次,去掉兩個最大值、最小值,對剩下的數(shù)值進行平均處理,得出重量。然后將重量數(shù)值通過USB轉(zhuǎn)串口線發(fā)送給MCU,同時將該數(shù)值加上時間戳保存到本地txt文件中
4 驗證分析
為驗證小波去噪方法對稱量精度的影響。在工業(yè)現(xiàn)場用糖塊進行稱量測試,每次下料,都從主控模塊讀取總重量,然后取出物料放在精度達到0.01%的天平上進行靜態(tài)稱量,記錄數(shù)據(jù),重復(fù)50次,最終從MATLAB文件夾下提取小波去噪后的數(shù)據(jù)進行匯總對比,其中部分數(shù)據(jù)如表1所示。
由表可知,誤差隨與物料的重量成正比關(guān)系,當物料重量增大,下落沖擊力會更大,振動時間也會更長,數(shù)據(jù)的精準度也會下降。當物料重量在100 g以內(nèi)時,誤差在0.04 g以內(nèi)。重量在100 g~200 g之間時,誤差介于0.05 g~0.08 g之間。加入小波去噪方法后,能夠滿足200 g內(nèi)偏差小于等于0.1 g的工業(yè)要求。分析數(shù)據(jù)可知,舍棄單片機數(shù)值處理,完全采用小波去噪及去極值平均的計算方法得出的重量更接近于實際值。
表1 現(xiàn)場測試結(jié)果 導(dǎo)出到EXCEL
序號 | 天平 稱重/g | 實測值/ g | 小波分析 輸出值 | 稱重 誤差/g |
1 | 121.55 | 121.51 | 121.52 | 0.04 |
2 | 39.65 | 39.68 | 39.70 | 0.03 |
3 | 170.75 | 170.68 | 170.69 | 0.07 |
4 | 102.35 | 102.39 | 102.37 | 0.04 |
5 | 220.23 | 220.12 | 220.15 | 0.11 |
6 | 199.29 | 199.23 | 199.26 | 0.06 |
7 | 117.72 | 117.71 | 117.68 | 0.01 |
8 | 48.95 | 48.91 | 48.97 | 0.04 |
9 | 309.32 | 309.46 | 309.23 | 0.14 |
10 | 162.21 | 162.26 | 162.15 | 0.05 |
11 | 177.45 | 177.37 | 177.38 | 0.08 |
12 | 257.15 | 257.07 | 257.12 | 0.08 |
13 | 248.07 | 247.96 | 247.92 | 0.11 |
14 | 39.51 | 39.49 | 39.53 | 0.02 |
15 | 55.78 | 55.82 | 55.85 | 0.04 |
5 結(jié) 論
設(shè)計了一種PC端與單片機相結(jié)合的組合秤稱重模塊,首先根據(jù)設(shè)備工作原理,完成了芯片選型,及放大電路、AD轉(zhuǎn)換電路等硬件設(shè)計,然后進行了控制邏輯、驅(qū)動程序等軟件的開發(fā),其次通過小波去噪方法的實現(xiàn)提高了本模塊的稱量精度。最后經(jīng)過現(xiàn)場測試,驗證了該模塊的精度,結(jié)果表明,該設(shè)計能夠滿足工業(yè)需要,可以高效的完成稱量任務(wù)。

















