张海峰,申 泽,刘建勇,王佳行,刘东辉
(1.北方工业大学电气与控制工程学院,北京100043;2.北京石油化工学院,北京102600)
航空制造业的发展对发动机叶片的性能提出了更高的要求。叶片表面冷却技术对于提升叶片性能而言尤为关键,通常采用在叶片表面开小孔以实现叶片的冷却[1]。由于小孔的尺寸一般在毫米级,传统加工方法很难满足其高精度的要求。电火花小孔加工是特种加工领域应用极为广泛的加工方式。加工时,电极和工件浸入加工液并留有数微米的间隙,通过脉冲电源的间断放电使电极和工件之间产生瞬时的高温、高压放电通道,而放电通道的存在时间可根据放电时间改变,通常在数微秒到1毫秒之间,此时加工工件会被侵蚀、熔化甚至直接气化;接着停止放电一段时间,使加工间隙排屑,恢复绝缘,通常这段时间是放电时间的2倍,完成一次放电加工后等待极间绝缘恢复,再准备进行下一次放电,因此可采用电火花加工方法进行打孔[2-4]。
在航空发动机叶片小孔加工过程中,若不能精确控制加工电极的长度,极易损坏另一侧的气膜壁(图1),导致整个叶片无法使用,因此需对电极是否穿透进行准确的检测。现有的电火花小孔加工通常采用设定电极固定进给深度的方法,以避免电极伸出过长而造成误加工。然而,由于电火花加工过程中不仅工件会被电蚀去除,加工电极也会有一定程度损耗,很难保证加工结果精准,极易造成电极穿透过长、加工过短的错误加工和二次加工,影响加工精度和加工效率[5]。
电火花小孔加工过程中的电流、电压、频率、冲水流量、压力等特征量会随时变化,对此已有许多学者提出了相应的穿透检测方法。时东波等[6]通过采用平均电压检测法测试了500个电压的平均电压值,并将其与设定的阈值电压进行比较,若低于阈值电压则判断为穿透。朱允斌等[7]通过击穿电压阈值的抖动次数与设定抖动次数阈值进行比较来判断是否穿透。Lee等[8]通过电极磨损模型方程与实验得到电极磨损率与加工时间的参考曲线,进而利用参考曲线和前n个电极损耗率补偿预测第n+1次的电极损耗率,利用预测的电极损耗来判断电极位置是否穿透。
由于实际电火花加工环境较复杂,加工影响因素较多,且每一时刻的加工状态变化较大,采用传统识别方法想要得到一个准确的穿透检测模型较为困难[9]。随着科技不断发展,人工智能成为热点,机器学习是其中的一大分支。机器学习算法是一种根据所给数据自行分析得到规律或模型并利用已知数据来预测未知数据的算法。机器学习对提高模型准确性具有显著作用。本文涉及的穿透问题,需机器预测穿透与未穿透两种结果,可将其看作二分类问题。基于此,本文利用机器学习中的支持向量机分类算法对电火花小孔加工进行了仿真研究。
支持向量机算法是统计学家Vapnik基于统计学习理论提出的一种新学习方法,其主要特点是依据结构风险最小化原则,以最大化分类间隔求出最优分类超平面,这也是支持向量机与感知机之间的最大区别。该算法能较好地解决非线性、高维数、局部极小点等问题[10]。目前,支持向量机(support vector machine,SVM)具有回归和分类两种功能,其中回归问题是使超平面与最远样本点的距离最小,分类问题是使超平面与最近样本点的距离最大。本文主要利用支持向量机的分类功能。
SVM常用作两个或两个以上类别的分类任务的监督学习模型,相关数据点被视为n维向量,其基本思想是找到可分离两组输入的n维超平面数据点,这些数据点也要映射到与超平面相同的高维空间[11]。SVM的基本模型定义为特征空间上的间隔最大的线性分类器,通过求取间隔最大化,使其可转化为求解凸二次规划问题,当进行多于两类的分类时,往往将K类问题转换为K个两类问题分别判断,直到逐渐完成分类。
图1是典型二维平面下两类数据的分类问题。在该二维平面上有两种不同数据,分别用圆圈和三角来表示。可见,这些数据线性可分,只需用一条直线就能将两类数据完全分开,而若是在高维空间中对数据进行分类,则图中直线会变成一个超平面[12]。实际上,能将两类数据完全分开的直线不止一条,虽然看起来不同直线的分类结果都一样,但考虑到潜在的其他数据,不同直线的分类性能有所差别。支持向量机分类算法的最终目的就是找到一个能将两类样本间隔最大化的超平面。
在二维空间里,一条直线可表示为:
x和y分别用x1和x2表示,再将式(1)移项,可得到:
将式(2)向量化可得到:
将式(3)进一步向量化,用列向量ω、列向量x表示,可得到:
将二维方程推广到n维空间,得到的超平面方程形式与式(4)相同,不同的是此时ω=[ω1,ω2,…,
超平面也叫做决策面。图1所示二维平面的超平面用数学语言可描述为线性判断函数,即:
其中,x为待判断的数据。当x刚好位于分类超平面上时,函数f(x)等于0,对应于y=0,而f(x)大于0的点对应于y=1的数据点;函数f(x)小于0,对应于y=-1的数据点。这样y=1和y=-1可分别代表两类不同的数据。这两类样本中,离分类面最近且平行于最优分类面的超平面的点(图1所示虚线上的点)被称为支持向量,该虚线被称为边界,两条虚线间的距离即为间隔2d。
该点到直线的距离公式为:
式中:Ax0+By0+C=0,为直线方程;(x0,y0)为点坐标。
由此推广到多维空间,目标函数即支持向量对应到决策面的距离d可表示为:
评定支持向量机分类好坏的依据是分类间隔ω=2d的大小,即分类间隔ω越大,则该超平面的分类效果越好。由此,求解超平面就转化为让分类间隔ω最大化,而ω最大化也就是d最大化。
而在寻求ω最大值时,存在判断超平面是否将样本点正确分类、如何在样本点中选出支持向量上的点的问题,这些正是本文考虑的约束条件。
根据式(5),如果超平面方程能完全正确地对图1所示全部样本点进行分类,则满足:
假设决策面正好处于间隔区域的中轴实线上,且支持向量对应样本点到决策面的距离为d,则可进一步表达为:
式(9)表明所有分类在标签1的样本点到中轴实线的距离都大于等于d,所有分类在标签-1的样本点到中轴实线的距离也都大于等于d,两类样本分别位于中轴实线两侧。
式(7)中,距离d的取值范围受约束,即求距离d最大值的问题是一个优化问题,而优化目标是距离d的最大值。
为求得优化问题中的约束条件,将式(9)化简,可得约束条件为:
式(11)表明,将寻找距离d的最大值转化为寻找最小值,并且为简化寻优过程,将以上问题转化为一个附加约束条件的二次凸函数优化问题,即:
对于式(12)含有不等式的优化问题,通常采用求解方法将所有等式、不等式约束与f(x)写为一个式子,这也称作拉格朗日函数,系数是拉格朗日乘子;通过一些条件可求出最优值的必要条件,该条件称作KKT条件(非线性规划最佳解的必要条件)。
由于实际应用中的多数情况是线性不可分的,需将训练样本从原始低维空间映射到一个更高维的空间,使原本线性不可分的数据在高维空间下线性可分。也就是说,如果训练样本在原始空间中有限,则必定存在一个高维空间使样本可分。在从低维空间向高维空间转换时引入核函数,以保证低维向高维转换且使计算保持在低维空间,从而减少在高维度的复杂计算。常用的核函数见表1。
表1 几种常用核函数名称和表达式
在一些实际情况下,通过核函数映射的方法有时不能做到完美分类,可能在庞杂数据中存在异常数据,而在后续训练过程中引入松弛变量ξ,使分类函数在最大间隔加上松弛变量ξ时大于等于1,即样本到超平面函数的距离不再是1而是1-ξ。在引入松弛变量ξ的同时,也需引入惩罚系数C来对误分类的代价进行惩罚评估,C越大则误分类的惩罚越大。最终得到分类超平面与线性不可分问题的分类决策函数D(X)为:
式中:l为支持向量分类机的支持向量个数;ai为拉格朗日乘子;K(Xi,X)为待测数据与第i个支持向量点的核函数值;b为支持向量分类机的偏移量。
通过支持向量机分类算法进行穿透检测、判断关键环节,就是找到恰当的支持向量机分类模型和准确的支持向量。而穿透检测的关键是要找到穿透前后发生变化的物理量。本文利用录波仪采集不同加工条件下的电压、电流波形。如图2所示,CH1通道是加工工件和工具电极之间的加工电压随着时间变化的波形,CH2通道是加工电流随着时间变化的波形;如图2a所示,连续加工数个小孔,每一个电压电流变化的阶段为一个小孔开始加工到穿透的过程,图2b是其中一个小孔加工穿透过程的放大图,可见加工前小孔未发生穿透时的电压电流变化较快,加工状态在短路与开路之间频繁切换,而在穿透发生前后的电压变化有明显不同,存在一段时间的低电压。
图2 二分类最优平面图
为便于进一步分析,将图2b所示一次小孔加工波形图导入MATLAB仿真软件,得到穿透过程中电压、电流随着时间变化的波形,见图3和图4,可以推断:
图3 加工过程中的电压及电流波形图
图4 穿透过程中电流随时间变化波形
(1)加工穿透过程中会出现较长时间的短路和开路状态,极间电压会在一段时间内维持低电压放电状态。这是因为,此时电极正在穿透工件,出现较大的加工碎屑或排屑困难情况,使电极伺服动作产生较大波动,进而出现明显的电极往复动作,导致电极与工件之间的加工状态不能快速进行切换,降低有效放电频率。
(2)放电加工时,电极与工件之间的最高电压在140~160 V范围内波动,低加工电压约为20 V且在穿透发生时的低加工电压会间断性地持续一段时间。这是因为,机床的控制器对极间放电状态改变的反应滞后,无法配合加工状态动态地自主调整伺服速度。因此,可通过测量加工电压低于25 V时的持续时长来判断穿透状态的发生情况。同时,本文发现低电压放电的持续时间会随着放电参数的调整及加工环境的改变而变化。
(3)通过对不同加工条件下的波形分析发现,设定不同的电压、电流和脉冲间隔值会影响穿透过程中的低电压持续时长,因此本文决定采用电压、电流、脉冲间隔设定值和低电压持续时长作为电火花小孔加工机床穿透检测支持向量机算法的特征向量,从而涵盖所有影响穿透检测判断的加工条件,以此保证穿透检测的准确性。
支持向量机模型训练流程见图5,首先从待处理的数据中提取一定数量的、具有特征性的数据作为训练样本,将另外具有特征性的样本作为测试样本,来验证模型准确性。
图5 支持向量机算法流程图
通常在支持向量机模型训练过程中改变核函数和相关参数仍不能提高模型准确率时,可通过调整训练集来提高模型的分类效果。在选定训练样本集后,本文考虑以下三个条件:①选定的训练样本要能代表这类数据;②训练集尽量无错误样本,不会污染数据;③训练样本尽可能完整,需考虑全部特征。
提取训练样本和测试样本数据后,进行了数据归一化处理,对数据进行缩放操作,将数据调整成软件所需格式;同时,通过尝试看不同核函数是否满足性能测试要求,最终确定最优核函数并进行模型训练,还联合使用交差验证和网格法来求取最佳参数;在获得最佳参数和数学模型后,对样本数据和测试数据进行穿透检测判断仿真,求出实际所需的支持向量,在完成训练后得到的决策函数即为分类器,以此进行分类辨别。
由于本文使用录波仪和示波器截取了大量电火花小孔加工过程中的电压、电流波形,收录的波形数据庞杂,存在许多干扰数据和无用数据,需提取其中具有标志性的数据来进行支持向量机模型训练。
由于实验所用四种特征量的单位不同、类型不同、数值大小差距过大,若不作归一化处理,会在训练过程中使数值大的数据占据更高的权重,影响建模准确性。本文在建立和训练支持向量机模型之前,对电极与工件之间的电压值、电流值、放电脉冲间隔设定值及放电过程中的低放电电压持续时间进行归一化处理,以尽量减少数据本身对实验结果带来的干扰。处理时,本文采用Min-Max标准化方法(也叫离差标准化),对原始数据实施线性转换,将归一化后的值限制在[0,1]之间,转换函数为:
式中:max为样本数据的最大值;min为样本数据的最小值。
完成原始数据的归一化之后,设定一个约束条件为:穿透检测时,采集到的数据不会大于样本数据的最大值,不会小于样本数据的最小值。因此,SVM训练所用的样本数据需包含穿透检测数据的极端情况,否则会影响穿透判断的准确率。
归一化完成后,要选择合适的核函数进行模型训练。针对加工数据特点,本文选择高斯核函数(径向基RBF核函数)作为样本训练核函数,只需寻找一个最优参数g即1/(2σ2)和惩罚系数C,其表达式为:
式中:σ为带宽,控制径向作用范围,即由σ控制高斯核函数的局部作用范围;当xi与xj的欧氏距离处于其局部作用范围内时,高斯核函数值的变化会显著,因此要通过模型训练找到最优参数g的值。
图6是针对本文所述四维特征支持向量而采用高斯核函数的决策函数D(X)计算的示意图,最终输出的结果为1或0代表着穿透与未穿透。
图6 高斯核函数计算示意图
为提高训练模型的准确率、减少过拟合的可能性,本文采用交叉验证法结合网格搜索法寻找惩罚系数C和最优参数g,以得到分类精确度高、误分率低的参数。网格搜索法是在一个取值范围内按步进取值参数,选取最终分类准确率最高的参数,交叉验证方法与之配合可减少实验结果的偶然性。本文将数据平均分为10份,将整个训练集的每一部分均作为测试集,分别被预测一次,则交叉验证的准确率即为整个分类准确率的平均值,因此可防止过拟合问题。
为更加清晰直观地找到最佳参数C和g,根据参数寻优过程生成了等高线图和3D视图,见图7和图8。如图7所示,X轴和Y轴的线上对应数字为交叉验证的精度,即参数g、C的值在设定取值范围内变化时对应的分类准确率,同时在保证最高准确率的条件下寻找参数C的最小值。
图7 SVC参数寻优的分类准确率等高线图
图8更加直观地显示了C、g和准确率之间的关系。最终,本文确定的最优参数C=0.013602、g=3.4822,此时穿透检测辨识准确度可达95.3333%。
图8 SVC参数寻优的分类准确率3D视图
应用训练得到的支持向量机模型对200个测试样本进行穿透检测判断,由图9所示仿真结果与实际穿透情况的对比可看出,该支持向量机模型预测正确的数据量为190个,预测准确率达95%,能满足基本加工要求。
图9 仿真结果与实际情况对比图
依据上述过程训练完成了支持向量机分类模型,该模型在MATLAB软件中的结构体Model参数值见表2,所示数据与最后训练完成的分类决策函数D(X)的各参数值一一对应。
表2 支持向量机模型部分参数结构体表
根据式(13),支持向量分类机的偏移量b对应结构体Model中的Rho值:0.1662;支持向量分类机的支持向量个数l对应结构体中totalSV的值:257;拉格朗日乘子ai的值与结构体中的sv_coef(i)矩阵相对应;支持向量xi的值与结构体中的SVs(i,:)矩阵相对应;高斯核函数参数g=1/(2σ2)的值与结构体中gamma的值相对应。综合上述参数,本文得到了决策函数D(X),完成了支持向量机的训练,并在最后将训练好的决策函数写入FPGA并以ROM形式存储,同时通过采样电路采集电压电流信号,并通过所得决策函数进行判断,发出穿透信号。
本文研究了电火花小孔加工过程中电极与工件之间的电压和电流,分析了穿透发生前后电压和电流的变化规律,提出了一种基于支持向量机分类算法的穿透检测方法,并给出了具体的仿真模型分析过程。该方法可准确、迅速地判断穿透状态的发生,适用于不同的加工状态,无需频繁改变低电压阈值的设定和低电压持续时长阈值的设定,极大地提高了电火花小孔加工的效率和加工结果精确度。