咨詢電話
ENGLISH0755-88840386發(fā)布時間:2021-07-07 11:30:42 |來源:網(wǎng)絡(luò)轉(zhuǎn)載
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)致稱重信號中含有噪聲[1]。
為解決噪聲問題,工業(yè)上對稱重模塊進(jìn)行了部分優(yōu)化,其中硬件方面多采用高位數(shù)AD轉(zhuǎn)換芯片,并在參考電壓引腳端接入高精度穩(wěn)壓芯片,或者采用更高頻率的MCU芯片。這些方法增大了模塊制作成本,不利于生產(chǎn)推廣[2]。軟件濾波方面多采用去極值平均法對稱重數(shù)據(jù)進(jìn)行處理,而由于該方法是基于含噪信號進(jìn)行處理,計算出的重量難免會有因此,必須要對硬件進(jìn)行低成本優(yōu)化,同時采用更復(fù)雜算法將噪聲濾除,確保參與計算的數(shù)據(jù)是去除噪聲后的有用數(shù)據(jù)[3]。
目前常用的信號去噪方法多為傅里葉變換、卡爾曼濾波等分析算法,然而上述算法對平穩(wěn)信號的過濾較為有效,當(dāng)信號波動較大時,傳統(tǒng)去噪算法的函數(shù)很難與之匹配[4]。重物撞擊瞬間,重量數(shù)值在極短時間內(nèi)發(fā)生突變,傅里葉變換就要分解出很多正弦波形去擬合,效果不佳,時間也比較長因此需要采用能夠濾除動態(tài)噪聲的濾波算法:胥馨尹等[5]采用QRD-LSL自適應(yīng)濾波算法,對整體結(jié)構(gòu)的震動效果進(jìn)行了控制,但無法控制濾波器的階數(shù)以應(yīng)對不同環(huán)境,無法濾除硬件電路溫漂零漂產(chǎn)生的噪聲信號。郁洋等[6]提出了一種基于小波濾波的濾波算法,能夠有效濾除稱量系統(tǒng)的噪聲,但具體實現(xiàn)與應(yīng)用仍有待考究。張西良等[7]用離散小波變換處理動態(tài)稱量信號,并對快速傅里葉變換和離散小波變換的濾波效果進(jìn)行了對比分析,確定了離散小波變換進(jìn)行濾波處理的有效性。
小波變換方法是一種時域和頻域窗口形態(tài)都可改變的時頻分析方法,在高頻階段具有較高的時間分辨率和較低的頻率分辨率,尤其適合處理含噪信號中的高頻噪聲。本文針對工業(yè)上組合秤的稱重精度問題,開發(fā)了一款全新的基于小波去噪方法的組合秤稱重模塊,并在現(xiàn)場對該模塊的稱重性能進(jìn)行了檢驗分析。
1稱重模塊工作原理
目前市面上流行的組合秤主要由線振器、料斗、稱重模塊、主控模塊、電機(jī)模塊及擋板構(gòu)成。工作流程為:加料機(jī)將物料放在線振器上方的平臺上,通過線振器的振動將物料均勻運送到多個料斗,電機(jī)模塊控制料斗開合,稱重模塊進(jìn)行稱重處理及數(shù)據(jù)傳輸,主控模塊負(fù)責(zé)對稱重模塊傳來的各斗重量進(jìn)行組合,當(dāng)組合出目標(biāo)重量時,選中對應(yīng)料斗進(jìn)行放料,物料通過擋板進(jìn)入包裝機(jī)內(nèi),然后不斷循環(huán)整個過程[8]。其中,稱重模塊是組合秤的核心部分,既要保證稱量精度與速度,又要配合主控模塊完成一定的業(yè)務(wù)邏輯。稱重模塊主要由壓力傳感器、放大電路、AD轉(zhuǎn)換芯片、MCU單片機(jī)及電源模塊構(gòu)成。工作原理如圖1所示。
首先,壓力傳感器將壓力信號轉(zhuǎn)換為電壓信號。放大電路負(fù)責(zé)將該電壓放大至AD轉(zhuǎn)換芯片適配范圍進(jìn)行輸出,AD轉(zhuǎn)換芯片根據(jù)基準(zhǔn)電壓與輸入電壓的比例,將電壓信號轉(zhuǎn)換為數(shù)字信號,通過如SPI等協(xié)議傳輸給MCU。MCU可對該數(shù)據(jù)進(jìn)行處理或包裝后進(jìn)行傳輸。
實際生產(chǎn)中,一旦整體結(jié)構(gòu)發(fā)生振動,傳感器的輸出電壓就會發(fā)生跳變,而高精度的AD轉(zhuǎn)換芯片只會如實的將電壓轉(zhuǎn)換成數(shù)字量交給MCU處理[9]。當(dāng)初始數(shù)據(jù)存在噪聲,執(zhí)行平均濾波就無法得出實際重量。本模塊采用單片機(jī)與PC端共同控制的思想,在放大電路電壓輸出端加入采集卡,將數(shù)據(jù)傳輸給PC端,以PC端強(qiáng)大的數(shù)據(jù)處理工具對電壓信號進(jìn)行小波分析,去除噪聲,得到稱重數(shù)據(jù),然后將稱重數(shù)據(jù)通過RS-485通訊協(xié)議發(fā)送給MCU,由MCU對初始數(shù)據(jù)與PC端傳輸數(shù)據(jù)進(jìn)行平均處理,輸出真實重量[10]。
2稱重模塊選型及設(shè)計
為方便硬件電路的布線及維修,本模塊采用雙面板設(shè)計。其中放大電路與AD采集電路放在背面與稱重傳感器連接,通訊電路與控制電路放在正面與PC端連接。正反面板在必要位置進(jìn)行打孔,通過排針進(jìn)行連接,實現(xiàn)電源供電或通訊協(xié)議傳輸。具體設(shè)計如下:
2.1硬件選型及設(shè)計
模塊主要由壓力傳感器、放大電路、AD轉(zhuǎn)換芯片、MCU單片機(jī)及電源模塊構(gòu)成。
其中壓力傳感器是稱重數(shù)據(jù)的來源,必須要保證足夠的精準(zhǔn)度??紤]到自制壓力傳感器的線性度低,不同重量下的補償度不一致等問題,本模塊選用市面上的德國HBM稱重傳感器,型號為SP5C3,其靈敏度能達(dá)到2mV±10%/V,且能根據(jù)重物重量0~50kg輸出0~10mV的電壓。
放大電路選用由OPA2277及TLC2272兩個運放電路組成的推挽放大電路。在輸入端加入150R/100MHz磁珠,抑制信號線上的高頻噪聲和尖峰干擾,防止靜電擊穿。經(jīng)過串聯(lián)放大,輸出端AIN+達(dá)到0~2.5V,滿足AD轉(zhuǎn)換芯片需要。輸出電壓接到AD轉(zhuǎn)換芯片輸入端,同時經(jīng)過采集卡將該電壓傳輸給PC端。
AD轉(zhuǎn)換芯片負(fù)責(zé)將電壓信號轉(zhuǎn)換為數(shù)字信號,是單片機(jī)的數(shù)據(jù)來源,必須要保證較高的精準(zhǔn)度。本文選用美國CirrusLogic公司推出的24位模數(shù)轉(zhuǎn)換器CS5532-BSZ。該芯片可通過編程配置增益放大倍數(shù)1~32不等,轉(zhuǎn)換速率范圍為7.5Hz~3.84kHz,具有極佳的動態(tài)特性。芯片內(nèi)部有一個完整的自校正系統(tǒng),解決了A/D轉(zhuǎn)換器本身的零點增益和漂移誤差,方便調(diào)試者進(jìn)行其他方面的優(yōu)化濾波[11]。
MCU是業(yè)務(wù)邏輯核心,負(fù)責(zé)數(shù)據(jù)的處理與傳輸。由于稱重模塊對定時器的數(shù)量要求不高,外圍電路少,不需要太多引腳,模塊采用stm32103c8t6芯片,其中串口2連接RS-485芯片進(jìn)行傳輸通信,串口3連接串口轉(zhuǎn)USB接口,將數(shù)據(jù)打印到監(jiān)視窗口方便調(diào)試,引腳PA3~PA7用于電路板正反面之間的SPI通信,PB12~PB15負(fù)責(zé)撥碼開關(guān)的初始化及數(shù)值采集,來選擇本稱重模塊的傳輸編號。其余引腳負(fù)責(zé)連接穩(wěn)壓器、電源,控制LED燈的通斷進(jìn)行狀態(tài)顯示等工作。
由于AD轉(zhuǎn)換芯片需要精準(zhǔn)的參考電壓,模塊選擇雙電源獨立供電方式。模塊外接12V獨立電源,連接至兩片LP2950CDT-5.0V低壓差線性穩(wěn)壓器,其中一片給AD轉(zhuǎn)換芯片做基準(zhǔn)電壓,另一片通過AMS1117-3.3V穩(wěn)壓器輸出3.3V電壓給MCU供電。由于雙點接地需要加入隔離電路,為避免增加成本,便將MCU地端與AD轉(zhuǎn)換芯片地端連接,中間加入0Ω電阻進(jìn)行緩沖。
2.2軟件設(shè)計
硬件設(shè)計完成后,要根據(jù)業(yè)務(wù)需求進(jìn)行軟件設(shè)計。
軟件部分可根據(jù)功能劃分為控制邏輯程序和驅(qū)動程序。其中,控制邏輯主要涉及與PC端通信、數(shù)據(jù)采集、平均處理。驅(qū)動程序涉及AD轉(zhuǎn)換芯片、SPI協(xié)議、各串口引腳的初始化。其中控制邏輯流程如圖2所示。
具體實現(xiàn)為,首先執(zhí)行驅(qū)動程序初始化,然后每隔5ms對SPI接口進(jìn)行一次數(shù)據(jù)讀取,采集12次后把數(shù)值從小到大排列,去除兩個最大值、兩個最小值,求出剩余數(shù)值的平均值,然后判斷PC端有沒有數(shù)據(jù)傳入。如果有數(shù)據(jù)傳入,則將平均值與傳入值進(jìn)行平均處理,計算出實際重量,否則重新采集。其次解析主控模塊的邏輯,判斷需要的工作模式,最后將重量數(shù)據(jù)進(jìn)行輸出或存儲到SD卡以備算法的改進(jìn)[12]。
驅(qū)動程序主要分為3個部分:
1)引腳初始化:上電后首先進(jìn)行引腳初始化,將不同引
腳設(shè)置為推挽輸出等工作模式。
2)SPI使能:設(shè)置SPI為雙線雙向全雙工模式,數(shù)據(jù)幀大小為8位,設(shè)置串行同步時鐘的空閑狀態(tài)為高電平,命令MCU于串行同步時鐘的第一個跳變沿采樣數(shù)據(jù),定義波特率為115200。
3)AD轉(zhuǎn)換芯片初始化:首先延時1000ms,確保AD轉(zhuǎn)換芯片上電正常。然后通過SPI協(xié)議設(shè)置該芯片的時鐘頻率,根據(jù)手冊發(fā)送15個“0XFF”和1個“0XFE”進(jìn)入命令模式,發(fā)送復(fù)位指令,讀取反饋數(shù)據(jù)。若復(fù)位成功則開始寫配置寄存器、通道設(shè)置寄存器來設(shè)置工作模式、轉(zhuǎn)換速率、增益放大倍數(shù)等參數(shù),執(zhí)行自校準(zhǔn)后開始進(jìn)行連續(xù)轉(zhuǎn)換[13]。
實際操作中,由于焊接不準(zhǔn)確、芯片污損等原因,偶爾會出現(xiàn)初始化失敗的現(xiàn)象,因此設(shè)置初始化程序連續(xù)執(zhí)行兩次。
2.3通訊協(xié)議設(shè)計
本設(shè)計在PC端進(jìn)行小波去噪處理,需要通過串口與單片機(jī)進(jìn)行數(shù)據(jù)通訊。為保證數(shù)值傳輸過程的準(zhǔn)確可靠,設(shè)計一種包含校驗的通訊協(xié)議。每一幀數(shù)據(jù)由開始頭、編碼號、重量數(shù)據(jù)、BCC校驗碼組成,均用十六進(jìn)制表示。其中開始頭設(shè)置為0XAA,編碼號可根據(jù)實際料斗個數(shù)進(jìn)行設(shè)置,為避免小數(shù)的傳輸和換算,重量數(shù)據(jù)是實際重量的100倍,占4個字節(jié),單片機(jī)接收到后直接除以100。BCC校驗碼是工業(yè)上常用的校驗方式,原理是對該幀數(shù)據(jù)逐位進(jìn)行異或運算,以檢驗傳輸數(shù)據(jù)的完整[14]。
本文源于網(wǎng)絡(luò)轉(zhuǎn)載,如有侵權(quán),請聯(lián)系刪除