昆山市拓恒机电有限公司

冯先生   137-7635-6532

电话: 0512-50138462

E-mail: kstuoheng@126.com

江苏省昆山市经济技术开发区

金沙江南路16号3号厂房

新闻动态
组合秤称重模块优化方法研究
[2020-03-22]

0 引 言

在农业、食品等行业中,传统的单秤称量结构简单、功能单一,不能实现个性化的定量称量。组合秤的出现则加快了定量称量这一过程的速度,提高了生产效率。然而设备工作过程中一直伴随重物的下落冲击、料斗的开关闭合等动作,对称重过程有一定的振动干扰,另外设备工作时间过长后,称重传感器会出现温漂零漂等现象,导致称重信号中含有噪声[1]

为解决噪声问题,工业上对称重模块进行了部分优化,其中硬件方面多采用高位数AD转换芯片,并在参考电压引脚端接入高精度稳压芯片,或者采用更高频率的MCU芯片。这些方法增大了模块制作成本,不利于生产推广[2]。软件滤波方面多采用去极值平均法对称重数据进行处理,而由于该方法是基于含噪信号进行处理,计算出的重量难免会有偏差。

因此,必须要对硬件进行低成本优化,同时采用更复杂算法将噪声滤除,确保参与计算的数据是去除噪声后的有用数据[3]

目前常用的信号去噪方法多为傅里叶变换、卡尔曼滤波等分析算法,然而上述算法对平稳信号的过滤较为有效,当信号波动较大时,传统去噪算法的函数很难与之匹配[4]。重物撞击瞬间,重量数值在极短时间内发生突变,傅里叶变换就要分解出很多正弦波形去拟合,效果不佳,时间也比较长因此需要采用能够滤除动态噪声的滤波算法:胥馨尹等[5]采用QRD-LSL自适应滤波算法,对整体结构的震动效果进行了控制,但无法控制滤波器的阶数以应对不同环境,无法滤除硬件电路温漂零漂产生的噪声信号。郁洋等[6]提出了一种基于小波滤波的滤波算法,能够有效滤除称量系统的噪声,但具体实现与应用仍有待考究。张西良等[7]用离散小波变换处理动态称量信号,并对快速傅里叶变换和离散小波变换的滤波效果进行了对比分析,确定了离散小波变换进行滤波处理的有效性。

小波变换方法是一种时域和频域窗口形态都可改变的时频分析方法,在高频阶段具有较高的时间分辨率和较低的频率分辨率,尤其适合处理含噪信号中的高频噪声。本文针对工业上组合秤的称重精度问题,开发了一款全新的基于小波去噪方法的组合秤称重模块,并在现场对该模块的称重性能进行了检验分析。

1 称重模块工作原理

目前市面上流行的组合秤主要由线振器、料斗、称重模块、主控模块、电机模块及挡板构成。工作流程为:加料机将物料放在线振器上方的平台上,通过线振器的振动将物料均匀运送到多个料斗,电机模块控制料斗开合,称重模块进行称重处理及数据传输,主控模块负责对称重模块传来的各斗重量进行组合,当组合出目标重量时,选中对应料斗进行放料,物料通过挡板进入包装机内,然后不断循环整个过程[8]

其中,称重模块是组合秤的核心部分,既要保证称量精度与速度,又要配合主控模块完成一定的业务逻辑。称重模块主要由压力传感器、放大电路、AD转换芯片、MCU单片机及电源模块构成。工作原理如图1所示。

图1 称重模块工作原理

图1 称重模块工作原理   下载原图


首先,压力传感器将压力信号转换为电压信号。放大电路负责将该电压放大至AD转换芯片适配范围进行输出,AD转换芯片根据基准电压与输入电压的比例,将电压信号转换为数字信号,通过如SPI等协议传输给MCU。MCU可对该数据进行处理或包装后进行传输。

实际生产中,一旦整体结构发生振动,传感器的输出电压就会发生跳变,而高精度的AD转换芯片只会如实的将电压转换成数字量交给MCU处理[9]。当初始数据存在噪声,执行平均滤波就无法得出实际重量。本模块采用单片机与PC端共同控制的思想,在放大电路电压输出端加入采集卡,将数据传输给PC端,以PC端强大的数据处理工具对电压信号进行小波分析,去除噪声,得到称重数据,然后将称重数据通过RS-485通讯协议发送给MCU,由MCU对初始数据与PC端传输数据进行平均处理,输出真实重量[10]

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转换器本身的零点增益和漂移误差,方便调试者进行其他方面的优化滤波[11]

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 控制流程

图2 控制流程   下载原图


具体实现为,首先执行驱动程序初始化,然后每隔5 ms对SPI接口进行一次数据读取,采集12次后把数值从小到大排列,去除两个最大值、两个最小值,求出剩余数值的平均值,然后判断PC端有没有数据传入。如果有数据传入,则将平均值与传入值进行平均处理,计算出实际重量,否则重新采集。其次解析主控模块的逻辑,判断需要的工作模式,最后将重量数据进行输出或存储到SD卡以备算法的改进[12]

驱动程序主要分为3个部分:

1)引脚初始化:上电后首先进行引脚初始化,将不同引脚设置为推挽输出等工作模式。

2)SPI使能:设置SPI为双线双向全双工模式,数据帧大小为8位,设置串行同步时钟的空闲状态为高电平,命令MCU于串行同步时钟的第一个跳变沿采样数据,定义波特率为115 200。

