甘輝,詹麗萍,呂美妮,勞梅蘭
(1.梧州學(xué)院,廣西梧州 543000;2梧州醫(yī)學(xué)高等??茖W(xué)校,廣西梧州 543002)
稱重系統(tǒng)的應(yīng)用領(lǐng)域非常廣泛,包括工業(yè)生產(chǎn)、交通運(yùn)輸、醫(yī)療保健、環(huán)境監(jiān)測[1]等方面。目前,國內(nèi)外研究人員主要關(guān)注稱重系統(tǒng)在智能制造、物流管理[2]、健康監(jiān)測等領(lǐng)域的應(yīng)用研究。由于各個領(lǐng)域?qū)ΨQ重系統(tǒng)的要求越來越高,但是影響稱重系統(tǒng)的因素有很多[3],傳統(tǒng)的方法主要從傳感器技術(shù)、信號處理技術(shù)、系統(tǒng)設(shè)計(jì)優(yōu)化技術(shù)等方面進(jìn)行研究,由于硬件方面的研究成本高、難度大,因此從軟件方面補(bǔ)償稱重系統(tǒng)能更好地優(yōu)化系統(tǒng)和節(jié)約成本。
為了更好地研究稱重系統(tǒng)在各種環(huán)境下的精度波動,以整個稱重系統(tǒng)作為研究對象,實(shí)時采集稱重系統(tǒng)的重量數(shù)據(jù)、溫度數(shù)據(jù)。靈活調(diào)整系統(tǒng)在不同環(huán)境及不同精度需求下的補(bǔ)償算法,進(jìn)一步減小稱重系統(tǒng)的誤差,因此開發(fā)稱重補(bǔ)償系統(tǒng)控制界面是不錯的解決方案。
本文針對稱重系統(tǒng)補(bǔ)償?shù)膽?yīng)用需求,以Qt為軟件平臺開發(fā)設(shè)計(jì)了一套通信穩(wěn)定可靠,可跨平臺控制的稱重補(bǔ)償系統(tǒng)。通過系統(tǒng)界面,可以定時獲取稱重?cái)?shù)據(jù)、溫度數(shù)據(jù),可以選擇多種補(bǔ)償算法對稱重系統(tǒng)進(jìn)行補(bǔ)償。保證稱重系統(tǒng)在不同的環(huán)境及不同需求下有較好的稱重精度和穩(wěn)定性。
根據(jù)稱重補(bǔ)償系統(tǒng)的需求分析,在Qt軟件平臺中,搭建了模塊化控制界面。將系統(tǒng)界面分為四個功能模塊,其結(jié)構(gòu)見圖1所示。四個功能模塊分別為通信模塊、稱重模塊、波形曲線模塊、表格顯示模塊。通信模塊作為上位機(jī)界面和下位機(jī)數(shù)據(jù)交互的核心,稱重模塊用于稱重的相關(guān)參數(shù)設(shè)定,為了方便觀察參數(shù)數(shù)據(jù),可視化部分?jǐn)?shù)據(jù)在波形曲線模塊和表格顯示模塊中。
圖1 功能模塊結(jié)構(gòu)圖
通信模塊是用于控制界面與上位機(jī)數(shù)據(jù)交互的核心,整個界面的數(shù)據(jù)來源于下位機(jī)稱重采集系統(tǒng),下位機(jī)會根據(jù)控制界面設(shè)置的參數(shù)按照通信協(xié)議發(fā)送數(shù)據(jù)。
通信界面如圖2所示。界面左邊主要是串口通信功能的參數(shù)設(shè)置,點(diǎn)擊檢測串口,在串口號中選中連接的串口,分別設(shè)置波特率為9600、數(shù)據(jù)位為8位,停止位為1 位,無校驗(yàn)位[4-5]。點(diǎn)擊打開串口,如果串口存在,則顯示串口打開成功,否則提示失敗。接收控制功能:可以接收兩種字符格式的數(shù)據(jù),ASCII、HEX,接收窗口顯示接收的數(shù)據(jù)。發(fā)送控制功能:與接收控制相同,可以設(shè)置兩種接收數(shù)據(jù)的格式,在發(fā)送窗口輸入數(shù)據(jù),點(diǎn)擊發(fā)送數(shù)據(jù)按鈕數(shù)據(jù)就會通過串口發(fā)送出去。
通信模塊不僅能實(shí)現(xiàn)有線串口數(shù)據(jù)的收發(fā),也能實(shí)現(xiàn)串口藍(lán)牙模塊的數(shù)據(jù)交互,使得數(shù)據(jù)采集更加靈活。通信模塊的整個界面設(shè)計(jì)為調(diào)試上、下位機(jī)數(shù)據(jù)交互提供了方便。
圖2 通信界面
稱重控制模塊,主要有幾個功能:稱重操作、標(biāo)定操作、去皮操作、稱重顯示、濾波設(shè)置。稱重界面如圖3所示。
稱重操作:主要用于完成系統(tǒng)數(shù)據(jù)讀取和保持的操作。1)手動讀取數(shù)據(jù):點(diǎn)擊一次手動讀取按鈕,系統(tǒng)將向下位機(jī)發(fā)送一次讀取數(shù)據(jù)指令。2)定時讀取數(shù)據(jù):在定時串口輸入定時時間,時間單位最小為1ms,如圖設(shè)置數(shù)值為1000,再點(diǎn)擊定時讀取按鈕,系統(tǒng)將1000ms 給下位機(jī)發(fā)送一次讀取數(shù)據(jù)命令請求。3)顯示稱重:勾選顯示稱重,稱重顯示區(qū)域會定時刷新數(shù)據(jù)。4)數(shù)據(jù)存儲:勾選數(shù)據(jù)存儲,系統(tǒng)將會自動存儲以下數(shù)據(jù):采集時間、實(shí)時溫度、實(shí)時重量、實(shí)時內(nèi)碼、標(biāo)零內(nèi)碼等數(shù)據(jù)入Excel 表格中供用戶查詢,如圖4所示。
標(biāo)定操作:為了保證稱重系統(tǒng)的精度,在使用稱重系統(tǒng)前要先完成標(biāo)定零點(diǎn)、砝碼標(biāo)定的工作。1)零點(diǎn)標(biāo)定:點(diǎn)擊零點(diǎn)標(biāo)定按鈕將當(dāng)前稱重系統(tǒng)的重量值標(biāo)定為0g 并記錄對應(yīng)此刻重量數(shù)據(jù)的對應(yīng)的模數(shù)轉(zhuǎn)換值。2)標(biāo)定工作:在稱重系統(tǒng)中放上標(biāo)準(zhǔn)砝碼,比如2000g的砝碼,然后在界面內(nèi)輸入標(biāo)定砝碼的重量,該單位為g,在這里輸入2000,再點(diǎn)擊“砝碼標(biāo)定”,系統(tǒng)會記錄2000g 砝碼所測量到的模數(shù)轉(zhuǎn)換器數(shù)值,最后根據(jù)標(biāo)零和標(biāo)定的數(shù)值重新計(jì)算得到新的稱重比例參數(shù)。
去皮操作:“去皮操作”:點(diǎn)擊“去皮”按鈕,將當(dāng)前系統(tǒng)的重量設(shè)定為0g,“取消去皮”按鈕,將去皮之前的重量重新加上。
稱重顯示:主要有實(shí)時溫度、實(shí)時重量、實(shí)時內(nèi)碼、零點(diǎn)內(nèi)碼、標(biāo)定內(nèi)碼。1)實(shí)時溫度:顯示的是系統(tǒng)采集到下位機(jī)的溫度數(shù)據(jù),單位為攝氏度,精度為0.1攝氏度。2)實(shí)時重量:顯示的是系統(tǒng)采集后計(jì)算得到的最終稱重重量。單位為g。3)實(shí)時內(nèi)碼:稱重系統(tǒng)發(fā)送回來的10 進(jìn)制的模數(shù)轉(zhuǎn)化器的數(shù)值,下位機(jī)模數(shù)轉(zhuǎn)換精度為24 位,數(shù)值范圍是0~16777216。4)零點(diǎn)內(nèi)碼:顯示系統(tǒng)標(biāo)零時,模數(shù)轉(zhuǎn)換器的數(shù)值,數(shù)值范圍是0~16777216。5) 標(biāo)定內(nèi)碼:顯示系統(tǒng)砝碼標(biāo)定時,模數(shù)轉(zhuǎn)換器的數(shù)值,數(shù)值范圍是0~16777216。
濾波設(shè)置:主要功能是對稱重?cái)?shù)據(jù)進(jìn)行數(shù)字濾波,保證稱重系統(tǒng)的精度和穩(wěn)定性。界面提供了3種稱重補(bǔ)償方式,均值濾波、IIR 濾波、BP神經(jīng)網(wǎng)絡(luò)溫度補(bǔ)償。1)均值濾波[6]:均值濾波是常用的濾波方式,能較好地抵抗系統(tǒng)周期性的干擾,濾波次數(shù)越大,系統(tǒng)穩(wěn)定性和精度也就越高,但是系統(tǒng)的靈敏度也就越低,要根據(jù)具體需求選擇不同的濾波系數(shù)。界面設(shè)計(jì)了濾波系數(shù)填寫,便于實(shí)際修改。勾選“均值濾波”,填寫濾波次數(shù),實(shí)現(xiàn)對稱重重量的均值濾波功能。2)IIR 濾波[7]:IIR 低通濾波器能夠有效地濾除稱重系統(tǒng)的高頻干擾,靈敏度比均值濾波好,是稱重系統(tǒng)理想的濾波器。本系統(tǒng)設(shè)置了四階IIR 低通濾波器,濾波截止頻率為4Hz,能滿足大多數(shù)需求。勾選“IIR 濾波”,系統(tǒng)將對稱重原始數(shù)據(jù)進(jìn)行IIR 濾波,濾波后對數(shù)據(jù)幅值會按比例減小,為了正常使用需要重新完成一次標(biāo)定工作。3) BP 神經(jīng)網(wǎng)絡(luò)濾波[8]:BP 神經(jīng)網(wǎng)絡(luò)濾波能融合稱重系統(tǒng)多個環(huán)境因素進(jìn)行系統(tǒng)補(bǔ)償,是稱重系統(tǒng)補(bǔ)償有效的研究方向。由于稱重系統(tǒng)容易受到溫度變化的影響,系統(tǒng)通過采集同一時刻溫度數(shù)據(jù)、重量數(shù)據(jù),利用MATLAB 神經(jīng)網(wǎng)絡(luò)工具進(jìn)行神經(jīng)網(wǎng)絡(luò)訓(xùn)練,最后將最佳模型參數(shù)導(dǎo)入系統(tǒng)中,從而實(shí)現(xiàn)了稱重系統(tǒng)實(shí)時溫度補(bǔ)償。勾選“BP 神經(jīng)網(wǎng)絡(luò)濾波”,系統(tǒng)將實(shí)時采集的溫度數(shù)據(jù)、稱重重量數(shù)據(jù)進(jìn)行神經(jīng)網(wǎng)絡(luò)補(bǔ)償。
圖3 稱重界面
圖4 數(shù)據(jù)存儲excel格式
波形顯示模塊主要用來觀察稱重系統(tǒng)數(shù)據(jù)走勢,可分別單獨(dú)觀察稱重?cái)?shù)據(jù)、溫度數(shù)據(jù)的波動情況,也可以觀察同一時刻不同溫度情況下對稱重的影響。如圖5 所示,橙色為稱重?cái)?shù)據(jù)曲線,綠色為溫度數(shù)據(jù)曲線。為了方便查看數(shù)據(jù)曲線,可以點(diǎn)擊“放大”按鈕觀察曲線波形細(xì)節(jié),點(diǎn)擊“縮小”按鈕,可以查看更多的數(shù)據(jù),點(diǎn)擊“恢復(fù)”按鈕,可以恢復(fù)到曲線1:1 的原始顯示比例。點(diǎn)擊“保存”按鈕:目的是保存當(dāng)前曲線的圖片,系統(tǒng)彈出保存曲線圖片路徑對話框,用戶選擇保存路徑,填寫保存名字,選擇保存圖片類型,默認(rèn)類型是png 格式。
圖5 波形顯示
數(shù)據(jù)表格。如圖6 所示為了方便用戶觀察數(shù)據(jù):該功能將采用表格顯示4 類參數(shù):當(dāng)前溫度、補(bǔ)充前重量、補(bǔ)償后重量、稱重誤差。系統(tǒng)設(shè)置了15 行、4 列的表格用來顯示最近15 個時間節(jié)點(diǎn)的數(shù)據(jù),如果超過15 行,系統(tǒng)會從第一行開始重新覆蓋數(shù)據(jù)。
圖6 數(shù)據(jù)表格界面
系統(tǒng)界面主要功能運(yùn)行流程如圖7 所示,根據(jù)系統(tǒng)設(shè)定的定時時間,向下位機(jī)發(fā)送讀取數(shù)據(jù)指令,等待下位機(jī)發(fā)送回來的數(shù)據(jù)包,解釋數(shù)據(jù)包,然后根據(jù)選定的濾波補(bǔ)償功能,對數(shù)據(jù)進(jìn)行處理,最后顯示在指定區(qū)域,或存儲數(shù)據(jù)到Excel表格中。
圖7 整體界面流程圖
本文設(shè)計(jì)了基于QT 的稱重補(bǔ)償系統(tǒng)界面,描述了界面的相關(guān)布局和功能模塊,特別對稱重模塊進(jìn)行了詳細(xì)說明,為研究稱重系統(tǒng)補(bǔ)償提供了可視化的操作平臺,結(jié)合多種濾波算法供選擇使得稱重補(bǔ)償能高效滿足各種需求。本文的設(shè)計(jì)后期還會加入各種濾波算法的訓(xùn)練,動態(tài)選擇最優(yōu)算法參數(shù),進(jìn)一步提高系統(tǒng)的實(shí)用性。