1、平行度误差的关键问题探讨与软件测试林 翔福建商业高等专科学校 福建福州 350012【】平行度误差评定的关键在于基准拟合,其拟合精度决定误差评定结果之精度。对于平面基准和空间直线基准,数模重新整定,寻求全新算法,并论证其对“最小条件要求的符合性,且通过了对程序进行的大量算例测试。在高精度基准拟合确定根底上,研发功能完全的平行度误差评定软件,经大量算例测试说明了其评定结果的高精度性。【关键词】平行度误差;基准拟合;最小条件;软件测试;高精度Research on the Parallelism Error and Software TestingLIN Xiang (Fujian Commerc
2、ial College, Fuzhou, Fujian, 350012)Abstract: Baseline fitting is a key factor in parallelism error evaluation and the fitting accuracy can influence evaluation results. The paper uses data mold to construct datum and space straight-line basis to find new algorithm, prove the requirements of the min
3、imum conditions, and is tested by a large number of the algorithm. Based on the high-precision baseline fitting, the software of parallelism error evaluation is designed and the high-precision of evaluation result is assured by the testing.Key words: parallelism error; baseline fitting; minimum cond
4、itions; Software testing; high-precision一、平行度误差的关键问题任何一种定向误差评定的关键问题,不外乎基准确实定,空间平行度误差的评定也不例外。探讨空间平行度误差评定,按基准来区分,要考虑有2大类4种情况:一类是基准为空间平面,被测对象分空间直线和平面2种,可简称为“线对面平行度误差、“面对面平行度误差;另一类是基准为空间直线,被测对象同样也分空间直线和平面2种,简称为“线对线 平行度误差、“面对线平行度误差。1、如果基准是的,是精确给定的,按文献1规定上述4种问题的解决相对简单一些:“线对面、“面对面:只要求出被测直线或被测平面上所有测量点到基准平面的
5、最大距离与最小距离,二者之差即为其平行度误差值;“线对线:以基准直线的方向矢量为法矢作一平面,令被测直线上所有测量点投影到该平面,对所有投影点求最小外包圆,那么此圆之直径即为其平行度误差值;“面对线:以基准直线的方向矢量为法矢作一平面,令被测平面上所有测量点投影到该平面,对所有投影点求二维直线度误差,那么此直线度误差值即为平行度误差值。因此在基准已经给定时,上述4种情况下求平行度误差的核心问题是求“最小外包圆直径与“二维直线度误差,而此二问题的求解在文献2、3中已有详细阐述,且所求的最小外包圆直径与二维直线度误差值的精度非常高,可以直接引用,此处不作赘述。2、如果基准未明确给出,而是通过测量得
6、到的,那么就必须先对基准的测量点集进行平面拟合或空间直线拟合,以确定基准,进而按上一局部所述的4种情况处理,最终求出相应的平行度误差值。显然,这种情况下基准的拟合认定,就成为了误差评定的关键。国标1规定“由基准要素建立基准时,基准为该基准要素的拟合要素。拟合要素的位置应符合最小条件。 按此要求,基准为空间直线的,可以引用文献4提供的方法求取,以该算法得出的空间直线度误差符合“最小区域原那么,因此所拟合的直线必然符合“最小条件要求。从文献4罗列的算例来看,其空间直线度误差评定的精度极佳,超过目前业界绝大局部常见的主流软件。基准为平面的,也同样要对平面测量点集进行平面拟合,拟合的硬指标也是要符合“
7、最小条件原那么,以下对此关键问题展开探讨。二、基准平面拟合基准平面上测量点集P=Pk(xk, yk, zk),k=1n,设基准的拟合平面为0,其法矢记作(l,m,1),按文献1关于“最小条件的规定,求0其实就是求“平面度误差的过程,而且求取平面度误差的算法必须符合“最小区域原那么,这样求得的拟合基准平面0才满足要求,可以作为基准使用。“平面度误差属于形位误差中之形状误差范畴,现行的平面度误差算法很多,如借助matlab5、LABview6等专业软件包或著名的“PC_DMIS软件7来设计算法的,也有利用改良蜂群算法8来开发算法的,但其中符合“最小区域原那么的高精度算法乏善可陈,有的算法过程复杂却
8、难以实用,有的甚至不具备收敛于“最小区域的机制。为此,有必要针对关键问题重新建立数学模型并寻求符合“最小区域原那么的算法。1、平面拟合的数学模型点集P为平面上n个测量点之集合,P=Pk(xk, yk, zk),k=1n,拟合平面方程为0:,P中任一点Pk至0的距离为:k=|, (k=1n);按“最小区域原那么,拟合平面的目标函数:=max(k)+min(k),(k=1n);令目标函数f= min()成立,就可求出平面0的各个参数l、m、d,所得的0就是符合“最小条件的拟合基准平面。2、计算方法f= min() 是离散型的,可以求其数值解,使得f趋于极小,即f=- min。算法的思路是先以“最小
9、二乘平面求取初始的拟合平面0,获得初始平面度误差0值;然后不断有意识地改变初始平面0指0法向量(l,m,1),使初始0朝着可能降低0值的方向转动,从而使计算过程到达0值趋于min的目的。显然,算法的关键是在后面的过程。不妨记以“最小二乘平面拟合得到的初始平面0: ,点集P中距初始0距离最大者为Pi、最小者为Pj,对应的距离为i、j,Pi、Pj在0的投影点分别为Ai、Aj,自然AiPi=i,AjPj=j,记0=|i|+|j|,如图一所示。沿AiPi距Ai距离远处取点Ai,AiAi=是一个甚小值;同样在AjPj上取点Aj,AjAj =;记AiAj中点Aij,于0上求点Aij,满足AijAijAiA
10、j。以Ai、Aj、Aij三点作新 图一 初始拟合基准平面与测点关系平面0,易见0系0绕AijAij做微小转动之后得到的。0由0转动获得,目的是使值下降,这一点需要证明:记共面线段PiAi、PjAj构成的平面为1,如图二所示,Pi至0的距离i,Pj至0的距离j;观察PiAi Ai、PjAj Aj,PiAiAi、PjAjAj均为钝角,故ii、jj,是有=|i|+|j| |i|+|j|=0,由此得证。并不是平面0的平面度误差,因此究竟转动得到的0能否把0降下来,还需通过P对0计算平面度误差值,并与0作比拟,并分以下3种情况进行判断:1) 假设0,平面0取代平面0,然后再依上法对平面0作微小转动;2)
11、 假设0,那么减小值,重新在原0根底上求0,再通过点集P对0计算值,判断0是否成立: 图二 0、0与各测点及投影点关系 a如果成立,类同1情况,按1操作; b如果不成立,继续减小值,重新在原0根底上求0,并返回1; 3) 假设已减小为非常小的值,到达精度要求,也不能经转动0而把0降下来,那么计算过程终止,0就是所求的拟合基准平面。0是依“最小区域原那么求取得到的,因此满足“最小条件要求。3、基准平面拟合算法框图开始输入基准平面测量点集P=Pk,k=1n及以“最小二乘平面算法求初始拟合平面0之各参数l、m、d值,及0以在平面0根底上求取平面0,以点集P=Pk,k=1n计算0取代00yN足够小 N
12、y=/2输出0的法矢l,m,1,及平面度误差值0结束 4、编程与测试按照上述算法框图,笔者用C语言编程,并收集了50多个关于“平面度误差的算例加以验算。从国标1易知,对于给定的点集,平面度误差的评定值越小,那么拟合的平面越符合“最小条件。软件经过50多个算例测试,结果均说明以本算法计算得到平面度误差值都等于或小于原文的值,说明本算法拟合的平面更加理想。兹随选假设干算例略作比拟说明:文献59中各给出了一个平面度误差算例,原文得到的误差值依次是:8.971m、2.0268m、0.59571mm、0.15487mm、0.0753928;用本算法进行计算,平面度误差依次为8.971m、1.9143m、
13、0.577350mm、0.15487mm、0.065163。显然本算法求得的平面度误差值精度更高,因此求得的相应的拟合平面更符合“最小条件。三、平行度误差软件测试1、平行度误差计算解决了高精度的“空间直线拟合、“平面拟合问题,也就解决了平行度误差评定中基准拟合的关键问题,平行度误差评定所涉及的4种类型,都迎刃而解了:“线对线:以文献4的方法拟合基准直线,在此根底上以文献3求最小外包圆,输出直径值;“面对线:同上法拟合基准直线,在此根底上以文献2求二维直线度误差,输出该值;“线对面、“面对面: 以本文前述的方法拟合基准平面,基于此基准平面求出被测对象上所有测量点至基准的最大、最小距离,求出二者之
14、差并输出。2、编程与测试平行度误差高精度评定软件用C语言编程,功能包括上述4项。通过数十个算例的测试,结果说明该软件是稳定可靠的,计算得到平行度误差值具有高精度性。以下针对上述4种类型选5个算例略作说明。“线对线:文献10给出的算例,其基准直线上分布9个测量点,被测直线上有5个测量点。原文的平行度误差为0.740598m;本软件计算得到的平行度误差为2.057695m基准的直线度误差为3.701226m;“面对线:依然是文献10的算例,基准直线上分布9个测量点,被测平面有16个测量点。原文的平行度误差为10.678857m;本软件计算得到的平行度误差为5.69515m基准的直线度误差为0.544669m;“线对面:还是文献10的算例,其基准平面上分布9个测量点,被测直线上有8个测量点。原文的平行度误差为0.659m;本软件计算得到的平行度误差为13.384616m基准的平面度误差为6.307692m;“面对面:文献11给出的算例,其基准平面、被测平面上各有9个测量点。原文的平行度误差为64.2m基准平面度误差为32.9501;本软件计算得到的平行度误差为64.199967m基准的平面度为32.9250m。文献12给出的“面对面算