

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

















