一种基于最大实体状态的同轴度快速评定方法与流程

文档序号:11951341阅读:759来源:国知局
一种基于最大实体状态的同轴度快速评定方法与流程

本发明属于精密计量与计算机应用领域,具有涉及一种基于最大实体状态的同轴度快速评定方法,可用于被测圆柱体有尺寸要求、其轴线的同轴度公差有最大实体要求并且其基准要素有尺寸要求和最大实体要求的圆柱形几何产品的同轴度误差合格性检测和评定,并为加工工艺的改进提供指导。



背景技术:

尺寸误差、形位误差(形状误差和位置误差的简称)直接影响产品质量、装配及其使用寿命,快速、准确地计算零件误差,具有重要的意义。尺寸公差(公差即误差的允许范围)和形位公差之间的关系称为公差原则,其中,最大实体要求是体现零件可装配性的一种公差原则。

国家标准GB/T16671-2009规定了被测圆柱体有尺寸要求、其轴线的同轴度公差有最大实体要求并且其基准要素有尺寸要求和最大实体要求的情况,该情况规定了:1、被测圆柱体的最大实体状态;2、被测圆柱体的局部尺寸的范围;3、被测圆柱体的最大实体状态与基准圆柱体的最大实体状态之间的方位关系;4、基准圆柱体的最大实体状态及其局部尺寸的范围,补充解释了最小实体状态下的被测圆柱体的轴线与最小实体状态下的基准圆柱体的轴线之间可能的同轴度误差,但并未给出具体的计算公式。

因此,为了判断介于最大实体尺寸和最小实体尺寸之间(尺寸误差的合格性检测方法在国家标准GB/T3177、GB/T1958、GB/T18779.1、GB/T18779.2中有规定,不属于本发明的范畴)的零件的上述同轴度的合格性,国家标准GB/T1958-2004给出了利用高精度的、尺寸恒定的通规、止规来检测圆柱体的上述同轴度是否合格的方法。然而,高精度的、尺寸恒定的通规、止规的制造成本较高,并且测量不同尺寸的圆柱体零件需要使用不同的通规、止规,进一步增加了测量成本。

被测圆柱体有尺寸要求、其轴线的同轴度有最大实体要求并且其基准要素没有最大实体要求的情况下,在精密计量与计算机应用领域可以通过三坐标测量机测量被测圆柱体和基准圆柱体上的测点,计算被测圆柱体相对于基准圆柱体的同轴度,并判断被测圆柱体的同轴度是否合格。但是还没有数学方法来来评定被测圆柱体有尺寸要求、其轴线的同轴度公差有最大实体要求并且其基准要素有尺寸要求和最大实体要求的零件的合格性。



技术实现要素:

本发明所要解决的技术问题是提供一种基于最大实体状态的同轴度快速评定方法,其不仅实现了被测圆柱体有尺寸要求、其轴线的同轴度公差有最大实体要求并且其基准要素有尺寸要求和最大实体要求的零件的合格性检测和评定,而且算法稳定性好、计算效率高,可以推广应用于其它被测要素有尺寸要求、其定向定位公差有最大实体要求并且其基准要素有尺寸要求和最大实体要求的零件的合格性检测和评定中。

为解决上述问题,本发明是通过以下方案实现的:

步骤1:获取被测圆柱体b、基准圆柱体A及它们之间的几何设计参数;如果被测圆柱体b的同轴度公差及基准圆柱体A都有最大实体要求,并且基准圆柱体A只有尺寸公差——可以应用包容原则,那么跳转到步骤2,否则结束本快速评定方法,并给出结论“被测圆柱体的同轴度公差不能用本方法评定”。

所述的被测圆柱体b的几何设计参数包括:是孔要素还是轴要素、名义直径Db、名义长度Lb、轴的上偏差esb或孔的上偏差ESb、轴的下偏差eib或孔的下偏差EIb、同轴度公差Tb, AM, coa、同轴度公差是否标注最大实体要求、同轴度公差的基准圆柱体A是否标注最大实体状态。

所述的被测圆柱体b的几何设计参数包括:是孔要素还是轴要素、名义直径Db、名义长度Lb、轴的上偏差esb或孔的上偏差ESb、轴的下偏差eib或孔的下偏差EIb、同轴度公差Tb, AM, coa、同轴度公差是否标注最大实体要求、同轴度公差的基准圆柱体A是否标注最大实体状态。

所述的基准圆柱体A的几何设计参数包括:是孔要素还是轴要素、名义直径DA、名义长度LA、轴的上偏差esA或孔的上偏差ESA、轴的下偏差eiA或孔的下偏差EIA、尺寸公差是否应用包容原则、其它几何公差。

所述的被测圆柱体b与基准圆柱体A之间的几何设计参数是被测圆柱体b的几何中心与基准圆柱体A的几何中心之间的名义距离LAb

步骤2:获取实际被测圆柱体Cb、实际基准圆柱体CA的测量数据;评价实际基准圆柱体CA的尺寸误差和实际被测圆柱体Cb的尺寸误差,如果上述误差都合格,跳转到步骤3,否则结束本快速评定方法,并给出结论“实际基准圆柱体CA和/或实际被测圆柱体Cb的其它误差不合格”。

步骤3:将实际被测圆柱体b和实际基准圆柱体A的测量数据分别拟合为圆柱体CCb和圆柱体CCA,分别计算圆柱体CCbCCA的直径dbdA,计算圆柱体CCb相对于圆柱体CCA的三维空间姿态vb, A

步骤4:计算基准圆柱体A最大实体边界圆柱体CCAM的直径DAM,计算圆柱体CCA相对于圆柱体CCAM的三维空间姿态vA的变动域ΩdvA;对于任意vAΩdvA,圆柱体CCA不超出基准圆柱体A最大实体边界圆柱体CCAM;对于任意不超出基准圆柱体A最大实体边界圆柱体CCAM的圆柱体CCA,其相对于圆柱体CCAM的三维空间姿态vAΩdvA;如图3所示。

步骤5:以vA为变量,以圆柱体CCb相对于圆柱体CCAM的同轴度误差tb, AM, coa=f(vA)为目标函数,进行目标优化,得到圆柱体CCb相对于圆柱体CCAM的最小同轴度误差tb, AM, coa, min;如图3所示。

步骤6:根据被测圆柱体b的最大实体实效尺寸DbMV和圆柱体CCb的直径db、最小同轴度误差tb, AM, min,判断实际被测圆柱体b的同轴度误差是否合格。

为了便于将实际零件与设计图形对应起来,本发明可以将以下步骤具体化为:

步骤2中所述实际被测圆柱体b、实际基准圆柱体A的测量数据是在测量空间直角坐标系中测量的,并且包括以下四个测点数据集:

实际基准圆柱体A的底面上的测点Pmeasure, A, under, i的测点数据pmeasure, A, under, i(xmeasure, A, under, i, ymeasure, A, under, i, zmeasure, A, under, i),i=1, 2 … II为测点数目且为正整数,所有的测点数据pmeasure, A, under, i(xmeasure, A, under, under, i, ymeasure, A, under, i, zmeasure, A, under, i)形成测点数据集{pmeasure, A, under, i}。

实际基准圆柱体A的侧面上的测点P measure, A, n的测点数据pmeasure, A, n(xmeasure, A, n, ymeasure, A, n, zmeasure, A, n),n=1, 2 … NN为测点数目且为正整数,所有的测点数据pmeasure, A, n(xmeasure, A, n, ymeasure, A, n, zmeasure, A, n)形成测点数据集{pmeasure, A, n}。

