APP下载

数控加工仿真系统的研究现状与发展趋势*

2011-10-20唐建生石社轩高志华

制造技术与机床 2011年12期
关键词:碰撞检测代码刀具

熊 毅 王 哲 唐建生 石社轩 陆 茵 苏 君 高志华

(河南工业职业技术学院,河南南阳 473009)

1 绪论

数控加工程序编制完成后,需对加工程序进行正确性检验[1]。如果程序中存在错误,可能导致工件过切或者欠切、干涉和碰撞等问题。数控程序正确性已经成为影响生产率的重要因素之一,所以,对数控加工程序进行正确性检验是必不可少的步骤。

数控加工仿真是CAD/CAM系统的一项关键技术[2]。通过建模软件和仿真,在计算机屏幕上按照车、铣、钻、锉等加工方法把全部加工轨迹描述出来,使工程师能预先看到制造全过程,及时发现生产过程中的不足,并使制造成本保持在最低限度。

国内外许多学者对数控加工仿真进行了深入的研究,重点集中在实物建模和图形显示两个方面[2]。实物的几何建模,即利用一定的数据表达方法,将数控加工中的毛坯、机床、刀具、夹具等实物,在计算机中进行准确描述;图形显示,即将实物的数据模型在计算机中采用渲染着色、光照等环境模拟的手段,让实物模型可视化。

数控加工仿真涉及造型技术,经历了基于线框图形的几何仿真、基于直接实体造型的数控仿真以及基于离散空间的数控仿真[3]。同时,数控仿真正从几何仿真走向物理仿真的研究,开发了基于数值分析和模拟来预测工件、刀具物理属性的原形软件,取得了许多研究成果。如:日本的Sony公司研制的FREDAM系统可对球头铣刀加工自由曲面进行三维仿真,并进行干涉、碰撞检查;英国Delcam公司的产品PowerMILL,动态仿真五轴加工过程机床各轴、各机构运动关系。

国内在仿真方面也取得了一些成果。如1994年清华大学和华中理工大学在国家高技术发展计划(863)CIM主题支持下研制了由NC代码驱动加工过程的仿真器HMPS;哈尔滨工业大学也在国防科工委“八五”预研项目柔性制造系统(FMS)关键技术研究计划支持下,研制了数控加工过程三维动态图形仿真器NCMPS。

经过多年的探索,学者们一致认为,数控加工仿真的关键技术主要有NC代码解释、图形建模、仿真动画和碰撞检测等技术。

2 NC代码解释与自动编程

在CNC系统中,由于计算机无法直接根据数控程序进行加工,必须通过解释器的转换,将数控源程序转化为计算机可以执行的中间结果,然后数控系统进行加工或者仿真。因此数控系统中的NC代码解释模块是CNC系统的核心模块[4]。数控编程是数控机床用于实际加工的先决条件,程序编写的好坏直接影响到数控机床的加工质量和加工效率,因此,快速、准确地编制程序就成为数控机床及仿真系统发展和应用的一个重要环节[5]。

2.1 NC代码解释

NC代码解释器的主要功能是以程序段为单位处理用户程序,将其中的轮廓信息(如起点、终点、直线或圆弧)、加工速度和辅助功能信息,翻译成计算机处理的格式,存放在指定的内存专用区域[6]。解释器通常由语法分析器、词法分析器以及加工信息储存表组成,它的各组成部分功能如图1所示。

词法分析任务是对数控程序段进行初级错误检查。语法分析是在词法分析的基础上,根据数控指令的规则对数控代码进行逐行检查,检查出一些较高级的语法错误。最后制定数据结构来存储NC代码加工相应的信息。

语法分析时,扫描输入字符串的各个字符,并且从中识别出一系列具有独立意义的基本语法单位——标识[7]。先用正则式对程序中各个标识进行词性描述,并指出在识别单词时所应进行的词义处理,然后应用词法分析工具构造程序以对上述信息进行加工。

在文献[8]中,作者利用C++语言实现,把数控程序编译结果分为两种类型:一类用于控制命令,通常是M、F、S、T等功能字和相应的功能值编译结果,用动态数组Carray类记录命令类型和命令功能值;另一类是描述轨迹的数据,通常是插补指令和行对应的坐标值编译结果,用链表来保存插补坐标及信息。在对某段NC代码解释前,要将存储该加工代码信息的结构体中的各状态量和数据量进行初始化[9]。

