基于FPGA及RBF神经网络的电磁无损检测技术

2021-08-04 08:36王丽霞杨惠春
计算机测量与控制 2021年7期
关键词:宽度电磁超声波

王丽霞,杨惠春

(北京信息科技大学 自动化学院,北京 100192)

0 引言

无损检测技术是指在不破坏物体表面或者内部的情况下,检测物体的性能、材料组织状态的一种技术,被广泛应用到航天、铁路、机械制造、石油化工等领域。无损检测技术通过不断的发展,也逐渐的出现很多检测技术,比如X射线、磁粉、超声、电磁超声等,其中电磁超声无损检测技术是近年来无损检测技术领域的研究重点,无损检测技术的重点在于对采集数据的处理和分析,得到检测结果。对于电磁超声波信号的处理与分析,本文采用RBF神经网络对电磁超声波信号进行分析,但是需要对其参数进行进一步的优化。

在现有的RBF神经网络参数优化研究中,文献[1]提出一种采用自适应混沌果蝇算法来优化RBF神经网络,首先采用自适应混沌来优化果蝇算法,然后将其用来改善RBF神经网络的结构参数,能够减少较大预测误差出现的概率,但是需要进行迭代运算,计算量较大;文献[2]针对RBF神经网络对DNA序列的分类问题,提出一种改进粒子群算法来优化RBF神经网络参数,虽然也能够提高RBF的收敛速度和泛化能力,但是也需要进行迭代运算。

基于以上内容,本文采用K-means算法对RBF神经网络的参数进行优化,引入KL散度对传统K-means算法进行改进以提高其分类准确度,根据K-means算法的聚类结果,计算RBF神经网络中的径向基函数的中心和宽度两个参数,最后,以发动机涡轮叶片为例来验证算法的可行性。

1 电磁无损检测技术及原理

电磁无损检测技术是利用电磁感应原理产生的超声波对材料内部进行检测的一种技术[3],其主要原理如图1所示。

图1 电磁检测原理

首先在被检测金属零件表面的线圈中通入高频电流,根据电磁感应被检测金属零件的内部会产生一个形同频率的感应电流,感应电流在永磁体的磁场下会产生相同频率的洛伦兹力,此时金属的结晶点阵会受到该洛伦兹力的作用,晶体会产生周期性的振动,进而产生超声波[4]。当被检测零件的材料是铁磁性材料时,该零件内部晶体不仅会受到洛伦兹力的作用,还会受到磁致伸缩力的作用,为了减少该力对检测结果的影响,需要采用电磁超声换能器(EMAT,electromagnetic acoustic transducer),其主要由高频线圈、外界线圈、被测导致三部分组成[5]。在实际的检测过程中,通过设计线圈的结构和改进线圈的摆放位置,或者改变线圈的的物理参数,不仅可以减少磁致收缩力对检测结果的影响,还能改变被检测零件的受力方向,产生不同的超声波用来检测[6]。

电磁无损检测主要应用于金属探伤,高温、高压管道状态下的管道测量、无缝钢管检测等领域[7]。其主要的优势在于可以检测任意的金属材料,并且不需要耦合剂,对金属表面的光洁度和检测环境也没有太高的要求,并且很容易产生水平剪切波和兰姆波。其主要的缺陷是只能检测导电介质,检测时会受到被检测零件的尺寸和外观的影响,并且检测的精度较低[8]。

总之,随着电磁无损检测技术的不断发展,结合人工智能技术,能够在工业生产过程中对产品的质量进行把关,通过检测结果,能够优化生产工艺,提高产品质量和效率,会大幅度提高生产力,节省人力物力和成本[9]。

2 基于FPGA的超声波信号采集与处理

电磁无损检测技术是一个“硬件+软件”结合的综合技术[10]。为了实现多维度电磁超声波的信号采集和快速处理,本文采用大规模可编程逻辑器件(FPGA)来实现对电磁超声波信号进行采集和处理[11],基本架构如图2所示。

图2 超声波信号采集与处理架构

该系统主要分为3个子模块,信息采集模块、信息处理模块模块和电源模块。信号采集模块主要通过信号采集电路实现超声波信号的采集;信号处理模块包括配置、状态与中断模块、信号处理和信号处理打包3个子模块,配置、状态与中断模块与信号采集与ARM处理器相连,对信号采集和ARM的工作状态进行控制;电源模块则负责给整个信号采集和处理的过程进行供电[12]。

但是采集到的超声波的信号较小,需要进行放大达到一定的功率范围后才能被A/D采样器转化[13],因此本研究设计出一个放大电路来实现超声波信号的放大,放大电路如图3所示。

图3 放大电路