实际被测圆柱体b的底面上的测点Pmeasure, b, under, j的测点数据pmeasure, b, under, j(xmeasure, b, under, j, ymeasure, b, under, j, zmeasure, b, under, j),j=1, 2 … JJ为测点数目且为正整数,所有的测点数据pmeasure, b, under, j(xmeasure, b, under, under, j, ymeasure, b, under, j, zmeasure, b, under, j)形成测点数据集{pmeasure, b, under, j}。

实际被测圆柱体b的侧面上的测点Pmeasure, b, m的测点数据pmeasure, b, m(xmeasure, b, m, ymeasure, b, m, zmeasure, b, m),m=1, 2 … MM为测点数目且为正整数,所有的测点数据pmeasure, b, m(xmeasure, b, m, ymeasure, b, m, zmeasure, b, m)形成测点数据集{pmeasure, b, m}。

为了简化实际零件与设计图形对应过程,可以尽量减少实际被测圆柱体和实际基准圆柱体的底面测点,此时,本发明的以下步骤具体化为:

步骤2中,实际基准圆柱体A的底面上的测点数I=2,并且两个测点Pmeasure, A, under, 1Pmeasure,A,under,2分别在实际基准圆柱体A的两个底面上。

实际被测圆柱体b的底面上的测点数J=2,并且两个测点Pmeasure, b, under, 1Pmeasure,b,under,2分别在实际被测圆柱体b的两个底面上。

步骤3中,将实际基准圆柱体A的测点数据集{pmeasure, A, n}拟合为圆柱体CCA的侧面,Pmeasure, A, under, 1Pmeasure,A,under,2连线的中点Pmeasure, A, under, 1/2在圆柱体CCA的两个底面的对称平面PLA, 1/2上,圆柱体CCA的长度等于基准圆柱体A的名义长度LA

为描述圆柱体CCb相对于圆柱体CCA的三维空间姿态vb, A,建立基准圆柱体直角坐标系Oxyz, A,坐标系Oxyz, A的原点与圆柱体CCA的几何中心OA重合,坐标系Oxyz, A的一个坐标轴与圆柱体CCA的轴线重合,该坐标轴的正方向向量与向量OAPmeasure, b, under, 1/2的点积不小于零,其中,Pmeasure, b, under, 1/2Pmeasure, b, under, 1Pmeasure,b,under,2连线的中点;定义圆柱体CCA的单位方向向量nCCA的长度为1、正方向与该坐标轴的正方向向量相同。

将实际被测圆柱体b的测点数据集{pmeasure, b, m}拟合为圆柱体CCb的侧面,并且圆柱体CCb的几何中心Ob到平面PLA, 1/2的距离等于被测圆柱体b的几何中心与基准圆柱体A的几何中心之间的名义距离LAb,圆柱体CCb的长度等于被测圆柱体b的名义长度Lb

用圆柱体CCb的几何中心Ob在直角坐标系Oxyz, A中的坐标来描述圆柱体CCb相对于圆柱体CCA的三维空间位置tb, A

定义圆柱体CCb的单位方向向量nCCb的长度为1、与圆柱体CCb的轴线平行、与向量OAPmeasure, b, under, 1/2的点积不小于零;计算rb, A =-nCCb×nCCA,用rb, A来描述圆柱体CCb相对于圆柱体CCA的三维空间方向。

圆柱体CCb相对于圆柱体CCA的三维空间姿态vb, A=(tb, A, rb, A)。

为了降低本发明的使用难度,本发明可以具体化为:

步骤1:获取被测圆柱体b、基准圆柱体A及它们之间的几何设计参数;如果被测圆柱体b的同轴度公差及基准圆柱体A都有最大实体要求,并且基准圆柱体A只有尺寸公差——可以应用包容原则,那么跳转到步骤2,否则结束本快速评定方法,并给出结论“被测圆柱体的同轴度公差不能用本方法评定”。

所述的被测圆柱体b的几何设计参数包括是孔要素还是轴要素、名义直径Db、名义长度Lb、轴的上偏差esb或孔的上偏差ESb、轴的下偏差eib或孔的下偏差EIb、同轴度公差Tb, AM, coa、同轴度公差是否标注最大实体要求、同轴度公差的基准圆柱体A是否标注最大实体状态。

所述的基准圆柱体A的几何设计参数包括:是孔要素还是轴要素、名义直径DA、名义长度LA、轴的上偏差esA或孔的上偏差ESA、轴的下偏差eiA或孔的下偏差EIA、尺寸公差是否应用包容原则、其它几何公差。

所述的被测圆柱体b与基准圆柱体A之间的几何设计参数是被测圆柱体b的几何中心与基准圆柱体A的几何中心之间的名义距离LAb

步骤2:获取实际被测圆柱体b、实际基准圆柱体A的测量数据,包括以下四个测点数据集:

实际基准圆柱体A的两个测点Pmeasure, A, under, 1Pmeasure,A,under,2分别在实际基准圆柱体A的两个底面上,两个测点的测点数据pmeasure, A, under, 1 (xmeasure, A, under, 1, ymeasure, A, under, 1, zmeasure, A, under, 1)、pmeasure, A, under, 2 (xmeasure, A, under, 2, ymeasure, A, under, 2, zmeasure, A, under, 2)形成测点数据集{pmeasure, A, under, i},i=1, 2;实际基准圆柱体A的侧面上的测点P measure, A, n的测点数据pmeasure, A, n(xmeasure, A, n, ymeasure, A, n, zmeasure, A, n),n=1, 2 … NN为测点数目且为正整数,所有的测点数据pmeasure, A, n(xmeasure, A, n, ymeasure, A, n, zmeasure, A, n)形成测点数据集{pmeasure, A, n};实际被测圆柱体b的两个测点Pmeasure, b, under, 1Pmeasure,b,under,2分别在实际被测圆柱体b的两个底面上,两个测点的测点数据pmeasure, b, under, 1 (xmeasure, b, under, 1, ymeasure, b, under, 1, zmeasure, b, under, 1)、pmeasure, b, under, 2 (xmeasure, b, under, 2, ymeasure, b, under, 2, zmeasure, b, under, 2)形成测点数据集{pmeasure, b, under, j},j=1, 2;实际被测圆柱体b的侧面上的测点Pmeasure, b, m的测点数据pmeasure, b, m(xmeasure, b, m, ymeasure, b, m, zmeasure, b, m),m=1, 2 … MM为测点数目且为正整数,所有的测点数据pmeasure, b, m(xmeasure, b, m, ymeasure, b, m, zmeasure, b, m)形成测点数据集{pmeasure, b, m}。

评价实际基准圆柱体A和实际被测圆柱体b的尺寸误差是否合格,如果上述误差都合格,跳转到步骤3,否则结束本快速评定方法,并给出结论“实际基准圆柱体A和/或实际被测圆柱体b的其它误差不合格”。

步骤3:计算pmeasure, A, under, 1/2=( pmeasure, A, under, 1+ pmeasure, A, under, 2)/2。