在文献[10]中,通过引入Regex技术作为词法、语法和语义分析的工具,使用所谓委托调用插补函数的方式,在Visual Studio 2005平台上实现了一种面向开放式数控系统NC代码解释器。在文献[11]中,作者采用了模块化结构,模块之间通过共享数据结构信息进行交互,采用函数指针数组和关键字分组表两种方法,解决了关键字扩充和NC代码功能转移的问题,使该解释器具有良好的扩充性和通用性,易于进行二次开发。在文献[12]中,作者引入编译技术,使用编译工具IEX与YACC构造解释器的词法分析与语法分析模块,并引入动态链接库技术开发专用的G指令函数动态链接库,从而使得所开发的NC代码解释器具有开放性。在文献[13]中,作者给出了一种面向嵌入式差分插补数控系统平台的NC代码解释器,定义了曲线插补的计数方向,并使用有效算法计算了插补计数长度。针对差分插补计算所需要的特殊数据格式,采用扫描策略,在完成NC代码词法和语法检查的基础上,初始化差分插补代码的其他参数,最终将标准NC代码(ISO3896)格式转化为满足差分插补需要的数据结构。

综上所述,在NC代码解释中,其关键技术是目标代码数据结构和解释算法的构造,需达到简单、容错性强、可扩充的目的。

2.2 自动编程技术

范守文[14]等人提出了一种基于特征的动态滑动算法,用于从零件CAD产生的图形交换文件中识别基孔类型,提取基孔的形位参数。结合冲压工艺研发了数控转塔式冲床NC自动编程系统,可由工件CAD产生的DXF格式或IGES格式的图形交换文件,自动生成工件的NC加工程序。王述洋[15]以 AutoCAD R14为开发平台,综合运用ObjectARX SDK、Visual C++6.0及CNC技术,开发出一种适用于CNC木工镂铣、CNC线切割和CNC激光平面轨迹加工的集CAD/CNC APT/虚拟加工功能于一体的集成技术。该技术可直接将二维AutoCAD图形快速自动转换成二维CNC加工程序,并可进行虚拟加工实验,解决了实际二维平面图形加工CAD/CAM集成及其一体化的瓶颈问题。金宇松[16]等人利用UG提供的基本功能及其二次开发工具,开发出一套NC自动编程工具,实现了CAPP与NC编程的一体化。刘军[17]等人根据当前加工位置的基本特征,生成对应的加工指令及S、F、T指令;根据对当前加工部位的几何形状的描述,生成坐标指令,其中的基本加工特征是由加工方式和工件信息描述体系中的特征模型和辅助模型所决定的。

3 仿真系统的图形建模技术

数控加工的几何仿真首要解决的问题就是数控机床几何模型的建立。常用的建模技术主要有[18]:线框图表示法、边界表示法、扫描表示法、构造实体几何法和八叉树表示法。

仿真环境的图形建模包括建立机床、刀具和毛坯在内的几何模型[19]。机床是由床身、立柱、主轴和工作台等部件组成。文献[18]中采用了三角网格的建模方法,该算法通过利用OpenGL图形函数,计算工件表面三角片顶点与刀具扫掠面之间的距离以及各三角片顶点高度值,修改自定义的数据结构,从而满足仿真的要求。三角形网格模型表示法基于如下假设[20-21]:

①只有工件毛坯的上(外)表面才是加工表面;

<1),且各件产品是否为不合格品相互独立.

②平行于刀轴的一条直线与工件毛坯上(外)表面的交点有且只有一个;

③工件毛坯的上(外)表面是通过每一个点的不同高度来表达加工工件的表面形状。

在文献[19]中,首先在三维CAD软件中完成数控机床各零部件造型,然后将其导出生成标准的三维数据格式STL文件。在VB程序中读取STL文件生成三维模型,然后利用OpenGL进行渲染;而刀具、夹具和毛坯通过OpenGL直接进行编程生成,通过OpenGL中的视图变换函数调整其大小及位置。王吉林[22]采用UG作为造型软件,通过它输出DXF文件,利用OpenGL读入DXF数据,重新绘制这些三维实体模型,最后用VC++编程来实现真实感图形。盛亮[23]等人提出组斜环法实现动态管、锥类实体螺纹的构造,即用一组斜圆环式螺纹槽实体同圆柱体求交,斜圆环的间隔取为螺距的大小,螺纹槽实体由螺纹刀截面沿每一个斜圆环扫掠生成,如图2。

