技术文章和通讯

用MATLAB自动化电子束自由形式制造

Bill Seufzer博士,NASA Langley研究中心


在国际空间站(International Space Station)和其他长期太空任务中,更换关键系统上的一个损坏部件的能力可以将潜在的任务失败转变为成功。但是,宇航员如何在微重力条件下,在离地球表面数百英里的高空制造零件或工具呢?

电子束无成形加工(EBF)3.)技术提供了一个可能的解决方案。发明于NASA兰利研究中心,EBF3.是一种用于金属的层加性制造方法,用于使用电子束能量源和钢丝饲料原料来构建3D物体,通过层加入材料(主要是铝和钛合金)层。NASA Langley的目前的系统基于Sciaky电子束焊机,这些钢焊机已经在工业厂房使用多年(图1A和1B)。电子束焊机非常适合于太空应用,因为它们必须在真空中操作并在微匍匐功能中均匀运行。

图1 a。NASA兰利研究中心的电子束焊机。
图1 b。电子束自由焊。

然而,直到最近,使用电子束焊机制造即使是相对简单的形状,也是一个劳动密集型的手工过程,需要熟练的操作人员的密切监督。在NASA Langley,我们用MATLAB开发了一个控制系统®完全自动化该过程,并且能够从CAD软件中创建的3D表示中产生复杂的钛和铝组件。

MATLAB的交互环境和面向对象编程特性简化了控制开发过程中的各个阶段:开发机器人控制,增加对从标准镶嵌语言(STL)文件读取形状数据的支持,并结合测量和图像采集功能。金宝app

使用MATLAB生成控制代码

在手动EBF中3.过程,工程师在G码中写下了指令,计算机数控编程语言。这些指令例如将打开电子束并设定其强度,然后开始送出电线以启动熔融池,并将机器人焊机移动以产生金属珠子。由于不能预先确定珠子的精确厚度,因此工程师必须估计下一层应该开始的地方。如果估计值关闭,工程师必须在沉积期间手动重新调整焊接平台的高度。即使具有专业技能和知识,写出G代码并牧养地完成任何比基本3D形状更复杂的过程是一项挑战。

在自动化这个过程中,我们的首要任务是简化更复杂形状的g代码的创建,例如用于加固低温容器的正交几何形状(图2)。特别是防止过量材料堆积在十字路口所需的规范。

图2。一个粗糙的正交网格结构,用MATLAB生成的g代码创建。

我们的解决方案是开发一个MATLAB脚本,它可以自动生成g代码,从对象的兴趣点描述创建复杂对象。例如,给定图2所示网格的描述,MATLAB脚本生成注释的g -代码来打开光束,设置适当的电源设置,移动机器人焊机通过需要制造网格的点,然后关闭光束。

从CAD文件制造零件

我们制造的一些形状是使用CAD软件包设计的,可以将设计导出为STL文件。我们的下一个自动化步骤是直接使用MATLAB读取这些STL文件,然后生成制造定义的形状所需的G-Code。

我们编写了MATLAB代码,解析STL文件,获得形状的3D表示(图3)。然后代码将形状切片成层,层的厚度近似于焊机沉积的金属珠的厚度。

图3。MATLAB可视化的部分定义在STL文件。

例如,给定目标高度为1英寸,厚度为0.025英寸,MATLAB代码应用几何计算来确定形状与距其基础上方1英寸的平面将相交的点(图4)。

图4。三维形状的三层,每层由一组无序点组成。

MATLAB代码将这些点输入逻辑焊机刀具路径(图5),并生成该层的g代码。当我们开发这段代码时,我们使用MATLAB可视化3D形状,各个图层,以及这些图层的最终工具路径。

图5。描述单层焊机刀具路径的一组点。

将仪器

在自动生成g代码以创建任意3D形状的过程后,我们将注意力转向焊接过程。由于不可能精确地控制焊机产生的金属焊道的高度,每一层沉积层的厚度可能会变化。虽然每一层的厚度与预期相差不到0.002英寸,但当需要几百层才能形成一个零件时,即使每一层重复出现一个小的误差,也会导致零件设计高度和制造高度之间的明显差异。操作人员无法手动调整焊机的高度来纠正这个错误。

