薛 刚 顾凯端 杜 雄
(上海机床厂有限公司 上海 200093)
干涉检查主要是判断不同物体在空间是否占有相同区域的问题[1],主要分为二维干涉检查和三维干涉检查两类。三维干涉检查是数控仿真技术的基础,对此国内外展开了大量的研究,目前干涉检查主要包括以下方法[2]:
(1)离散样本检测法 对运动物体通过选定一个时间间隔得到一个时间序列,求出各运动物体在时间间隔中的位置和方向,采取静态物体干涉检查算法判断是否发生干涉。该方法需要解决的主要难题是如何选取合适的时间间隔,如果时间间隔取得过长可能会出现中间结果无法判断的问题;如果时间间隔取得过短就会造成计算的复杂性,导致计算效率降低。
(2)回扫空间法 运动物体在空间中扫略形成的空间体,通过回扫空间体相交区域进一步得出运动物体之间的干涉碰撞情况。该方法即使判断出物体在运动过程产生干涉,很难得到准确的干涉时刻和位置。
(3)相交检测法 将运动物体各几何要素包括点、边、面的运动轨迹表现成时间函数的方式,推导出满足干涉条件下的方程组,通过对这些方程组的求解,可以得到运动物体发生干涉的时间和位置信息。该方法存在的主要问题是方程组的求解复杂,而且容易产生丢解的情况。
对于卧式复合磨削中心来说,干涉检查是机床加工前执行数控代码的一次预检查过程,可避免实际加工过程中砂轮与头尾架以及工件发生的干涉而引起的安全事故。基于此目的,本文基于回扫空间法和相交检测法提出一套干涉检查算法,并利用刀柄工件进行算法的功能检验。
卧式复合磨削中心的头尾架前后顶尖轴线、砂轮刀具所在的磨头主轴轴线以及砂轮修整器的主轴轴线等与加工成形运动有关的轴线位于一个平面内,依靠砂轮架转塔B轴的回转切换实现各种型面的磨削加工。相对于多轴数控加工中心具有的复杂加工轨迹路线来说,卧式复合磨削中心的干涉检查就显得比较简单。
由于卧式复合磨削中心的几个砂轮刀具磨头一般安装在砂轮架转塔体壳的外侧且在防护罩中外露,在非切削过程的B轴回转运动和切削过程的进给运动中砂轮容易与头尾架和工件发生干涉,如果在砂轮刀具上选取一些特征点,通过判断砂轮特征点和头尾架、待加工工件的位置关系就可完成卧式复合磨削中心加工的干涉初步检查。由于砂轮刀具的特征点位置特殊,其干涉检查问题并不需要复杂的三维几何体参与,经探索干涉检查可采用简单的二维平面干涉检查来解决。对于典型的带有外圆砂轮、端面外圆砂轮和内圆砂轮的卧式复合磨削中心[3],其二维干涉检查特征点如图1所示,包括头尾架等靠近砂轮侧的边界线。
图1 卧式复合磨削中心二维干涉检查特征点示意图
由于干涉检查算法不止局限对砂轮与头尾架和工件之间的干涉碰撞检查,而且还可以对加工输入的参数进行检查,包括待加工工件信息、砂轮配置信息、数控加工相关信息,以此判断输入参数的正确性。在参数输入正确的情况下导入数控加工信息,在算法内部对是否干涉进行判断,从而输出结果判断哪几行数控代码可能发生干涉问题,提醒操作人员注意,指导实际生产,基于该思路设计的干涉检查算法总体流程框图如图2所示。
图2 干涉检查算法流程图
加工过程中,砂轮的回转变换、工作台的运动以及砂轮架导轨的进给运动,都会造成砂轮、工件以及头尾架特征点的变动,这些变动皆可采用坐标变换以矩阵方式实现。对于二维干涉检查算法,主要是在二维坐标平面内采用坐标平移和旋转变换。
根据坐标变换原理,齐次坐标点(x,y,1)T经位移(a,b)平移后到达(x′,y′,1)T的坐标变换关系为:
齐次坐标点(x,y,1)T在原点绕 Z轴转动角度θ后到达(x′,y′,1)T的坐标变换关系为:
如果不是在坐标原点而是在指定点进行的旋转变换,可以采用变换的组合进行解决,即先将指定点坐标平移到坐标原点再进行旋转,最后又将旋转后的坐标平移回指定点,变换过程可参考文献[4],此处不再赘述。
按照卧式复合磨削中心二维简图用矩形来代表头尾架以及工件外形包络线开发的检查算法虽然简单,但其实用价值不高,局限性太大,尤其对于形状各异、结构较为复杂的待加工工件走不通。
实际加工过程中,不能依靠简单几何图形变换之后的相互关系比较,经探索得到一种较为简洁的干涉检查判断依据,其基本的数学原理如下:
(1)如果点位于所需判断的区域外,沿该点向某方向做一条射线,则这条射线与区域的相交点个数必然为偶数(没有交点,视为交点数为零)。
(2)如果点位于所需判断的区域内,沿该点向某方向做一条射线,则这条射线与区域的相交点个数必然为奇数。
(3)如果点位于所需判断的区域边界上,需要报警,表明发生了重合。
如图3所示,A点位于所需判断的复杂区域外,由A点出发的射线和区域的交点个数为4,是偶数;B点位于所需判断的复杂区域内,由B点出发的射线和区域的交点个数为1,是奇数。
图3 点和复杂区域关系图
通过判断交点个数就可以判断是否和区域发生干涉。为了减少判断次数,可以先判断该点是否落在这个复杂区域所外接的矩形区域内,即判断该点的横纵坐标和所在区域内点的极限坐标值点的大小。如果坐标值位于外接的矩形内就需进一步进行干涉检查;如果不在外接矩形区域内,就开始下一个坐标点的判断,直到所有点判断完毕,则判断结束,具体算法流程图如图4所示。
图4 点位置判断流程图
通过对特征点是否在指定区域的判断可得出干涉检查结果,如果砂轮特征点在头尾架或者工件所在区域内,那么砂轮和头尾架或者工件就发生干涉,反之则不发生干涉。
对于用砂轮特征点坐标来判断砂轮和头尾架或者待加工工件之间的干涉检查,如果只对静态结果进行的判断,只能说明在该区域没有发生干涉,如果工作过程中发生干涉是无法判断的。
为了解决这种情况采用了插值的思想,已知起始坐标点位置和已知所走过的路线轨迹,可以在起始点和终点位置之间按一定的间隔采集所走过点的坐标,将这些坐标分别和待检查区域进行干涉检查,如果点取得足够密集那么相当于把点连成了线,这样就可以避免在加工过程中产生干涉却检查不出来的情况,如图5所示。插值的大小可根据其它机床实际加工的经验综合得到。
图5 中间结果干涉示意
干涉检查是基于坐标点相对位置的判断算法。对于指定机床,头尾架特征点坐标可以方便获得,然而对不同的加工工件,特征点坐标不同,需要用户输入的工件信息也不同。然而对一些加工工件外形较为复杂,需要输入的点坐标过多,其实用性不强。为解决工件输入的问题,根据磨削加工的特点,加工工件多数为轴对称几何体,可以只输入一半特征点坐标,将工作量减少一半,磨削过程中忽略非加工面和非重要特征面,如退刀槽、小孔等,可以简化输入信息。
以如图6所示的刀柄为例说明工件信息的导入。靠近头架端为输入工件信息的起始位置,Z坐标从0开始输入,提取上述工件的特征点信息,得到一共11个特征点坐标,如表1所示。在实际应用层面还可以通过导入用户的工件信息,直接生成工件轮廓特征点坐标,这部分内容有待后续开发。
图6 刀柄三维图
表1 刀柄工件特征点坐标
为了保障算法在绝对坐标和相对坐标下编程算法的通用性,对数控代码进行解析,干涉检查采用相对位移的驱动输入形式。根据数控代码解析出的相对位移值、当前所选砂轮和当前砂轮加工角度即可进行干涉检查判断。表2所示的是运动信息解析的参数和参量,通过直接调用上位机解析出的数控代码信息就可实现这部分功能。
表2 运动信息解析的参数和参量
表2中,当工作台由头架方向朝尾架方向移动时,定义ΔZ为正,当砂轮靠近工作台时,定义ΔX为正。定义砂轮正常加工圆柱表面时角度θ =0°;当加工位置绕B轴顺时针旋转为正,逆时针旋转为负。定义选择砂轮1时是外圆砂轮,选择砂轮2时是端面外圆砂轮,选择砂轮3时是内圆砂轮。通过该解码规则将加工位移信息依次储存,通过干涉检查算法调用每段加工信息,判断对应代码是否发生干涉。
首先利用C++编程语言开发如图7所示的底层参数输入界面,底层参数信息包含了机床配置信息,头尾架形状和安装位置信息等。
图7 底层参数输入界面
机床配置信息改变可以在这个界面进行修改,如果不改变就采用默认值,这样在更换机床型号之后不用改动底层代码,算法适用范围更广。
之后开发图8所示的干涉检查输出界面,可以通过该界面完成头架位置的调整,砂轮型号的更换,砂轮架回转点位置的调整等,以及加载工件信息。干涉检查对输入参数的判断是否合适,对砂轮是否干涉,在哪条指令和何处发生干涉给出提示,为机床正常加工提供保障。
图8 干涉检查输出界面
这里以图6、表1的刀柄工件为例进行验证,调整砂轮架位置使外圆砂轮运动到头架外侧并与头架发生干涉,此时图9所示的软件界面先是输出刀柄轮廓图,后是提示外圆砂轮和头架有干涉产生,干涉检查结果和预设的一致。
图9 干涉结果显示
基于卧式复合磨削中心,提出利用特征点位置坐标进行二维干涉检查的坐标变换算法,利用C++开发了界面,以刀柄工件在典型的带三个砂轮的砂轮架转塔上完成了加工前干涉预检查,避免了工件超加工范围和B轴回转不合理等问题。