曾定邦,李俊杰,周雄辉
(上海交通大学 模具CAD国家工程研究中心,上海 200030)
在制造业中,由于制造误差,最终成品与理论设计模型之间不可避免的会存在偏差。为了保证产品达到设计要求,对成品的质量检测至关重要,特别是对于曲轴这样的关键零部件。
曲轴是发动机中重要的受力零件,若成品曲轴的回转中心线与力学惯性主轴不重合,则旋转时产生的惯性合力和惯性合力矩会给轴承带来附加动载荷,此时曲轴处于动不平衡状态[1]。若动不平衡量超过许用值,则会严重影响产品性能,加快轴承磨损,降低发动机的寿命。因此对于制造出的曲轴,都需要进行动平衡试验,或检测计算出动不平衡量,为后续校正操作提供重要参考。曲轴检测项目包括尺寸精度和动力学性能等,在几何学上可以用横截面积、体积、质心位置和不平衡量等特征参数来衡量。在转子的动平衡检测方法中,通常是将实体转子固定在动平衡机上旋转,通过测量振动波形的振幅和相位计算出不平衡量,该方法存在依赖设备,依赖经验,实验周期长等缺点。
传统的特征参数检测方法,需要手工测量实物参数,然后将测量数据代入经验公式中计算,误差较大。随着CAD/CAM和三维测量技术的发展,三维点云被广泛地应用于制造和测量行业中。通过三维激光扫描设备获取的三维点云,可以反映出实物模型的表面特征与几何形状,并且具有扫描速度快,获取信息量大,测量精度高等优点。
有研究提出通过三维测量得到的点云数据或网格模型,来直接获取实物的特征参数。Zhang等[2]提出通过三角面片将网格模型拆分为四面体单元,计算所有单元的有向体积并累加得到总体积。王泉德等[3]将三角面片投影到选定的平面建立五面体单元,通过累加五面体单元的带符号体积得到模型体积。徐伟恒等[4-5]通过Graham算法获取截面点云的凸包,根据凸包多边形求出实物的横截面积和质心位置。王洪蜀等[5]基于体元分割的方法,将点云数据所在空间区域细分为有限的立方体元,通过体元内包含点的数量来判定体元有效性,累加有效体元得到模型体积。李鹏宇等[6]提出先根据点云数据逆向建模出CAD模型,然后通过投影累加的方法计算出特征参数。
以上研究主要针对特定参数,在不同类型的特征参数提取上缺乏通用性,在计算精度上也还可以改进。对此本文提出一种基于点云数据的特征参数计算方案,能够实现各类特征参数的提取计算;提出一种基于截面变化的自适应分层算法,引入Delaunay三角化算法实现截面的曲线轮廓重建,以提高特征参数计算的效率与精度。
本文提出的基于三维点云数据的特征参数计算方案,采用离散-堆积的思想,先将复杂模型分割为有限段,求取每段的参数,再累积计算整体三维特征参数。假定分层方向为z轴,整体计算方案的步骤如下:
(1)沿z轴建立平面集合Γ={τ1,τ2,…,τn},n为平面数量,其中τk为位于z=zk处的切片平面。
(4)根据以上步骤计算得到的各段的参数,累积计算出三维模型的整体参数。
在建立切片平面集合Γ时,等间距的分层方式容易实现,但计算效率不高,本文提出一种自适应分层算法来动态建立切片平面。整体的特征参数计算方案如图1所示,输入为三维点云数据,输出为需要的三维特征参数。
图1 特征参数提取方案流程图
由于外界环境的干扰,三维激光采集设备直接获取的点云可能会存在冗余点、离群点等问题,需要通过点云预处理过程来消除干扰、提高表面精度,同时精简点云。Geomagic Wrap是一款强大的逆向工程软件,可以有效地处理点云数据。以某汽车发动机曲轴的点云数据为例,将点云数据导入软件,在经过表面着色、去除非连接项、删除体外孤点、统一采样等操作后,得到了表面质量良好的点云模型,如图2所示。
图2 点云模型
点云切片的目的是,在给定切片平面位置处,采集平面邻域内的点,提取出模型在切片平面处的截面轮廓信息,以便计算相关物性参数。
假定分层方向为z轴,切片平面τk位于z=zk处,根据点云密度选取合适的邻域宽度t,将z坐标在(z-t/2,z+t/2)范围内的空间称为平面τk的邻域。提取截面点集的常用方法为直接投影法[7],即如图3a所示,将邻域内所有点垂直投影至切片平面。该方法简单易实现,但可能会包含较多的冗余点。本文采用基于虚拟边求交法[8]的点云投影方案,如图3b所示,将邻域分为正负两侧,寻找平面两侧的最近点对并将其连线作为虚拟边,与平面τk求交得到截面点。两种方法提取出的截面点集分别如图3c、图3d所示。
(a) 直接投影法 (b) 虚拟边求交法
(c) 直接投影切片结果 (d) 虚拟边法切片结果 图3 切片结果对比
对比图3c、 图3d可以看出,直接投影法的得到的截面点集为带状,冗余点较多。虚拟边求交法得到的点集,具有点数精简、间隔均匀等优点,可直接用于后续的重建过程。
切片提取出的截面二维点云,散乱无序,无法反映截面轮廓信息,因此需要将截面点集按照模型原本的拓扑关系连接起来,即重建出二维轮廓。在散乱点的二维拓扑重建领域,有基于近邻搜索的方法,其缺点在于不能处理多轮廓和轮廓出现狭窄凹陷的情况;基于图像处理[9]的算法,其重建出的曲线精度直接受网格分辨率的影响;基于α-shape的二维重建方法[10],其缺点在于严格要求点云的密度均匀。
考虑到同一截面会出现多个轮廓的情况,本文采用基于Delaunay三角化的Crust算法[11]来实现轮廓的二维拓扑重建,算法步骤如下:
(1)输入点集S,建立点集S的Voronoi图[12]Vor(S),并保存Voronoi顶点集合V。
(2)合并点集S与V得到新的点集S′=S∪V。
(3)计算出点集S′的Delaunay三角剖分[13]DT(S′)。
(4)遍历DT(S′)中的边,对于边eh,得到其端点为vh1和vh2。若满足vh1,vh2∈S,则将eh保存至Crust边集合E。
(5)输出边集E,即为点集S的Crust,存储了原始点集S中顶点间的拓扑连接关系。
(6)根据原始点集S和Crust算法输出的边集E,将S拆分和排序,输出轮廓线集合。
(a) 单层截面轮廓重建结果
(b) 模型整体切片及重建结果图4 切片轮廓重建结果
重建后的切片截面,需要提取出横截面的面积和质心坐标。以图5a中A和B剖面为例,代表性的轮廓包含多环截面、孔洞截面等,需要通过算法自动归类,并精确计算出截面参数。
(a) 剖面位置
(b) 多环截面 (c) 带孔洞截面 图5 分层切片结果
(1)
(2)
在计算复合面积与复合质心时,若轮廓线Lki代表内轮廓,即孔洞,则带符号面积取负值。设置一个轮廓面积符号因子fki,满足:
(3)
则该层横截面的复合面积Sk为:
(4)
(5)
问题的关键在于计算fki,由于三维模型不会自相交,则实际情况中不会出现轮廓线相交的情况。对于轮廓线Lki,若它的任意一个顶点落在其他轮廓线的区域内,则认为该轮廓线Lki被其他轮廓线包含,此时fki=-1,否则fki=1。判断给定点是否被多边形区域包含,在计算几何领域已经有多种成熟的算法[14]。
将模型均匀分层比较简单和直观,在平面密集的情况下能够得到较精确的结果。但一方面考虑到模型的结构特点,横截面变化较均匀的轴段无需密集分层。另一方面考虑到计算效率,在单次切片中,轮廓重建的耗时远大于截面参数计算,因此在保证计算精度的条件下,应该尽量减少分层层数,以缩短总的算法运行耗时。因此本文提出一种基于横截面变化的自适应分层算法,能够有效减少算法的运行耗时。
自适应分层算法的步骤为:先按给定的初始层厚t0分割模型,对于每一段,计算出相邻两层间的横截面积变化率εsk和质心位置相对偏移量εck,只有当二者都在给定的阈值范围之内时,才认为当前段的局部切片厚度合理。否则,将切片厚度减半,在该段的中间位置增加一层切片,并进入迭代计算,直到局部满足上述阈值条件为止。
(1)横截面积变化率
相邻两层间,前后横截面积分别为Sk和Sk+1,层厚为t,定义横截面积变化率εsk与阈值δs。
(6)
(2)质心位置相对偏移量
计算质心位置绝对偏移量:
(7)
定义局部切片段的等效截面半径Rk,计算方式为,以前后截面的横截面积计算出等效圆半径,并取平均值作为等效截面半径。
(8)
则质心位置相对偏移量为:
εck=dk/Rk
(9)
综合考虑二者,迭代计算终止条件为εsk<δs且εck<δc。阈值取得越小,迭代次数越多,计算精度越高,但是同样耗时也更多。在不同的模型复杂度下,应有不同的最佳阈值,使计算精度与计算效率达到平衡。实验结果显示,通常取δs=δc且在0.2%~0.5%时,可在保证计算效率的情况下达到较高的计算精度。
均匀分层与本文自适应分层结果的对比如图6所示。从图6中可以看出,在层数同为396的情况下,自适应分层方法在截面变化平缓的轴段切片较稀疏,截面变化急剧的轴段切片细密,能够有效提高计算精度与效率。
(a) 均匀分层结果
(b) 自适应分层结果图6 分层结果对比
(10)
由以上结果可以计算出模型的总体积V如下:
(11)
(12)
除了计算体积和质心,本文三维网格模型分层累积的参数提取方法,可以同理推广至其他的复杂三维特征参数,例如刚性转子在转动时的不平衡量。
表1以体积参数的计算为例,选取了3个不同级别的精度,在保证计算精度相同的前提下,对两种分层算法的切片次数和运行耗时进行了对比。
表1 体积参数计算耗时对比
从表1中可以看出,计算效率在切片次数上提升大于9%,运行耗时上提升大于12%,本文的自适应分层算法在保证切片精度的同时能够有效减少切片次数、缩短计算时间,其高效性得到验证。
在刚性转子的动平衡原理[15]中,对于直径和厚度的比值D/h≥5的转子,可以将其视为单个薄圆盘。若密度为ρ,体积为V,质心坐标偏移转轴的向量为r,则该圆盘产生的不平衡量为:
U=mr=ρVr
(13)
图7 不平衡量分解示意图
(14)
(15)
在Window 10平台上,基于UG NX 10.0平台实现点云数据可视化,使用Visual Studio 2013编写程序,实现了文中的参数提取算法。以图2中的汽车曲轴的点云模型为例,其轴向长度为420.60 mm,包含232344个点。选取曲轴两端作为校正面A与B,将切片后各段的不平衡量分解到两个校正面上并进行累加。
考虑模型的结构特点,选取初始层厚t0=8mm,取δs=δc=δ,在不同的阈值δ下,计算出模型的各项特征参数如表2所示。从表中看出,在自适应分层切片过程中,随着截面变化阈值的减小,分层数量逐渐增加,所有特征参数的计算结果都趋于稳定。体积参数的收敛速度较快,当阈值δ=0.5%时就达到稳定值1469.5mm2。不平衡量参数由于计算过程复杂,当δ=0.3%,分层数量达到8028以后才开始收敛。最终取δ=0.2%,分层数为10907时的计算值作为不平衡量参数计算结果。
表2 参数计算结果
根据客户提供的该型号曲轴的标准CAD设计模型,通过三维软件UG NX测量出各项参数,得到模型体积和质心坐标,将标准的CAD模型分层后计算出不平衡量作为实测值。本文算法的计算结果与通过标准CAD模型得到的实测结果对比如表3所示。
表3 计算与实测结果对比
由上表可知,体积参数和质心参数的计算误差均不超过0.3%,计算精度高。两端校正面上的不平衡量参数,由于计算复杂,运算过程存在累积舍入误差,整体计算误差在2%以内,满足工程领域要求。从误差分析上看,曲轴的各项特征参数的计算值,可以为转子的动平衡检测提供参考意义。
测量实体模型的特征参数,在许多领域都有着重要应用。通过实物的三维点云模型来计算特征参数,可以有效地避开逆向重构过程,缩短数据处理时间,节约实验成本。相比其他文献中所的采用的各种近似算法和经验公式,本文的截面参数提取算法能够准确地重建出截面轮廓,并精确计算出截面积和质心位置。同时,本文提出的自适应分层算法,在保证计算精度的前提条件下,能够有效减少切片次数,缩短计算时间。通过复杂的曲轴点云模型参数提取实例,算法的精确性和高效性得到了验证。