基于UG NX的航空发动机离心叶轮数控加工自动编程系统的研究*
2020-03-27
(1.东北大学机械工程与自动化学院,沈阳 110819; 2.东北大学航空动力装备振动及控制教育部重点实验室,沈阳 110819)
离心叶轮是航空发动机压气机的关键零件之一,是一类公认复杂的难加工零件[1]。随着加工制造业对叶轮数控加工编程的高效性和规范性要求越来越高,利用现有的UG CAM 软件进行数控加工编程已经不能满足制造业的需要。究其根源,有以下3 种原因:一是对技术人员的经验要求较高;二是CAD模型的加工几何信息不能自动传递给CAM模块,仍需人工手动获取;三是数控加工编程不规范,不同的编程人员给出的方案不尽相同。
为此,国内外许多专家学者都在寻求高效的数控编程机制[2],并开发了许多自动编程系统。沈阳航空航天大学开发了基于UG 特征识别的孔槽类零件自动编程系统[3]。华中科技大学基于加工特征开发了数控辅助编程系统[4]。南京航空航天大学开发了基于机匣加工特征的航空发动机结构件数控自动编程系统[5]。航空工业与南航共同开发了CATIA 自动编程系统[6]。美国堪萨斯大学的Hou 等[7]提出基于UG工艺规划模块的快速编程方法,从STEP 文件中提取特征信息,利用UG CAM 生成数控代码。
以上研究侧重于从特征识别方面来提高编程效率,忽视了从创建毛坯、切削参数的自动优化设置等方面来缩短编程时间。对此,本文综合考虑影响编程效率的各方面因素,开发了一套适用于离心叶轮的自动编程原型系统,达到了自动编程的目的。
图1 离心叶轮结构图Fig.1 Structural diagram of centrifugal impeller
1 加工特征的自动识别
航空发动机压气机离心叶轮主要有主叶片、分流叶片、轮毂和孔面等结构组成。如图1所示,主叶片和分流叶片又包含了包覆面、壁面和叶根圆角面。利用UG CAM的mill_muiti_blade模块编程时,需要编程人员手动选择图1中序号为3~9所对应的几何特征。除此之外,在UG 平面加工和钻孔的模板中,还必须人工指定孔面、平面、和切削区域等几何特征。此过程需要大量的人机交互,选择对象非常繁琐,极易出错。因此需要设计算法让计算机对其进行自动识别。
特征识别是指从CAD模型中将具有工程意义的几何形状自动提取的过程[8]。目前国内外相关学者普遍采用基于边界的特征识别算法[9]。该算法根据基于属性邻接图和基于规则分为两大类[10]。属性邻接图的识别算法需要定义特征库,算法比较复杂,且适用于识别结构不同的零件。由于压气机离心叶轮类零件结构比较单一和固定,所以本文根据叶轮的结构特点编写了基于规则的特征识别算法。
在UG NX 中,利用UG 二次开发函数UF_BREP_ask_topology()可以获得模型边界的拓扑信息。通过拓扑信息可以获得三维模型任意面、边、点的信息。这些信息的获取是特征识别的基础。
编写的特征识别算法主要分为两个阶段:第1个阶段是对叶轮的平面、孔面、所有主叶片和分流叶片特征及其子特征的识别;第2个阶段主要是识别UG加工模块所需的一组相邻叶片特征。
图2 第1阶段特征识别算法流程图Fig.2 Flow chart of the first stage feature recognition algorithm
第1个阶段算法流程如图2所示。其算法原理是通过拓扑信息获取叶轮所有面的NX 标识。循环遍历这些面并计算其面积,调用二次开发函数直接判断出孔特征和平面特征。由于每组叶片特征及其子特征的面积完全相同,据此,可以将大小相等的面分成一组,假设共分成了n 组。计算每组中的成员个数,得到成员个数的最大值m 即为叶片组数。首先循环遍历判断成员为m的面与成员为1的面的位置关系,如果两者相切,则可以判断轮毂面和叶根圆角面。然后循环判断叶根圆角面与成员为m的面是否相切,可以识别出叶片壁面。同理,可以完成对包覆面的识别。
第2 阶段算法流程如图3所示。其算法原理是计算任意两个包覆面的距离,由于距离最短的两个包覆面必定位于一组相邻的叶片上。据此可以识别得到两个包覆面,根据主叶片与分流叶片的包覆面积不同,可以对两者进行具体区分。最后通过判断与包覆相邻的面可以得到叶片壁面。同理可以识别出叶根圆角。
图3 第2阶段特征识别算法流程图Fig.3 Flow chart of second stage feature recognition algorithm
2 辅助编程工具的开发
辅助数控加工编程工具主要包括特征尺寸的自动分析、毛坯的自动创建、加工路线自动拟定和加工准备自动完成等功能。通过开发辅助编程工具,可以让计算机代替数控编程人员完成一些繁琐的工作,从而大大提高编程效率。
图4为辅助数控编程工具的开发算法流程。其具体流程如下:(1)特征识别得到任意加工特征的NX 标识;(2)根据特征标识调用二次开发函数,并依次测量出叶轮中心孔直径、孔深度、流道最小宽度、叶根圆角半径等尺寸,这些几何尺寸是选取加工刀具的依据;(3)根据用户输入的毛坯余量大小,通过二次开发函数抽出叶轮最大的外形轮廓,利用参数化建模的方式创建加工毛坯;(4)根据加工特征的类型自动从加工规则库中调用加工模板,然后初步拟定加工路线;(5)根据自动分析得到的尺寸创建刀具组,根据自动创建的毛坯创建加工几何体组,根据自动拟定的加工路线创建加工方法组和程序组。
图4 辅助编程工具开发算法流程图Fig.4 Development process of assistant programming tools
3 基于遗传算法的切削参数自动优化
利用UG NX的CAM模块进行数控编程时,切削参数的确定往往需要编程人员依靠经验或查询切削手册,而且需要工艺人员手动输入到编程模块的交互界面中。导致编程效率低下,因此有必要开发切削参数自动优化模块。
本文以主轴转速和进给速度为优化变量、以刀具约束、机床约束、加工质量约束等为约束条件,建立多目标优化数学模型。优化流程如图5所示。选择遗传算法进行优化,并编写了优化算法程序。分别用MATLAB 遗传算法工具箱和UG 二次开发的优化模块对模型进行求解。最后将二者的优化结果与经验参数进行对比评价。
3.1 优化模型的建立
实际的生产中,确立优化目标函数的方法有很多[11]。而本文分别以最高生产效率和最低生产成本为目标建立优化函数,最后利用加权组合法建立总目标函数。
3.1.1 优化目标函数
(1)建立最高生成率目标优化函数[12]:
其中,t0为除换刀以外的其他辅助时间(min);tm为切削时间(min);tc为每次换刀时间(min/次);T为刀具耐用度(min)。
(2)建立最低生产成本目标优化函数[12]:
其中,cs为单位进给量和转速下的生产成本(元);c0为单位时间生产成本(元);ct为刀具成本(元);a为进给量指数;b为主轴转速指数;fz为每齿进给量(mm/z);n为主轴转速(r/min)。
图5 优化流程图Fig.5 Optimized flow chart
(3)建立综合目标优化函数:
其中,tmin为最高生产效率但目标最优解(min);Cmin为最低生产成本单目标最优解(元)。
3.1.2 优化约束条件
在优化切削参数过程中,约束的来源大致可以从机床参数、工件表面质量、刀具参数和毛坯材料4个因素来考虑。
(1)建立机床主切削力约束[12]。
其中,[F]为机床允许的最大进给切削力(N);KFc为切削力修正系数,与切削条件有关;CF为切削力系数;ap为切削深度(mm);ae为切削宽度(mm);v为切削速度(m/s);Z为铣刀齿数;d0为刀具直径(mm);xF、yF、uF、qF、wF为切削力系数。
(2)机床切削功率约束[12]。
其中,η为机床的传递效率,一般为0.7 左右;Pmax为机床的最大功率(kW)。
(3)机床进给速度和主轴转速的约束[12]:
其中,vfmax为机床最大进给速度(mm/min);vf为进给速度(mm/min);nmax为机床最高转速(r/min)。
(4)表面粗糙度对进给量的约束[12]。
其中,Ramax为零件加工表面的粗糙度值(μm);r为刀尖圆弧半径(mm)。
3.2 优化实例
为了验证开发的遗传算法优化切削参数模块的优越性,需要通过优化实例得到切削参数,然后与经验参数进行对比评价。本课题分别采用MATLAB 遗传算法工具箱和UG 二次开发得到的切削参数优化模块对多目标数学模型进行优化。
通过查询金属切削手册,以使用XA5032型的立式铣床上加工毛坯材料为45 钢的某零件为例。加工刀具要求使用硬质合金端铣刀,工件的切削长度为640mm,刀具直径为125mm,齿数为4,刀尖圆弧半径为1mm。刀具耐用度为180min。机床参数最大切削力15000N;最大功率7.5kW;最大转速1800r/min;最大进给速度980mm/min;机床效率0.75。其他设定参数如表1所示。刀具切削力系数可以查询切削手册[12]获取,具体值如表2所示。
利用MATLAB 遗传算法工具箱进行优化,优化结果如图6、7所示,函数最终收敛适应值为0.148,机床主轴转速x1和进给速度x2的最优解为(396.1,0.169)。
利用UG 二次开发的优化实例模块对多目标数学模型进行优化,通过图8优化结果可以看到,目标函数最终的收敛适应值为0.150。其对应的自变量最优解为(409.0,0.167)。
从表3的对比结果中可以看出,MATLAB 遗传算法工具箱与二次开发的切削参数优化模块的优化结果基本一致,由于前者并未集成在CAM 软件中,利用其对不同工序的切削参数优化时,需要技术人员反复向MATLAB 中输入刀具直径、切削深度等已知参数,并且优化后的结果还需手动设置到CAM模块中,这些过程比较繁琐,而后者能够实现对切削参数的即时优化和即时设置,从而大幅提高编程效率。因此,在两者优化结果相差不大的情况下,后者具有明显的效率优势。
与传统的切削手册给出的经验参数相比,经过优化后,加工效率提高了11%左右,加工成本降低了9%左右,利用表3的3 组切削参数对零件进行试切发现,加工后的表面质量没有明显的变化,从而验证了原型系统优化模块的优越性。
图6 遗传算法收敛曲线Fig.6 Convergence curve of genetic algorithms
图7 优化变量最优解Fig.7 Optimal variable optimal solution
表1 其他设定参数Table1 Other setting parameters
表2 切削力系数Table2 Cutting force coefficient
4 自动编程原型系统的开发与应用实例
以C++作为开发语言,开发出了航空发动机叶轮类零件数控自动编程系统的原型系统。原型系统开发流程如图9所示。具体步骤为:(1)首先搭建二次开发应用框架,利用开发向导将UG NX 软件与Visual Studio 开发工具进行连接;(2)通过Visual Studio 创建NX Open C++Wizard 向导项目;(3)在创建的项目中编写二次开发程序代码,程序编写完成后生成可用于执行的dll 文件;(4)根据NX 自带的Block UI Styler模块完成对话框的设计;(5)将生成的dll 文件和交互界面dlx文件加载到UG NX的CAM加工模块;(6)在UG NX中打开软件,用户进行交互式操作,即可获得执行结果。
表3 优化结果对比Table3 Comparison of optimization results
原型系统的功能流程如图10所示。主要包括3 大模块,分别为特征识别模块、辅助编程模块和切削参数优化模块。具体功能模块包括:加工特征识别、特征尺寸分析、创建加工毛坯、工艺分析、加工准备、优化切削参数、生成程序等。
图8 二次开发的参数优化模块优化结果Fig.8 Optimization results of parameter optimization module
图9 原型系统开发流程图Fig.9 Flow chart of prototype system development
具体应用实例如下,打开“特征识别”折叠组,选择加工零件,如图11所示。点击“识别加工特征”后的图标按钮,识别特征的名称、数量、TAG 值将会显示在“特征识别显示区域”。勾选“显示所有特征”前的复选框按钮,所有特征将会以不同的颜色显示出来。选中某一特征,该特征将会高亮。
打开“尺寸分析”折叠组,单击“分析距离和尺寸”按钮。原型系统会自动测量特征的尺寸,并将测量结果填写在对话框中,如图12所示。
图10 原型系统功能流程图Fig.10 Functional flow chart of prototype system
图11 特征识别界面Fig.11 Feature recognition interface
打开“创建毛坯”折叠组,在“毛坯余量”中输入合适的数值,点击“创建毛坯”按钮,毛坯生成结果如图13所示。
打开“工艺分析”折叠组(图14),选择要达到的粗糙度值。点击“生成加工路线”按钮,加工内容、刀具类型和刀具直径等将会显示在“加工路线显示区域”,还可对其进行编辑和删除。打开“加工准备”折叠组,在对话框中选择加工坐标系的创建位置,输入安全平面的距离,输入几何组、刀具组、方法组、程序组名称或保持默认,可以自动完成实现加工准备工作。
打开“优化参数”折叠组,在对话框中输入机床参数、遗传算法参数、刀具和毛坯材料。点击“遗传算法优化切削参数”按钮,各个工序的切削参数将会显示在“优化结果显示区域”,如图15所示。
打开“生成工序”折叠组,点击“生成工序”按钮。生成的部分刀轨如图16所示。
图12 尺寸分析界面Fig.12 Size analysis interface
图13 创建毛坯界面Fig.13 Creating blank interface
图14 工艺分析界面Fig.14 Process analysis interface
5 基于VERICUT的数控仿真与验证
为了验证自动编程原型系统生成NC 代码的正确性,本文使用VERICUT 软件对其进行了数控仿真。仿真流程如图17所示。
数控仿真具体过程如下:首先启动UG的后处理构造器,新建后处理文件,机床结构设置为“五轴AC 摇篮”,机床的控制系统选择“sin840D”。根据机床的实际参数完成后处理的其他设置。调用UG的后处理命令,将刀轨文件转换为NC 代码。
图15 优化结果Fig.15 Optimized parameter interface
图16 生成的部分刀轨Fig.16 Generated part of the cutter rail
图17 VERICUT数控仿真流程Fig.17 VERICUT NC simulation process
在VERICUT 中建立虚拟机床,刀具和毛坯等模型。将后处理得到的NC 导入数控仿真系统,完成仿真所需的其他设置。
开始机床仿真,加工过程的部分界面如图18所示,观察仿真过程是否发生干涉和机床碰撞等现象。
图19为加工完成后的效果图。利用VERICUT 自带的“Analysis”功能,对加工后零件进行分析,结果表明:自动编程系统产生的加工程序安全可靠,无过切和欠切现象发生,从而证明了原型系统的实用性。
6 结论
(1)基于规则设计了特征识别算法,通过应用实例验证了该算法的优越性。与传统的基于属性邻接图的特征识别算法相比,该算法的使用范围虽然有一定的局限性,但不需要建立预定义特征库,而且识别效率也有一定的提高。
(2)开发出了辅助数控加工编程工具,实现了加工特征尺寸的自动测量,加工毛坯的自动创建,加工路线的自动拟定等。与现有的CAM 软件相比,自动编程效率得到了明显的提高。
(3)基于C++语言开发了切削参数优化模块,实现对切削参数的即时优化和即时设置。与传统的方式相比,提高了数控加工编程效率,降低了加工成本。
(4)应用实例和数控仿真表明:原型系统的数控编程效率比原来提高60%以上,并且输出数控程序的质量比较安全、可靠。
图18 加工过程界面Fig.18 Machining process interface
图19 加工结果Fig.19 Processing results