项目背景
1.项目名称:基于FPGA的超声波瓶体厚度检测及其材料分类的研究
2. 项目开发的意义:
目前采用的非接触液体检测设备,经常出现虚警的情况,极易引起乘客与安检人员的争执,影响机场及公共场所的安全秩序。特别是漏报概率不可忽视,造成很大的安全隐患。因此现在液体非接触安检设备难以满足实用化的要求。
造成液体非接触安检设备无法实用化的原因是多样的。这其中装有液体的容器(多为瓶状容器)对于液体非接触检测的影响是巨大的,不容忽视的。实验表明,一个瓶体的材质与厚度对于液体非接触检测的虚警概率与漏报概率存在较大影响。因此如何精确对瓶体的材质进行分类与测厚成为了目前较为关注的焦点问题。
超声波是频率在20KHz以上的声波,超声波的波长比一般声波短,具有较好的方向性,且能穿透透明和不透明的物质,被广泛用于金属探伤、距离测量、厚度测量,并在海洋探查与开发、无损检测与评价、医学诊断等领域发挥着不可取代的作用。超声检测技术(UT)是五大常规检测技术中使用最多的一种。超声波瓶体材质分类与测厚是超声检测的一种。它有成本低、使用方便、速度快、对人体无害以及便于现场使用等特点。也因此它是一种发展较快的一种无损测厚技术。超声波瓶体材质分类与测厚是一种非接触检测技术,不受光线、被测对象颜色等的影响,较其它仪器更卫生,更耐潮湿、粉尘、高温、腐蚀气体等恶劣环境,具有少维护、不污染、高可靠、长寿命等特点。
除此之外,超声波对瓶体的相关检测,还广泛应用于环境监测和食品安全等多个领域当中。
3.发展综述:
目前,国内超声波测厚技术发展的比较快,20世纪60年代末期,已有国产的电子管式涡流测厚仪应市。随着新型工业材料的开发,微电子技术应用和标准化事业进程,尤以近十年来,测厚技术得到迅猛发展,测厚仪在电路设计,新型传感器应用,测头的多制式与通用性,量值显示与数据打印,测控功能扩展及智能化诸方面,都不断取得突破与创新。这些技术的发展促使着超声波测厚仪器的不断成熟,它凭借其小型轻便、操作简单、对被测物表面光洁度要求不高、测量范围大等特点用于航海、航天、汽车制造等行业,带来了巨大的经济效益和社会效益,已在世界各主要工业国家得到重视和应用。
但是,最新的API.5C标准要求对壁厚进行快速,连续测量,很久以来,众多国内外研究机构和企业有关人员一直致力于此研究,但结果并不理想,同时超声波对于材质的分类技术仍然处于研究阶段,其具体实际应用还未见报道。
4.项目开发内容:
课题项目主要围绕如何对瓶体材料进行分类和以及如何测量瓶体厚度开展研究工作。超声波发射探头和超声波接收探头是该项目的主要传感器,完成对超声波的发送以及对回波的检测工作;之后对相关信号进行A/D转换,低通去噪处理;将经过去噪后的信号首先应用信号的自相关理论,从而精确提取出收发信号的延时情况;与此同时,我们还要通过FFT得到回波信号的频谱情况以及通过幅度提取模块获得收发信号的衰减信息;我们对得到回波频谱信息,收发信号延时情况,收发信号衰减情况进行统一的逻辑综合分析,得出人工神经网络的四点输入信息;利用得到的四点输入信息,我们采用人工神经网络算法,并通过离线学习构建出一个能够对瓶体材料进行分类的方法;最后我们可以完成一种可自动识别瓶体材质的瓶体测厚功能。
5.项目创新点:采用大量高效算法,设计了一种精度高,速度快的测厚系统,同时利用人工神经网络,训练出一种可以自动识别瓶体材质(塑料,玻璃,陶瓷)的系统。
6.项目基本要求:
二.项目拟定初步方案介绍
1.项目开发整体方案框图介绍
图1 超声波发射与接收电路
图2 瓶体材质分类与瓶厚检测部分
1.1 超声波发射与接收电路,如图1所示:
发射电路
发射电路产生能激发超声波超声波传感器的高压(300伏以上)尖峰脉冲信号。脉冲发生器的输入信号由FPGA产生。本方案采用的是非谐振式发射电路,如图3所示:
> 图3 发射电路
非谐振式发射电路的工作原理是:当闸流管(或可控硅)导通时,电容C放电,产生一短脉冲,激励探头中的压电陶瓷镜片使其发射超声脉冲。在设计中,需要考虑脉冲信号的厚度,即一次连续发射脉冲的数量,对测量仪的精度有着重要影响。厚度越大,发射功率越大,发射波的拖尾信号越大,相应的测量盲区越大。反之测量盲区越小。但是发射功率小时,回波信号不明显,同样影响检测结果。
接收电路
超声波探头接收到的回波信号幅值非常小,背景噪声较为严重时,可能出现号的幅度几乎与噪声的幅度相当,甚至淹没在噪声中的情形。如果不采取有效的信号提取技术去抑制干扰的影响,测量就无法进行。要保证测量的成功,就必须合适的手段来增强信号和消除噪声的影响。该接收电路由放大电路(三级),检波电路,比较电路等组成,如图4所示:
图4 接收放大电路
在单探头测后时,发射接收探头集成在一起,很高的发射电压直接加到接收电路的输入端,为了保证运放的正常工作,并且,较高电压使镜片产生穿透力更强的超声信号。在运放前端加两个二极管D1,D2组成钳位电路,使传感器激发时的瞬变信号经过D1,D2的组成的钳位电路被限制在±0.7V,是输入到预案算放大器的高压信号得到钳位,对于微小信号,因为a点电位与b点电位间差值很小,开关二极管被截止微信号直接输入到运算放大器中,使运算放大器的输入被限幅,起到保护运放的作用。
1.2 瓶体材质分类与瓶厚检测部分,如图2所示:
信号去噪功能块,它主要用于收发信号的去噪处理。主要包括两个64阶低通滤波器模块,其实现我们采用改进的DA算法。
谱分析功能块,它主要用于完成对于接收探头信号的傅里叶谱分析。主要包括FFT模块,其实现方式我们调用FFT IP Core。
延时测定功能块,它主要利用信号的自相关去测定收发信号的延时情况。引用自相关算法较利用MCU提取延时信息相比,具有提取延时准确的特点。主要包括卷积模块,门限比较模块。
衰减测定功能块,它主要测定了收发信号的幅度衰减状况。主要包括幅度提取模块,定时信息控制模块,除法器模块。
瓶体分类功能块,它的应用目的是通过离线式学习,建立一种可以分辨三种瓶体材质(陶瓷,玻璃,塑料)的分类系统。主要包括人工神经网络模块,判决电路模块。
瓶体厚度计算功能块,它需要红外温度传感器的温度值和瓶体材质分类的结果作为先验条件,然后利用厚度计算的相关公式计算出瓶体的厚度。主要包括厚度计算模块。
系统主控功能块,它完成整个系统对于外设的时序控制工作。主要包括2个A/D控制,红外温度传感器控制,LCD控制,超声波主控逻辑控制。
2.重点模块实现算法介绍
2.1 位串分布处理算法(DA算法)简介
DA算法是distributed arithmetic算法的简称。中文译为分布式算法。小波滤波器的实现采用分布式算法实现。分布式算法作为一项数字信号处理算法,广泛应用于计算乘积和运算,与传统的乘积和结构相比,DA算法具有并行处理的高效性特点。若采用分布式算法实现小波滤波器,则它在FPGA中的工作速度只与输入数据的宽度B有关,与滤波器的阶数N无关,阶数只影响FPGA资源的使用量。
位串分布的分布式算法是先从最低位开始的,将所有输入数据的最低位组合在一起当作查表的地址,对查找表进行寻址,得到了一个查表后的结果,然后将查表结果与右移一位的寄存器值进行相加或相减运算,将运算的结果放到寄存器当中,然后输入数据的所有次低位开始对查找表寻址得到另一个查表后的结果,所得到的结果与右移一位的寄存器的结果即上一个存储在寄存器的结果相加,如此重复进行下去,直到将所有的位数都进行完运算。特别注意,对于有符号数,在最高位进行查表运算后得到的值应该与右移一位的寄存器的结果相减,并且负数是用补码的形式表达的。
位串分布乘法器的基本结构,如图5所示::
图5 串分布的滤波器结构
本项目中DA算法主要应用于:人工神经网络和FRI数字滤波器的乘法器设计。
(1)改进后的分布式处理算法实现FIR数字滤波器的简介
首先,我们研究一下串行分布式算法的可行性,要实现一个18位的64阶的FIR高阶分布式滤波器,占用资源的大小与数字滤波器的阶数K有关。当K=64时,FIR数字滤波器至少需要用264个单元来储存数值,并且在建立查找表时,需要建立264个数供查找时使用。这些数的规模是相当大的,若直接在FPGA芯片上实现一方面FPGA的存储器资源无法满足,另一方面要建立264个数的查找表,工作量是很大的。当位宽为18时,全串行分布式算法的FIR滤波器计算一个滤波结果时需要进行18次得移位相加,这样运算速度会较慢,无法满足实时性的要求。即使引入流水线技术,全串行分布式算法的FIR数字滤波器的运算速度也不是很高,查找表的资源占用量依然巨大。虽然现在FPGA的性能都已经大幅提高,但是采用全串行的分布式算法实现的18位64阶FIR数字滤波器依然无法满足资源和运算速度的要求。
在这种情况下,我们对分布式处理算法的两个方面进行了改进:
将整个FIR数字滤波器分成几个FIR子滤波器的级联的形式,这样每一个子滤波器的查找表的资源占用量会减少,同时建立查找表所需要的工作量也会减少很多。其结构如图6所示:
图6 高阶滤波器分解为低阶滤波器的示意图
FIR数字滤波器的输入数据位宽决定了移位相加运算的次数,为了提高FIR数字滤波器的运算速度,可以将输入数据的位宽分成m段的L比特的位宽,将这m段分解后的数同时进行查表运算,这样可以提高数据的运算速度。其结构如图7所示:
图7 数据位分段FIR滤波器的示意图
若同时对DA算法的这两个方面进行改进,我们就提出了改进的DA算法,与此同时,我们提出了一种基于改进DA算法的64阶低通滤波器的实现方案。
本项目中改进的DA算法主要应用于:64阶低通滤波器的设计,其结构如图8所示:
图8 基于改进DA算法的128阶低通滤波器的实现
(2)人工神经网络算法简介
人工神经网络(Artificial Neural Networks,ANN)是在现代神经生物学研究基础上提出的模拟生物过程以反映人脑某些特性的计算结构。它不是人脑神经系统的真实描写,而只是它的某种抽象、简化和模拟。神经元及其突触是神经网络的基本器件。因此,模拟生物神经网络应首先模拟生物神经元。在人工神经网络中,神经元常被称为“处理单元”。有时从网络的观点出发常把它称为“节点”。人工神经元是对生物神经元的一种形式化描述,它对生物神经元的信息处理过程进行抽象,并用数学语言予以描述;对生物神经元的结构和功能进行模拟,并用模型予以表达。
为了模拟生物神经元,一个简化的人工神经元,如图9所示。该神经元是一个多输入单输出的非线性元件。
图9 简化的神经元模型
人工神经元模型可以看成是由三个基本要素组成:
一组连接权(对应于生物神经元的突触),连接强度由各连接上的权值表示,权值为正表示激励,为负值表示抑制。
一个求和单元,用于求取各输入信息的加权和(线性组合)。
一个非线性激活函数,起非线性映射作用并限制神经元输出幅度在一定的范围之内。此外还有一个阈值。阈值也被看作是一个输入分量,也就是阈值也是一个权值。在网络的设计中,偏差起着重要的作用,它使得激活函数的图形可以左右移动而增加了解决问题的可能性。
通常所说的人工神经网络结构,主要指它的连接方式。从拓扑结构上考虑,神经网络属于以神经元为节点,以节点间的连接为边的一种图。从连接方式来看,主要有两种,即前馈型神经网络和反馈型网络。一个神经网络的拓扑结构确定后,为了使它具有某种智能特性,必须有相应的学习方法与之配合。权值如何设置是区分不同人工神经网络学习算法的重要特征。一般可以把人工神经网络的学习分为两种类型,即监督学习(有教师学习)和无监督学习(无教师学习)。
本次项目的人工神经网络,设计为两级人工神经网络,其中一级内部神经网络的结构,如图10所示;二级人工神经网络的结构框图,如图11所示:
图10 神经网络内部示意图
图11 二级人工神经网络的结构框图
我们依据人工神经网络的基本特点,采用乘法器封装的形式进行基本实现,其实现方法,如图12所示:
图12 乘法器的封装
那么一级神经网络的FPGA实现,如图13所示:
图13 一级人工神经网络的FPGA实现
CORDIC计算特殊函数算法简介
如果利用FPGA实现某种数字信号处理算法,并且算法使用了一个非普通的(超越)代数函数,我们可以利用泰勒级数来近似这个函数。
这样问题就简化成一系列的乘法和加法运算了。一种可供考虑的更为有效的方法就是基于坐标旋转数字式计算机(Coordinate Rotation Digital Computer,CORDIC)的算法。CORDIC算法是建立在众多应用基础之上的,如适应性滤波器,FFT,DCT,神经网络。
正式定义的CORDIC算法,如下式所示:
实现CORDIC结构可采用两种基本结构:较为简洁的状态机和高速全流水处理器。
2.3 Restoring(还原)算法简介
Restoring算法是一种线性收敛的除法算法。它的主要思想是首先调整分母并加载分子到余数寄存器中,然后从余数中减去调整的分母并将结果存在余数寄存器中,如果新的余数为正,我们就将商加1,否则商不变并且还需要通过加上分母来还原从前的余数值。我们可以采用状态机的设计结构来实现该种除法算法思想。
本项目中Restoring算法主要应用于:幅度衰减模块中除法器的设计。
2.4 分段函数算法简介
分段函数是对于自变量不同的取值范围,有着不同的对应法则的函数。对于分段函数的实现具有资源消耗少,处理速度快的特点。例如,一种包含二阶非线性函数的分段函数,如下式所示:
对于二阶非线性函数的实现,如图15 所示:
图15 二阶非线性函数的实现
本项目中分段函数主要应用于:人工神经网络中的激活函数的
f(n)的设计。
3. 项目设计细化模块方案
项目设计细化模块的框图,如图16所示:
本次项目的设计难点:
(1)准确测定延时信息的自相关模块的设计,因为自相关信息会对收发信号的幅度提取有着很大的影响。
(2)高效的64阶滤波器的设计,旨在设计一种既节省硬件资源又能高效实时输出的一种低通滤波器。
(3)可准确分类的人工神经网络的设计,需要大量的离散学习和确定一种准确的拓扑结构。
图16 项目设计细化模块框图