基于逐次逼近的垂直度误差评定软件

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

-1-基于逐次逼近的垂直度误差评定软件林翔(福建商业高等专科学校福建福州350012)【摘要】关于空间直线对基准平面的垂直度误差及评定准则,国际GB/T1958-2004中没有相应的计算方法。本文独辟蹊径,全局搜索包容小圆柱,逐次将包容柱的直径下降,使垂直度误差向“最小区域”逼近。【关键词】垂直度误差,最小区域,高精度SoftwareofPerpendicularityErrorEvaluationBasedontheSuccessiveApproximationLinXiang(FujianCommercialCollege,Fuzhou,Fujian,350012)Abstract:InGB/T1958-2004,thereisnotthecalculationmethodontheperpendicularityerrorofstraightlinetotheplaneandtheevaluationcriterion.Thispaperhastheinnovation,searchesforthesmallouter-containedcylinder,declinesitsdiameterstepbystepandmakesthecalculationoftheperpendicularityerrorapproachtothesmallestarea.Keywords:perpendicularityerror,thesmallestarea,high-precision一、关于垂直度误差按《产品几何量技术规范(GPS)形状和位置公差检测规定》(GB/T1958-2004)规定,垂直度度误差属于位置公差中的定向误差范畴,指实际被测直线相对于给定基准平面在垂直方向上的变动量。直观地说,就是求取一个垂直于基准平面的小圆柱,该小圆柱包容被测直线上的检测点,如果小圆柱的直径达到最小,则其直径就是这条实测直线对于基准平面的垂直度误差值。在精密检测行业中,三维空间直线相对于基准平面的垂直度问题,是计算位置度误差的典型问题。垂直度误差问题的解决,对于解决其他位置度误差计算,具有基础性意义。在精密测量与评定的实践中,往往是当通过三坐标测量机检测获得空间某直线上一系列测量点位置坐标,然后采用满足最小区域判定原则的计算方法,求取这些离散点与基准平面间的垂直度误差。从《GB/T1958-2004》中空间直线对于基准平面的垂直度误差概念的描述可知,如果把直线上各样本点投影到基准平面,此时求取垂直度误差,其实际就是求基准平面各投影点的最小外包圆(或称外接圆),如此,空间的问题就转化为二维平面的问题。亦即对于被测的三维空间“直线”,用三坐标测量机测得一系列点Pk(xk,yk,zk)(k=1~n),则这条姑且称之为“直线”的轮廓线,就以点集Pk(k=1~n)来描述;那么评定“直线”与给定基准平面π0(设方程为:a0*x+b0*y+c0*z+d=0)的垂直度误差f,就转化为评定Pk(k=1~n)相对于π0的垂直度误差。文献[2]规定,用“最小区域法”求出的垂直度误差值,满足“最小条件”原则,计算结果最佳。而对于如何求得符合“最小条件”的垂直度误差,众人见仁见智,推出了各自的算法。经笔者观察分析,提出如下新的算法,其计算过程与结果具有真正的“最小区域”意义,满足“最小条件”的-2-原则。二、新算法设从被测直线上测量得到的样本点Pk(xk,yk,zk)(k=1~n),基准平面π0方程为:a0*x+b0*y+c0*z+d=0,T=(000,,cba)为π0的法向矢量,P’k(x’k,y’k,z’k)(k=1~n)为Pk(k=1~n)在π0上的投影,包容Pk(k=1~n)的小圆柱在平面π0上的投影是一个小圆C。显然,如果小圆柱包容了Pk(xk,yk,zk)(k=1~n),则P’k(k=1~n)必然全部落在小圆C之内。设圆C的圆心坐标为Pq(xq,yq,zq),那么显然小包容柱的中心线方程即为l1:00.0czzbyyaxxqqq,δ为圆柱的半径,2*δ即Pk(k=1~n)对于平面π0的空间垂直度误差值f,它是符合文献[2]关于“最小区域”条件下垂直度误差定义的。显然,求Pk(k=1~n)相对于平面π0的垂直度误差的三维空间问题,可以转化成为二维平面的问题,即求包容图一基准平面π0与小圆C关系图P’k(k=1~n)的小圆C的最小直径,如图一中所示。可见,求垂直度误差值的核心问题是找到小圆C,唯一的硬指标是小圆C必须是P’k(k=1~n)的最小外包圆。要找到这个小圆C――更直接地说是要找到小圆C圆心坐标Pq(xq,yq,zq)――须完成两个计算过程:其一、计算出Pk(k=1~n)在π0:a0*x+b0*y+c0*z+d=0上的投影点P’k(x’k,y’k,z’k)(k=1~n);其二、作坐标系旋转变换,以平面π0为xoy面,把P’k(x’k,y’k,z’k)转化为平面的点P’’k(x’’k,y’’k),求包容P’’k(k=1~n)的最小外包圆C。第一个过程是初等立几问题。过每一个点Pk、以T=(000,,cba)为方向作直线,直线与平面π0相交点即为P’k;第二个过程是求平面上的最小外包圆,是本算法的关键。经过坐标系旋转后,由P’k(x’k,y’k,z’k)(k=1~n)得到P’’k(x’’k,y’’k)(k=1~n),P’’k是二维平面上的点,求包容P’’k(k=1~n)的最小圆,比在三维空间形式下求最小包容柱要方便得多。求最小包容圆方法如下:先以“最小二乘圆法”求取圆心,作为最小包容圆初始圆心。设最小二乘圆方程为:(x’’k-x0)2+(y’’k-y0)2=R2,圆心坐标P0(x0,y0)计算表达式为:x0=nkx1''/n;y0=nky1''/n;求出P’’k(k=1~n)与圆心P0的最远距离者δmax,记P’’R(x’’R,y’’R)为δmax所对应于的点,即:-3-δmax=|P0P’’R|=max(|P0P’’k|)=max(2020)''()''(yyxxkk)(k=1~n),显然,以P0为圆心、以δmax为半径的圆,是P’’k(k=1~n)的一个外包圆。下一步要考虑如何通过移动圆心P0把这个外包圆不断缩小,把δmax逐步降下来,从而把这个外包圆向最小外包圆逼近。要移动P0,有二个问题要解决:移动方向、移动步长。(1)移动方向从“最小区域”的概念出发,围绕缩小外包圆半径这个目的考虑移动P0的方向,笔者发现这是一种直接且有效的方法。换言之,向量R''0PP所指的方向,是一个可用于移动P0的方向,移动后得到的新点记为P’0(x’0,y’0),如图二示,以P’0为圆心的新外包圆,其半径δ’max有可能比δmax小,即下式可能成立:δ’max=max(|P’0P’’k|)δmax=max(|P0P’’k|)(k=1~n)--------①图二投影点集与小圆C示意图有可能致使δmax下降,这正是笔者所期望的。为计算方便,将该向量R''0PP写成单位向量I:I=(ix,iy)=R''0PP/|R''0PP|=((x’’R-x0)/|R''0PP|,(y’’R-y0)/|R''0PP|);(2)移动步长获取移动方向I后,就要解决移动步长问题。总的思路是沿I做尝试性移动,即先将P0(x0,y0)沿I方向移动微小步长ε,获得点P’0(x’0,y’0),求P’’k(k=1~n)到P’0之距离最大者,按①式作比较判断:如果①成立,本次移动成功,以P’0取代P0;否则,步长ε值减半,再重复①式的计算,以δ’maxδmax为判断准则,达到逐次逼近最小外包圆的目的。具体算式:(x’0,y’0)=(x0,y0)+ε*I=(x0,y0)+ε*(ix,iy)计算过程的终止条件:经过逐次逼近的计算过程,当ε取值达到或小于计算精度的规定时,即可终止。此时得到的P0(x0,y0)即最小包容圆的圆心,自然,以P0为圆心、以δmax为半径的圆即为所求的最小外包圆,f=2*δmax(最小外包圆直径)也就是符合“最小条件”意义的垂直度误差值。再以P0(x0,y0)找回对应的空间坐标系上的点(x0,y0,z0),通过(x0,y0,z0)经空间坐标系反变换,就可以得到Pq(xq,yq,zq),有了Pq和T=(000,,cba),也就可以求得最小包容圆柱的中心轴线方程了。特殊情况处理:δε-4-上述计算过程是针对P’’R(x’’R,y’’R)为唯一点的情况,如果P’’R点不是一个而是s个,记为P’’Ri(i=1~s),则必须对s个可能的移动方向Ri''0PP(i=1~s)分别进行计算、判断,以使δmax值下降最多者对应的P’’Ri为最佳选择,定为P’’R,显然它具有全局最优意义。三、算法的注意事项与程序框图(1)从上所述,算法的合理性是显而易见的,计算过程也并不复杂,但要想算法收敛得又快又好,就要控制好移动的步长ε值。从原理和经验上看,它的取值既非越大越好,也不是越小越佳。它可以是一个很小的固定值,也可以是变化的值,原则是以δmax下降的快慢为ε取舍依据。(2)程序框图输入Pk(k=1~n)和平面π0的特征参数计算Pk(k=1~n)在平面π0上的投影P’k(k=1~n);以平面π0为xoy面进行坐标系旋转变换计算求得二维平面点P’’k(k=1~n)Loop:用最小二乘法求出初始圆心P0找出最远点P’’R,计算出(ix,iy)取ε值,计算P’0,判别能否以P’0取代P0:结束本算法程序用C语言编制(略)。四、算例及分析引用参考文献[1]中给出的第二个例子,用于描述空间直线的样本点为8个,基准平面π0法向矢量为(0,0,1),原文计算得出的垂直度误差为0.0220mm。用本文算法,计算得到的垂直度误差为0.021949mm,包容小圆柱中心线经1、δmax下降,则P’0可以取代P0,转Loop继续;2、ε减半,使δmax下降,则P’0取代P0,转Loop继续;3、ε达到计算精度要求,输出2*δmax-5-过点Pq(xq=730.453918,yq=535.021973,zq=0.0)。参考文献[3]中给出的一个例子,它是用光学分度头对一工件进行实际测量数据,基准平面有24个测点(3个同心圆,各圆上均布8个测点),被测直线有5个点(为5个截面圆之圆心),原文计算得出的线对面垂直度误差为2.0801μm(基准平面的平面度误差为8.4296μm);用本文算法求得垂直度误差为2.095952μm(基准平面的平面度为8.42929μm,平面法矢为(0.00000889,0.00000222,1.000),5个截面圆之圆心坐标通过文献(4)所介绍的程序求取)。参考文献[5]p43-44中给出了一个算例,基准平面有9个测点,被测直线也是9个点;原文计算得出的线对面垂直度误差结果为5.915889μm。用本文算法得出的垂直度误差为12.36761μm(基准平面度误差为10.019371μm,法矢为(10.062500,-73709.250000,-2696.750))。参考文献[6]附录中给出了一个线对面垂直度误差的算例,被测直线上有22个点,基准平面的法矢为(1,2,1),其计算得到的平行度误差为6.04μm;用本算法进行计算,垂直度误差为5.0869μm.由上述算例可见,本文的算法是可行的,在计算精度上有一定的优势。五、结束语本文所阐述的空间直线对于基准线的垂直度误差算法,理论上是可行;通过算例验算与结果比较,显示出相当高的计算精度。本算法的基本思路是把众所关心的最小包容圆柱中心线的求取,转化为二维平面最小包容圆圆心的求取;用“最小二乘法”获得初始包容圆的圆心与半径,在此基础上,寻找圆心移动方向和移动步长,逐次逼近最小包容圆,最终获得的最小外包圆的直径,即为垂直度误差值,它符合“最小区域”判定法则。本文引用的算例有限,欢迎同行专家指正。参考文献:[1]侯宇三坐标测量机上平行度和垂直度的精确评定[J]计量学报1994.(7):232-234.[2]中华人民共和国国家质量监督检

1 / 5
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功