牟向伟,葛 鹏,梁国健
(广西师范大学职业技术师范学院,广西 桂林541004)
随着生产技术的快速发展,传统游标卡尺等机械厚度测量方式由于其效率低在工业生产中逐渐被淘汰。取而代之的是超声波测厚、红外测厚、涡流测厚等测厚技术。
在厚度测量技术上,国内外学者已经取得较大进展,主要测量方法有超声波、红外线和激光等[1-3]。刘琳等[4]使用脉冲反射以高性能ARM8、FPGA为控制核心,利用超声波检测电路,结合高速A/D转换器设计出基于ARM的便携式超声测厚仪。石振香[5]使用β射线研制出一种数字式在线厚度测量仪并基于BP人工神经网络实现传感器温度误差补偿。李文涛等[6]利用β射线设计出新型β射线背散射测厚仪,测量最大偏差为0.47μm,但射线测厚的方法成本昂贵,一般用于材料的高精度测量。李俐等[7]研究一种基于非匀速修正圆锥指数的土层厚度测量方法,能有效获取土层厚度信息,但受用面窄,无法应用于其他工业领域。王晓娜等[8]设计了一种用于玻璃厚度测量的空间相位调制型激光干涉仪。吴南寿等[9]设计了一种基于迈克逊干涉仪原理高速、高精度的非接触式玻璃厚度测量系统,但只能实现对玻璃等透光性强的物体厚度测量。目前的激光测厚主要原理是利用激光三角法结合CCD相机利用图像处理得出被测物体厚度,对光学结构部分的激光器和工业相机位置固定要求严格[10-12]。
在工业生产中,基于激光的厚度测量方法尤其适用于金属、木材等非透明材料的厚度测量,且安全可靠,有极高的应用价值,但其依赖图像处理技术,且对光学系统结构搭建有要求。针对我国在竹板或竹筒的加工现状,如何在保障精度的情况下高效测量出竹筒壁厚并对不同厚度竹筒进行分拣成为加工生产中的关键,以此确保不同厚度的竹板用于不同的生产中[13-15]。
通过分析激光测距传感器的原理,以STM32微控制器为主控模块,使用多个激光测距传感器模块,通过计算模块中激光发射器与红外接收器接收到光子的时间测量出距离,并搭建系统进行试验,分析其测量精度与灵敏度,实现对竹筒或竹板的厚度测量。同时也适用于金属板、木板或筒状板材等物体的厚度测量。
基于激光测距的厚度测量仪,成本低,使用方便,能有效地保障测量的效率与质量。系统结构如图1所示。在操作板上有固定的手持把手,方便测量,操作板上设计有屏显孔,方便显示操作板下表面PCB电路板上显示屏的数据,操作板下方竖直固定多块装有激光传感器的探测板,其中3个传感器中,位于操作板上两外侧探测板上为外端激光测距传感器,位于中部的探测板上则为内端激光测距传感器,两外端激光测距传感器朝向相对,内端激光测距传感器与靠近手持把手一端探测板上激光测距传感器方向一致,且3块探测板上的传感器位于同一直线上。
1.操作板 2.PCB 3.屏显孔 4.显示屏 5.手持把手 6.竹筒 7.传感器 8.固定螺钉 9.探测板图1 系统结构Fig.1 System structure
由于不同粗糙程度的物体表面使传感器在透镜单位时间内接收到的光能量不同,会对测量产生影响,造成一定的测量误差。因此,拟在光泽的竹筒表面进行试验,通过激光测距的原理对竹筒厚度进行测量。测量原理如图2所示。
图2 测量原理Fig.2 Measurement principle
假设竹筒厚度和外径分别为D0和D4,2个外端激光传感器间距为L1,内端激光传感器与远离手持把手端激光传感器间距为L2,2个外端激光传感器所测距离分别为D1和D3,内端激光传感器测量距离为D2,则可得如下公式。
L1=D3+D4+D1
(1)
L2=D3+D0+D2
(2)
因此,可以得出竹筒的厚度D0与内径D4有如下关系。
D0=L2-D3-D2
(3)
D4=L1-D3-D1
(4)
由于3个激光传感器在实际装置中存在一定的厚度分别对应记为n1、n2和n3,因此上述2个公式中需减去传感器自身的厚度,来纠偏测量值,故可得实际公式应为
D0=L2-D3-D2-(n2+n3)
(5)
D4=L1-D3-D1-(n1+n3)
(6)
该系统主要由系统硬件与软件两部分组成(图3)。系统硬件部分主要由STM32主控电路、电源电路、无线通信电路、传感器模块及屏显模块端口电路组成。
图3 系统总电路Fig.3 System general circuit diagram
采用意法半导体公司生产的内核为Cortex-M3的STM32F105RBT6型微控制器,工作频率为72 MHz,内置Flash大小为256 kB,SRAM为64 kB,该控制器共有5个串口,在本设计中,无线通信与下载调试各占用1个串口,3个激光传感器占用3个串口,刚好满足设计需求。主控电路设计如图4所示。
图4 主控芯片电路Fig.4 Circuit of main control chip
电源电路部分使用ME6203A33M3G压差线性稳压芯片,将外接型号为18650的3.9 V锂电池电压稳压至3.3 V,为整个系统提供能源。ME6203A33M3G低压差线性稳压芯片使用sot-23封装,价格便宜且波纹小。本设计中使用两路DC-DC线性稳压方案,可达到高精度的电源性能,实用性强。电源电路设计如图5所示。
图5 电源电路Fig.5 Power supply circuit
系统利用WiFi对数据进行无线传输,使用ESP8266模组,可对ESP8266模组烧录相应的AT指令对模组进行基础的配置,且其内部嵌有32位低功耗CPU可做额外的处理器。整体而言,ESP8266操作简单,传输效率高,占用控制器IO口资源少,适合数据无线传输,无线通信电路设计如图6所示。
图6 无线通信电路Fig.6 Wireless communication circuit
传感器模块使用RCWL-0810 VL53L01型激光测距传感器,该模块通过串口与主控进行数据传输,具有精度高、响应快、稳定性好等优点,其精度范围如表1所示。
表1 RCWL-0810 VL53L01型激光测距传感器精度范围Tab.1 Accuracy range of RCWL-0810 VL53L01 laser ranging sensor
从表1可以看出,当设置其工作在高精度模式下时,可满足设计要求。
屏幕显示选用2.44 cm(0.96英寸)OLED模块,支持显示汉字、ASCII和图案等内容,能将需显示的数据清晰地呈现,功耗低,稳定性强,被广泛使用在各种设备中。
系统软件设计部分主要包括对激光测距传感器采集的数据进行滤波、消抖等程序的设计,实现将最后测量的厚度值清晰地呈现在显示屏上。
使用成熟稳定的MDK-ARM开发平台对软件进行调试,确保调试过程数据的处理准确、有效。厚度测量仪软件总体工作流程如图7所示。系统上电后进入初始化,当测量按键按下后,传感器开始采集数据,接着通过串口将数据发送至stm32微控制器,经由卡尔曼滤波法算法优化、防抖等处理后通过屏幕显示出来。
图7 厚度测量流程Fig.7 Flow of thickness measurement
在手持测量物体厚度过程中,难以避免因手抖动造成数据抖动的问题,因此,需要程序中加入滤波等程序算法消除数据抖动,常见的滤波算法有中值平均滤波算法、加权递推平均滤波算法、卡尔曼滤波算法及其改进变形的一系列算法等[16-18]。为提高程序滤波效果,采用基于软件模拟的方式对多种滤波算法组合进行比较,最终确定了先用卡尔曼滤波算法再对数据使用平滑修正算法处理。
3.2.1 卡尔曼滤波算法实现
在观测系统状态时,通常有2种手段:一是通过系统的状态方程与前一时刻系统状态,推算出下一时刻的状态;二是用辅助的方式通过量测系统得到系统测量值。卡尔曼滤波则是将二者结合分配不同权重达到最优的结合。
对于线性离散的动态系统,状态方程为
xk=Axk-1+Wk-1
(7)
系统量测方程为
yk=Cxk-1+vk-1
(8)
式中xk——系统状态
yk——量测输出
wk——系统过程噪声
vk——量测噪声
k——离散时刻下标
根据状态方程和量测方程,典型的卡尔曼滤波器是通过比较滤波器的输入与输出间残差,调整滤波器的参数,修正后验分布达到最优分布的效果。计算主要分为2组:一种时间更新方程用于预测,利用上一时刻值计算当前状态与误差协方差矩阵的估计值,为下一状态提高先验估计;另一种量测方程用于校正,将测量值与先验估计值结合,为下一状态提供优化后的后验估计。
根据观测误差最小且状态无偏的原则求出卡尔曼增益,对先验估计值优化,得到当前最优估计值,并求出最优估计方差矩阵。
实现思路首先是利用系统的过程模型,通过根据系统上一次的状态预测出当前状态,即
X(K│K-1)=A(K-1│K-1)
(9)
式中X(K│K-1)——上一状态预测的结果
A——系统参数
A(K-1|K-1)——上一状态最优的结果
接着通过计算X(K│K-1)的协方差计算卡尔曼增益,计算公式为
P(K│K-1)=A×P(K-1│K-1)AT+Q
(10)
(11)
式中P(K│K-1)——X(K│K-1)对应的协方差
P(K-1│K-1)——X(K-1│K-1)对应的协方差
AT——A的转置矩阵
Q——系统过程的协方差
H——测量系统的参数
由估计值与测量值更新出当前最优值及其协方差让卡尔曼滤波器不断运行下去直至系统结束,实现算法的自回归。
在了解卡尔曼算法实现过程之后,还需估计出该算法的大致效果,因此,在MATLAB中对其进行仿真,MATLAB仿真流程如图8所示。
图8 MATLAB仿真流程Fig.8 MATLAB simulation flow
3.2.2 平滑修正算法
使用平滑修正算法减小卡尔曼滤波后数据出现的突变误差,在程序设计上,采用先进先出的方式计算并返回均值,程序设计流程如图9所示。
图9 滑动均值算法流程Fig.9 Moving mean algorithm flow
试验在室温下,选用了6种不同厚度的标准铝合金板材(6.00、8.11、10.17、12.08、14.26和16.22 mm),使用5点采样法对6种不同厚度的铝材进行6组测量,每组测量进行5次,最后将手持厚度测量仪与千分尺测量的数据进行对比,分析其精度,5点采样法如图10所示。
图10 5点采样法Fig.10 Five-point sampling method
每1次测量时测量5点的厚度值,将千分尺5次数据的均值取平均得到的标准值记为H,厚度测量仪得到的5次数据均值记为h,一般情况下,精度是指测量值与真实值之间的差,记为Δδ,二者相对误差记为δ[19-20]。其计算公式为
(12)
在数据分析中,还计算了每组数据的标准差S,公式为
(13)
千分尺测数均值、厚度测量仪测数均值、平均偏差和标准差相对误差数据统计如表2所示。
表2 厚度测量仪误差统计Tab.2 Error statistics of thickness measuring instrument
当以千分尺所测数据作为输入量x,厚度测量仪测量的数据作为输出量y时,理想情况下,输入与输出值应满足直线方程y=1.00x,激光传感器灵敏度为1.00,实际情况下,由于对竹筒厚度的测量精确度不高,厚度测量仪测量数据时会产生一定的误差,一般灵敏度在0.90~1.10可满足要求。输入量与输出量的关系如图11所示。
图11 手持式厚度测量仪特性曲线Fig.11 Characteristic curve of handheld thickness measuring instrument
从图11中可以分析得出,输入与输出的关系可拟合成一条直线,方程为
y=0.993 66x-0.085 627
(14)
由于线性拟合度R2>0.990,因此,可认为灵敏度等于该直线方程斜率为0.993 66。
通过试验分析可得,所设计的厚度测量仪最高误差±1.5%,平均误差<±1.0%,满足设计所提出的精确度要求,且灵敏度>0.95。
为了进一步验证所使用的平滑卡尔曼滤波算法是否对传感器数据起到了优化效果,提高系统测量精度与稳定性,做了如下对比试验。
(15)
通过对6组数据分析处理,得到优化对比试验精度如表3所示。
表3 优化对比试验结果统计值对比Tab.3 Statistical comparison of optimization comparison test results
通过上述对比试验可以看出,在经过平滑卡尔曼滤波对数据处理后,系统的精度得到了显著的改善(图12),在手持状态下最大误差±1.5%,平均误差<±1.0%(图13)。相对千分尺而言,手持厚度测量仪稳定性有保障,成本低,效率也大幅提高。
图12 优化前后测量精度对比Fig.12 Comparison of measurement accuracy before and after optimization
图13 优化前后测量误差对比Fig.13 Comparison of measurement errors before and after optimization
同样在室温下,以竹筒为被测物,以千分尺测量数据作为标准参考值,使用5点采样法测量竹筒端部边沿上任意5点的厚度值,如图14所示。
图14 竹筒厚度测量Fig.14 Bamboo tube thickness measurement
分别对壁厚为7~9 mm(8.671 mm)和9~11 mm(10.170 mm)进行5次测量,同时比较使用平滑卡尔曼滤波前后在真实生产中优化效果,前2组试验数据分析如表4和表5所示。
由表4和表5可以看出,在对壁厚8.671 mm与10.170 mm竹筒厚度的测量中,优化后的平均误差分别为0.83%和0.48%,优化后误差降低比>90%。总之,本次设计的激光厚度测量仪在手持状态下可实现最大误差±1.5%,平均误差<±1.0%,使用平滑卡尔曼滤波后对误差的降低比>90%,优化效果明显,具有较好的鲁棒性,能够满足实际生产中的测量需求。
表4 生产试验第1组数据计算结果汇总Tab.4 Calculation results summary of first group of production test data
表5 生产试验第2组数据计算结果汇总Tab.5 Calculation results summary of second group of production test data
(1)设计了一种手持式厚度测量仪,提出了应用激光测距的方法对竹筒厚度进行测量,完成了总体方案的设计,能够完成对5~18 mm范围内竹筒壁厚的测量。
(2)完成了对手持式厚度测量仪的基础电路板设计和调试,并完成了STM32控制芯片程序代码编写。基础电路主要完成了主控电路、电源电路和无线通信电路的设计,绘制PCB板并预留了接口。软件部分完成了程序的逻辑设计,优化算法的编写,实现了对数据的采集、滤波和处理,显示到无线发送等过程的控制。
(3)设计的厚度测量仪对不同厚度的铝板和竹筒测量时,实现最高误差±1.5%,平均误差≤±1.0%,灵敏度>0.95的性能指标,能够以低成本、高效率、高精度和无接触的方式实现对竹筒厚度的测量。