将步骤2中获取的四个测点数据集进行坐标变换,得到四个粗略平移数据集{p0, A, under, i(x0, A, under, i, y0, A, under, i, z0, A, under, i)| p0, A, under, i =pmeasure, A, under, i -pmeasure, A, under, 1/2i=1, 2}、{p0, A, n(x0, A, n, y0, A, n, z0, A, n)|p0, A, n = pmeasure, A, n -pmeasure, A, under, 1/2n=1, 2 … N }、{ p0, b, under, j(x0, b, under, j, y0, b, under, j, z0, b, under, j)| p0, b, under, j = pmeasure, b, under, j -pmeasure, A, under, 1/2,,j=1, 2}、{ p0, b, m(x0, b, m, y0, b, m, z0, b, m)| p0, b, m = pmeasure, b, m -pmeasure, A, under, 1/2m=1, 2 … M }。

计算p0, b, under, 1/2(x0, b, under, 1/2, y0, b, under, 1/2, z0, b, under, 1/2)=(p0, b, under, 1+ p0, b, under, 2)/2。

解目标优化问题1:

s.t.

解得实际基准圆柱体A的拟合圆柱体CCA的直径dA=|min d1, A|和对应的(x0, y0, α0, β0)的值(x0,min, y0,min, α0,min, β0,min)。

将粗略平移数据集{ p0, b, m(x0, b, m, y0, b, m, z0, b, m)}进行如下坐标变换,m=1, 2 … M

得到实际被测圆柱所有测点相对于实际基准圆柱体的坐标集{ pb, m(b, m, yb, m, zb, m)}。

解目标优化问题2:

s.t.

解得实际被测圆柱体拟合圆柱体CCb的直径db=|min d1, b|和对应的(dx0,b,A, dy0,b,A, 0)、(drx0,b,A, dry0,b,A, 0)的值(dxb,A, dyb,A, 0)、( drxb,A, dryb,A, 0),圆柱体CCb相对于圆柱体CCA的三维空间姿态vb, A = (dxb,A, dyb,A, 0, drxb,A, dryb,A, 0)。

步骤4:计算基准圆柱体A最大实体边界圆柱体CCAM的直径DAM,当基准圆柱体A是轴时,DAM = DA + esA;当基准圆柱体A是孔时,DAM = DA + EIA

计算圆柱体CCA相对于圆柱体CCAM的三维空间姿态vA的变动域ΩdvA={ vA(dxA, dyA, 0, drxA, dryA, 0)| (dxA ± 0.5LAdryA)2 + ( dyA0.5LAdrxA)2 ≤ 0.25(DAM - dA)2}。

步骤5:解目标优化问题3:

s.t.

解得圆柱体CCb相对于圆柱体CCAM的最小同轴度误差tb, AM, coa, MIN=min tb, AM, coa

步骤6:计算被测圆柱体b的最大实体实效尺寸:当被测圆柱体b是轴时,DbMV = Db +esb +Tb, AM, coa;当被测圆柱体b是孔时,DbMV = Db + EIb -Tb, AM, coa

计算实际被测圆柱体b相对于基准圆柱体A的最大实体边界CCAM的同轴度动态公差Tb, AM, coa,Act =| DbMV - db|。

如果tb, AM, coa, MINTb, AM, coa,Act,那么给出结论“实际被测圆柱体b的同轴度误差合格”,否则给出结论“实际被测圆柱体b的同轴度误差不合格”。

在零件误差分析问题中,需要求解一些目标优化问题,其特点包括:需要同时考量误差值和名义参数,而这两类数值的大小通常差别几个数量级;最优解的附近的函数值变化较缓和;等式约束通常有确定的解;通常能给出至少一个可行的解。针对这些特点,本发明提供一种多层粒子群算法来解决前述3个目标优化问题,其特征是步骤如下:

步骤01:定义多层粒子群算法的参数或使用其默认值,包括分辨率TPOS、粒子数NPNP≥ 2)、内层最大迭代次数Ni,rdNi,rd ≥ 1)、外层最大迭代次数No,rd、外层最小迭代次数no,rd、质量权因子W、局部权因子C1、全局权因子C2

步骤02:定义NP个粒子pPSO,k(pPSO, k,1, p PSO, k,2, , pPSO, k,Q),其值对应目标优化问题中的自变量(x1, x2, , xQ),pPSO, k, q的取值区间分别与xq的取值区间相同;k=1, 2 … NPq=1, 2 … Q;所有粒子组成粒子集{pPSO,k};设置一个粒子pPSO,1的初始值或使用其默认值。

将外层粒子群算法的迭代次数设置为0。

步骤03:分别在pPSO, k, q的取值区间按平均分布随机取(NP -1)个值,构建(NP -1)个粒子pPSO,kk=2, 3 … NPq=1, 2 … Q

分别在pPSO, k, q的取值区间按平均分布随机取NP个值,构建NP个粒子pPSO,k的初始速度vPSO, k (vPSO, k,1, v PSO, k,2, …, vPSO, k,q);所有粒子的速度组成速度集{vPSO,k};k=1, 2 … NPq=1, 2 … Q

定义NP个粒子pPSO,k的局部最优解为pPSO,k,min=pPSO,kk=1, 2 … NP

pPSO, k, q的值分别代入目标优化问题中的变量x q及其等式约束,并计算相应的目标优化函数值fk=f(x1, x2, , xQ);k=1, 2 … NPq=1, 2 … Q

记录粒子pPSO,k对应的局部最优值fk,min=fkk=1, 2 … NP

记录全局最优值fmin=min fk,min,并记录与min fk,min对应的粒子的值为全局最优解pPSO,min

将内层粒子群算法的迭代次数设置为0。

步骤04:将粒子pPSO,k的值更新为pPSO,k +vPSO, kk=1, 2 … NP

令(x1, x2, , xQ)=pPSO,k,并代入目标优化问题的不等式约束;如果不等式约束成立,那么将(x1, x2, , xQ)代入目标优化问题中的等式约束,并计算和更新相应的目标优化函数值fk;如果fkfk,min,那么更新粒子pPSO,k的局部最优值fk,min=fk,并更新粒子pPSO,k的局部最优解为pPSO,k,min=pPSO,k;如果fkfmin,那么更新全局最优值fmin=fk,并更新全局最优解为pPSO,min=pPSO,kk=1, 2 … NPq=1, 2 … Q

如果各粒子的局部最优值和局部最优解非常接近,即,(|max fk,min– min fk,min| ≤ TPOS)且(|pPSO,k,min, mean pPSO,k,min| ≤ TPOS),其中,pPSO,k,min, meanpPSO,k,min的算术平均值,k=1, 2 … NP;那么,转到步骤07,否则转到步骤05。

步骤05:将粒子pPSO,k的速度vPSO,k的值更新为W vPSO,k + Crand1C1 (pPSO,k,min - pPSO,k) + Crand2C2 (pPSO,min - pPSO,k),其中,Crand1Crand2是在区间[0, 1]中相互独立地按平均分布随机选取的两个值; k=1, 2 … NP

步骤06:累积一次内层粒子群算法的迭代次数;如果内层粒子群算法的迭代次数大于Ni,rd,那么跳转到步骤07,否则跳转到步骤04。

步骤07:记录每次迭代得到的内层粒子群算法的全局最优值fmin,s= fmin,其中,s是外层粒子群算法的迭代次数。

将粒子pPSO,1的值设置为当前的全局最优解pPSO,min

当外层粒子群算法的迭代次数s > no,rd时,令g =s -no,rd,判断多层粒子群算法的收敛性;如果|fmin,s– min fmin, g | ≤ TPOS,那么,结束多层粒子群算法并输出目标优化问题的最优解pPSO,min和最优值fmin,否则,累积一次外层粒子群算法的迭代次数。