在数控铣削仿真中,广泛用到Z-MAP方法[24-25]。王鹏远[26]等人在传统的Z-MAP方法的基础上改进了Z-MAP方法。算法思想如下:(1)在按照一定的离散精度将工件模型的底平面离散为一系列的网格后,以各网格点为起点、工件模型顶面为终点可以得到一系列的有向线段;(2)将所有的Z向线段与工件模型上表面的交点按照一定的规则以三角形的形式连接,构成的三角形网格面即可被视为工件模型的近似表示。

机床、刀具等静态的几何体的建模相对简单,而工件的建模比较复杂。一方面,工件本身结构形状复杂,另一方面,仿真过程中工件不断被切削,形状动态变化。综合上述介绍,工件等复杂形体的建模概括为两大类:第一类基于离散技术实现建模,这种技术易于实现,但其表面精度较低;第二类基于表面的网格剖分,这种技术描述形体表面较为精确,且有利于有限元分析,方便进行物理仿真建模,但其数据结构比较复杂。

4 仿真动画的实现技术

经典的数控仿真方法是通过定时器每隔一时刻遍历一次毛坯链表,判断每一个节点是否被切削以及进行节点数据修改,最后重新显示画面。该过程实际是毛坯数据不断更新与显示的过程。

蒲志新[27]等人采用OpenGL双缓冲区实现动画仿真,避免了程序在运行时产生闪烁,从而使动画看上去更加连续。动画时使用光照以增加仿真真实感。双缓存动画技术就是多页面切换技术,又称为“页面共振”技术。在主显示页显示的同时,下一幅图形可放置在工作页面上,然后再把工作页切换成主显示页。如此反复进行,每次用新图形代替旧图形,从而形成动画效果。图形显示模块主要负责刀具、夹具和主轴的绘制工作,而数据处理则负责插补运算和刀具切削轴的计算,实现了数据和显示分离,具有较好的模块性。

文献[19]中采用基于单位高度小圆柱体的ZMAP算法。在仿真过程中,毛坯被细分化成单位高度的小圆柱薄片,并将形成每个薄片的数据结构存储到链表中。通过NC程序的编译,读入刀具运动的坐标信息,通过确定工件上要加工部分的起点和终点,就可以计算出对应薄片在链表中的序号,也就得出了起始加工处的薄片序号和终点处的薄片序号。当NC程序编译模块计算出刀具下一步的插补位置时,就可以进行刀具与加工工件毛坯之间的布尔运算,根据运算结果更新对应薄片在数据链表中的信息。

文献[28]中,车削过程仿真采用三步完成:取刀具,实现刀具运动,刀具实现工件上材料的切除。刀具的运动通过逐点比较法插补实现,材料切除是将被切下的部分涂成与背景一样的颜色时实现的,因此这种方法只能用于二维仿真,不能用于铣削仿真。

骆勇骏[29]等人采用了播放式的仿真方法。该方法具有以下三个特点:①把刀具加工毛坯的动态显示过程看成是一个播放的过程,每幅画面都看成一帧;②大部分的数据分析处理工作应在仿真前完成;③在仿真过程中,计算机仅完成图像显示、定时器累计和执行简单判断语句的工作。文献[22]中利用OpenGL提供的显示表技术提高了显示效率。

无论采用何种仿真算法,其算法必须和几何建模方法一致,方便实时修改模型数据结构以实现仿真动画。

5 仿真系统的碰撞检测技术

碰撞检测是加工过程仿真的重要内容,它对避免在真实加工中发生碰撞,造成工件报废和设备损坏,甚至威胁到操作者的人身安全具有重要意义。近年来,许多专家学者对平面碰撞问题进行了深入的研究,提出了许多最优算法,例如:覃中平、张焕国提出了时间复杂度为O(logm+logn)的最优算法[30]。David Braff采用将凹多边形分解为凸多边形的方法来求解碰撞问题[31]等。R.K.Culley从时空的角度给出了发生碰撞的定义:即在某一个时刻 t,如果空间中位于 L1,L2,...,Ln的 n 个物体 S1,S2,...,Sn中,存在一对或多对物体同时占据某块空间,那么就认为发生了碰撞[32]。

