叶 茂 赵 巍 刘鹏鑫 连泰湖
(天津市高速切削与精密加工重点实验室,天津 300222)
整体叶盘在减重、降低应力和提高性能等方面具有优势,广泛应用于航空发动机、汽车等多个领域。整体叶盘作为一个整体结构,相邻叶片之间的通道深而窄、开敞性差,使得叶片型面的检测变得十分困难[1]。而叶片型面的检测精度直接影响到整体叶盘的加工质量,进而影响到发动机的工作性能,所以,如何快速又准确检测叶片型面的几何精度,成为亟待解决的问题。
将待测物体放入三坐标测量空间,三坐标测量机能快速测量出其形状尺寸。三坐标测量机具有测量精度高、重复性好以及自动化程度高的优点,适合叶片类复杂自由曲面零件的精密测量,代表了叶片型面等自由曲面测量的发展方向[2]。
路径规划的好坏关系到整体叶盘的测量精度,对于复杂曲面测量点的选取,Kam C L[3]提出了一种几何分解方法来实现曲面形状检测的思想,采用“曲面→曲线→点集→测量点集”的分解顺序,完成从曲面到测量点集的分解。Gao F等[4]针对不同叶片区域的各种曲率,提出一种基于弯矩理论的自适应曲面采样策略, 采样点的分布和数量可以根据几何特征变化自适应和准确地确定。Yi B W等[5]在考虑表面曲率、采样密度和正交误差等多因素的同时,提出了一种基于表面三角形网格简化的采样方法,所提出的方法可以应用于各种表面,包括自由形式表面和可显影表面。陆军华[6]提出的矩形细分规划方法,它能使得测量点随着曲率分布,能较真实地反映了被测曲面的几何形状信息。Cheng X等[7]提出了基于偏差分析的NURBS曲线和曲面的高效自适应采样方法,偏差被定义为理论曲线和重建曲线之间的差异,对于曲线采样,不太重要的点将从初始密集的曲线点上以迭代方式移除。检测路径的规划是为了使测头移动少量的距离并且不会发生干涉碰撞,Lin Z C[8]提出了基于最邻近法的检测规划方法,即总是在没规划的点集中选取与当前点最近的点作为下一点,且对测量点较多的检测曲面采用迭代方法划分成若干个区域后再进行求解。 Spyridi A J等[9]率先提出了方向锥概念:将测头简化为长度无限的射线,将测量点的所有能被测头检测到的测量方向的集合看作是一个有方向的椎体。但是该思想只考虑了当前测量面,没有考虑测头可能与其他部位发生碰撞干涉;Chang H C等[10]辅以两轴分度头,利用CAD数据对整体叶轮三坐标测量规划进行了研究,对两类干涉问题进行了考虑和处理:测头与零件的干涉以及测量路径之间的干涉。吴一凡[11]基于可达锥原理的思想,根据被测点和避障点确定可行的位姿判断区域,且将空间区域投影到平面,转化为平面判断区域。 Gao Y等[12]通过分析导致可访问性问题复杂性的几何特征,推导出一个新模型,在可访问性和封闭整体叶盘的几何结构之间建立关系,基于该模型,提出一种2D投影3D重构算法来计算探头的可访问区域。
本文旨在开发出一套基于OpenGL的整体叶盘虚拟仿真检测系统,在整体叶盘实物测量之前,对整体叶盘进行测量路径的规划,以及无干涉的测头位姿计算,然后在虚拟仿真系统里进行测量,不仅可以直观形象地观察到三坐标测量机的运动过程,并且还能检测测量过程中出现的问题,最终优化测量程序。
C#是一种面向对象、面向组件、可以运行于.NET Framework和.NET Core之上的编程语言。OpenGL即为开放式图形库,是用于渲染2D、3D矢量图形的跨语言、跨平台的应用程序编程接口。它提供了近120个绘制点、线点多变形等3D图形的命令,可以完成绘制物体、变换、光照处理、着色、位图和图像、纹理映射和动画等基本操作,通过把这一系列基本操作进行组合,可以构造更复杂的3D物体和描绘丰富多彩、千变万化的客观世界[13]。OpenGL广泛流行于游戏、医学影像、地理信息及气象模拟等领域,是高性能图像和交互性场景处理的工业标准。本文将C#和OpenGL结合起来开发整体叶盘检测的虚拟仿真系统,大大提高了开发效率。
随着计算机技术的快速发展出现了很多优秀的三维建模软件,用户可以在这些软件中制作不同格式的三维模型,例如:3ds格式、obj格式及gltf格式等, 其中obj模型是以文本形式存储的三维模型[14]。虽然OpenGL对三维图形有强大的控制功能,但在对一些复杂物体进行建模时,OpenGL和专业的3D建模软件相比,还是有很大的差距。为避免使用OpenGL本身建模,本文利用OpenGL可以调用相关函数的功能,对obj文件进行读取和显示。
将SolidWorks中的实体模型保存为3D Object形式,并转换为obj模式的TXT文件形式,然后在OpenGL中调用相关函数读取该模型的obj文件,绘制出三坐标测量机和整体叶盘的模型。绘制结果如图1所示。
图 1 三坐标测量机和整体叶盘模型
使用三坐标测量机对叶盘型面进行测量,首先要进行测量路径规划,其中包括测量点的选取、测头位姿的计算和测量轨迹规划。
整体叶盘叶片型面结构复杂,一般用截面线来描述其形状。将整体叶盘实体模型导入SolidWorks,保存其每个叶片上坐标点obj文件,对坐标点进行B样条曲线拟合,得到拟合曲线。
P次B样条曲线的方程如下:
其中:Pi为控制顶点;i为控制顶点和样条基函数的编号;k为阶次;u为参变量,为基函数,为
部分控制点如表1所示。
表1 部分控制点坐标
通过控制点拟合出来的B样条曲线如图2所示。
图 2 拟合曲线
由上分析可知,截面线是反映叶片的重要几何因素。因此,准确测量截面线是整体叶盘叶片加工中不可或缺的一环。为提高测量效率,保证测量精度,测量点应合理地分布在截面曲线上,以便尽可能根据测量点的数据来重构或者反映出叶片加工的信息,将测量误差对测量结果的影响减少到最小[15]。
采样点越多,越能精确反映出物体的形状,但过多的采样点会降低测量效果,因此要选用合适的采样方法采集尽可能少的点来反映物体的形状。常用的测量点集规划方法有均匀采样:等步长法、等弧长法和等参数法;还有一种等弦高采样方法:每两个点之间的弦高值相等。对于均匀采样,不适用于叶片这种复杂曲面的采样,等弦高采样方法能对复杂曲线有一个好的采样效果,但如果给定的弦高阈值过大,则会造成叶盆叶背处(曲率变化较小)采样过少,甚至没有采样点;如果给定的弦高阈值过小,则会造成叶片前后缘处(曲率变化较大)采点过于稠密,不利于测量[16]。本文提出一种在均匀分布的基础上,基于曲率的自适应采点算法,能在曲线平坦的地方采点稀疏且均匀,在曲线弯曲处采点稠密。
首先使用等弧长法在拟合曲线上均匀分布足够多的点,然后计算每两个点之间的连线中点到运动轨迹的最短距离,得到最大值和最小值,由最大值和最小值的平均值当作阈值H,为了防止叶盆叶背处采集过少的点,将弦长阈值L考虑在内,如果每两个点之间的连线中点到运动轨迹的距离不小于阈值H或者两点之间的弦长不小于L,就将此点纳入采样点集,反之删除该点,继续判断下一个采样点。
具体操作步骤如下:
(1)首先使用等弧长法在原拟合曲线上均匀分布足够的点(共计400个点),如图3所示。
图 3 等弧长法均匀分布测量点
(2)计算每两个点之间的连线中点到运动轨迹的最短距离,如图4所示。A、B、C和D这4点是采用等弧长法在截面线上的部分采集点,计算每点的曲率半径,R是A和B两点曲率半径的平均值,L是A和B两点之间的弦长,那么A、B两点之间的最短距离h可通过以下公式获得。
(3)计算出最大距离h1和最小距离h2,h1和h2的平均值即为距离阈值H,并选取合适的弦长阈值L。
(4)存储截面线上第一个点,计算下一点和第一个点之间连线中点到运动轨迹的最短距离h和两点之间的弦长l,如果h≥H或者l≥L,就将此点纳入测量点集,反之删除该点,继续判断下一个点是否纳入测量点集。部分程序如下:
foreach(string XY in arrayList)//判断采样点是否符合采样条件
{
if(h≥H||l≥L)
{
sW.WriteLine(st);//纳入测量点集
R0=R;X0=X1;Y0=Y1;
}
J++;//点序数+1
}
图4 选点示意图
最终由筛选的采样点点集拟合的曲线如图5所示。
图 5 采样点拟合曲线
(5)在选取相同采样点的情况下(52个),通过比较等弧长法、等弦高差值法和本文采样方法拟合曲线的偏差比较来判断采样的好坏。通过表2对比3种采样点的拟合曲线的RMSE(均方误差开根号)、R-Square(可决系数,越接近1拟合越准确),基于平均弦高差值的采样方法误差较小,说明基于平均弦高差值法的采样方法更能准确反映叶片截面线。
表2 3种采样方法拟合曲线结果对比
本文提出的基于曲率的采样方法完整的流程图如图6所示。
图 6 基于曲率的采样方法流程图
由于整体叶盘相邻叶片之间通道深而窄,三坐标测量机在测量时测头很容易与待测叶片以及相邻叶片发生干涉碰撞,造成测头的损坏,所以要选用合适的测头位姿防止干涉碰撞现象的发生。合理的测头位姿应当尽可能对所有测量点进行测量,并且不会产生干涉问题。本文根据整体叶盘相邻叶片相同堆叠轴高度处的变化趋势是一致的结构特点,对待测叶片的堆叠轴方向进行截面投影,使测头位姿的计算问题由三维计算转换为二维计算,降低了测头位姿的计算难度。
具体步骤如下:
(1)将整体叶盘模型导入UG中,建立坐标系,将待测叶片的堆叠轴与X轴重合,如图7所示。
图 7 整体叶盘模型
(2)计算待测叶片每条截面线所在平面的法向量,得出测头的旋转角度。
(3)测量区域的划分。整体叶盘相邻叶片之间结构复杂,测头很难一次性扫描完整的叶片截面线,所以就需要将待测叶片截面划分区域,方便测量。本文将叶片截面线划分为4段,如图8所示。P1、P2为叶背、叶盆处曲率最大的点,K、H为前后缘处曲率最大的点,4个分段点将截面线分为A1、A2、B1和B2共4个区域。连接每条截面线上相同的分段点,将叶片分为4个区域来进行测量。
图 8 截面线分区域示意图
以前缘点K(后缘点H)为圆心,r为半径,画圆,与截面曲线分别交与A、B点,计算A、B两点之间的截面线长度D和圆弧长度L。
其中:C′x(u)、C′y(u)、C′z(u)为弧长的微分, α为圆弧角度AKB(AHB)的弧度值。当两者之间截面线长度和圆弧长度相等时,A、B即为前缘(后缘)曲线与叶盆、叶背曲线的分段点。
(4)如图9所示,使用UG截面分析功能,可以得到相邻叶片与待测叶片的相交轮廓线。计算出同一截面下相邻叶片的相交轮廓线的前、后缘曲线与叶背处曲线的分段点(KP,HP)和前、后缘曲线与叶盆处曲线的分段点(KB,HB),将KP、HP、KB和HB这4点分别向所在相交轮廓线的法线方向向外偏置一个测头半径的距离,得到KP1、HP1、KB1和HB1的4个标志点,如图10所示。
图 9 待测叶片截面线所在平面相邻叶片截面线
图 10 测杆倾斜角度示意图
(5)连接标志点HB1和待测截面线P1的直线(测杆)与Z轴的夹角α即是测量B1区域时测杆的倾斜角度;连接HP1和待测截面线P2的直线与Z轴的夹角β即是测量B2区域时测杆的倾斜角度;同理,也可以得出测量A1、A1区域时测杆的倾斜角度 α,、 β,,具体如图10所示。
在靠近叶片顶端位置时,用待测截面线所在的平面与相邻的叶片相交,会出现相交轮廓线不规则和只有一条待测叶片截面线的情况,如图11所示。
在计算图11a的情况下的测头倾斜角度时,如图12所示,根据测量区域划分可知点P1、P2,运用UG曲率分析功能,找到相交轮廓线的点HB、KP,然后向其所在的相交轮廓线所在的法线方向向外偏置一个测头半径的距离,得到标志点HB1、KP1,HB1和P1的连线与Z轴的夹角即为B1区域的测头倾斜角度;KP1和P2的连线与Z轴的夹角即为A2区域的测头倾斜角度,其他区域的测头倾斜角度可由2.3章节中的(5)得到。
图 11 相交轮廓线的其他情况图
图 12 相交轮廓线不规则测杆倾斜角度示意图
当只有一条待测叶片截面线时,也就是待测叶片截面线所在的平面与相邻叶片相交没有轮廓线,那么该条截面线的测头倾斜角度只需要和上一条截面线对应区域的测头倾斜角度相同即可避免干涉碰撞。
(6)由2.3章节中的(2)和(5)中所得待测截面线测头的旋转角度和测量每个区域测杆的倾斜角度,即可确定每个区域避免干涉碰撞的测量位姿。
2.4.1 检测点顺序规划
在前面规划测量点时是根据叶片截面线选取和存储的,那么对于测量点的测量顺序按照截面线的顺序来进行。同一条截面线上的检测点本来就是按照顺序来进行存储的,在同一区域下,如果在某一测头位姿下,可以触测到这条截面线上A1、A2、A3和A4点,按照路径最优排序,那么最优的触测顺序就是A1→A2→A3→A4或者A4→A3→A2→A1。在本条截面线测量完成后,比较本条截面线末尾点和下一条截面线的首、尾点的距离,如果和下一点尾点距离较近,那么就将下一条的点顺序颠倒过来;如果和下一点首点距离较近,那么就和上一条检测顺序一样。具体检测点顺序规划如图13所示。
图 13 检测点顺序规划
2.4.2 检测区域顺序规划
在2.3中,将一条截面线划分为4个区域,将叶片上所有截面线上相同的分段点连接,可以将叶片划分为4个区域:上叶背区、下叶背区、上叶盆区和下叶盆区,所以对于叶片整体的测量,就需要先测量一个区域,然后依次测量相邻的区域,直至结束一个叶片的完整测量。为了防止测头与整体叶盘发生干涉问题,在测完一个叶片后,将测头沿着整体叶盘径向方向,移动一个整体叶轮直径的高度,然后再对整体叶盘进行分度定位,接着重复上一个叶片的测量操作来进行下一个叶片的测量。
三坐标在触测零件表面时,真实的测量结果并不是接触点的坐标,而是测头的球心坐标,因此必须在测量时进行测头半径的补偿[17]。另外在实际测量过程中,由于工件表面和理论模型存在一定误差,导致测头与工件的实际接触点和期望接触点不一致,如果此时按照期望接触点法矢方向进行半径补偿将会产生一定的余弦误差。
如图14所示,产生误差的大小与测球的半径及实际接触点与期望接触点的偏差有关,偏差越大,夹角越大,误差越大[18]。半径补偿误差公式为
图 14 测头补偿误差图[19]
其中:r为测头半径,α为测头逼近位置与实际测量点法矢方向之间的夹角。
叶片上实际点A(x′,y′,z’)的坐标可由测头中心坐标O(x1,y1,z1)在此时测头逼近测量点方向上补偿测头的半径r大小即可,若测头不沿测量点的法矢方向逼近,则需将余弦误差考虑在内。
虚拟仿真过程实际上是将三坐标测量叶片的过程在屏幕上显示出来,形成一幅幅画面,通过双缓存技术,使画面连续地快速显示,从而可以得到动态的测量过程[20]。根据本文第1节在OpenGL中建立的三坐标测量机和整体叶盘模型,以及第2节中整体叶盘测量路径的规划及无干涉碰撞的测头位姿计算,利用解释器将坐标转换成NC代码,输入到基于OpenGL建立的整体叶盘虚拟仿真软件,就可以对整体叶盘进行仿真检测,仿真过程如图15。
图 15 整体叶盘虚拟仿真过程图
本文主要研究了整体叶盘测量路径规划以及仿真系统搭建的问题,为了优化测量路径,在均匀分布的基础上,提出了一种基于曲率的自适应采样方法,使测量点数目减少,采样点分布更加合理。为了防止测量过程中发生干涉碰撞问题,计算了每个区域的无干涉碰撞的测头位姿。并且利用C#在OpenGL的基础上搭建了仿真测量系统,实现了仿真测量,为后续整体叶盘的实际测量奠定了基础。