如果外层粒子群算法的迭代次数大于No,rd,那么停止外层粒子群算法并输出目标优化问题的最优解(x1, x2, , xQ)=pPSO,min和最优值min f=fmin,否则,更新粒子pPSO,1的初始值为pPSO,min跳转到步骤03。

为了便于本方法的使用,前述多层粒子群算法的默认参数可以设置如下:

分辨率TPOS默认值是0.00005、粒子数NP默认值是20、内层最大迭代次数Ni,rd默认值是100、外层最大迭代次数No,rd默认值是100、外层最小迭代次数no,rd默认值是50、质量权因子W默认值是0.5、局部权因子C1默认值是2、全局权因子C2默认值是2;pPSO,1的初始值默认为零向量。

为了提高本发明的计算效率,本发明中的目标优化问题1可以用下述方法求解:

求解目标优化问题1的多层粒子群算法如下:

步骤11:定义多层粒子群算法的参数或使用其默认值,包括分辨率TPOS、粒子数NP、内层最大迭代次数Ni,rd、外层最大迭代次数No,rd、外层最小迭代次数no,rd、质量权因子W、局部权因子C1、全局权因子C2

步骤12:定义NP个粒子pPSO,k(pPSO, k,1, p PSO, k,2, pPSO, k,3, pPSO, k,4),其值对应目标优化问题1中的变量(x0, y0, α0, β0),pPSO, k,1p PSO, k,2pPSO, k,3pPSO, k,4的取值区间分别与x0y0α0β0的取值区间相同,即:pPSO, k,1p PSO, k,2∈[-DA, DA],pPSO, k,3pPSO, k,4∈[-π, π];k=1, 2 … NP;所有粒子组成粒子集{pPSO,k};设置一个粒子pPSO,1(p PSO,1,1, p PSO,1,2, pPSO,1,3, pPSO,1,4)的初始值为(0, 0, 0, 0)。

将外层粒子群算法的迭代次数设置为0。

步骤13:分别在pPSO, k,1p PSO, k,2pPSO, k,3pPSO, k,4的取值区间按平均分布随机取(NP -1)个值,构建(NP -1)个粒子pPSO,kk=2, 3 … NP

分别在pPSO, k,1p PSO, k,2pPSO, k,3pPSO, k,4的取值区间按平均分布随机取NP个值,构建NP个粒子pPSO,k的初始速度vPSO, k (vPSO, k,1, v PSO, k,2, vPSO, k,3, vPSO, k,4);所有粒子的速度组成速度集{vPSO,k};k=1, 2 … NP

定义NP个粒子pPSO,k的局部最优解为pPSO,k,min=pPSO,kk=1, 2 … NP

pPSO, k,1p PSO, k,2pPSO, k,3pPSO, k,4的值分别代入目标优化问题1中的变量x0y0α0β0及其等式约束,并计算相应的目标优化函数值d1,A,kk=1, 2 … NP;即,

where

记录粒子pPSO,k对应的局部最优值d1,A,k,min=d1,A,kk=1, 2 … NP

记录全局最优值d1,A,min=min d1,A,k,min,并记录与min d1,A,k,min对应的粒子的值为全局最优解pPSO,min

将内层粒子群算法的迭代次数设置为0。

步骤14:将粒子pPSO,k的值更新为pPSO,k +vPSO, kk=1, 2 … NP

令(x0, y0, α0, β0)=pPSO,k,并代入目标优化问题1的不等式约束,即、、、、;如果不等式约束成立,那么将(x0, y0, α0, β0)代入目标优化问题1中的等式约束,计算并更新相应的目标优化函数值d1,A,k;如果d1,A,kd1,A,k,min,那么更新粒子pPSO,k的局部最优值d1,A,k,min=d1,A,k,并更新粒子pPSO,k的局部最优解为pPSO,k,min=pPSO,k;如果d1,A,kd1,A,min,那么更新全局最优值d1,A,min=d1,A,k,并更新全局最优解为pPSO,min=pPSO,kk=1, 2 … NP

如果各粒子的局部最优值和局部最优解非常接近,即,(|max d1,A,k,min– min d1,A,k,min| ≤ TPOS)且(|pPSO,k,min, mean pPSO,k,min| ≤ TPOS),那么,转到步骤17,否则转到步骤15;其中,pPSO,k,min, meanpPSO,k,min的算术平均值,k=1, 2 … NP

步骤15:将粒子pPSO,k的速度vPSO,k的值更新为W vPSO,k + Crand1C1 (pPSO,k,min - pPSO,k) + Crand2C2 (pPSO,min - pPSO,k),其中,Crand1Crand2是在区间[0, 1]中相互独立地按平均分布随机选取的两个值; k=1, 2 … NP

步骤16:累积一次内层粒子群算法的迭代次数;如果内层粒子群算法的迭代次数大于Ni,rd,那么跳转到步骤17,否则跳转到步骤14。

步骤17:记录每次迭代得到的内层粒子群算法的全局最优值d1,A,min,s= d1,A,min,其中,s是外层粒子群算法的迭代次数。

将粒子pPSO,1的值设置为当前的全局最优解pPSO,min

当外层粒子群算法的迭代次数s > no,rd时,令g =s -no,rd,判断多层粒子群算法的收敛性;如果|d1,A,min,s– min d1,A,min, g | ≤ TPOS,那么,结束多层粒子群算法并输出目标优化问题1的最优解pPSO,min和最优值d1,A,min,否则,累积一次外层粒子群算法的迭代次数。

如果外层粒子群算法的迭代次数大于No,rd,那么停止外层粒子群算法并输出目标优化问题1的最优解(x0, y0, α0, β0)=pPSO,min和最优值min d1, A=d1,A,min,否则,更新粒子pPSO,1的初始值为pPSO,min跳转到步骤13。

为了提高本发明的计算效率,本发明中的目标优化问题2可以用下述方法求解:

求解目标优化问题2的多层粒子群算法如下:

步骤21:定义多层粒子群算法的参数或使用其默认值,包括分辨率TPOS、粒子数NP、内层最大迭代次数Ni,rd、外层最大迭代次数No,rd、外层最小迭代次数no,rd、质量权因子W、局部权因子C1、全局权因子C2

步骤22:定义粒子pPSO,k(pPSO, k,1, p PSO, k,2, pPSO, k,3, pPSO, k,4)的值对应目标优化问题2中的变量(dx0,b,A, dy0,b,A, drx0,b,A, dry0,b,A),pPSO, k,1p PSO, k,2pPSO, k,3pPSO, k,4的取值区间分别与dx0,b,Ady0,b,Adrx0,b,Adry0,b,A的取值区间相同,k=1, 2 … NP;所有粒子组成粒子集{pPSO,k};设置一个粒子pPSO,1(p PSO,1,1, p PSO,1,2, pPSO,1,3, pPSO,1,4)的初始值为(0, 0, 0, 0)。

将外层粒子群算法的迭代次数设置为0。

步骤23:分别在pPSO, k,1p PSO, k,2pPSO, k,3pPSO, k,4的取值区间按平均分布随机取(NP -1)个值,构建(NP -1)个粒子pPSO,kk=2, 3 … NP

分别在pPSO, k,1p PSO, k,2pPSO, k,3pPSO, k,4的取值区间按平均分布随机取NP个值,构建NP个粒子pPSO,k的初始速度vPSO, k (vPSO, k,1, v PSO, k,2, vPSO, k,3, vPSO, k,4);所有粒子的速度组成速度集{vPSO,k};k=1, 2 … NP