在放大电路的输入端接入一个715 Ω的电阻,不仅增加了整个放大电路的阻抗,还提高了电路的耦合性[14]。采用LC回路作为反馈支路,提高了整个放大电路的稳定性[15]。FPGA的软件部分则为超声波信号的处理算法,下文进行详细的描述。

3 参数优化RBF神经网络

3.1 聚类RBF神经网络

本研究采用的信号分析算法为RBF神经网络,RBF神经网络是一种多层前向型神经网络,其建立的基础为函数逼近理论,能够逼近任意的非线性函数,具有快速的收敛能力和泛化能力,已被广泛的应用到故障诊断、时间序列分析、系统建模等领域[16],其结构如图4所示。

图4 RBF神经网络

RBF神经网络由输入层、隐含层、输出层三层的前馈神经网络构成。假设输入层的节点数为n,隐含层的节点数为m,输出层的节点数为p,输入层的向量用x表示,x=(x1,x2,…,xn)T,根据RBF结构和原理,则隐含层的第j个节点的输出为:

(1)

输出层的第k个节点的输出为:

(2)

式(2)中,wki为隐含层中第i个节点到输出层的第k个节点的连接权重;wko为输出层第k个节点的偏差项。

输出层的第k个节点的误差函数为:

(3)

式(3)中,yd,k为节点k的期望输出。

RBF神经网络的总误差函数为:

(4)

在RBF神经网络中,基函数的宽度初始值和隐含层中心节点两个参数对网络的收敛速度具有较大的影响[17],为了提高RBF神经网络的收敛速度,采用聚类算法来确定这两个参数,将聚类算法得到的聚类中心μj(j=1,2,…,m)作为径向基函数的中心μ[18],则径向基宽度的计算公式为:

(5)

式(5)中,dmax为所有中心的最大距离。

本文计算RBF神经网络的权重参数的方法为最小二乘法[19],将式(2)转换成矩阵形式:

Y=Hw

(6)

(7)

w=(w1,w2,…,wm)T

(8)

采用矩阵H的伪逆H’=(HTH)-1HT可以求得:

w=H’Y

(9)

采用聚类算法计算RBF神经网路中的径向基函数的中心和宽度的最大优势在于可以提前求出,不必在RBF训练完成后再进行求解,训练时只需求出隐含层输出矩阵的伪逆φ’,然后根据式(9)计算出输出层和隐含层的权重即可[20]。

本研究采用的聚类算法为K-means算法,由于K-means算法的聚类中心难以确定,导致参数的计算不准确,同时宽度的计算为考虑数据的分布,因此提出基于KL散度的K-means算法来计算径向基函数的中心和宽度[21]。

3.2 基于KL散度的K-means算法

假设数据的真实概率分布为X,理论分布为Y,根据KL散度,则有[22]:

(10)

聚类个数k和初始聚类中心的确定是K-means算法中最核心的部分[23],初始聚类中心的位置会影响到同一支数据点的平均距离d,k与d的关系如图5所示。

图5 k值与d值关系图

从图中可以看出,当k值较小的时候,数据的平局距离d会非常大,而随着k值的不断增大,d值会随之减小,最后趋于平稳。

基于上述描述,对如何利用KL散度来确定聚类个数加以说明,主要步骤为:

1)在无法确定聚类个数k时,可以随机取值1,2,4,5,7,……,然后通过K-means计算每个k值对应的d值。

2)d值的变化趋势计算:

Δm=(dm-1-dm)/2m-1

(11)

3)根据步骤的(2)的结果,可以确定d值变化率变化最快的区间,就可以确定k值的范围[12]:

k∈[2m-2,2m]

(12)

4)根据2分法可以缩小区间,最终可以求得K值[13]。

数据密度分析法是确定初始聚类中心问题上最常用的方法[24],本研究采用KL散度来进行数据密度分析。

当某一数据同时满足数据密度较大、与其他数据较小两个条件,就可以将其作为初始聚类中心。

基于KL散度和数据密度分析的初始聚类中心确定步骤:

1)设x1,x2…xn为对象集合M里的元素,根据式(10)可以得出第i个对象对第j个对象的KL散度:

(13)

式中,dij为差异值矩阵D中的元素。

2)将差异值矩阵D中的元素按从小到大排序,然后分别计算每个行元素到其他行元素之间的平均距离:

(14)

deni=ni/di2

(15)

4)将所有的元素密度值deni进行比较比较,其中最大的为第一个中心点。

5)根据deni的大小将xi按从大到小排序,然后按照排序结果依次处理其他元素,直到选取了k个中心点。

6)如果最后选取的中心点数量过少,是因为密度选取的较大,可以适当的减小密度,重新进行选取,直至选取到合适数量的初始聚类中心。

3.3 RBF径向基函数宽度的计算

