发明名称 一种计算圆柱体零件作用尺寸的方法
摘要 一种计算圆柱体零件作用尺寸的方法,该方法首先测量并获取被测圆柱面上的测点坐标;然后给出圆柱的初始参数,将测点投影在垂直于轴线的平面内,通过对包容区域的平移变动,计算投影圆的作用尺寸,从而搜索到包容区域的3个接触点;然后通过包容区域的旋转变动及圆柱半径的变动,分别搜索与包容区域接触的第4个与第5个测点;当接触点的数量大于等于5时,以4个接触点为1个组合,在保持4点接触的条件下,进一步变动圆柱半径,然后换1个组合,继续变动圆柱半径,依次迭代计算,直到满足判别准则,输出圆柱的作用尺寸、圆柱度误差以及圆柱轴线参数的最优值。本发明可准确计算出满足作用表面判别准则的圆柱半径最优值及圆柱度误差。
申请公布号 CN103292654B 申请公布日期 2015.11.25
申请号 CN201310230254.8 申请日期 2013.06.11
申请人 桂林电子科技大学 发明人 黄美发;陈磊磊;唐哲敏;彭治国;鲍家定;王灿;杨孟杰
分类号 G01B5/00(2006.01)I;G01B5/08(2006.01)I 主分类号 G01B5/00(2006.01)I
代理机构 代理人
主权项 一种计算圆柱体零件作用尺寸的方法,用于计算圆柱体的最大内接尺寸,其特征在于,包括如下步骤:步骤1:将被测圆柱置于测量平台上,在测量空间直角坐标系中测量并获取圆柱表面上的点<img file="253540dest_path_image001.GIF" wi="84" he="25" />,<img file="35551dest_path_image002.GIF" wi="9" he="18" />=1, 2,…, <i>n</i>代表测点数目且<i>n</i>为大于5的正整数;所有测点<img file="407626dest_path_image003.GIF" wi="81" he="25" />形成测点集<img file="212771dest_path_image004.GIF" wi="33" he="28" />;步骤2:随机给出圆柱的参数,即圆柱的轴线<i>L</i>方向矢量<img file="594074dest_path_image005.GIF" wi="76" he="28" />;进行坐标系的旋转变换,使坐标系<i>z</i>轴平行于圆柱轴线<i>L</i>方向矢量<img file="433854dest_path_image006.GIF" wi="25" he="22" />;坐标变换后,将测点<img file="275033dest_path_image007.GIF" wi="20" he="25" />投影在<i>xoy</i>平面内,得到测点<img file="160950dest_path_image008.GIF" wi="17" he="25" />坐标<img file="752468dest_path_image009.GIF" wi="52" he="25" />;所有测点<img file="509072dest_path_image010.GIF" wi="68" he="25" />形成测点集<img file="987064dest_path_image011.GIF" wi="29" he="25" />;步骤3: 在点集<img file="766801dest_path_image011.GIF" wi="29" he="25" />中,任意取出3个测点,并计算3个测点组成三角形的外接圆心<img file="958748dest_path_image012.GIF" wi="77" he="30" />,作为圆心<img file="835437dest_path_image013.GIF" wi="24" he="22" />的迭代初始值;步骤4:依次计算测点集<img file="657900dest_path_image011.GIF" wi="29" he="25" />中各测点到圆心<img file="252829dest_path_image013.GIF" wi="24" he="22" />的距离;并记录测点集<img file="451729dest_path_image011.GIF" wi="29" he="25" />中各测点到圆心坐标<img file="418811dest_path_image013.GIF" wi="24" he="22" />距离的最小距离所对应的测点,得到误差包容区域内边界的接触点集合<img file="412174dest_path_image014.GIF" wi="33" he="25" />;步骤5:判断误差包容区域内边界的接触点集合<img file="228821dest_path_image014.GIF" wi="33" he="25" />中是否只有1个接触点;如果只有1个接触点,则该接触点为有效接触点,此时包容区域平移的方向矢量<img file="231412dest_path_image015.GIF" wi="25" he="26" />等于圆心坐标<img file="82693dest_path_image013.GIF" wi="24" he="22" />减去接触点坐标,跳转到步骤8;如果接触点数量大于1,则跳转到下一步;步骤6:判断误差包容区域内边界的接触点集合<img file="43696dest_path_image014.GIF" wi="33" he="25" />中是否只有2个接触点;如果只有2个接触点,则这2个接触点为有效接触点,此时包容区域平移的方向矢量<img file="285321dest_path_image015.GIF" wi="25" he="26" />等于圆心坐标<img file="652455dest_path_image013.GIF" wi="24" he="22" />减去2个接触点连线的中点坐标,跳转到步骤8;如果接触点数量大于2,则跳转到下一步;步骤7:计算各个接触点<img file="30347dest_path_image016.GIF" wi="61" he="30" />相对圆心<img file="427830dest_path_image013.GIF" wi="24" he="22" />的相位角<img file="953490dest_path_image017.GIF" wi="24" he="26" />,<img file="297883dest_path_image018.GIF" wi="246" he="100" />所有接触点的相位角<img file="858178dest_path_image017.GIF" wi="24" he="26" />形成集合<img file="629825dest_path_image019.GIF" wi="38" he="30" />,对<img file="580463dest_path_image019.GIF" wi="38" he="30" />中的元素进行排序,得到向量<img file="761171dest_path_image020.GIF" wi="38" he="30" />,计算向量<img file="175972dest_path_image020.GIF" wi="38" he="30" />中相邻2个相位角<img file="118520dest_path_image020.GIF" wi="38" he="30" />之差,<img file="884351dest_path_image021.GIF" wi="173" he="65" /><img file="570547dest_path_image022.GIF" wi="22" he="22" />为接触点的数量;计算<img file="574275dest_path_image023.GIF" wi="66" he="30" />,如果<img file="687724dest_path_image024.GIF" wi="106" he="30" />,则满足锐角三角形准则,跳转到步骤9;如果<img file="439386dest_path_image025.GIF" wi="106" he="30" />,查询<img file="663694dest_path_image023.GIF" wi="66" he="30" />对应的2个接触点,所查询到的2个接触点有效接触点,其余接触点为无效接触点,此时包容区域平移的方向矢量<img file="787508dest_path_image015.GIF" wi="25" he="26" />等于圆心坐标<img file="806280dest_path_image013.GIF" wi="24" he="22" />减去2有效接触点连线的中点坐标;步骤8:依次计算包容区域变动到与每个非接触测点<img file="281123dest_path_image008.GIF" wi="17" he="25" />接触时的圆心虚拟位置<img file="309122dest_path_image026.GIF" wi="20" he="25" />;首先分别计算各个非接触测点<img file="818601dest_path_image008.GIF" wi="17" he="25" />和其中一个有效接触点的垂直中分线,然后计算垂直中分线与过圆心<img file="572056dest_path_image013.GIF" wi="24" he="22" />且方向矢量为<img file="206299dest_path_image015.GIF" wi="25" he="26" />的直线的交点,即为包容区域变动到与该测点<img file="834727dest_path_image008.GIF" wi="17" he="25" />接触时,圆心的虚拟位置<img file="136395dest_path_image026.GIF" wi="20" he="25" />,所有的非接触测点对应的<img file="90445dest_path_image026.GIF" wi="20" he="25" />组成集合<img file="211984dest_path_image027.GIF" wi="33" he="28" />,计算各个非接触测点对应的<img file="204955dest_path_image026.GIF" wi="20" he="25" />到圆心<img file="361130dest_path_image013.GIF" wi="24" he="22" />的距离<img file="954922dest_path_image028.GIF" wi="45" he="30" />,所有的<img file="563758dest_path_image028.GIF" wi="45" he="30" />构成集合<img file="533988dest_path_image029.GIF" wi="57" he="36" />,在集合<img file="544669dest_path_image029.GIF" wi="57" he="36" />中,剔除<img file="840521dest_path_image015.GIF" wi="25" he="26" />与<img file="936653dest_path_image030.GIF" wi="40" he="26" />异向的对应元素,然后查询集合<img file="946460dest_path_image029.GIF" wi="57" he="36" />中的最小值,即为包容区域的平移变动量<img file="811648dest_path_image031.GIF" wi="16" he="20" />;根据包容区域变动量<img file="12822dest_path_image031.GIF" wi="16" he="20" />以及移动方向矢量<img file="596250dest_path_image032.GIF" wi="22" he="26" />,计算圆心的坐标<img file="439441dest_path_image012.GIF" wi="77" he="30" />;转到步骤4;步骤9:进行与步骤2中相逆的坐标变换,测点坐标还原到原始值,计算<img file="955873dest_path_image013.GIF" wi="24" he="22" />坐标变换后的坐标<img file="265632dest_path_image033.GIF" wi="78" he="29" />,即为圆柱轴线L上一点,圆柱轴线L以<img file="186225dest_path_image006.GIF" wi="25" he="22" />为方向矢量;步骤10:依次计算测点集<img file="239631dest_path_image004.GIF" wi="33" he="28" />中各个测点到轴线<i>L</i>的距离;并记录测点集<img file="876149dest_path_image004.GIF" wi="33" he="28" />中各个测点到轴线<i>L</i>距离的最小值,所记录距离最小值对应的测点集合为包容区域内边界的接触点集合<img file="356809dest_path_image034.GIF" wi="36" he="29" />,所记录距离的最小值为圆柱的半径<i>R</i>;步骤11:判断包容区域内边界的接触点集合<img file="977146dest_path_image034.GIF" wi="36" he="29" />中接触点的数量是否为3;如果接触点的数量等于3,则对接触点进行的坐标转换,使坐标系<i>z</i>轴正向与圆柱轴线<img file="568665dest_path_image035.GIF" wi="16" he="18" />的方向矢量<img file="590847dest_path_image036.GIF" wi="22" he="20" />同向且平行,对接触点按其z轴坐标进行由小到大的排序,使<img file="507988dest_path_image037.GIF" wi="21" he="22" />、<img file="585927dest_path_image038.GIF" wi="21" he="22" />、<img file="981137dest_path_image039.GIF" wi="21" he="22" />的<i>z</i>轴坐标递增,此时误差包容区域旋转变动的方向矢量<img file="185722dest_path_image040.GIF" wi="25" he="26" />等于轴线<img file="804922dest_path_image035.GIF" wi="16" he="18" />方向矢量<img file="71955dest_path_image006.GIF" wi="25" he="22" />与<img file="270855dest_path_image041.GIF" wi="46" he="26" />的矢量叉乘;设置旋转变动角度<img file="766165dest_path_image042.GIF" wi="17" he="16" />的初始值;计算<img file="556267dest_path_image006.GIF" wi="25" he="22" />与<img file="310596dest_path_image041.GIF" wi="46" he="26" />的点乘,如果点乘结果等于0,跳转到步骤18,如果点乘结果不等于0,跳转到下一步;如果接触点的数量不为3,跳转到步骤14;步骤12:计算<img file="109925dest_path_image006.GIF" wi="25" he="22" />绕<img file="633310dest_path_image040.GIF" wi="25" he="26" />旋转<img file="391051dest_path_image042.GIF" wi="17" he="16" />角度后的矢量方向<img file="632676dest_path_image043.GIF" wi="32" he="22" />;然后,将3个接触点投影在垂直于<img file="206002dest_path_image043.GIF" wi="32" he="22" />的平面内,并计算3个接触点的外接圆的圆心,根据外接圆心与<img file="849473dest_path_image043.GIF" wi="32" he="22" />确定旋转后的圆柱的轴线<img file="246956dest_path_image044.GIF" wi="18" he="18" />;步骤13:计算所有非接触点到<img file="975878dest_path_image044.GIF" wi="18" he="18" />的距离<img file="382589dest_path_image045.GIF" wi="17" he="25" />,如果<img file="880566dest_path_image046.GIF" wi="70" he="28" /><img file="448951dest_path_image047.GIF" wi="17" he="18" />,则表示变动量不足,旋转角度<img file="399589dest_path_image042.GIF" wi="17" he="16" />变为<img file="108526dest_path_image048.GIF" wi="25" he="20" />;否则,变动过大,其余非接触测点超出包容区域,旋转角度<img file="257747dest_path_image042.GIF" wi="17" he="16" />变为<img file="200296dest_path_image049.GIF" wi="32" he="24" />;判断<img file="700547dest_path_image042.GIF" wi="17" he="16" />前后两次的迭代值之差是否小于设定的误差允许值;若<img file="121164dest_path_image042.GIF" wi="17" he="16" />前后两次的迭代值之差小于设定的<img file="921630dest_path_image042.GIF" wi="17" he="16" />误差允许值,则说明找到第4个接触点,则将<img file="35079dest_path_image043.GIF" wi="32" he="22" />赋值给<img file="258513dest_path_image006.GIF" wi="25" he="22" />,跳转到步骤10;若<img file="482821dest_path_image042.GIF" wi="17" he="16" />前后两次的迭代值之差不小于设定的<img file="606634dest_path_image042.GIF" wi="17" he="16" />误差允许值,则跳转到步骤12;步骤14:判断包容区域内边界的接触点集合<img file="890985dest_path_image034.GIF" wi="36" he="29" />中接触点的数量是否为4;如果接触点的数量等于4,设定圆柱半径增加量<img file="631408dest_path_image050.GIF" wi="26" he="18" />的初始值,跳转到下一步;如果接触点的数量不等于4,则跳转到步骤17;步骤15:<img file="456145dest_path_image050.GIF" wi="26" he="18" />加当前的圆柱半径<img file="637727dest_path_image047.GIF" wi="17" he="18" />得到<img file="653831dest_path_image051.GIF" wi="22" he="18" />,得到尺寸变动后圆柱,其轴线为<img file="553654dest_path_image052.GIF" wi="24" he="18" />,根据4个接触点到轴线<img file="916502dest_path_image052.GIF" wi="24" he="18" />的距离等于<img file="218171dest_path_image051.GIF" wi="22" he="18" />的关系,以轴线<img file="641062dest_path_image052.GIF" wi="24" he="18" />的方向矢量、轴线<img file="356077dest_path_image052.GIF" wi="24" he="18" />上一点为未知量,分别得到4个四元非线性方程,通过非线性方程组可以得到圆柱的轴线<img file="725878dest_path_image052.GIF" wi="24" he="18" />的方向矢量、轴线<img file="914677dest_path_image052.GIF" wi="24" he="18" />上一点;步骤16:依次计算所有非接触点到<img file="711731dest_path_image052.GIF" wi="24" he="18" />的距离<img file="382884dest_path_image053.GIF" wi="24" he="25" />,所有非接触测点对应的<img file="556376dest_path_image053.GIF" wi="24" he="25" />组成集合<img file="894954dest_path_image054.GIF" wi="37" he="28" />,如果<img file="659648dest_path_image055.GIF" wi="76" he="28" /><img file="755780dest_path_image050.GIF" wi="26" he="18" />+<img file="293815dest_path_image047.GIF" wi="17" he="18" />,则表示变动量不足,<img file="159003dest_path_image050.GIF" wi="26" he="18" />变为<img file="94598dest_path_image056.GIF" wi="34" he="18" />;如果<img file="678026dest_path_image057.GIF" wi="76" he="28" /><img file="990058dest_path_image050.GIF" wi="26" he="18" />+<img file="303228dest_path_image047.GIF" wi="17" he="18" />,则变动过大,其余非接触测点超出包容区域,<img file="612987dest_path_image050.GIF" wi="26" he="18" />变为<img file="981913dest_path_image058.GIF" wi="41" he="24" />;判断<img file="35320dest_path_image050.GIF" wi="26" he="18" />前后2次的迭代值之差是否小于设定的<img file="265313dest_path_image050.GIF" wi="26" he="18" />误差允许值;如果<img file="745973dest_path_image050.GIF" wi="26" he="18" />前后2次的迭代值之差小于设定的<img file="835152dest_path_image050.GIF" wi="26" he="18" />误差允许值,说明找到第5个接触点,将<img file="692249dest_path_image052.GIF" wi="24" he="18" />的方向矢量、轴线<img file="212967dest_path_image052.GIF" wi="24" he="18" />上一点分别赋值给轴线<i>L</i>的参数<img file="864528dest_path_image006.GIF" wi="25" he="22" />、<img file="768899dest_path_image059.GIF" wi="24" he="26" />,并判断是否满足判别准则,若满足则跳转到步骤18,若不满足判别准则,跳转到步骤10;如果<img file="492005dest_path_image050.GIF" wi="26" he="18" />前后2次的迭代值之差不小于设定的<img file="339000dest_path_image050.GIF" wi="26" he="18" />误差允许值,则跳转到步骤15;步骤17:判断包容区域内边界的接触点集合<img file="427042dest_path_image034.GIF" wi="36" he="29" />中接触点的数量是否大于等于5;如果接触点的数量小于5,跳转到步骤10;如果接触点的数量大于等于5,以接触点集合中4个为1个组合,并以其中1个组合为计算对象,根据步骤15、16中的试探性微量调整的方法确定<img file="756392dest_path_image050.GIF" wi="26" he="18" />;判断<img file="955292dest_path_image050.GIF" wi="26" he="18" />是否小于设定的<img file="686488dest_path_image050.GIF" wi="26" he="18" />误差允许值;如果<img file="742169dest_path_image050.GIF" wi="26" he="18" />小于设定的<img file="496498dest_path_image050.GIF" wi="26" he="18" />误差允许值,判断是否满足判别准则,如果满足则跳转到步骤18,如果不满足判别准则,换1个组合,重新计算<img file="59941dest_path_image050.GIF" wi="26" he="18" />,重新进行判断,依次迭代下去;如果<img file="583326dest_path_image050.GIF" wi="26" he="18" />大于设定的<img file="75487dest_path_image050.GIF" wi="26" he="18" />误差允许值,将计算得到的<img file="51534dest_path_image052.GIF" wi="24" he="18" />的参数赋值分别给圆柱轴线<i>L</i>的参数<img file="388974dest_path_image006.GIF" wi="25" he="22" />、<img file="32445dest_path_image059.GIF" wi="24" he="26" />,然后跳转到步骤10;步骤18:输出圆柱度误差、圆柱半径的最优值<i>R</i>以及圆柱轴线<i>L</i>的参数。
地址 541004 广西壮族自治区桂林市七星区金鸡路1号桂林电子科技大学东区机电工程学院