定义NP个粒子pPSO,k的局部最优解为pPSO,k,min=pPSO,kk=1, 2 … NP

pPSO, k,1p PSO, k,2pPSO, k,3pPSO, k,4的值代入目标优化问题2中的变量dx0,b,Ady0,b,Adrx0,b,Adry0,b,A及其等式约束,并计算相应的目标优化函数值d1,b,kk=1, 2 … NP

记录粒子pPSO,k的局部最优值d1,b,k,min=d1,b,kk=1, 2 … NP

记录全局最优值d1,b,min=min d1,b,k,min,并记录与min d1,b,k,min对应的粒子的值为全局最优解pPSO,min

将内层粒子群算法的迭代次数设置为0。

步骤24:将粒子pPSO,k的值更新为pPSO,k +vPSO, kk=1, 2 … NP

令(dx0,b,A, dy0,b,A, drx0,b,A, dry0,b,A)=pPSO,k,并代入目标优化问题2的不等式约束,如果不等式约束成立,那么将(dx0,b,A, dy0,b,A, drx0,b,A, dry0,b,A)代入目标优化问题2的等式约束,计算并更新相应的目标优化函数值d1,b,k;如果d1,b,kd1,b,k,min,那么更新粒子pPSO,k的局部最优值d1,b,k,min=d1,b,k,并更新粒子pPSO,k的局部最优解为pPSO,k,min=pPSO,k;如果d1,b,kd1,b,min,那么更新全局最优值d1,b,min=d1,b,k,并更新全局最优解为pPSO,min=pPSO,kk=1, 2 … NP

如果各粒子的局部最优值和局部最优解非常接近,即,(|max d1,b,k,min– min d1,b,k,min| ≤ TPOS)且(|pPSO,k,min, mean pPSO,k,min| ≤ TPOS),那么,转到步骤27,否则转到步骤25;其中,pPSO,k,min, meanpPSO,k,min的算术平均值,k=1, 2 … NP

步骤25:将粒子pPSO,k的速度vPSO,k的值更新为W vPSO,k + Crand1C1 (pPSO,k,min - pPSO,k) + Crand2C2 (pPSO,min - pPSO,k),其中,Crand1Crand2是在区间[0, 1]中相互独立地按平均分布随机选取的两个值; k=1, 2 … NP

步骤26:累积一次内层粒子群算法的迭代次数;如果内层粒子群算法的迭代次数大于Ni,rd,那么停止内层粒子群算法并跳转到步骤27,否则跳转到步骤24。

步骤27:记录每次迭代得到的外层粒子群算法的全局最优值d1,b,min,s= d1,b,min,其中,s是外层粒子群算法的迭代次数。

将粒子pPSO,1的值设置为当前的全局最优解pPSO,min

当外层粒子群算法的迭代次数s > no,rd时,令g =s -no,rd,判断多层粒子群算法的收敛性;如果|d1,b,min,s– min d1,b,min, g | ≤ TPOS,那么,结束多层粒子群算法并输出目标优化问题2的最优解pPSO,min和最优值d1,b,min,否则,累积一次外层粒子群算法的迭代次数。

如果外层粒子群算法的迭代次数大于No,rd,那么停止外层粒子群算法并输出目标优化问题2的最优解(dx0,b,A, dy0,b,A, drx0,b,A, dry0,b,A)=pPSO,min和最优值min d1, b=d1,b,min,否则,更新粒子pPSO,1的初始值为pPSO,min并跳转到步骤23。

为了提高本发明的计算效率,本发明中的目标优化问题3可以用下述方法求解:

求解目标优化问题3的多层粒子群算法如下:

步骤31:定义多层粒子群算法的参数或使用其默认值,包括分辨率TPOS、粒子数NP、内层最大迭代次数Ni,rd、外层最大迭代次数No,rd、外层最小迭代次数no,rd、质量权因子W、局部权因子C1、全局权因子C2

步骤32:定义粒子pPSO,k(pPSO, k,1, p PSO, k,2, pPSO, k,3, pPSO, k,4)的值对应目标优化问题3中的变量(dxA, dyA, drxA, dryA),pPSO, k,1p PSO, k,2pPSO, k,3pPSO, k,4的取值区间分别与dxAdyAdrxAdryA的取值区间相同,k=1, 2 … NP;所有粒子组成粒子集{pPSO,k};设置一个粒子pPSO,1(p PSO,1,1, p PSO,1,2, pPSO,1,3, pPSO,1,4)的初始值为(0, 0, 0, 0)。

将外层粒子群算法的迭代次数设置为0。

步骤33:分别在pPSO, k,1p PSO, k,2pPSO, k,3pPSO, k,4的取值区间中按平均分布随机取(NP -1)个值,构建(NP -1)个粒子pPSO,kk=2, 3 … NP

分别在pPSO, k,1p PSO, k,2pPSO, k,3pPSO, k,4的取值区间中按平均分布随机取NP个值,构建NP个粒子pPSO,k的初始速度vPSO, k (vPSO, k,1, v PSO, k,2, vPSO, k,3, vPSO, k,4);所有粒子的速度组成速度集{vPSO,k};k=1, 2 … NP

定义NP个粒子pPSO,k的局部最优解为pPSO,k,min=pPSO,kk=1, 2 … NP

pPSO, k,1p PSO, k,2pPSO, k,3pPSO, k,4的值代入目标优化问题3中的变量dxAdyAdrxAdryA及其等式约束,并计算相应的目标优化函数值tb,AM,coa,kk=1, 2 … NP

记录粒子pPSO,k的局部最优值tb,AM,coa,k,min=tb,AM,coa,kk=1, 2 … NP

记录全局最优值tb,AM,coa,min=min tb,AM,coa,k,min,并记录与min tb,AM,coa,k,min对应的粒子的值为全局最优解pPSO,min

将内层粒子群算法的迭代次数设置为0。

步骤34:将粒子pPSO,k的值更新为pPSO,k +vPSO, kk=1, 2 … NP

令(dxA, dyA, drxA, dryA)=pPSO,k,并代入目标优化问题3的不等式约束,如果不等式约束成立,那么将(dxA, dyA, drxA, dryA)代入目标优化问题3的等式约束,计算并更新相应的目标优化函数值tb,AM,coa,k;如果tb,AM,coa,ktb,AM,coa,k,min,那么更新粒子pPSO,k的局部最优值tb,AM,coa,k,min=tb,AM,coa,k,并更新粒子pPSO,k的局部最优解为pPSO,k,min=pPSO,k;如果tb,AM,coa,ktb,AM,coa,min,那么更新全局最优值tb,AM,coa,min=tb,AM,coa,k,并更新全局最优解为pPSO,min=pPSO,kk=1, 2 … NP

如果各粒子的局部最优值和局部最优解非常接近,即,(|max tb,AM,coa,k,min– min tb,AM,coa,k,min| ≤ TPOS)且(|pPSO,k,min, mean pPSO,k,min| ≤ TPOS),那么,转到步骤37,否则转到步骤35;其中,pPSO,k,min, meanpPSO,k,min的算术平均值,k=1, 2 … NP

步骤35:将粒子pPSO,k的速度vPSO,k的值更新为W vPSO,k + Crand1C1 (pPSO,k,min - pPSO,k) + Crand2C2 (pPSO,min - pPSO,k),其中,Crand1Crand2是在区间[0, 1]中相互独立地按平均分布随机选取的两个值; k=1, 2 … NP