我们的解决方案是一种激光测量系统,称为顺序水平自动z轴测量,或SHAZAM。通过仪器控制工具箱控制,该系统引导激光束到正在制造的零件上,以确定其当前的高度。MATLAB代码使用这个值来选择下一个要制造的切片的位置。这种基本的反馈控制使我们能够更准确地再现原始设计,焊工操作人员的手动干预更少(图6)。

图6。如图5所示的部分是经过多层沉积后部分制备的。

我们的下一个工艺改进集中在加强控制珠。具体来说,我们想根据焊接点金属熔池的大小自动调整电子束的功率。为了沉积均匀的珠,我们需要在熔池太大时降低功率,在熔池太小时增加功率。同样,这一任务通常由操作员手工处理,需要大量的经验。

为了使这部分过程自动化,我们设置了一个8位黑白相机来拍摄焊接。我们使用了图像采集工具箱从摄像机和图像处理工具箱导入图像和模糊逻辑工具箱以编程方式确定何时需要调整熔池的大小。用模糊逻辑来表达机器操作员的经验观察比用方程式来描述要容易得多。我们可以简单地调整模糊逻辑,直到得到我们想要的结果。基于我们创建的模糊干扰系统,MATLAB代码通过仪器控制工具箱和RS-232连接到焊工的计算机来调整束流。

组装完整的控制系统

完整的控制系统由控制台PC和运行MATLAB代码的仪器PC和Sciaky的嵌入式计算机组成,该计算机控制机器人。在仪表PC上,称为Choreographer的Matlab应用程序从STL文件生成G代码。它将此代码发送到控制台PC,其中代码被编译并上传到焊机的嵌入式计算机。然后,舞蹈将焊工发出信号以开始焊接。

在熔池沉积过程中,MATLAB闭环控制器监测熔池并根据需要调整束流。当焊接完成后,编舞指导焊工将SHAZAM移到合适的位置,并测量零件的高度。然后,它根据当前高度从STL文件中获取下一个切片,并重复该过程,直到该部分完成。MATLAB在这一领域的一个关键优势是它能够集成和协调不同的技术,包括g代码生成软件、焊机、摄像机和激光测量系统。

开发和维护12,000多行MATLAB代码,该系统已通过应用面向对象编程技术简化。例如,SHAZAM设备被表示为一个对象,可以通过定义良好的方法访问该对象,例如S.OPEN()S.Measure..面向对象的代码几乎是自我记录的,比一组分散的子例程更容易调试(图7)。

Classdef Shazam处理特性LMU%激光测量单元(尖锐®ar700) zab %接口的Zaber®真空额定致动器w2kOffset % [x y z]探头到焊机点的矢量偏移%一组点测量[x y z t]结果%测量结果portLmu = 'com2';portZab =“com3”;结束方法%不完整的方法功能打开(sha) %功能简化打字为手动操作%打开屏蔽门sha.zab.打开;end function measure(sha,w2k) % at each point make a Z轴measurement for x=1:size(sha.points,1) % move the probe above the point w2k.goto(sha.points(x,:)+sha. w2koffset);curPos = sha.points(X,:);% get measurement (Z) curPos(3) = sha.height;%记录位置sha.results(x,:)= curPos;端端端端

图7。沙札姆classdef对象。该对象封装了两个串行接口,一个与Acuity激光接口,另一个与Zaber驱动器接口,Zaber驱动器用于打开和关闭保护激光的门。

使用MATLAB,我们可以随时互动地检查任何对象。面向对象的方法也使系统更轻松地添加新功能。我们目前正在测试一种系统,该系统使用相机检测送丝器和热电偶的问题,以监测在制造期间保持零件的基板的温度。

我们已经过现场测试了我们的EBF的微型版本3.焊接系统乘坐美国宇航局的减重飞机。我们还在许多实际应用中使用了该技术。例如,我们与要求我们的航空航天公司要求我们生产4磅重的部分,以展示EBF的潜在材料和劳动力的利益3.的过程。零件的形状需要他们从一个400磅重的钛坯开始,这将导致大量的浪费,并需要数周的加工时间。使用我们的系统,我在一天内制作了一个大约23磅重的零件。从这部分开始,而不是400磅的块省去了两周的加工,并减少了80%以上的钛需求量。

发布于2012 - 92009v00

查看相关功能的文章

查看相关行业的文章