基于FPGA的固体测速系统的设计与应用
2017-01-05龙永良孙洋杨那
龙永良,孙洋,杨那
(成都信息工程大学 电子工程学院,成都 610225)
基于FPGA的固体测速系统的设计与应用
龙永良,孙洋,杨那
(成都信息工程大学 电子工程学院,成都 610225)
针对目前工业生产过程中的固体流速测量问题,提出了一种基于FPGA的固体流速测量系统。该系统以相关测速算法为理论基础,通过发射载波信号到测试管道,并采集管道内两个不同位置的流速信号,对这两路信号进互相关运算,寻找峰值点,从而间接求得固体流速。该系统包括一套基于FPGA的硬件系统和一套基于C++的上位机软件系统。经过测试验证,本系统实现了固体流速的精确测量,性能稳定,达到了设计目标要求。
固体流速;载波信号;互相关运算;FPGA
引 言
近些年来,固体物料输送的自动化控制技术在工业生产中的应用越来越广泛,固体物料流速的检测和计量在工业过程中的地位也越来越重要。但是,固体流速一直是工业过程中比较难测的参数。相对于成熟的流体的流速检测技术,固体流速流量检测方法的研究起步晚,技术不够成熟[1],目前已有的测量方法存在操作不方便、制作成本高、实时测量精度难以评价等问题[2]。因此本文根据相关测速原理,利用FPGA平台开发了一款新型的固体测速系统,该系统可以测量固体物料的速度,测量结果准确可靠。
1 相关测速算法介绍
本文的固体速度测量方法来源于相关测速原理[3]。固体颗粒在流动过程会自然产生流动噪声信号,对固定不变的两个位置的测试点的流动噪声信号进行采集,采集到的信号则具有相关的性质。利用这一特性,可以将测量固体的速度问题转化为测量固体通过两个位置的时间间隔问题。
相关法测量固体速度系统构成如图1所示。
图1 相关流速测量系统
(1)
图2 固体颗粒流动噪声信号及互相关函数图形
(2)
相关法测量固体速度是基于检测两路信号相似性与信号的幅度值无关,这意味着互相关法具有以下这些优点[5-6]:①采用非接触测量,降低了设备损耗,增加了传感器使用寿命;②测量精度高,量程宽;③与测量对象本身的化学和物理性质无关,固体液体都可以测量;④适用性强,与测量环境变化无关,如温湿度变化。
正是因为相关测速法有诸多的优点,所以相比较其他速度测量方法(如光学法、声学法、电磁法等),相关测速法在测量管道流体流速方面应用更广泛。
2 系统方案设计
本系统依据相关测速法原理,在原来互相关测速法基础上做了改进,增加了信号发射端。这是因为传统的相关测速方法,信号接收端采集的是物料的流动噪声信号,此信号幅值比较小,通常是高频信号,且具有很大的随机性,直接采集流动噪声信号作互相关运算,不容易找到正确的峰值点,很难正确地求出物料的速度。本系统采用的方案是由信号发射端发射大功率低频载波信号,两个信号接收端接收携带流动噪声的载波信号,并通过低通滤波器把高频的流动噪声信号滤掉。
本方案的系统结构框图如图3所示。
图3 系统结构框图
其中,A端为信号发射端,向测试管道发射载波信号,B、C端为接收端,接收带有流体信息的回波信号,并送入预处理电路处理,然后FPGA控制A/D芯片对处理后的两路信号进行采集,再经过FIR低通滤波器,滤掉高频噪声信号,从而得到两路良好的相关信号。对这两路信号进行互相关运算,从而求得此时的流速。
(3)
3 系统硬件设计
结合性能与成本的考虑,主控芯片选择Xilinx公司的Spattan-6系列的XC6SLX100芯片。该芯片配置有15 822个Slice,930 Kb容量的分布式RAM,182个DSP48E Slice以及482个可用I/O口[8],能够满足本系统的资源消耗。
本系统的工作原理是:中心控制器FPGA产生一定频率的载波信号,经波形变化后发射到测量管道中,接收端采集到的两路相关信号经前端放大处理、A/D采集后送入中心控制器处理,经过互相关运算后即可获得固体颗粒速度数据。如图4所示,由上图可以看出本系统主要由信号发射模块、信号采集模块、USB通信模块、温度检测模块和EEPROM存储模块构成。
图4 硬件系统框图
信号发射模块实现的功能是产生一定形式的载波信号发送至测量管道。由相关法测速原理可知,载波信号经过测量管道后会带有物料通过的信息。
信号采集模块实现的功能是将接收电极接收到的两路相关信号同时进行放大滤波,然后同时输入到A/D芯片进行A/D转换,最后输入到FPGA进行处理。本系统采用的A/D转换芯片是ADC122S101。ADC122S101是一款低功耗,双通道输入的模拟—数字转换器,它与控制器之间采用SPI方式进行通信,它的输出数据位为12位。与传统单一采样率的A/D器件不同,ADC122S101的采样率可以从500 Ksps~1 Msps,可以满足本产品的采样需求。
USB通信模块实现的功能是完成硬件系统和上位机相互通信。USB接口的优点是可以实现即插即用,可以随时利用电脑进行参数的配置和系统的调试[9]。USB通信模块部分选用的芯片是FT232BM。FT232BM是FTDI公司开发的一款数据转换芯片,可将USB数据转换成串口数据。
温度检测模块负责对相关器板载温度进行实时采集,以便实时了解管道环境温度情况。温度检测装置采用的是一块温度传感器DS1631,测量范围为0~70 ℃,测量精度为±0.5 ℃。中心控制器FPGA可通过I2C协议读取DS1631测量的温度数据。
EEPROM存储模块负责对配置参数存储。硬件电路需要配置许多参数,主要参数包括两相邻电极之间的间距、发射信号频率、信号的数据率、硬件系统地址等参数。由于FPGA断电重启后会丢失系统参数,EEPROM可以使得存储的参数掉电不丢失。本系统选用的存储芯片是Atmel公司的AT24C04,存储容量最大为4 KB,FPGA可以通过I2C协议读取和存储数据,芯片内的资料可以在断电的情况下保存10年。
4 系统软件程序设计
本系统FPGA程序设计主要实现以下功能:对固体颗粒流速数据采集与计算;完成温度信息的采集;与上位机系统进行数据通信;将系统相关参数存储到EEPROM中。
4.1 FPGA互相关运算程序设计
FPGA互相关运算程序是整个系统的核心,这部分程序的流程图如图5所示。
图5 FPGA互相关运算 程序流程图
A/D采集完后的两路数据,经过解调后送到FIR低通滤波器中进行滤波处理,并抽取到合适的数据速率。然后,两路数据存储到RAM中,等待一个FFT周期(4 096点)数据存储完成后,便进行FFT变换。FFT变换完成后,将其中一路FFT结果取共轭,并与另一路相乘,将相乘后的结果进行IFFT变换,即完成互相关运算。最后通过一一比较的方法求出最大值和最大值点对应的坐标(取最大值点的时间τ0),将该坐标值点送入速度计算程序求出对应的速度。
4.2 FPGA硬件系统与上位机通信程序
上位机软件实现的功能主要是:与硬件系统进行串口通信;给硬件系统发送命令或参数;接收硬件系统发送的测量值,并实时显示测量值波形。上位机程序采用C/C++语言编写,软件界面采用MFC编写。
上位机与硬件系统之间通信步骤如下:
① 上位机直接将通信数据发送给硬件系统。
② 硬件系统收到数据后,进行数据解析。
③ 硬件系统根据解析数据进行相应操作。
④ 硬件系统发送回读数据给上位机以确保通信成功。
硬件系统与上位机通信的程序设计流程如图6所示。上位机在与硬件系统通信时是作为通信的发起者,硬件系统是通信的应答者。硬件系统接收到串行数据帧并根据相应的命令执行对应的操作,当数据接收模块接收到一帧数据时,首先要进行CRC效验,如果CRC效验正确执行下一步操作数据解析,否则把这一帧数据丢弃。进行数据解析时,根据命令判断数据是读数据还是写数据,如果是读数据,则回复相应的数据帧到数据发送模块,否则判断是否是配置数据,如果是配置数据,则进行参数配置,否则丢弃这帧数据。
图6 硬件系统与上位机通信FPGA设计流程图
5 系统测试与结果分析
为了让本系统能够应用于实际工业生成中,本文针对测量数据的准确性和稳定性进行实现测试。如图7所示,首先搭建测试平台,将测试管道、硬件系统板和计算机之间用相应的连接线连接好、上电,让测速系统开始工作。然后持续下料(测试中选取的物料为大米),通过上位机观察测得的速度并进行分析。
图7 相关器与上位机和逻辑器通信FPGA设计流程图
上位机显示界面如图8所示。
图8 相关器上位机软件数据界面
图8中框内显示的是大米实时速度值,可以看出此时大米速度值为3.83 m/s。已知测量管道竖直放置,下料口和传感器之间的距离h为80 cm,而两个传感器之间的距离L为8 mm(相对于h,L数值较小可忽略)。自由落体公式如下:
(4)
(5)
可以计算出理想情况下,此时的流速ν为4m/s,考虑到空气阻力因素,可以判断测速仪测出的结果是正确的。
实验过程中也可以通过上位机软件波形窗口观测速度波形图,如图9所示。上半部分框内显示的波形为大米实时速度值波形。
图9 单通道上位机速度波形界面
可以看出,此时物料的流速稳定在3.60~3.90 m/s。在MATLAB中读取速度数据文档,并对速度数据
Design and Application of Solid Velocity Measurement System Based on FPGA
Long Yongliang,Sun Yang,Yang Na
(Electronic Engineering Institute,Chengdu University of Information Technology,Chengdu 610225,China)
Aiming at the problem of the solid velocity measurement in industrial production process,a new method of measuring system based on FPGA is proposed in the paper.The system takes the related speed algorithm as the theory,it transmits the carrier signal to the test pipeline,and collects the velocity signals of two different locations in the pipeline.The system carries out the cross-correlation operation to the two signals,and then finds the peak.The solid velocity is obtained indirectly in this way.The system includes the hardware system based on FPGA and the software system based on C++.The experiment results show that the system realizes the accurate measurement of the solid flow rate,and the working performance of the system is stable and effective just as expected.
solid flow rate;carrier signal;cross-correlation;FPGA
TH815
A