步骤36:累积一次内层粒子群算法的迭代次数;如果内层粒子群算法的迭代次数大于Ni,rd,那么停止内层粒子群算法并跳转到步骤37,否则跳转到步骤34。

步骤37:记录每次迭代得到的外层粒子群算法的全局最优值tb,AM,coa,min,s=tb,AM,coa,min,其中,s是外层粒子群算法的迭代次数。

将粒子pPSO,1的值设置为当前的全局最优解pPSO,min

当外层粒子群算法的迭代次数s > no,rd时,令g =s -no,rd,判断多层粒子群算法的收敛性;如果|tb,AM,coa,min,s– min tb,AM,coa,min, g | ≤ TPOS,那么,结束多层粒子群算法并输出目标优化问题3的最优解pPSO,min和最优值tb,AM,coa,min,否则,累积一次外层粒子群算法的迭代次数。

如果外层粒子群算法的迭代次数大于No,rd,那么停止外层粒子群算法并输出目标优化问题3的最优解(dxA, dyA, drxA, dryA)=pPSO,min和最优值min tb,AM,coa=tb,AM,coa,min,否则,更新粒子pPSO,1的初始值为pPSO,min并跳转到步骤33。

附图说明

图1,本发明的基本方法的流程图。

图2,本发明中求解目标优化问题的多层粒子群算法的基本方法的流程图。

图3,步骤4及步骤5中零件相对于最大实体边界的运动。

图4,实验对象的几何设计图。

具体实施方式

实验实施例:

被测轴有尺寸要求、其轴线的同轴度公差有最大实体要求并且其基准轴有尺寸要求和最大实体要求的台阶轴零件的同轴度误差合格性检测和评定:

步骤1:获取如图4所示的被测圆柱体b、基准圆柱体A及它们之间的几何设计参数(长度单位为毫米,角度单位为度,弧度单位为1):

所述的被测圆柱体b的几何设计参数包括:是轴要素、名义直径Db=10、名义长度Lb=15、轴的上偏差esb=0、轴的下偏差eib=-0.03、同轴度公差Tb, AM, coa=0.02、同轴度公差标注最大实体要求、同轴度公差的基准圆柱体A标注最大实体状态。

所述的基准圆柱体A的几何设计参数包括:是轴要素、名义直径DA=20、名义长度LA=30、轴的上偏差esA=0、轴的下偏差eiA=-0.05、尺寸公差应用包容原则,没有几何公差要求。

所述的被测圆柱体b与基准圆柱体A之间的几何设计参数是被测圆柱体b的几何中心与基准圆柱体A的几何中心之间的名义距离LAb=22.5。

被测圆柱体b的同轴度公差及基准圆柱体A都有最大实体要求,并且基准圆柱体A只有尺寸公差要求并应用包容原则,跳转到步骤2。

步骤2:获取实际被测圆柱体b、实际基准圆柱体A的测量数据,包括以下四个测点数据集,如表1所示:

实际基准圆柱体A的两个测点Pmeasure, A, under, 1Pmeasure,A,under,2分别在实际基准圆柱体A的两个底面上,两个测点的测点数据形成测点数据集{pmeasure, A, under, i},i=1, 2;实际基准圆柱体A的侧面上的测点P measure, A, n分布在3层圆周上,每层圆周3个点,其测点数据形成测点数据集{pmeasure, A, n},n=1, 2 … 9;实际被测圆柱体b的两个测点Pmeasure, b, under, 1Pmeasure,b,under,2分别在实际被测圆柱体b的两个底面上,两个测点的测点数据形成测点数据集{pmeasure, b, under, j},j=1, 2;实际被测圆柱体b的侧面上的测点Pmeasure, b, m分布在3层圆周上,每层圆周3个点,其测点数据形成测点数据集{pmeasure, b, mm=1, 2 … 9}。

将3层圆周上的测点P measure, A, n分别拟合为3个圆,其直径分别为19.966、19.966、19.969,判定实际基准圆柱体A的尺寸误差合格;将3层圆周上的测点pmeasure, b, m分别拟合为3个圆,其直径分别为9.980、9.979、9.983,判定实际被测圆柱体b的尺寸误差合格;跳转到步骤3。

步骤3:计算pmeasure, A, under, 1/2=( pmeasure, A, under, 1+ pmeasure, A, under, 2)/2=(254.156, 354.498, -656.454)。

将步骤2中获取的四个测点数据集进行坐标变换,得到四个粗略平移数据集{p0, A, under, i(x0, A, under, i, y0, A, under, i, z0, A, under, i)| p0, A, under, i =pmeasure, A, under, i -pmeasure, A, under, 1/2i=1, 2},如表1所示;{p0, A, n(x0, A, n, y0, A, n, z0, A, n)| p0, A, n = pmeasure, A, n -pmeasure, A, under, 1/2n=1, 2 … N },如表1所示;{p0, b, under, j(x0, b, under, j, y0, b, under, j, z0, b, under, j)| p0, b, under, j =pmeasure, b, under, j -pmeasure, A, under, 1/2,,j=1, 2},如表1所示;{ p0, b, m(x0, b, m, y0, b, m, z0, b, m)| p0, b, m = pmeasure, b, m -pmeasure, A, under, 1/2m=1, 2 … M },如表1所示。

计算p0, b, under, 1/2=( p0, b, under, 1+ p0, b, under, 2)/2=(-3.670, -0.884, 22.512)。

解目标优化问题1:

s.t.

步骤11:使用多层粒子群算法的默认参数,包括分辨率TPOS=0.00005、粒子数NP=20、内层最大迭代次数Ni,rd=100、外层最大迭代次数No,rd =100、外层最小迭代次数no,rd=50、质量权因子W=0.5、局部权因子C1=2、全局权因子C2=2。

步骤12:定义20个粒子pPSO,k(pPSO, k,1, p PSO, k,2, pPSO, k,3, pPSO, k,4),其值对应目标优化问题1中的变量(x0, y0, α0, β0),pPSO, k,1p PSO, k,2pPSO, k,3pPSO, k,4的取值区间分别与x0y0α0β0的取值区间相同,即:pPSO, k,1p PSO, k,2∈[-20, 20],pPSO, k,3pPSO, k,4∈[-π, π];k=1, 2 … 20;所有粒子组成粒子集{pPSO,k};设置一个粒子pPSO,1(p PSO,1,1, p PSO,1,2, pPSO,1,3, pPSO,1,4)的初始值为(0, 0, 0, 0)。

将外层粒子群算法的迭代次数设置为0。

步骤13:分别在pPSO, k,1p PSO, k,2pPSO, k,3pPSO, k,4的取值区间按平均分布随机取19个值,构建19个粒子pPSO,kk=2, 3 … 20。

分别在pPSO, k,1p PSO, k,2pPSO, k,3pPSO, k,4的取值区间按平均分布随机取20个值,构建20个粒子pPSO,k的初始速度vPSO, k (vPSO, k,1, v PSO, k,2, vPSO, k,3, vPSO, k,4);所有粒子的速度组成速度集{vPSO,k};k=1, 2 … 20。

定义20个粒子pPSO,k的局部最优解为pPSO,k,min=pPSO,kk=1, 2 … 20。

pPSO, k,1p PSO, k,2pPSO, k,3pPSO, k,4的值分别代入目标优化问题1中的变量x0y0α0β0及其等式约束,并计算相应的目标优化函数值d1,A,kk=1, 2 … 20;即,

where

记录粒子pPSO,k对应的局部最优值d1,A,k,min=d1,A,kk=1, 2 … 20。