动态碰撞检测在历史上主要有两类技术:第1类技术是一种基于在给定轨迹上反复利用静态干涉检测被称为“单步检测”的方法;第2类技术是基于产生称之为“扫描实体”物体的技术。在现在的计算机图形硬件条件下,单步检测方法更适合于实时计算机图形显示。扫描体方法没有单步检测方法所具有的决定碰撞时间的灵活性,而且用扫描体来进行碰撞检测,需要利用一个独立的步骤来产生扫描实体。

Hahn采用层次包围盒技术来加速多面体场景的碰撞检测[33]。Moore则提出了两个有效的碰撞检测算法[34]。其一是用来处理三角剖分过的物体表面。由于任一物体表面均可表示成一系列三角面片,因而该碰撞检测算法具有普遍性。该算法的缺点是,当景物为一复杂的雕塑曲面时,三角剖分可能产生大量的三角片,这会大大影响算法的效率。而另一算法则用来处理多面体环境的碰撞检测。

胡忠泉[35]等人结合车削仿真加工的特点,把三维实体间的碰撞检测简化为二维多边形之间的碰撞检测,即将两物体间的检测变成平面内多边形间的重叠性检测。只要生成部件实体模型的多边形之间没有重叠现象,则两个实体之间就不会存在碰撞干涉;反之则一定存在碰撞干涉。王占礼[36]等人采用基于固定时间段的碰撞检测方法,在每隔Δt时间段,刀具从L1点移到L2点,构造刀尖顶点L2与工件轴线形成的加工平面,分别与夹具体、工件体和刀具体相交,构成三个切割平面,即夹具切面、工件切面和刀具切面。根据碰撞分类,选择判断刀具切面与工件切面或夹具切面是否相交,推断碰撞是否发生。

6 仿真系统的发展趋势

尽管目前数控加工仿真的研究取得了一定成果,但总体技术与理想还有很大的差距,需要在今后进一步研究。今后的发展趋势主要表现在:

(1)CAD/CAM/CAE/CAPP的集成化程度将不断提高,从几何仿真到几何+物理仿真将是今后的发展趋势。考虑切削参数、切削力及其他物理因素影响工件在加工过程中的受力、变形等,有限元分析将为物理仿真提供理论基础;

(2)仿真系统的智能化程度将不断提高。结合并行处理、人工智能、知识库和专家系统等技术,开发具有高智能的数控仿真系统;

(3)仿真系统的网络化。能够与上层的计算机进行数据交换与共享,与CAD/CAM/PDM/ERP等系统进行无缝集成,能够支持基于网络的各种远程数控服务,包括远程在线编程、远程数控加工仿真、远程加工监测等;

(4)仿真系统功能的完整性。包括基本的机床操作、程序编制、NC程序验证、刀具库、工件库、工件虚拟装夹、工件质量检测、机床通讯和二次开发接口等;

(5)检验仿真效果的优劣——仿真的评价体系的研究,是一种评估手段对仿真效果进行检验,这也是目前预感亟需研究解决的问题。

[1]杨胡坤.多坐标数控仿真技术研究[D].大庆:大庆石油学院,2005.

[2]戴宁.基于实体布尔运算的数控车削仿真系统高级技术的研究与实现[D].南京:南京航空航天大学,2003.

[3]马骋.数控车床加工仿真系统设计[D].济南:山东大学,2007.

[4]寥德岗.开放式数控系统的研究及其发展现状[J].机械,1999(3):13-15.

[5]刘军,高晓莉,马燕如,等.轴类零件NC自动编程及加工仿真系统[J].组合机床与自动化加工技术,2007(5):82-83.

[6]张承瑞,单诚.数控G代码解释器的设计与实现[J].山东大学学报:工学版,2002,20(6):566 -568.

[7]南雁.基于虚拟数控加工的NC代码翻译[D].西安:西北工业大学,2005.

[8]任松涛,秦现生,白晶.NC代码解释器的开发[J].中国制造业信息化,2007,36(5):54 -57.

[9]甘明,袁正萍,林桂清.基于WinCE嵌入式数控系统NC代码解释器的设计[J].组合机床与自动化加工技术,2009(11):72-74.

[10]张庆,姚锡凡.一种开放式数控系统NC代码解释器设计与实现[J].组合机床与自动化加工技术,2010(2):59-61,65.