3)AD转换芯片初始化:首先延时1 000 ms,确保AD转换芯片上电正常。然后通过SPI协议设置该芯片的时钟频率,根据手册发送15个“0XFF”和1个“0XFE”进入命令模式,发送复位指令,读取反馈数据。若复位成功则开始写配置寄存器、通道设置寄存器来设置工作模式、转换速率、增益放大倍数等参数,执行自校准后开始进行连续转换[13]

实际操作中,由于焊接不准确、芯片污损等原因,偶尔会出现初始化失败的现象,因此设置初始化程序连续执行两次。

2.3 通讯协议设计

本设计在PC端进行小波去噪处理,需要通过串口与单片机进行数据通讯。为保证数值传输过程的准确可靠,设计一种包含校验的通讯协议。每一帧数据由开始头、编码号、重量数据、BCC校验码组成,均用十六进制表示。其中开始头设置为0XAA,编码号可根据实际料斗个数进行设置,为避免小数的传输和换算,重量数据是实际重量的100倍,占4个字节,单片机接收到后直接除以100。BCC校验码是工业上常用的校验方式,原理是对该帧数据逐位进行异或运算,以检验传输数据的完整[14]

3 数据分析

数据分析过程主要分为信号采集、小波去噪两个阶段。首先由采集卡采集放大电路输出端的模拟电压,根据AD转换芯片的转换系数,编程进行重量换算。然后通过MATLAB工具对转换后的数据进行小波去噪处理,最后根据通讯协议将数据传输给单片机。具体流程如下:

3.1 信号采集

首先清空料斗,在空斗状态下,记录当前电压值为基准值。一旦电压值发生变化,MATLAB便开始持续读串口200 ms,同时将数值输出到本地MATLAB工作路径的txt文件下,为小波去噪提供数据依据。具体软件流程如图3所示。

图3 数据分析流程

图3 数据分析流程   下载原图


本文选用200 g±0.01 g砝码进行实验,将砝码放在距离称重模块30 cm高处自由下落,每隔5 ms读取一次电压模拟量,计算重量并输出。结果如图4所示。

图4 称重信号

图4 称重信号   下载原图


由时域图可以看出,硬件结构的振动导致了重量数值的不稳定,经过200 ms之后,输出重量仍有5 g左右的偏差。接下来进行小波去噪处理。

3.2 小波去噪

设该噪声信号S可由式1表示。

Sn=fn+un(1)

式中:fn是真实信号,un为噪声信号,n代表离散时刻。为加快计算机的运算速度,选择计算量较小的离散小波变化。真实信号主要是低频信号,因此选择较适合低频信号的小波去噪方法:小波阈值去噪法[15]。算法的具体应用过程如下:

1)首先确定使用的小波基函数,经比较,选择MATLAB提供的sym5小波基函数[16]

2)确定小波阈值去噪的阈值函数和阈值选择方法,其中阈值函数包括硬阈值和软阈值。硬阈值函数的阈值不连续,处理后的信号会产生振荡,不能满足称重信号处理的平滑要求;软阈值信号具有连续性,但去噪后的信号会丢失一些细节,在保证曲线平滑的基础上不会造成很大偏差,因此选用软阈值函数[17]

由于噪声信号近似服从高斯分布,选择以高斯噪声为模型的固定阈值方法。算法由式2所示。

λ=σ2lnΝ (2)

式中:N为信号长度,σ为噪声标准方差,λ为阈值。

3)确定分解层数。为选取合适的分解层数N,分别将N赋值2~9,分别对信号进行处理得到重构信号。并对重构信号进行比较,各重构信号如图5~12所示。

图5 N=2

图5 N=2   下载原图


图6 N=3

图6 N=3   下载原图


图7 N=4

图7 N=4   下载原图


图8 N=5

图8 N=5   下载原图


图9 N=6

图9 N=6   下载原图


图10 N=7

图10 N=7   下载原图


图11 N=8

图11 N=8   下载原图


图12 N=9

图12 N=9   下载原图


由图可知,当分解层数N从1逐渐增大时,输出信号逐渐趋于稳定,当N=7时,所需稳定时间最短,输出信号最为精准。当N继续增大时,稳定时间变长,且数据是否收敛无法预测,不利于做称重数据处理。因此选择7层分解层数[18]

4)截取300 ms~350 ms阶段的重构信号,按固定时间间隔连续采集15次,去掉两个最大值、最小值,对剩下的数值进行平均处理,得出重量。然后将重量数值通过USB转串口线发送给MCU,同时将该数值加上时间戳保存到本地txt文件中[19]

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.55121.51121.520.04

2
39.6539.6839.700.03

3
170.75170.68170.690.07

4
102.35102.39102.370.04

5
220.23220.12220.150.11

6
199.29199.23199.260.06

7
117.72117.71117.680.01

8
48.9548.9148.970.04

9
309.32309.46309.230.14

10
162.21162.26162.150.05

11
177.45177.37177.380.08

12
257.15257.07257.120.08

13
248.07247.96247.920.11

14
39.5139.4939.530.02

15
55.7855.8255.850.04



5 结 论

设计了一种PC端与单片机相结合的组合秤称重模块,首先根据设备工作原理,完成了芯片选型,及放大电路、AD转换电路等硬件设计,然后进行了控制逻辑、驱动程序等软件的开发,其次通过小波去噪方法的实现提高了本模块的称量精度。最后经过现场测试,验证了该模块的精度,结果表明,该设计能够满足工业需要,可以高效的完成称量任务。


返回
点击这里给我发消息