记录全局最优值d1,A,min=min d1,A,k,min,并记录与min d1,A,k,min对应的粒子的值为全局最优解pPSO,min

将内层粒子群算法的迭代次数设置为0。

步骤14:将粒子pPSO,k的值更新为pPSO,k +vPSO, kk=1, 2 … 20。

令(x0, y0, α0, β0)=pPSO,k,并代入目标优化问题1的不等式约束,即0≤-x0,b,under,1/2 cosα0 sinβ0 + y0,b,under,1/2 sinα0 + z0,b,under,1/2 cosα0 cosβ0x0∈[-20, 20]、y0∈[-20, 20]、α0∈[-π, π]、β0∈[-π, π];如果不等式约束成立,那么将(x0, y0, α0, β0)代入目标优化问题1中的等式约束,计算并更新相应的目标优化函数值d1,A,k;如果d1,A,kd1,A,k,min,那么更新粒子pPSO,k的局部最优值d1,A,k,min=d1,A,k,并更新粒子pPSO,k的局部最优解为pPSO,k,min=pPSO,k;如果d1,A,kd1,A,min,那么更新全局最优值d1,A,min=d1,A,k,并更新全局最优解为pPSO,min=pPSO,kk=1, 2 … 20。如果各粒子的局部最优值和局部最优解非常接近,即,(|max d1,A,k,min– min d1,A,k,min| ≤ 0.00005)且(|pPSO,k,min, mean pPSO,k,min| ≤ 0.00005),其中,pPSO,k,min, meanpPSO,k,min的算术平均值,k=1, 2 … 20;那么,转到步骤17,否则转到步骤15。

步骤15:将粒子pPSO,k的速度vPSO,k的值更新为0.5vPSO,k +2Crand1 (pPSO,k,min - pPSO,k) + 2Crand2 (pPSO,min - pPSO,k),其中,Crand1Crand2是在区间[0, 1]中相互独立地按平均分布随机选取的两个值; k=1, 2 … 20;

步骤16:累积一次内层粒子群算法的迭代次数;如果内层粒子群算法的迭代次数大于100,那么跳转到步骤17,否则跳转到步骤14。

步骤17:记录每次迭代得到的内层粒子群算法的全局最优值d1,A,min,s= d1,A,min,其中,s是外层粒子群算法的迭代次数。

将粒子pPSO,1的值设置为当前的全局最优解pPSO,min

当外层粒子群算法的迭代次数s > 50时,令g =s -50,判断多层粒子群算法的收敛性;如果|d1,A,min,s– min d1,A,min, g | ≤ 0.00005,那么,结束多层粒子群算法并输出目标优化问题1的最优解pPSO,min和最优值d1,A,min,否则,累积一次外层粒子群算法的迭代次数。

如果外层粒子群算法的迭代次数大于100,那么停止外层粒子群算法并输出目标优化问题1的最优解(x0, y0, α0, β0)=pPSO,min和最优值min d1, A=d1,A,min,否则,更新粒子pPSO,1的初始值为pPSO,min跳转到步骤13。

解得实际基准圆柱体A的拟合圆柱体CCA的直径dA=|min d1, A|=19.969和对应的pPSO,min的值(-0.0005, -0.0026, 0.0004, 0.0001)。

将粗略平移数据集{ p0, b, m}进行如下坐标变换,m=1, 2 … 9:

得到实际被测圆柱所有测点相对于实际基准圆柱体的坐标集{ pb, m} ,如表1所示。

解目标优化问题2:

s.t.

步骤21:使用多层粒子群算法的默认参数,包括分辨率TPOS=0.00005、粒子数NP=20、内层最大迭代次数Ni,rd=100、外层最大迭代次数No,rd =100、外层最小迭代次数no,rd=50、质量权因子W=0.5、局部权因子C1=2、全局权因子C2=2。

步骤22:定义粒子pPSO,k(pPSO, k,1, p PSO, k,2, pPSO, k,3, pPSO, k,4)的值对应目标优化问题2中的变量(dx0,b,A, dy0,b,A, drx0,b,A, dry0,b,A),pPSO, k,1p PSO, k,2pPSO, k,3pPSO, k,4的取值区间分别与dx0,b,Ady0,b,Adrx0,b,Adry0,b,A的取值区间相同,k=1, 2 … 20;所有粒子组成粒子集{pPSO,k};设置一个粒子pPSO,1(p PSO,1,1, p PSO,1,2, pPSO,1,3, pPSO,1,4)的初始值为(0, 0, 0, 0)。

将外层粒子群算法的迭代次数设置为0。

步骤23:分别在pPSO, k,1p PSO, k,2pPSO, k,3pPSO, k,4的取值区间按平均分布随机取19个值,构建19个粒子pPSO,kk=2, 3 … 20。

分别在pPSO, k,1p PSO, k,2pPSO, k,3pPSO, k,4的取值区间按平均分布随机取20个值,构建20个粒子pPSO,k的初始速度vPSO, k (vPSO, k,1, v PSO, k,2, vPSO, k,3, vPSO, k,4);所有粒子的速度组成速度集{vPSO,k};k=1, 2 … NP

定义20个粒子pPSO,k的局部最优解为pPSO,k,min=pPSO,kk=1, 2 … 20。

pPSO, k,1p PSO, k,2pPSO, k,3pPSO, k,4的值代入目标优化问题2中的变量dx0,b,Ady0,b,Adrx0,b,Adry0,b,A及其等式约束,并计算相应的目标优化函数值d1,b,kk=1, 2 … 20。

记录粒子pPSO,k的局部最优值d1,b,k,min=d1,b,kk=1, 2 … 20。

记录全局最优值d1,b,min=min d1,b,k,min,并记录与min d1,b,k,min对应的粒子的值为全局最优解pPSO,min

将内层粒子群算法的迭代次数设置为0。

步骤24:将粒子pPSO,k的值更新为pPSO,k +vPSO, kk=1, 2 … 20。

令(dx0,b,A, dy0,b,A, drx0,b,A, dry0,b,A)=pPSO,k,并代入目标优化问题2的不等式约束,如果不等式约束成立,那么将(dx0,b,A, dy0,b,A, drx0,b,A, dry0,b,A)代入目标优化问题2的等式约束,计算并更新相应的目标优化函数值d1,b,k;如果d1,b,kd1,b,k,min,那么更新粒子pPSO,k的局部最优值d1,b,k,min=d1,b,k,并更新粒子pPSO,k的局部最优解为pPSO,k,min=pPSO,k;如果d1,b,kd1,b,min,那么更新全局最优值d1,b,min=d1,b,k,并更新全局最优解为pPSO,min=pPSO,kk=1, 2 … 20。

如果各粒子的局部最优值和局部最优解非常接近,即,(|max d1,b,k,min– min d1,b,k,min| ≤ 0.00005)且(|pPSO,k,min, mean pPSO,k,min| ≤0.00005),其中,pPSO,k,min, meanpPSO,k,min的算术平均值,k=1, 2 … 20;那么,转到步骤27。

步骤25:将粒子pPSO,k的速度vPSO,k的值更新为0.5vPSO,k +2Crand1 (pPSO,k,min - pPSO,k) + 2Crand2 (pPSO,min - pPSO,k),其中,Crand1Crand2是在区间[0, 1]中相互独立地按平均分布随机选取的两个值; k=1, 2 … 20;

步骤26:累积一次内层粒子群算法的迭代次数;如果内层粒子群算法的迭代次数大于100,那么停止内层粒子群算法并跳转到步骤27,否则跳转到步骤24。