[11]王尚斌,李家霁,王品,等.虚拟数控加工中NC代码解释技术的研究与实现[J].组合机床与自动化加工技术,2009(2):77-80.

[12]伍抗逆,李斌,陈吉红.面向开放式数控系统平台的 NC代码解释器开发[J].中国机械工程,2006,17(2):168 -171.

[13]单东日,高立营,陈向东,等.面向差分插补数控系统平台的NC代码解释器开发[J].制造技术与机床,2008(12):81-84.

[14]范守文,黄大贵.数控转塔式冲床NC自动编程研究[J].电子科技大学学报,1997,26(5):515 -518.

[15]王述洋.线切割与镂铣图形的CNC自动编程及虚拟加工技术研究[J].林业机械与木工设备,2001,29(12):11 -15.

[16]金宇松,李蓓智,王庆霞.基于典型工艺的NC自动编程工具[J].组合机床与自动化加工技术,2004(8):1-2,5.

[17]刘军,高晓莉,马燕如,等.轴类零件NC自动编程及加工仿真系统[J].组合机床与自动化加工技术,2007(5):82 -83,87.

[18]马立新.基于虚拟环境的数控仿真系统的开发[D].保定:华北电力大学,2007.

[19]马银戌,严忠.基于VB和OpenGL的数控车削仿真系统研究[J].机械工程师,2008(8):43-44.

[20]张化楠,叶伯生,阳道善.数控铣床加工真实感仿真的实现[J].组合机床与自动化技术,2001(10):5-7.

[21]Jaler V,Lar R W H,Green M.Real- time multi- resolution modeling for complex virtual environments[M].In:Proc VRST96,Hongkong,1996,109 -118.

[22]王吉林.数控机床虚拟仿真软件的设计与实现[J].煤炭技术,2010,29(5):28 -30.

[23]盛亮,廖文和.实体数控车削仿真关键技术的研究[J].中国机械工程,2003,14(18):1580 -1583.

[24]Lemeshewsky G P.Muhispeetral multisensor image fusion using wavelet transiorms[J].Proc SPIE,1999,3716:214.

[25]Zhang Z,Blum R S.A categorization of muhiscaledecompositon-based image fusion schemes with a performance study for a digital camera application[J].Proc of IEEE,1999,87(8):l315.

[26]王鹏远,韩丽.三轴数控铣削仿真系统关键技术的研究与实现[J].郑州轻工业学院学报:自然科学版,2009,24(6):90 -92,103.

[27]蒲志新,古艳丰,李赢.基于OpenGL数控车削仿真的软件实现[J].机床电器,2004(2):14 -16.

[28]曹文杰,胡德计,徐燕申.基于面向对象原理实现数控车削仿真[J].机电一体化,2001(1):50 -52.

[29]骆勇骏,叶邦彦.基于数控加工工艺验证的仿真方法研究[J].组合机床与自动化加工技术,2009(8):99-104.

[30]覃中平,张焕国.确定凸多边形平移时最初碰撞部位的最优算法[J].计算机学报,1992,15(3):171-177.

[31]David Baraff.Interactive simulation of solid rigid bodies[J].IEEE Computer Graphics&Applications,1995,15(5):63 - 75.

[32]Cullev R K,Kempf K G.A collision detection algorithm based on velocty and distance boun d[C].IEEE International Conference on Robotics and Automations Proceeding,1986.

[33]Hahn J K.Realistic animation of rigid bodies[J].Computer Graphics,1988,22(4):299 -308.

[34]Moore M,Wilhelms J.Collision detection and response for computer animation[J].Computer Graphics,1988,22(4):289 -298.

[35]胡忠泉,王龙山,王义强,等.三维车削仿真的碰撞检测[J].吉林大学学报:工学版,2006,36(3):95 -98.

[36]王占礼,杜爽,王尧.虚拟制造中的数控车削仿真加工[J].电子机械工程,2006,22(2):47 -49,63.

猜你喜欢

碰撞检测代码刀具
基于动力学补偿的机器人电机力矩误差碰撞检测
全新预测碰撞检测系统
基于BIM的铁路信号室外设备布置与碰撞检测方法
无织构刀具与织构刀具铣削性能对比研究
创世代码
创世代码
创世代码
创世代码
切削刀具刃口形貌对刀具使用寿命的影响
多功能刀具