牟向偉,葛 鵬,梁國(guó)健
(廣西師范大學(xué)職業(yè)技術(shù)師范學(xué)院,廣西 桂林541004)
隨著生產(chǎn)技術(shù)的快速發(fā)展,傳統(tǒng)游標(biāo)卡尺等機(jī)械厚度測(cè)量方式由于其效率低在工業(yè)生產(chǎn)中逐漸被淘汰。取而代之的是超聲波測(cè)厚、紅外測(cè)厚、渦流測(cè)厚等測(cè)厚技術(shù)。
在厚度測(cè)量技術(shù)上,國(guó)內(nèi)外學(xué)者已經(jīng)取得較大進(jìn)展,主要測(cè)量方法有超聲波、紅外線和激光等[1-3]。劉琳等[4]使用脈沖反射以高性能ARM8、FPGA為控制核心,利用超聲波檢測(cè)電路,結(jié)合高速A/D轉(zhuǎn)換器設(shè)計(jì)出基于ARM的便攜式超聲測(cè)厚儀。石振香[5]使用β射線研制出一種數(shù)字式在線厚度測(cè)量?jī)x并基于BP人工神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)傳感器溫度誤差補(bǔ)償。李文濤等[6]利用β射線設(shè)計(jì)出新型β射線背散射測(cè)厚儀,測(cè)量最大偏差為0.47μm,但射線測(cè)厚的方法成本昂貴,一般用于材料的高精度測(cè)量。李俐等[7]研究一種基于非勻速修正圓錐指數(shù)的土層厚度測(cè)量方法,能有效獲取土層厚度信息,但受用面窄,無(wú)法應(yīng)用于其他工業(yè)領(lǐng)域。王曉娜等[8]設(shè)計(jì)了一種用于玻璃厚度測(cè)量的空間相位調(diào)制型激光干涉儀。吳南壽等[9]設(shè)計(jì)了一種基于邁克遜干涉儀原理高速、高精度的非接觸式玻璃厚度測(cè)量系統(tǒng),但只能實(shí)現(xiàn)對(duì)玻璃等透光性強(qiáng)的物體厚度測(cè)量。目前的激光測(cè)厚主要原理是利用激光三角法結(jié)合CCD相機(jī)利用圖像處理得出被測(cè)物體厚度,對(duì)光學(xué)結(jié)構(gòu)部分的激光器和工業(yè)相機(jī)位置固定要求嚴(yán)格[10-12]。
在工業(yè)生產(chǎn)中,基于激光的厚度測(cè)量方法尤其適用于金屬、木材等非透明材料的厚度測(cè)量,且安全可靠,有極高的應(yīng)用價(jià)值,但其依賴圖像處理技術(shù),且對(duì)光學(xué)系統(tǒng)結(jié)構(gòu)搭建有要求。針對(duì)我國(guó)在竹板或竹筒的加工現(xiàn)狀,如何在保障精度的情況下高效測(cè)量出竹筒壁厚并對(duì)不同厚度竹筒進(jìn)行分揀成為加工生產(chǎn)中的關(guān)鍵,以此確保不同厚度的竹板用于不同的生產(chǎn)中[13-15]。
通過(guò)分析激光測(cè)距傳感器的原理,以STM32微控制器為主控模塊,使用多個(gè)激光測(cè)距傳感器模塊,通過(guò)計(jì)算模塊中激光發(fā)射器與紅外接收器接收到光子的時(shí)間測(cè)量出距離,并搭建系統(tǒng)進(jìn)行試驗(yàn),分析其測(cè)量精度與靈敏度,實(shí)現(xiàn)對(duì)竹筒或竹板的厚度測(cè)量。同時(shí)也適用于金屬板、木板或筒狀板材等物體的厚度測(cè)量。
基于激光測(cè)距的厚度測(cè)量?jī)x,成本低,使用方便,能有效地保障測(cè)量的效率與質(zhì)量。系統(tǒng)結(jié)構(gòu)如圖1所示。在操作板上有固定的手持把手,方便測(cè)量,操作板上設(shè)計(jì)有屏顯孔,方便顯示操作板下表面PCB電路板上顯示屏的數(shù)據(jù),操作板下方豎直固定多塊裝有激光傳感器的探測(cè)板,其中3個(gè)傳感器中,位于操作板上兩外側(cè)探測(cè)板上為外端激光測(cè)距傳感器,位于中部的探測(cè)板上則為內(nèi)端激光測(cè)距傳感器,兩外端激光測(cè)距傳感器朝向相對(duì),內(nèi)端激光測(cè)距傳感器與靠近手持把手一端探測(cè)板上激光測(cè)距傳感器方向一致,且3塊探測(cè)板上的傳感器位于同一直線上。
1.操作板 2.PCB 3.屏顯孔 4.顯示屏 5.手持把手 6.竹筒 7.傳感器 8.固定螺釘 9.探測(cè)板圖1 系統(tǒng)結(jié)構(gòu)Fig.1 System structure
由于不同粗糙程度的物體表面使傳感器在透鏡單位時(shí)間內(nèi)接收到的光能量不同,會(huì)對(duì)測(cè)量產(chǎn)生影響,造成一定的測(cè)量誤差。因此,擬在光澤的竹筒表面進(jìn)行試驗(yàn),通過(guò)激光測(cè)距的原理對(duì)竹筒厚度進(jìn)行測(cè)量。測(cè)量原理如圖2所示。
圖2 測(cè)量原理Fig.2 Measurement principle
假設(shè)竹筒厚度和外徑分別為D0和D4,2個(gè)外端激光傳感器間距為L(zhǎng)1,內(nèi)端激光傳感器與遠(yuǎn)離手持把手端激光傳感器間距為L(zhǎng)2,2個(gè)外端激光傳感器所測(cè)距離分別為D1和D3,內(nèi)端激光傳感器測(cè)量距離為D2,則可得如下公式。
L1=D3+D4+D1
(1)
L2=D3+D0+D2
(2)
因此,可以得出竹筒的厚度D0與內(nèi)徑D4有如下關(guān)系。
D0=L2-D3-D2
(3)
D4=L1-D3-D1
(4)
由于3個(gè)激光傳感器在實(shí)際裝置中存在一定的厚度分別對(duì)應(yīng)記為n1、n2和n3,因此上述2個(gè)公式中需減去傳感器自身的厚度,來(lái)糾偏測(cè)量值,故可得實(shí)際公式應(yīng)為
D0=L2-D3-D2-(n2+n3)
(5)
D4=L1-D3-D1-(n1+n3)
(6)
該系統(tǒng)主要由系統(tǒng)硬件與軟件兩部分組成(圖3)。系統(tǒng)硬件部分主要由STM32主控電路、電源電路、無(wú)線通信電路、傳感器模塊及屏顯模塊端口電路組成。
圖3 系統(tǒng)總電路Fig.3 System general circuit diagram
采用意法半導(dǎo)體公司生產(chǎn)的內(nèi)核為Cortex-M3的STM32F105RBT6型微控制器,工作頻率為72 MHz,內(nèi)置Flash大小為256 kB,SRAM為64 kB,該控制器共有5個(gè)串口,在本設(shè)計(jì)中,無(wú)線通信與下載調(diào)試各占用1個(gè)串口,3個(gè)激光傳感器占用3個(gè)串口,剛好滿足設(shè)計(jì)需求。主控電路設(shè)計(jì)如圖4所示。
圖4 主控芯片電路Fig.4 Circuit of main control chip
電源電路部分使用ME6203A33M3G壓差線性穩(wěn)壓芯片,將外接型號(hào)為18650的3.9 V鋰電池電壓穩(wěn)壓至3.3 V,為整個(gè)系統(tǒng)提供能源。ME6203A33M3G低壓差線性穩(wěn)壓芯片使用sot-23封裝,價(jià)格便宜且波紋小。本設(shè)計(jì)中使用兩路DC-DC線性穩(wěn)壓方案,可達(dá)到高精度的電源性能,實(shí)用性強(qiáng)。電源電路設(shè)計(jì)如圖5所示。
圖5 電源電路Fig.5 Power supply circuit
系統(tǒng)利用WiFi對(duì)數(shù)據(jù)進(jìn)行無(wú)線傳輸,使用ESP8266模組,可對(duì)ESP8266模組燒錄相應(yīng)的AT指令對(duì)模組進(jìn)行基礎(chǔ)的配置,且其內(nèi)部嵌有32位低功耗CPU可做額外的處理器。整體而言,ESP8266操作簡(jiǎn)單,傳輸效率高,占用控制器IO口資源少,適合數(shù)據(jù)無(wú)線傳輸,無(wú)線通信電路設(shè)計(jì)如圖6所示。
圖6 無(wú)線通信電路Fig.6 Wireless communication circuit
傳感器模塊使用RCWL-0810 VL53L01型激光測(cè)距傳感器,該模塊通過(guò)串口與主控進(jìn)行數(shù)據(jù)傳輸,具有精度高、響應(yīng)快、穩(wěn)定性好等優(yōu)點(diǎn),其精度范圍如表1所示。
表1 RCWL-0810 VL53L01型激光測(cè)距傳感器精度范圍Tab.1 Accuracy range of RCWL-0810 VL53L01 laser ranging sensor
從表1可以看出,當(dāng)設(shè)置其工作在高精度模式下時(shí),可滿足設(shè)計(jì)要求。
屏幕顯示選用2.44 cm(0.96英寸)OLED模塊,支持顯示漢字、ASCII和圖案等內(nèi)容,能將需顯示的數(shù)據(jù)清晰地呈現(xiàn),功耗低,穩(wěn)定性強(qiáng),被廣泛使用在各種設(shè)備中。
系統(tǒng)軟件設(shè)計(jì)部分主要包括對(duì)激光測(cè)距傳感器采集的數(shù)據(jù)進(jìn)行濾波、消抖等程序的設(shè)計(jì),實(shí)現(xiàn)將最后測(cè)量的厚度值清晰地呈現(xiàn)在顯示屏上。
使用成熟穩(wěn)定的MDK-ARM開發(fā)平臺(tái)對(duì)軟件進(jìn)行調(diào)試,確保調(diào)試過(guò)程數(shù)據(jù)的處理準(zhǔn)確、有效。厚度測(cè)量?jī)x軟件總體工作流程如圖7所示。系統(tǒng)上電后進(jìn)入初始化,當(dāng)測(cè)量按鍵按下后,傳感器開始采集數(shù)據(jù),接著通過(guò)串口將數(shù)據(jù)發(fā)送至stm32微控制器,經(jīng)由卡爾曼濾波法算法優(yōu)化、防抖等處理后通過(guò)屏幕顯示出來(lái)。
圖7 厚度測(cè)量流程Fig.7 Flow of thickness measurement
在手持測(cè)量物體厚度過(guò)程中,難以避免因手抖動(dòng)造成數(shù)據(jù)抖動(dòng)的問題,因此,需要程序中加入濾波等程序算法消除數(shù)據(jù)抖動(dòng),常見的濾波算法有中值平均濾波算法、加權(quán)遞推平均濾波算法、卡爾曼濾波算法及其改進(jìn)變形的一系列算法等[16-18]。為提高程序?yàn)V波效果,采用基于軟件模擬的方式對(duì)多種濾波算法組合進(jìn)行比較,最終確定了先用卡爾曼濾波算法再對(duì)數(shù)據(jù)使用平滑修正算法處理。
3.2.1 卡爾曼濾波算法實(shí)現(xiàn)
在觀測(cè)系統(tǒng)狀態(tài)時(shí),通常有2種手段:一是通過(guò)系統(tǒng)的狀態(tài)方程與前一時(shí)刻系統(tǒng)狀態(tài),推算出下一時(shí)刻的狀態(tài);二是用輔助的方式通過(guò)量測(cè)系統(tǒng)得到系統(tǒng)測(cè)量值。卡爾曼濾波則是將二者結(jié)合分配不同權(quán)重達(dá)到最優(yōu)的結(jié)合。
對(duì)于線性離散的動(dòng)態(tài)系統(tǒng),狀態(tài)方程為
xk=Axk-1+Wk-1
(7)
系統(tǒng)量測(cè)方程為
yk=Cxk-1+vk-1
(8)
式中xk——系統(tǒng)狀態(tài)
yk——量測(cè)輸出
wk——系統(tǒng)過(guò)程噪聲
vk——量測(cè)噪聲
k——離散時(shí)刻下標(biāo)
根據(jù)狀態(tài)方程和量測(cè)方程,典型的卡爾曼濾波器是通過(guò)比較濾波器的輸入與輸出間殘差,調(diào)整濾波器的參數(shù),修正后驗(yàn)分布達(dá)到最優(yōu)分布的效果。計(jì)算主要分為2組:一種時(shí)間更新方程用于預(yù)測(cè),利用上一時(shí)刻值計(jì)算當(dāng)前狀態(tài)與誤差協(xié)方差矩陣的估計(jì)值,為下一狀態(tài)提高先驗(yàn)估計(jì);另一種量測(cè)方程用于校正,將測(cè)量值與先驗(yàn)估計(jì)值結(jié)合,為下一狀態(tài)提供優(yōu)化后的后驗(yàn)估計(jì)。
根據(jù)觀測(cè)誤差最小且狀態(tài)無(wú)偏的原則求出卡爾曼增益,對(duì)先驗(yàn)估計(jì)值優(yōu)化,得到當(dāng)前最優(yōu)估計(jì)值,并求出最優(yōu)估計(jì)方差矩陣。
實(shí)現(xiàn)思路首先是利用系統(tǒng)的過(guò)程模型,通過(guò)根據(jù)系統(tǒng)上一次的狀態(tài)預(yù)測(cè)出當(dāng)前狀態(tài),即
X(K│K-1)=A(K-1│K-1)
(9)
式中X(K│K-1)——上一狀態(tài)預(yù)測(cè)的結(jié)果
A——系統(tǒng)參數(shù)
A(K-1|K-1)——上一狀態(tài)最優(yōu)的結(jié)果
接著通過(guò)計(jì)算X(K│K-1)的協(xié)方差計(jì)算卡爾曼增益,計(jì)算公式為
P(K│K-1)=A×P(K-1│K-1)AT+Q
(10)
(11)
式中P(K│K-1)——X(K│K-1)對(duì)應(yīng)的協(xié)方差
P(K-1│K-1)——X(K-1│K-1)對(duì)應(yīng)的協(xié)方差
AT——A的轉(zhuǎn)置矩陣
Q——系統(tǒng)過(guò)程的協(xié)方差
H——測(cè)量系統(tǒng)的參數(shù)
由估計(jì)值與測(cè)量值更新出當(dāng)前最優(yōu)值及其協(xié)方差讓卡爾曼濾波器不斷運(yùn)行下去直至系統(tǒng)結(jié)束,實(shí)現(xiàn)算法的自回歸。
在了解卡爾曼算法實(shí)現(xiàn)過(guò)程之后,還需估計(jì)出該算法的大致效果,因此,在MATLAB中對(duì)其進(jìn)行仿真,MATLAB仿真流程如圖8所示。
圖8 MATLAB仿真流程Fig.8 MATLAB simulation flow
3.2.2 平滑修正算法
使用平滑修正算法減小卡爾曼濾波后數(shù)據(jù)出現(xiàn)的突變誤差,在程序設(shè)計(jì)上,采用先進(jìn)先出的方式計(jì)算并返回均值,程序設(shè)計(jì)流程如圖9所示。
圖9 滑動(dòng)均值算法流程Fig.9 Moving mean algorithm flow
試驗(yàn)在室溫下,選用了6種不同厚度的標(biāo)準(zhǔn)鋁合金板材(6.00、8.11、10.17、12.08、14.26和16.22 mm),使用5點(diǎn)采樣法對(duì)6種不同厚度的鋁材進(jìn)行6組測(cè)量,每組測(cè)量進(jìn)行5次,最后將手持厚度測(cè)量?jī)x與千分尺測(cè)量的數(shù)據(jù)進(jìn)行對(duì)比,分析其精度,5點(diǎn)采樣法如圖10所示。
圖10 5點(diǎn)采樣法Fig.10 Five-point sampling method
每1次測(cè)量時(shí)測(cè)量5點(diǎn)的厚度值,將千分尺5次數(shù)據(jù)的均值取平均得到的標(biāo)準(zhǔn)值記為H,厚度測(cè)量?jī)x得到的5次數(shù)據(jù)均值記為h,一般情況下,精度是指測(cè)量值與真實(shí)值之間的差,記為Δδ,二者相對(duì)誤差記為δ[19-20]。其計(jì)算公式為
(12)
在數(shù)據(jù)分析中,還計(jì)算了每組數(shù)據(jù)的標(biāo)準(zhǔn)差S,公式為
(13)
千分尺測(cè)數(shù)均值、厚度測(cè)量?jī)x測(cè)數(shù)均值、平均偏差和標(biāo)準(zhǔn)差相對(duì)誤差數(shù)據(jù)統(tǒng)計(jì)如表2所示。
表2 厚度測(cè)量?jī)x誤差統(tǒng)計(jì)Tab.2 Error statistics of thickness measuring instrument
當(dāng)以千分尺所測(cè)數(shù)據(jù)作為輸入量x,厚度測(cè)量?jī)x測(cè)量的數(shù)據(jù)作為輸出量y時(shí),理想情況下,輸入與輸出值應(yīng)滿足直線方程y=1.00x,激光傳感器靈敏度為1.00,實(shí)際情況下,由于對(duì)竹筒厚度的測(cè)量精確度不高,厚度測(cè)量?jī)x測(cè)量數(shù)據(jù)時(shí)會(huì)產(chǎn)生一定的誤差,一般靈敏度在0.90~1.10可滿足要求。輸入量與輸出量的關(guān)系如圖11所示。
圖11 手持式厚度測(cè)量?jī)x特性曲線Fig.11 Characteristic curve of handheld thickness measuring instrument
從圖11中可以分析得出,輸入與輸出的關(guān)系可擬合成一條直線,方程為
y=0.993 66x-0.085 627
(14)
由于線性擬合度R2>0.990,因此,可認(rèn)為靈敏度等于該直線方程斜率為0.993 66。
通過(guò)試驗(yàn)分析可得,所設(shè)計(jì)的厚度測(cè)量?jī)x最高誤差±1.5%,平均誤差<±1.0%,滿足設(shè)計(jì)所提出的精確度要求,且靈敏度>0.95。
為了進(jìn)一步驗(yàn)證所使用的平滑卡爾曼濾波算法是否對(duì)傳感器數(shù)據(jù)起到了優(yōu)化效果,提高系統(tǒng)測(cè)量精度與穩(wěn)定性,做了如下對(duì)比試驗(yàn)。
(15)
通過(guò)對(duì)6組數(shù)據(jù)分析處理,得到優(yōu)化對(duì)比試驗(yàn)精度如表3所示。
表3 優(yōu)化對(duì)比試驗(yàn)結(jié)果統(tǒng)計(jì)值對(duì)比Tab.3 Statistical comparison of optimization comparison test results
通過(guò)上述對(duì)比試驗(yàn)可以看出,在經(jīng)過(guò)平滑卡爾曼濾波對(duì)數(shù)據(jù)處理后,系統(tǒng)的精度得到了顯著的改善(圖12),在手持狀態(tài)下最大誤差±1.5%,平均誤差<±1.0%(圖13)。相對(duì)千分尺而言,手持厚度測(cè)量?jī)x穩(wěn)定性有保障,成本低,效率也大幅提高。
圖12 優(yōu)化前后測(cè)量精度對(duì)比Fig.12 Comparison of measurement accuracy before and after optimization
圖13 優(yōu)化前后測(cè)量誤差對(duì)比Fig.13 Comparison of measurement errors before and after optimization
同樣在室溫下,以竹筒為被測(cè)物,以千分尺測(cè)量數(shù)據(jù)作為標(biāo)準(zhǔn)參考值,使用5點(diǎn)采樣法測(cè)量竹筒端部邊沿上任意5點(diǎn)的厚度值,如圖14所示。
圖14 竹筒厚度測(cè)量Fig.14 Bamboo tube thickness measurement
分別對(duì)壁厚為7~9 mm(8.671 mm)和9~11 mm(10.170 mm)進(jìn)行5次測(cè)量,同時(shí)比較使用平滑卡爾曼濾波前后在真實(shí)生產(chǎn)中優(yōu)化效果,前2組試驗(yàn)數(shù)據(jù)分析如表4和表5所示。
由表4和表5可以看出,在對(duì)壁厚8.671 mm與10.170 mm竹筒厚度的測(cè)量中,優(yōu)化后的平均誤差分別為0.83%和0.48%,優(yōu)化后誤差降低比>90%。總之,本次設(shè)計(jì)的激光厚度測(cè)量?jī)x在手持狀態(tài)下可實(shí)現(xiàn)最大誤差±1.5%,平均誤差<±1.0%,使用平滑卡爾曼濾波后對(duì)誤差的降低比>90%,優(yōu)化效果明顯,具有較好的魯棒性,能夠滿足實(shí)際生產(chǎn)中的測(cè)量需求。
表4 生產(chǎn)試驗(yàn)第1組數(shù)據(jù)計(jì)算結(jié)果匯總Tab.4 Calculation results summary of first group of production test data
表5 生產(chǎn)試驗(yàn)第2組數(shù)據(jù)計(jì)算結(jié)果匯總Tab.5 Calculation results summary of second group of production test data
(1)設(shè)計(jì)了一種手持式厚度測(cè)量?jī)x,提出了應(yīng)用激光測(cè)距的方法對(duì)竹筒厚度進(jìn)行測(cè)量,完成了總體方案的設(shè)計(jì),能夠完成對(duì)5~18 mm范圍內(nèi)竹筒壁厚的測(cè)量。
(2)完成了對(duì)手持式厚度測(cè)量?jī)x的基礎(chǔ)電路板設(shè)計(jì)和調(diào)試,并完成了STM32控制芯片程序代碼編寫?;A(chǔ)電路主要完成了主控電路、電源電路和無(wú)線通信電路的設(shè)計(jì),繪制PCB板并預(yù)留了接口。軟件部分完成了程序的邏輯設(shè)計(jì),優(yōu)化算法的編寫,實(shí)現(xiàn)了對(duì)數(shù)據(jù)的采集、濾波和處理,顯示到無(wú)線發(fā)送等過(guò)程的控制。
(3)設(shè)計(jì)的厚度測(cè)量?jī)x對(duì)不同厚度的鋁板和竹筒測(cè)量時(shí),實(shí)現(xiàn)最高誤差±1.5%,平均誤差≤±1.0%,靈敏度>0.95的性能指標(biāo),能夠以低成本、高效率、高精度和無(wú)接觸的方式實(shí)現(xiàn)對(duì)竹筒厚度的測(cè)量。