步骤27:记录每次迭代得到的外层粒子群算法的全局最优值d1,b,min,s= d1,b,min,其中,s是外层粒子群算法的迭代次数。

将粒子pPSO,1的值设置为当前的全局最优解pPSO,min

当外层粒子群算法的迭代次数s > 50时,令g =s -50,判断多层粒子群算法的收敛性;如果|d1,b,min,s– min d1,b,min, g | ≤0.00005,那么,结束多层粒子群算法并输出目标优化问题2的最优解pPSO,min和最优值d1,b,min,否则,累积一次外层粒子群算法的迭代次数。

如果外层粒子群算法的迭代次数大于100,那么停止外层粒子群算法并输出目标优化问题2的最优解(dx0,b,A, dy0,b,A, drx0,b,A, dry0,b,A)=pPSO,min和最优值min d1, b=d1,b,min,否则,更新粒子pPSO,1的初始值为pPSO,min并跳转到步骤23。

解得实际被测圆柱体拟合圆柱体CCb的直径db=|min d1, b|=9.9833和对应的pPSO,min的值(-0.0031, -0.0245, -0.0007, -0.0001),圆柱体CCb相对于圆柱体CCA的三维空间姿态vb, A = (-0.0031, -0.0245, 0, -0.0007, -0.0001, 0)。

步骤4:计算基准圆柱体A最大实体边界圆柱体CCAM的直径DAMDAM = DA + esA= 20。

计算圆柱体CCA相对于圆柱体CCAM的三维空间姿态vA的变动域ΩdvA={ vA(dxA, dyA, 0, drxA, dryA, 0)| =(dxA ± 15dryA)2 + ( dyA15drxA)2 ≤ 0.01562}。

步骤5:解目标优化问题3:

s.t.

步骤31:使用多层粒子群算法的默认参数,包括分辨率TPOS=0.00005、粒子数NP=20、内层最大迭代次数Ni,rd=100、外层最大迭代次数No,rd =100、外层最小迭代次数no,rd=50、质量权因子W=0.5、局部权因子C1=2、全局权因子C2=2。

步骤32:定义粒子pPSO,k(pPSO, k,1, p PSO, k,2, pPSO, k,3, pPSO, k,4)的值对应目标优化问题3中的变量(dxA, dyA, drxA, dryA),pPSO, k,1p PSO, k,2pPSO, k,3pPSO, k,4的取值区间分别与dxAdyAdrxAdryA的取值区间相同,k=1, 2 … 20;所有粒子组成粒子集{pPSO,k};设置一个粒子pPSO,1(p PSO,1,1, p PSO,1,2, pPSO,1,3, pPSO,1,4)的初始值为(0, 0, 0, 0)。

将外层粒子群算法的迭代次数设置为0。

步骤33:分别在pPSO, k,1p PSO, k,2pPSO, k,3pPSO, k,4的取值区间中按平均分布随机取19个值,构建19个粒子pPSO,kk=2, 3 … 20。

分别在pPSO, k,1p PSO, k,2pPSO, k,3pPSO, k,4的取值区间中按平均分布随机取20个值,构建20个粒子pPSO,k的初始速度vPSO, k (vPSO, k,1, v PSO, k,2, vPSO, k,3, vPSO, k,4);所有粒子的速度组成速度集{vPSO,k};k=1, 2 … 20。

定义20个粒子pPSO,k的局部最优解为pPSO,k,min=pPSO,kk=1, 2 … 20。

pPSO, k,1p PSO, k,2pPSO, k,3pPSO, k,4的值代入目标优化问题3中的变量dxAdyAdrxAdryA及其等式约束,并计算相应的目标优化函数值tb,AM,coa,kk=1, 2 … 20;

记录粒子pPSO,k的局部最优值tb,AM,coa,k,min=tb,AM,coa,kk=1, 2 … 20。

记录全局最优值tb,AM,coa,min=min tb,AM,coa,k,min,并记录与min tb,AM,coa,k,min对应的粒子的值为全局最优解pPSO,min

将内层粒子群算法的迭代次数设置为0。

步骤34:将粒子pPSO,k的值更新为pPSO,k +vPSO, kk=1, 2 … 20。

令(dxA, dyA, drxA, dryA)=pPSO,k,并代入目标优化问题3的不等式约束,如果不等式约束成立,那么将(dxA, dyA, drxA, dryA)代入目标优化问题3的等式约束,计算并更新相应的目标优化函数值tb,AM,coa,k;如果tb,AM,coa,ktb,AM,coa,k,min,那么更新粒子pPSO,k的局部最优值tb,AM,coa,k,min=tb,AM,coa,k,并更新粒子pPSO,k的局部最优解为pPSO,k,min=pPSO,k;如果tb,AM,coa,ktb,AM,coa,min,那么更新全局最优值tb,AM,coa,min=tb,AM,coa,k,并更新全局最优解为pPSO,min=pPSO,kk=1, 2 … 20。

如果各粒子的局部最优值和局部最优解非常接近,即,(|max tb,AM,coa,k,min– min tb,AM,coa,k,min| ≤ 0.00005)且(|pPSO,k,min, mean pPSO,k,min| ≤ 0.00005),其中,pPSO,k,min, meanpPSO,k,min的算术平均值,k=1, 2 … 20;那么,转到步骤37。

步骤35:将粒子pPSO,k的速度vPSO,k的值更新为0.5vPSO,k +2Crand1 (pPSO,k,min - pPSO,k) + 2Crand2 (pPSO,min - pPSO,k),其中,Crand1Crand2是在区间[0, 1]中相互独立地按平均分布随机选取的两个值; k=1, 2 … 20。

步骤36:累积一次内层粒子群算法的迭代次数;如果内层粒子群算法的迭代次数大于100,那么停止内层粒子群算法并跳转到步骤37,否则跳转到步骤34。

步骤37:记录每次迭代得到的外层粒子群算法的全局最优值tb,AM,coa,min,s=tb,AM,coa,min,其中,s是外层粒子群算法的迭代次数。

将粒子pPSO,1的值设置为当前的全局最优解pPSO,min

当外层粒子群算法的迭代次数s > 50时,令g =s -50,判断多层粒子群算法的收敛性;如果|tb,AM,coa,min,s– min tb,AM,coa,min, g | ≤ 0.00005,那么,结束多层粒子群算法并输出目标优化问题3的最优解pPSO,min和最优值tb,AM,coa,min,否则,累积一次外层粒子群算法的迭代次数。

如果外层粒子群算法的迭代次数大于100,那么停止外层粒子群算法并输出目标优化问题3的最优解(dxA, dyA, drxA, dryA)=pPSO,min和最优值min tb,AM,coa=tb,AM,coa,min,否则,更新粒子pPSO,1的初始值为pPSO,min并跳转到步骤33。

解得圆柱体CCb相对于圆柱体CCAM的最小同轴度误差tb, AM, coa, MIN=min tb, AM, coa=0.0665。

步骤6:计算被测圆柱体b的最大实体实效尺寸DbMV = Db + esb +Tb, AM, coa=10.02。

计算实际被测圆柱体b相对于基准圆柱体A的最大实体边界CCAM的同轴度动态公差Tb, AM, coa,Act =DbMV - db=0.0367。

Tb, AM, coa,Act =0.0367≤0.0665= tb, AM, coa, MIN,给出结论“实际被测圆柱体b的同轴度误差不合格”。

表1,数据集和坐标集

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1