1平面度误差问题摘要本文主要讨论了测量平面度误差的三个可行的解决方案,求解平面度误差关键是求出满足最小区域准则的理想平面,然后计算所有测量点到理想平面的距离,那么平面度误差ε就是到理想平面的最大距离Lmax与到理想平面的最小距离Lmin(可为负数)之差,即ε=Lmax−Lmin。在问题一中,我们首先用应用最广的最小二乘法分析,最小二乘法评定平面度误差能够准确而充分地利用全部原始观测数据所提供的信息,简便且易于实施,但最小二乘法求得的是平面度误差的近似评定结果不满足最小条件准则,求得的矩阵有可能是病态的,对最后的结果会有影响,为此,我们建立了模型二(最小区域法)和模型三(遗传算法)。最小区域法要求用两平行平面包容实际平面的所有数据点,同时应该使两平行平面之间的距离f为最小,此最小距离即为平面度误差。最小区域法求得的平面度误差最小,精度最高,但当面对大量的数据点时,就会增多程序的执行时间,使得执行效率降低,可能陷入死循环。遗传算法把求解最优平面问题转化为求解目标函数的最大最小值,克服了传统平面度误差评定时受测点布局和测点个数限制的局限性,所得到的平面误差结果是全局最优解。三种算法评定结果方法系数A系数B系数C平面度误差mm最小二乘法2.7e-062.8e-064.5e-032.78e-03最小区域法1.16e-061.65e-061.69e-031.69e-03遗传算法2.975e-062.250e-065.288e-032.40e-03从上表可以看出,最小区域法和遗传算法都要比最小二乘法算出的误差要小,这一点符合我们的期望。在问题二中,我们构造产品合格与不合格的数值例子,用MATLAB均匀合理地生成了2500个数据点,使用最小区域法,带入相应的算法程序,结果如下:系数A系数B系数C平面度误差mm结论1.1815e-083.3053e-080.00700.0020不合格-1.0855e-08-1.3597e-080.00640.0008合格本文的创新点在于,我们从最基本的最小二乘法出发,针对模型的缺点,一步步改进算法,计算误差也不断减小。我们用MATLAB对测量点进行插值画出测量平面和所求出的理想平面,使模型更加直观。我们所用的模型简单,算法清晰,程序易于实现。关键词:平面度误差;最小二乘法;最小区域法;遗传算法;MATLAB2一、问题重述1.1背景介绍平面度误差是形位误差项目之一,也是限制实际被测面相对理想平面变动量的一项重要指标。其测量与评定无论是对有平面度公差要求的零件合格性的判定,还是对提高零件的加工精度都有着重要意义。常见的平面度测量方法有光学平晶干涉法、打表测量法、液平面法以及自准仪和水平仪等。国家颁布的《产品几何量技术规范(GPS)形状和位置公差检测规定》(GB/T1958—2004)标准规定:平面度误差是指包容被测实际平面上的所有测量点,并且距离为最小的两个平行平面之间的区域,平面度误差的评定结果应符合最小包容区域判别准则[1]。1.2问题重述某工件的某部分是一个100cm*100cm的平面,制作完成后要检测此平面是否合格,也就是要判定这个平面是否足够“平”。假设在这个平面上采集到2500个均匀分布的数据点(三维),不考虑测量误差,即假定数据都是足够精确的,产品合格的标准为平面度误差不超过ε=0.001mm。1.请给出一个精确的、直观的、可行的检测方法并说明理由。2.构造产品合格和产品不合格的数值例子,试验你提出的检测方法。二、问题分析2.1问题一针对问题一,根据平面度误差定义,我们需要根据测量点的三维坐标数据到一个满足最小区域准则的理想平面,先计算所有测量点到理想平面的距离,那么平面度误差ε就是到理想平面的最大距离Lmax与到理想平面的最小距离Lmin(可为负数)之差,即ε=Lmax−Lmin。因此,平面度误差评定问题可进而转化为求解理想平面的问题。由点到平面距离公式以及ε=Lmax−Lmin,可以看出ε的大小与平面=中的参数C无关,因此只要确定理想平面的法方向即可。理想平面是评定平面度误差的评定基准,而评定基准的方法不同求得的平面度误差值也就不同。因此问题的关键在于找到理想平面位置使得平面度误差最小。最小二乘法是根据最小二乘原理,利用实际被测平面上的测量点拟合出一个最小二乘理想平面,使得所有测量点至此理想平面的距离的平方和最小。最小二乘法简便易行,便于实现计算机处理,并能够给出唯一解。但使用最小二乘法进行多元线性拟合做出理想平面,计算量较大,且该方法求得的仅是平面度误差评定的近似结果,不能保证求得最小解,并且在原理上也存在缺陷,与平面度误差评定的最小条件定义相悖,不符合最小区域的最小条件准则,所求得的平面度误差不是十分精确[2]。通过分析发现,在给定测量点数据时,平面度误差ε只与平面方程中系数A,B有关,进而考虑是否存在某种关系ε=,因此考虑使用另一种方法——最小包容3区域法,寻找被测实际平面且距离最短的两理想平行平面,把求理想平面转化为求最优解问题。与基准平面平行的两个平面至少会有两个或者两个以上的测量点与被测平面相接触,因此符合平面度最小条件准则的两平行平面之间的区域作为最小包容区域,而两个平行平面之间的宽度就是符合定义的平面度误差。利用Matlab只需要进行简单的矩阵运算,就可以很方便地求出评定基准平面的方程,且可迅速准确地求得被测表面的平面度误差。在测量较大平面,测量点数较多时,此方法更加适用[3]。上述算法已将求平面的问题转化为求最优解的问题,通过查阅资料,了解到最优解问题有许多经典解法,因此考虑要进一步完善求最优解的算法,就要保证求得的是全局最优评定结果,因此采用一种基于生物自然选择与遗传机理的随机搜索算法——遗传算法,在满足最小区域条件准则的前提下,具有全局收敛性,克服了局部收敛问题,在设计变量的全局范围内有效、准确地评价平面度误差。图1平面度误差示意图2.2问题二针对问题二,按照题目要求,使用MATLAB生成2500个测试点,X,Y为[0,100]内均匀分布,单位cm,Z为随机生成的数据,且使其范围控制在1mm以内,之后用不同的测试数据进行产品合格的检验。三、模型假设1.假设在平面上采集的2500个数据点均匀分布;2.假设不考虑测量误差,数据足够精确;43.假设可以搜索到区域内满足最小条件准则的点;4.种群都是按照选择、交叉和变异的顺序进行。四、符号说明符号说明空间直角坐标系中任一平面方程的方程系数;理想平面方程的方程系数;i实际平面上的任意一点,坐标表示为ii最小二乘法实际平面横轴纵轴抽取测量点的个数n最小区域法实际平面抽取测量点的个数平面度误差的衡量标准值测量点数据的偏差平方和A1,2,B1,2,C1,2最小区域法平面方程的方程系数m初始群体的个数Ai编码串数xi解码串数F群体的适应值pc交换概率pm变异概率五、模型建立与求解5.1问题一5.1.1建立被测实际表面的数学模型平面度误差是指被测实际表面不平的程度,而平面在空间直角坐标系中,它的方程一般为:=0上式可写成:=−−−5令=−AC=−BC=−DC,则平面一般方程可写为:=设实际表面上任意点i的位置由i、、i三个坐标确定。i、、i分别为被测实际表面上任意点i沿坐标轴、坐标轴、坐标轴方向测得的向量值。若和另外两个自变量i、之间的内在关系是一个平面,实际表面上的各点与该平面的偏离是由一些随机因素的影响引起的,因此可假设通过试验测得N组观测数据:iii,其中i=012…j=012⋯。则三维空间实际表面的数学模型为:{00=00000=00…k0=k0k0k=kk…km=kmkm(1)设Z=(000…k0…km)x=(00101…k01…Km1)a=()f=(000…k0…km)式中是三个待估计的参数,Xi、Yj是两个可以精确控制的一般量,fij是被测实际表面上各测点相对于评定基准的偏差,它是N个相互独立且服从同一正态分布(iσ)的随机变量。则实际表面的数学模型(1)就可写成矩阵形式:=(2)5.1.2最小二乘法的评定分析6对于正方形实际表面的平面度原始观测数据的获得,可用删格式布置被测实际表面上的测量截面和测量点,即选择测量截面的方向与被测实际表面纵、横向平行,测量顺序为:A→B→C,A→B,→C,然后以A→B截面上各测点为始点,平行地测量n个截面P1→P1,,P2→P2,,……,以A为零点,计算其他测点相对零平面(评定基准)的误差(图5.1.2)。评定基准的方位随着对被测实际表面数学模型(2)中参数a的估计方法不同而不同,不同方位的评定基准所求得的平面度误差值亦不相同。科学上常用的确定评定基准的方法,是最小二乘法,即在确定评定基准时,应使被测实际表面上的各点到最小二乘平面的距离的平方和为最小。用最小二乘法估计参数a1、a2、a3,评定基准的数学模型为=。图2测量平面度误差时的布点示意图由最小二乘法可知,a1、a2、a3应使得被测实际表面上全部观测值Zij与评定基准的回归值Zij的偏差平方和达到最小,即:S=∑i−Zij)2−∑i−i−−2为最小对于通过试验给定的数据(Xi、Yj、Zij),S是a1、a2、a3的非负二次式,所以最小值一定存在,根据极限定理,a1、a2、a3应是下列方程的解:{∂∂=−2∑i−i−−i=0∂∂=−2∑i−i−−=0∂∂=−2∑i−i−−=0进一步简化得:{∑i(∑)N=∑i(∑i)(∑i)∑i=∑ii(∑i)(∑)∑=∑i(3)7令B=(∑i∑N∑i∑i∑i∑i∑∑)=(bbbbbbbbb)a=()C=(∑i∑ii∑i)=()则三维空间线性方程组(3)的解可用矩阵形式表达,当B≠0时则:()=|B|()()(4)上式中=|B|(),j=1、2、3,i为||元素bi的代数余子式。解上述矩阵得到a1、a2、a3的值,即确定了理想平面的位置,之后将各测试数据点相应的坐标(Xi、Yj、Zij)带入平面方程,便可得到相应的Zij的值,平面度误差计算公式为:=(i−ij)−i(i−ij)(5)用MATLAB随机生成25个均匀分布点作为测试点(与问题二无关),进行多元线性拟合,通过运行程序得到a1、a2、a3三个参数的值,再将每个数据点带入求得的理想平面方程,得出每个数据点相对应的Zij的值,带入式(5)得到平面度误差。测试点及求得的参数值如下表所示:表1最小二乘法数据处理单位:mm序号XiYjZijZijfi11001000.005000.00505-0.0000521003000.005000.00561-0.0006131005000.006000.00617-0.0001741007000.007000.00673+0.0002751009000.007000.00729-0.00029863001000.005000.00559-0.0005973003000.007000.00615+0.0008583005000.007000.00671+0.0002993007000.008000.00727+0.00073103009000.006000.00783-0.00183115001000.006000.00613-0.00013125003000.007000.00669+0.00031135005000.008000.00725+0.00075145007000.008000.00781+0.00019155009000.009000.00837+0.00063167001000.007000.00667+0.00033177003000.007000.00723-0.00023187005000.007700.00779-0.00009197007000.008000.00835-0.00035207009000.009000.00891+0.00009219001000.006000.00721-0.00121229003000.008000.00777+0.00023239005000.009000.00833+0.00067249007000.009000.00889+0.00011