林永勇,刘文涛,周法权,韦叶,张华德
(1.上海航天设备制造总厂,上海200245;2.哈尔滨工业大学机电工程学院,黑龙江哈尔滨150001)
对于一些具有复杂结构的数控机床,以及一些重要零件的加工应用场合,进行加工过程的实体运动仿真 (虚拟加工)是非常必要的。通过这种仿真,可以预先观察加工时机床各运动构件之间,以及机床运动构件与工件之间的干涉情况,从而避免加工过程中的意外发生。
目前,对加工过程的实体运动仿真通常是借助一些离线的第三方仿真软件进行的,如UG、Vericut等[1-2]。但这类离线仿真方法存在一些不足之处:首先是操作者使用不太方便,离线仿真时的坐标系与加工时的坐标系也不容易完全一致,仿真情况会有差异;更重要的是这类软件不支持对并联机床等具有复杂结构数控机床的仿真。
理想的仿真方案是在数控系统中加入实体仿真功能,比较典型的如瑞典EXECHON公司在西门子840d的基础上开发的在线仿真模块ILP(In Line Production),与该公司的TRIPOD型并联机床匹配使用,可实现离线或在线仿真[3]。但类似功能在其他数控系统中并不多见,主要原因在于其他数控系统并不具备840d那样良好的开放性。在我国也有一些在自行开发的数控系统中加入3维仿真功能的案例[4],但其功能还较为简单,通常只能进行一些示意性的仿真。
本文作者针对所设计的一种基于3prs并联机构的搅拌摩擦焊机床,在开放式数控系统PA基础上,开发了具有虚拟加工仿真功能的数控系统。其中仿真过程使用的实体模型与机床真实模型完全一致,而仿真数据则来自于数控系统的插补数据或位置反馈数据,因而能够准确而同步地反映机床的实际运行情况。
搅拌摩擦焊机床采用龙门架+3PRS并联机构的结构形式 (图1)。其中3PRS并联机构 (图2)由3个并联布置的驱动支路共同控制1个动平台的运动,每个驱动支路又由1个滑块和1个支臂构成;滑块与支臂之间通过回转副连接,支臂与动平台之间通过万向节 (或球面副)连接。该机构具有3个自由度,可以实现Z轴运动以及A、B轴的转动,而X轴和Y轴的运动则由龙门架的运动实现。
图1 五轴并联摩擦焊机床
图2 3PRS并联机构结构
采用3PRS并联机构的原因在于该结构具有较高的承载能力,能够承受厚板材料搅拌摩擦焊过程所产生的较大工作载荷。从图2中可以看出,主轴与滑块及支臂之间的安装较为紧凑,因而当加工过程中主轴摆角较大时,需要注意各构件之间的干涉情况[5]。
搅拌摩擦焊并联机床数控系统是在PA系统基础上开发的,PA系列数控系统是德国Power Automation公司开发的一种基于PC的全软件数控系统,最大的特点是其全面的开放性。其结构框架如图3所示,包含HMI、CNC和PLC 3个相对独立的模块,互相之间可以通讯,均可进行不同程度的开发,以得到所需要的功能[6]。
PA的HMI采用基于浏览器的结构框架,用户不仅可以使用PA系统提供的可编辑功能插件设计其独特的人机交互界面,还可以在HMI中嵌入自定义JAVA插件及ActiveX控件,将使用高级语言编写的插件加入人机界面。
图3 数控系统结构
PA的CNC采用与西门子840d相同的开发方式,系统为用户提供了一种可编辑循环 (Compile Cycles),通过一些开放的入口点以及相关的绑定函数,用户可以参与CNC解释器以及CNC插补器的工作。
PA的PLC为符合IEC1131-3标准的软PLC系统,支持用户使用梯形图、功能块图、指令表、流程图及结构化文本等多种方式进行编程,完成各种复杂的机床逻辑控制。
在搅拌摩擦焊机床数控系统开发过程中对HMI和CNC两方面都进行了开发:在CNC中利用PA提供的编译循环功能 (compile cycle)加入了3PRS机构的运动学算法;在HMI中通过嵌入自定义ActiveX控件的方法,加入了在线仿真功能模块。
仿真过程所采用的三维模型直接取自机床零件的SolidWorks实体模型,为减小仿真时的计算量,需要对零件的形状进行简化处理,去掉一些对干涉分析影响不大的局部结构,同时,对相互连接并具有相同运动的构件组合成组件形式,具体包括:床身、龙门架、并联机构机架、支路1滑块、支路1支臂、支路1万向节、支路2滑块、支路2支臂、支路2万向节、支路3滑块、支路3支臂、支路3万向节、主轴及动平台、搅拌头、以及工件等15个组件。这些组件中搅拌头和工件组件由于会经常改变,将作为需要单独造型的可替换组件,其他组件则为固定结构组件。
三维运动仿真采用MFC中调用OpenGL库的方式进行开发,在MFC中直接读取SolidWorks的零件文件比较困难,文中采用的是通过3DS MAX软件进行转换的方法。即在SolidWorks中将零件的实体造型文件存成.wrl格式,导入到3DS MAX中进行模型网格的细化和材质的渲染,再保存为3DS文件,即可为MFC程序所读取。
3DS文件为二进制代码,包含了非常丰富的物理信息数据和几何信息数据,如网格信息、材质信息、纹理信息、组件名称等等。这些信息是以块的方式存储的,块的层次结构较为复杂,每个子块下又包含了更多的子块。在用OpenGL进行数控加工仿真时,由于重点在于验证构件之间干涉情况,因此除了面的节点信息外,一般只需再用到材质信息即可。在MFC中读取3DS文件时依次读取ID号和块的长度,对不需要该块的信息可以直接跳过 (图4)[7]。
图4 3DS文件读取流程
为了实现机床运动的仿真,需要根据当前的数据对机床模型零件的位姿进行重新绘制。在并联机床数控系统中,存在虚轴和实轴两种运动轴数据,其中虚轴是指模拟传统结构机床定义的运动轴,即X、Y、Z、A、B等运动轴,用于描述机床主轴在笛卡尔坐标下的位置和姿态;实轴是指机床的实际驱动轴,即图2中3PRS机构3个竖直驱动轴的实际伸长量,也即滑块在驱动轴上的位置。根据虚轴数据求解实轴数据称为运动学逆解,根据实轴数据求解虚轴数据称为运动学正解。PA数控系统中插补过程是在虚轴下进行的,通过嵌入Compile Cycle循环,在插补过程之后加入3PRS机构的逆解运算,将虚轴数据转化为了实轴数据,从而控制机床的运动 (图5)。
图5 机床运动构件位置计算
在HMI中对CNC中机床实轴数据的访问以Client/Server方式进行,CNC作为Server,HMI作为Client通过定时器定时获取实轴数据。根据实轴数据可以直接确定滑块的位置,而主轴及动平台的位置和姿态则需要根据实轴数据通过正解运算得到,由于用解析法求解比较困难,系统中采用牛顿-拉夫森方法,即先对动平台位位置取一个初值 (通常取上一周期中的动平台位置),计算出虚轴 (Z、A、B)和实轴 (l1、l2、l3)之间的雅克比矩阵,根据图6所示过程进行反复迭代直至到达要求的求解精度。动平台的位置求出后,3PRS机构的其他活动构件如支臂、万向节等的位置就比较容易确定了,文中将不赘述[8]。
图6 主轴及动平台位置的迭代计算
控件的开发过程如图7所示,首先需要在MFC中创建项目控件,并添加OpenGL相关的函数库,主要包括:opengl32.lib、glu32.lib以及glaux.lib。
图7 ActiveX控件的开发过程
在仿真程序中,在WM_CREATE消息的OnCreate()函数中需要对图形进行初始化设置;。在WM_SIZE消息的OnSize()函数中对视点,投影变换方式,以及场景进行设定;在OnDraw()函数中添加模型绘制的代码,进行图形绘制,并用glFlush()显示图像。绘制完成之后,在接收到WM_DESTROY消息时删除RC以释放Windows系统资源。
仿真图形的绘制流程如图8所示,绘制运动物体时是通过更改旋转矩阵以及平移向量实现的,为避免之后绘制的其他图元也会产生相同的运动,OpenGL中设置了矩阵堆栈,将其他零件的坐标矩阵压入栈中进行保存,待变换结束后再将堆栈中的矩阵弹出,恢复其他零件的位置。
图8 仿真图形的绘制流程
为能更细致地观察构件之间的干涉情况,界面中还设置了对机床构件消隐、放大、平移及旋转等操作功能 (图9)。
图9 仿真图形操作菜单
所开发的带在线仿真功能的HMI界面运行情况如图10所示,由于仿真时的位置数据来自于CNC中驱动轴的数据,因而系统即可以进行离线仿真也可以实现加工过程的同步仿真。数控系统的运行测试表明,所开发的仿真模块更够准确反映机床加工过程中各构件的实际运动情况,从而可以降低操作过程出现意外的可能性。
图10 搅拌摩擦焊数控系统主界面
利用PA系统所提供的开放环境,在该系统中开发了基于机床部件3维实体模型的虚拟加工仿真功能,有利于操作者更直观地了解机床的实际动作,并避免干涉、碰撞等意外的发生。
[1]杨晓京,傅中裕,史孝文.数控机床虚拟样机的虚拟加工实现[J].机床与液压,2007(1):45-47.
[2]刘锡胜.基于SolidWorks和VERICUT的虚拟数控系统研究[J].制造业自动化,2011(21):57-59.
[3]谭光恒.哈量新一代并联机床 LINKS-EXE700[J].世界制造技术与装备市场,2007(1):90-94.
[4]王顺利,吴洪涛,缪群华.6-3平台并联机床数控系统软件设计[J].机械制造,2010(1):10-12
[5]周法权,廖佳音,林永勇,等.基于并联机构的五轴搅拌摩擦焊接机床设计[J].电焊机,2014(4):10-13.
[6]刘鹏.PA数控系统中Hexpod型并联机床控制模块开发[D].哈尔滨:哈尔滨工业大学,2009.
[7]殷素峰,杨胜强.基于OpenGL的3DS图形文件中模型数据的获取[J].机械工程与自动化,2005(3):68-70.
[8]胡溥瑞.具有在线仿真功能的并联抛光机床数控系统的开发[D].哈尔滨:哈尔滨工业大学,2012.