林志熙
(福建工程学院 机械与汽车工程学院,福建 福州 350118)
无基准线轮廓度误差的评定,是零件形状公差里最难以测量和评定的项目。随着工业的快速发展,为了满足各种性能要求,椭圆、抛物线、双曲线等平面二次曲线在工程中被广泛应用,这就使得曲线轮廓度的评定方法研究有着重要意义。陆辛成等[1]提出一种模拟实际量具测量过程的方法来评定线轮廓度误差。易建[2]利用差分进化算法(DE)评定椭圆轮廓度误差,概念简单和收敛速度较快。路坦等[3]应用最小二乘法和条件约束优化方法计算和评定线轮廓度误差,分离和消除了被测轮廓与理论轮廓间的位置误差对轮廓度误差评定结果的影响。王海洋等[4]人发展了原理基于最小条件法的几何遍历法,当其搜索区域足够广、足够密集时,在理论上可以对理论拟合曲线进行无限的逼近,是一种具有较高实际利用价值和研究价值的方法。该方法微调最小二乘法确定的拟合曲线,让其作为母拟合曲线,从而在其附近衍生出大量的子拟合曲线,并通过计算搜索出最理想的曲线作为最小区域法的拟合曲线。衍生出的拟合曲线数量越多,找到全局最优解的机会越大,计算时间也会正比例上升。
本研究提出了一种改进的二次曲线轮廓度误差的评定方法,在几何遍历的基础上,探索出由大量衍生曲线中快速搜索出最理想曲线,即找到全局最优解的方法,实验证明,该算法简单可靠。
按照国家标准GB/T 1958—2004规定,最小区域法评定形状误差,即被测提取要素对其拟合要素的最大变动量为最小[5]。评定曲线轮廓度误差,即是指包容被测轮廓的拟合曲线等距线最小距离[6]。因此,计算轮廓度误差的主要任务就是找出最佳拟合曲线,然后求出各测点到该拟合曲线的法向距离,距离极差就是该曲线的轮廓度误差值。
已知二次曲线的一般方程为:
F(x,y)=Ax2+Bxy+Cy2+Dx+Ey+1
(1)
如图1所示,设P(xi,yi)(i=1,2,3,…,n)为曲线轮廓的测点。过测点P(xi,yi)的拟合曲线法线与拟合曲线有交点M(Xi,Yi),则M点既在法线上,又在拟合曲线上[7],可联立二元二次方程组:
图1 法向距离示意图
求出M(Xi,Yi),然后通过两点间距离方程:
(3)
求得测点到拟合曲线上的法向距离,并令外侧测点的法向距离为正,内侧测点的法向距离为负。
根据几何遍历法的思路,最佳拟合曲线的寻找,是通过一条初始曲线作为拟合的起点,改变其位置和大小进行遍历搜索,当搜索范围足够小,计算精度就足够高。评定原理如图2所示。以椭圆为例,将最小二乘法所拟合的曲线作为初始椭圆。其余衍生椭圆位置及大小是通过微调两椭圆焦点位置实现的(若评定抛物线轮廓度误差, 则是通过微调抛物线的焦点和抛物线对称轴与准线的交点实现的)。
1-焦点Q1(x1,y1);2-衍生焦点(xw1 (i,j),yw1 (i,j));3-衍生焦点的拟合椭圆;4-实际被测椭圆;5-衍生焦点(xw2 (i,j),yw2 (i,j));6-焦点Q2(x2,y2);7-最小二乘椭圆(初始椭圆);8-最小二乘椭圆圆心(x0,y0);f-最小二乘法轮廓度误差图2 评定原理图
由初始椭圆的5个系数计算该椭圆长半轴a、短半轴b、圆心坐标(x0,y0)、长半轴与x轴夹角θ:
(4)
(5)
然后由焦点Q1、Q2可计算出一系列衍生焦点,衍生的方式是以起始焦点为中心,以最小二乘法所算得的误差f为边长,将边长N等分,划分两个(N+1)×(N+1)的正方形网格点,各网格点坐标:
(i,j=1,2,…,N+1)
(6)
这样每个网格就有(N+1)2个网格点,几何遍历法直接将两个网格上的点进行两两配对,每一次配对产生一对衍生焦点,共可产生(N+1)4对衍生焦点。若干对焦点后续就需完成若干对拟合曲线的计算,工作量很大,运算速度慢。而在按顺序进行焦点配对时,发现所配对焦点对应的线轮廓误差值是在连续逐渐变化的,且变化的幅度远远小于理论误差值。因此,若配对焦点所对应的误差值过大,则其附近的衍生焦点也不会是最理想曲线。因此,本文将该算法进行了改进。
如图3所示,在这些衍生焦点中确定了一些均布的点作为标志点,确定的标志点数目为((N+1)/3)4,因此划分的网格数应选择为3的倍数少1。
注:·标志点;×标志点周围的子点图3 网格划分示意图
标志点坐标为:
(7)
标志点的作用便是在后续步骤计算中减少对这些不必要的衍生焦点的计算。标志点周边的网格点称为子点,令每个标志点周围都有属于自己的8个子点,包括自身共有9个点:
(i,j=1,2,3)
(8)
将一个网格的标志点与另一个网格的标志点进行两两配对,计算由标志点配对成的衍生焦点对应的椭圆拟合曲线主参数。由标志点坐标,求得其衍生椭圆的主参数,进而求出对应椭圆方程系数值A、B、C、D、E。由标志点可配对出((N+1)/3)4对衍生焦点,因此可计算出((N+1)/3)4组系数值,得到((N+1)/3)4条拟合曲线,然后计算这((N+1)/3)4条拟合曲线的线轮廓度误差Δ。
以最小二乘法所算得的误差值f为判断标准,若Δ比f大的则认为其对应拟合曲线附近的曲线不会包含最佳曲线,也就是说,对应的标志点配对成的衍生焦点及其附近子点配对成的衍生焦点不会是最佳曲线所对应的焦点。则其对应的标志点及周围的8个子点,不再进行其他操作;若Δ比f小,则将Δ对应的标志点周围的子点(xz1,yz1)(xz2,yz2)再两两进行匹配,计算其对应拟合曲线轮廓度误差Δ′。从而可获得多个Δ′,令其为集合q。
找出集合q中最小的那个Δ′所对应的两焦点坐P1(x′1,y′1)P2(x′2,y′2),类似的,以L=f/N为边长扩展2个3×3网格:
(i,j=1,2,3)
(9)
同样按照之前相同的方法进行,两两配对,并计算出对应曲线的一系列线轮廓度误差Δ″,成为新的集合q,并令L=L/2,这便完成了一次迭代。然后继续找出q中最小的线轮廓误差所对应的焦点坐标,进行下一次同样的操作。如此循环直到找出迭代运算后算得的满足精度要求的最小的误差值Δ''',即为最小条件法所求最终误差值。其对应的曲线,即为本方法所求的最佳拟合曲线。程序流程图如图4所示。
利用MATLAB的强大的数学功能和绘图功能编制程序。运算速度对于最小条件评定而言是至关重要。计算量最大的即为数量极其庞大的点到曲线的二元二次方程式(1) 的求解。求解精度越高,数量越多。因此对于该方程的计算速度需要锱铢必较。MATLAB方程组常常采用内置函数solve求解编程语句简单,但经实验验证该方法求解一个方程组需22 s。而本研究采取前半部用庞杂的表达式计算,后半部用roots求根函数,将解析过程缩短约为0.005 s,提升了4 500倍左右,大大缩短了用时,为最小区域法的研究提供了可能。
借助MATLAB强大的GUI功能开发友好界面,具有数据载入保存、误差计算、绘图和自动生成实验报告等基本功能,实现测量数据、处理结果的可视化[8]。
为了验证本文提出的评定方法的准确性,根据参考文献[9]的推论,通过MATLAB软件人为在一组标准椭圆制造误差为0.1 mm的30个测点,如表1所示。这组数据内包容线过第6、16、26点,外包容线过1、11、21,两曲线的法向距离为0.1mm,即该椭圆轮廓度理论误差为0.1 mm。内外两包容线凹凸交叉包容的六点满足最小条件的判定原则。
表1 椭圆测点数据
先用最小二乘法计算出该椭圆轮廓度误差值0.137 920 mm,即为网格的边长。最小二乘椭圆的焦点坐标Q1(18.840 9,81.165 7),Q2(70.386 6,8.058 5),且令N=11,作为初始条件带入算法。运行后所得界面如图5所示。
图5 最小条件法界面
由图5界面下图椭圆拟合曲线图可知最小条件拟合抛物线与测点匹配程度高,曲线光顺。由上图椭圆误差放大示意图可知,第26点为最内侧点,第11点为最外侧点。计算所有测点到最小条件椭圆的法向距离可知,第1、11、21点分别为距离理想椭圆最远的3个点,分别为0.050 06,0.050 061,0.050 060 mm,即为理论设置的外包容点;第6、16、26点为最近点,分别为-0.049 943,-0.049 938,-0.049 945 mm,即为理论设置的内包容点,与数据的理论设定参数高度吻合。最小条件法评定误差值为0.100 006 mm,相对误差仅为0.006%,由此可见评定精度很高,故最小条件法编程思路是正确。
值得一提的是网格的划分数N的选取,由于本研究确定了一些均布的点作为标志点,因此划分的网格数应选择为3的倍数少1。由表2可知,网格的划分数N越大,网格点密度越大,得到的误差值越小,所以算法是收敛的,但计算效率越低。当N>11后,评定相对误差相差甚少,但用时呈倍数增加。当N<11前,评定相对误差呈数百倍增加,但计算用时相差无几。但即使N=2时,评定误差也仅为0.115 3 mm,比最小二乘法评定结果0.137 9 mm精度更高,符合国标规定,误差值可作为发生争议时进行仲裁的依据。因此评定时网格的划分数N推荐取值≤11左右即可获得较好的评定精度和评定效率的统一。
表2 数据处理精度对比
程序中令N=11,若按照文献[4]的遍历搜索算法,需计算(11+1)4=20 736条曲线,而优化后的算法仅需要计算1 620条曲线,仅需6.77 s,完全达到秒算的效果。
该方法还可推广至其他平面二次曲线,本研究还编制了抛物线最小条件法数据处理系统,将文献[10]里表7一组基于抛物线几何遍历算法的数据进行验证,对比效果见表2所示。网格点密度为抛物线每个初始焦点所衍生出的网格点数目。由表3可知,本文抛物线最小区域法配对的网格点数量是文献[10]的3倍多,评定精度大大提高,但计算速度更快。因而在相同的计算时间内,本文可以搜索更广的区域,就有更多的机会搜寻到全局最优解。证明了本算法在精度要求较高的时候,通过优化搜索方法,缩短运算时间,扩大搜索区域以接近全局最优解的可行性。
表3 抛物线数据处理结果对比
提出了一种提高平面二次曲线轮廓度误差评定效率的方法,用MATLAB软件实现误差评定的可视化,并通过实例验证了该算法的可靠性。该算法原理简单,能快速准确搜索最佳匹配曲线,可有效的解决基于最小条件的任意平面二次曲线轮廓度误差的评定。且通过调整网格点的密度实现评定精度的提高,在零件轮廓度要求较高的场合具有一定的应用价值。