径向基函数宽度的选择应该考虑到每个聚类中心的距离以及样本数据的分布密度[25],基于此,引入距离基数概念,距离基数为每个聚类中心与其他聚类中心距离的平均值,用meanD来表示距离基数,则距离基数的计算公式为:

(16)

样本数据的分布密度可以用方差来表示,根据聚类结果,可以计算每个聚类的方差:

(17)

式(17)中,Si为聚类方差;size(Ci)为聚类中心μi的样本数;dist(x,μi)为欧式距离。

根据式(17),可以求得该中心宽度的缩放因子εi:

(18)

可以得到每个中心的宽度:

σi=εi·meanD(μi)

(19)

3.4 参数优化的RBF神经网络算法

基于上述描述,得到的参数优化RBF神经网络算法的步骤为:

1)采用基于KL散度的K-means算法求得RBF神经网络隐含层节点的k个聚类中心。

3)根据式(16)求得每个聚类的距离基数。

4)根据式(17)求得每个聚类的方差。

5)根据式(18)求得该中心宽度的缩放因子。

6)根据式(19)计算该核函数的宽度,进而求得RBF神经网络中对应中心的宽度。

7)根据求得的中心和宽度,采用最小二乘法计算隐含层与输出层之间的连接权重,然后进行模型训练。

4 仿真分析

采用Matlab软件对上述的改进K-means算法和优化后的RBF算法进行仿真以验证其性能,使用的计算系统为Windows10 64位,计算机CPU为Inter Corei7-9700f,硬盘大小为500 G,运行内存为DDR4 3200 MHz 16 G。

4.1 基于KL散度的K-means算法仿真

采用经典K-means算法与基于KL散度的K-means算法(KL-K-means)进行对比试验来验证基于KL散度的K-means算法的性能,用平方误差(E)来评价分类的准确度,平方误差的计算公式为:

(20)

式(20)中,μi为聚类中心;p为进行试验的数据对象。

选取UCI开源的数据集作为试验样本数据,采用上述两种聚类算法分别进行10次聚类,根据式(20)计算两种算法的平方误差,为了直观的表示两种算法的平方误差差距,采用直方图的形式表现,如图6所示。

图6 两种算法的误差对比

根据图6可以看出,经典K-means算法的平方方差的数量级大多为10-13,KL-K-means算法的平方误差的数量级大多为10-12,可以得到KL-K-means算法的聚类误差小于传统的K-means算法,即分类的准确率高于传统的K-means算法。

4.2 参数优化的RBF算法仿真

选取发动机涡轮叶片作为电磁无损检测技术的检测对象,将FPGA中信号采集到的模拟信号转化成数字信号,采用传统的RBF算法和参数优化后的RBF算法进行对比试验来验证参数优化后的RBF算法的性能,依旧在上述计算机中进行仿真。

选取两个性能不同的发动机涡轮叶片作为检测对象,它们的性能数据如表1所示。

表1 3种涡轮叶片的性能数据

采用上述两种算法对表1中的3种涡轮叶片的缺陷长度进行预测,记录预测的数据,可以得到表2的预测对比数据。

表2 两种算法的缺陷预测对比

从表2中可以看出,参数优化后的RBF算法的预测结果更接近真实值,但是由于试验的样本数据较少,说服力不足,采用上述两种算法对涡轮叶片1进行100次预测,记录数据,可以得到图7的预测结果变化图。

图7 两种算法的100次缺陷预测值

从图中可以看出,虽然两者的预测结果都会有起伏,但是与缺陷真实值相比,参数优化后的RBF算法的预测结果相比传统的RBF算法差距更小,即更接近真实值,说明预测的结果更准确。

5 结束语

本文针对电磁超声波的处理分析问题,提出了一种参数优化的RBF神经网络,并在FPGA上通过编程实现,并得出以下结论:

(1)FPGA是一种用途广泛的大规模可编程器件,能够实现电磁超声波的采集、放大与分析。

(2)径向基函数的中心和宽度两个参数对RBF神经网络的影响较大,采用聚类算法来计算这两个参数的效果较好。

(3)K-means算法的聚类中心难以确定,引入KL散度,采用数据密度分析法能够解决问题。

通过试验和仿真验证了上述算法的可行性,在电磁无损检测领域具有一定的应用前景,但是由于试验的不足,在后续的研究中需要进一步的改进和完善。

猜你喜欢
宽度电磁超声波
呼吸机用电磁比例阀工作特性仿真研究
异步电机电磁振动研究综述
超声波诊断甲状腺结节的临床应用观察
蝙蝠的超声波
蝙蝠的超声波
孩子成长中,对宽度的追求更重要
你有“马屁股的宽度”吗?
刷牙不用牙膏