摘要:为了实现烟支剔除的自动化程度,减少人为干预量和提高剔除精度,文中给出了采用FPGA" title="FPGA">FPGA硬件编程方法将数据采集部件采集到的烟支数据经A/D转换后送入FPGA,然后根据一定的判决算法输出控制信号,以用于控制剔除阀动作,同时将数据通过计算机串口读入上位机,以此实现机械剔除控制和显示实现方法。
关键词:FPGA;烟支检测" title="烟支检测">烟支检测;数据处理;问题烟;剔除
0 引言
烟支在生产过程中,由于多种因素的影响,可能会使成品烟的烟丝填充不均匀,烟支的某节烟丝过少或过多,从而出现空头烟、超重烟、超轻烟。本系统采用可编程器件控制烟支检测,该方法较其他单独硬件设计具有可重用性高,编程方便,设计成本低,开发周期短,控制灵活,剔除率高等优点;再者,现在的烟支剔除大部分都是人工挑选,故存在工人工作量大,挑选不干净等问题,而该系统可使问题烟的判别、剔除工作自动进行,可对问题烟进行挑选,并能够剔除问题烟。
1 硬件设计
烟支检测系统是用于检测烟支某些参数(如空头烟、重量、密度等)的一个系统,该系统一般可由数据采集(传感器)部件、数据处理部件、数据显示部件、机械控制部件等几个部分构成。其系统框图如图1所示。
其中数据采集部件是系统与被检测参数最直接接触的部分,它是整个系统的数据来源。后期处理是否跟实际一致,直接跟它相关。一般对应不同的物理量,应选择不同的传感器,如空头烟检测可选择光电探头或电容式探头,重量控制可选择重量传感器,密度控制则应选择密度传感器。
数据处理部件是整个系统的核心,传感器采集的数据主要送往该部件进行处理。它一般可由A/D采样板,差分传输板,FPGA处理主板组成。传感器一般得到的数据是模拟量,故应将数据送到数字处理系统进行处理,以将其转化成数字量来进行后期处理。为了保证传输的正确性和可靠性,在A/D采样板送出数据到系统主板之间应使用双绞线差分传输。系统主板主要是以FPGA为核心的控制板,可实现数据处理(剔除)算法,并为后面的机械部分提供控制信号以及将采集和运算数据送到显示器进行显示,从而满足系统设计的要求。
数据显示部件也称为人机交互接口,该部件是整个系统的最直观的表现。它是用户跟系统进行交互的主要部分,用户可以在其上面选择一些阈值和处理方法等参数,也可以控制系统的启动和停止。同时,系统再将一些重要数据显示出来,使用户能够直观得出该系统的工作状况等参数。
机械控制部件是整个系统动作的执行者,因为系统板内部都是弱电,不能驱动机械部件动作,故在其中间需加驱动电路,以使其能够正常工作。其工作主要是当数据处理部件根据一定的判决算法得到某烟为问题烟时,对这些问题烟进行剔除。从而使系统能够自动的检测出问题烟并控制剔除动作,减少人工的干预量,达到自动化的目标。
2 器件选型
2.1 数据采集部件(探头)的选择
数据采集部件一般位于整个系统的最前端,它的选型对系统的稳定性、可行性有很大影响,本系统选择光电传感器作为探头来对烟支的数据进行采集,它的灵敏度直接与剔除率有关。为了让剔除效果达到最好,探头灵敏度必须调整到合适的设置值。
灵敏度包括静态灵敏度和动态灵敏度两种,静态灵敏度主要是在静态情况下探头的光反射强度与探头距烟头的距离、日光、烟头密度及探头电压等之间的关系;动态灵敏度是动态情况下的性能指标。本系统是让探头工作在不同的灵敏度下分析剔除率和误剔率,从而选定剔除性能最好的灵敏度器件。动态灵敏度的另一个影响因素为动态位置误差,即在采样时间内,由轮盘(与轴编码器同步)转动造成的位置变化所引起的探头误差,这里主要从位置误差和探头作用距离上比较,图2所示是动态位置误差示意图。
在图2中,R表示推烟板曲轴的轮盘半径,一次采样过程的起点为p1,结束位置为p2,该段持续时间内的曲轴误差为δr,其中:
若所选A/D采样速率为50kHz,采样周期为2×15-5s,那么,按每分钟400转计算,一次采样时间内的轮盘转动弧度为:
取采样10次的平均,其位置误差不到4μm。而根据探头的位置响应曲线,探头的最佳检测距离在离烟2~3.5mm处,2mm>>4μm,所以,理想情况下由动态位置引起的误差可忽略不计。
根据以上分析,本设计选用韩国KODENSHI公司的SG-2BC传感器。
2.2 A/D转换器的选择
ADS7841E是德州仪器公司开发的一块4通道,12位,带串行接口的模数转换芯片,它是一块低功耗、高速度、高精确度的A/D采样芯片,电压为2.7~5 V,可达到200kHz的转换速率。根据笔者对探头的测试,探头检测的最小变化为0.5V左右,而A/D采样的分辨率为3.3/212V≈8×10-4V,所以,该AD采样芯片完全可以满足设计要求。
2.3 FPGA的选择
该系统采用EP3C16Q" title="EP3C16Q">EP3C16Q型FPGA进行控制逻辑编程。该器件是ALXERA公司生产的CycloneII" title="CycloneII">CycloneII系列高性能现场可编程门阵列,而且具有丰富的逻辑资源。EP3C16Q具有15408个逻辑单元、56个嵌入式乘法器和4个锁相环(PLL),其内部的RAM容量为504Kbits,系统频率高达260MHz,而且稳定性很高。采用单片FPGA实现逻辑控制和数据处理功能可以简化电路设计,提高系统的可靠性并节约成本。设计时,只需一根下载电缆连接到目标板上,就可以多次重复编程,而且电路调试十分方便。
3 软件设计
本系统的核心处理程序可采用QUARTUSII7.2软件和Verilog HDL语言进行编写,而上位机软件则可采用Delphi7软件进行编写,其核心部分是数据处理部件,它主要由A/D采样、差分传输和FPGA数据处理部分构成,为了使系统实现更加方便,且便于控制,选择FPGA对剔除问题烟的算法非常关键。图3所示是整个系统的程序框图。
3.1 A/D采样
ADS7841E是一款4通道12位的A/D转换芯片,它是由时钟控制的串行输入芯片,芯片DIN中的A2、A1、A0位是通道选择位,MODE位是12b-it/8bit转换选择位,本设计选择高精度的12bit转换,SGL/DIF位用于选择是单端转换还是差分转换,本设计选择单端转换。ADS7841E模块的软件设计原理图如图4所示。
图4中,clkin为系统时钟,CH1~CH7为ADS7841E芯片的转换结果并行输出,该数据可送往FPGA进行判决处理。
3.2 FPGA数据的处理
在对FPGA数据进行处理时,可以采用均值剔除算法。所谓均值剔除算法,就是用一个样本的当前值与一个参考值相减,然后取绝对值,如果结果超过某一门限,就说明其不符合要求,故可舍弃这个数据。假设随机变量X具有数学期望μ和方差σ2,那么,对于任意正数ε,其不等式(6)成立:
不等式(6)称为切比雪夫不等式,若令ε=3σ,则可得到:
其中,μ为正态分布的期望,σ为正态分布的均方差。由式(8)可知,对于正态随机变量来说,它的值落在区间[μ-3σ,μ+3σ]内几乎是必然的事件,这就是3σ规则。
由于均值剔除算法实现简单,且剔除效率比较高,因此,该系统选择均值剔除算法作为实验算法来验证系统的可能性和稳定性。其判别模块的原理图如图5所示。
图5中,clkin为系统时钟,enclk为系统同步时钟,control为控制信号输出。将该控制信号送往驱动板,即可控制机械部件以剔除问题烟,datain为前端A/D采样输出的数据。
3.3 系统原理实现
FPGA程序中还应包括A/D采样控制、算法判决、问题烟检出后的剔除信号产生以及上位机的显示等功能。
整个系统的同步由轴编码器控制,轴编码器的转速与正常卷烟机的速度一致,也就是说,烟条的下落速度越快,轴编码器的转速越快。现在,大部分烟机的速度可达400转/秒,烟条下落一根,轴编码器转一圈(360°)。其系统的整体软件实现原理图如图6所示。
图6所示的整个系统包括A/D转换模块、判决模块和显示模块三部分。其中clkin为系统时钟,ain,bin,zin为轴编码器的输入信号,输出的脉冲enclk为整个系统的同步时钟,该时钟由轴编码器产生。判决模块中的主要输出为均值(aver)、方差(variance)、剔除控制信号(co-ntrol);显示模块主要将判决模块输出的数据通过串口送往上位机显示,TxD为系统与上位机的接口,用于传输系统所需显示的数据和用户需要控制的参数。
4 设计验证
该烟支检测系统的实验条件是常温,FPGA主板为5V转3.3V供电,剔除控制板的电源电压为24V,模拟烟机的转速为200转/秒(该数据通过显示器进行显示得出)。实验时,先在下烟道中放置一定数量的正常烟,再放置一些问题烟(如空头烟),然后通过探头采集数据并送往A/D采样芯片,再将得出的数字信号送到FPGA中进行处理,并计算出判决量,再根据一定的剔除算法判决出问题烟,然后产生一个剔除控制信号去控制烟机上的剔除装置,以将问题烟剔除,同时将计算结果中一些必要的量、剔除的烟支数、剔除率实时的显示到上位机,以供用户查看和了解烟机的运转状况。
5 结束语
通过对整个系统的大量实际测验可知,该系统能够很好的剔除问题烟,并把相关的数据传到上位机进行显示,同时还可以跟用户进行交互,剔除率可以达到70%左右,可以达到设计参数要求,满足工业生产实际需求。
本系统虽以烟支检测为例,但如更换前端的传感器与后端的机械控制部件,对于其他物体的状态监测同样适用,也可以作为数据采集与处理的一个通用平台,因而具有广阔的应用前景。