孙占文,张向辉,柳常清,张 坤
(1.哈尔滨工业大学深圳研究生院机电工程与自动化学院,广东深圳 518055)
(2.长春理工大学机电工程学院,吉林长春 130022)
(3.云南水富云天化有限公司,云南昭通 657800)
基于Simulink/xPC和数字图像处理技术的数控激光切割系统设计
孙占文1,张向辉2,柳常清2,张 坤3
(1.哈尔滨工业大学深圳研究生院机电工程与自动化学院,广东深圳 518055)
(2.长春理工大学机电工程学院,吉林长春 130022)
(3.云南水富云天化有限公司,云南昭通 657800)
为了实现激光切割系统的控制平台的快速搭建,提出了基于MATLAB平台的控制系统的设计方案和基于数字图像处理技术的数控文件生成方法。利用Simulink/xPC target、伺服滑台以及相关的外围电路搭建了十字轴二维运动平台,并通过MATLAB提供的图像处理函数及脚本文件提取相关曲线轮廓,生成加工轨迹。最后通过实验数据分析,验证了基于MATLAB图像处理技术和Simulink/xPC target的控制平台具有开发周期短,开发成本低廉,同时具有很强的二次开发性等优点。
MATLAB;Simulink;xPC target;数字图像处理技术;激光切割
现代制造业中,激光切割具有很大的应用量,是应用范围相当广泛的基础加工工艺之一。随着计算机数控技术的发展,使得由激光切割技术与计算机数控技术相结合的数控激光切割技术表现出了很大的优越性[1]。但是使用传统方法设计一台专用的激光切割机,不仅成本高,而且需要花大量的时间调试程序,不仅延长了开发周期,不利于市场竞争,而且其封装性也不利于用户进行二次开发[2]。同数字图像处理技术相比,传统的CAD软件在样条绘制过程中工作量大,被控制点的坐标调整也较为繁琐。本文介绍了一种基于数字图像处理技术和Simulink/xPC快速原型控制方法的激光切割控制系统的搭建方法。由于MATLAB强大的功能和PC兼容机的广泛应用,从而使由xPC target开发的实时应用系统具有较低廉的成本、较广泛的通用性、较短的开发周期和较强的二次开发性能等优点。
xPC target是MathWorks公司开发的一个基于MATLAB/Simulink的产品,具有多种I/O设备模块,可以支持绝大多数的开发板,并且提供了高性能的宿主机、目标机工作环境,从而将Simulink模块同实际装置联系起来,以实现实时控制[3]。xPC target采用宿主机-目标机工作模式,两者之间用串口或以太网通信。在宿主机中,可以通过Simulink建模工具建立用户需要的模型,并将该模型导入RTW代码生成器和C编译器,从而生成可在目标机中实时执行的代码,最终实现了将通用PC机转为实时控制器的过程。
2.1 工作流程
通过MATLAB的数字图像处理工具箱提取图像的轮廓信息,然后经过相应处理和标定生成位置控制点坐标系矩阵,并通过相应的文件处理函数将相应的控制信息导出到格式为“.mat”的控制文件中。通过GUI模块读入控制文件到上位机控制程序,并将控制信息传输给控制器,最终由控制器发出控制指令来协调设备各部件工作,其中控制器是由xPC target模块搭建的。基本工作流程如图1所示。
图1 工作流程图
2.2 实时控制平台实现
2.2.1 硬件平台搭建
系统硬件由上位机、目标机、数据采集卡和IPG激光器、继电器等组成。上位机由1台电脑、1个PCI以太网卡、RAM(8GB)、USB接口等组成,安装的软件有MATLAB及其工具箱、Simulink、RTW、C语言编译器、xPC target。设置MATLAB编译器为C编译器,并将xPC目标程序编译器设置为Visual Studio 10编译器。目标机由芯片组、网卡、CPU(奔腾4)、监视器、U 盘、RAM(763M)、I/O 设备板卡(NIPCI-6221多功能采集卡)等组成。目标机无需操作系统,由用U盘制作的目标启动盘启动,并且BIOS需要与PC兼容。本文采用的是以太网口通信连接。控制平台结构如图2所示。
其中激光发生器型号为IPG YLR(掺镱石榴石固体激光器),最大功率为300W。当设置为外部
图2 控制平台结构
控制模式时,只需将有关控制引脚置高电平(24V)便可触发激光。
2.2.2 软件平台搭建
软件平台由上位机交互界面、下位机控制程序、数字图像处理程序组成。上位机交互界面通过MATLAB GUI编写完成,主要实现激光枪头位置的手动调整、数控文件的读取与控制信息的传输、下位机控制程序的下载及滑台位置反馈信息的读取与显示等功能。
下位机程序的逻辑运算功能通过Simulink编制的程序框图实现。通过xpctarget.tlc文件将程序框图编译成32位的实时程序,然后下载到下位机,并且可通过编写S-FUNCTION来扩充Simulink的逻辑运算功能。
上午十点,大林起床了。他一头濡湿地从小间里出来,就看见倩倩坐在门厅的一堆鞋子里搭积木。大林问女儿,你妈妈呢?倩倩说,打牌去了。大林说,宝宝肚子饿不饿?宝宝吃了饼干,不饿。爸爸肚子好饿。爸爸你吃宝宝的饼干呀。爸爸不吃宝宝的饼干,爸爸要吃宝宝的肉肉。大林说着就捉住倩倩的胳膊,张大嘴巴。倩倩咯咯地笑起来,并不躲避,还把另一只细小的胳膊也伸到大林的嘴边。
数字图像处理程序由m文件编制,通过调用MATLAB封装的数字图像处理函数提取图像中的曲线轮廓信息,然后通过后续处理生成相关的数控文件。
3.1 下位机控制算法及程序实现
本文中采用的运动轨迹控制算法为等距折线逼近法,其实现原理为在一段曲线上按照等距的准则选取N个节点,并通过直线连接起来,以此来逼近曲线。其中,N的数目越多则与实际曲线轮廓越接近,误差越小。对于上述节点的选取方法,会存在节点X坐标值或Y坐标值不是单脉冲进给量的整数倍的情况,使节点落在单脉冲进给长度的内部。通过将X,Y坐标最近化处理,即将节点的X,Y的坐标值取成与其最接近的网格中包含的X,Y坐标值,然后滤除坐标重复的点,便得到拟合的进给路线。上述过程与图像的数字化处理类似,参见本文图像处理部分。
在获得曲线轮廓位置控制点系坐标矩阵后,由Simulink模块编写下位机控制程序,以保证X,Y轴滑台联动。具体思路是通过协调X,Y轴位置控制脉冲的作用时间来实现的。由于图像处理所得到的轮廓边缘上两相邻点组成的直线斜率为0、±1或±∞ 共5种有限情况,所以X,Y轴的联动控制只需通过独立计算各轴脉冲发生时间、控制脉冲的频率即可实现。在获得了X,Y轴的联动时间T,以及进给量DX,DY后便可推算出X,Y轴的进给脉冲频率,进而可由脉冲发生模块产生相应控制脉冲,以协调X,Y轴运动。其程序框图如图3所示。
图3 程序框图
脉冲发生模块的功能为产生频率固定的脉冲串,其脉冲个数与滑台位移相对应。由于在Simulink模块库中没有功能与之相同的模块,所以需要自行编写相应的S函数再搭配有关的Simulink模块库来实现相应功能。由于本文Simulink建立的模型为离散模型,因此所编写的S函数也是离散的。Simulink对离散模型进行求解时,在由一个仿真步进行到下一个仿真步的过程中,模型内部的模块会重新执行输出函数MdlOutputs,并将其内部定义的变量初始化。这就导致了在位置控制脉冲发生的起始时刻和终止时刻,两次输出间发生冲突。本文中通过使能模块(Enabled Subsystem)和通过将控制脉冲的发生时刻作为参数输出,同时也作为下个仿真步的输入来解决这一问题。图4为X轴的控制脉冲发生模型图。
图4 X轴的控制脉冲发生模型图
为解决将同一模块的输出同时作为自身输入时会引起代数环的问题,需要添加一个延时环节。其中通过constant环节输入X坐标值,做差环节是为了计算X轴当前坐标与前一坐标的差值,使能环节作用是保存脉冲发生时间的终止时刻。其中pulsecreate模块为脉冲产生计算模块,其主要运算部分为mdlOutputs,主要运算代码如下:
X,Y轴的控制脉冲频率确定方法为:设pulsecreate模块的采样时间为Δt,每个脉冲包含的采样点个数为k,控制脉冲的周期为T,频率为W,则控制脉冲的频率可用。本文采用的Δl=5μm。因此,在采样时间为Δt、单个脉冲包含的采样点个数k确定的情况下,可以用控制脉冲发生时间t来表示曲线轮廓上的坐标值,本文正是采用这一思路。
在通过控制脉冲个数控制位移的情况下,X,Y轴滑台的运动方向由两路数字通道输出的电平控制,其中高电平为正向,低电平为负向。图4中S函数FXswitch为滑台运动的方向控制模块。由使能模块产生的坐标差值,传入S函数FXswitch,并通过其正负来确定滑台的位移方向,其绝对值为控制脉冲发生时间t。最后将函数FXswitch的输出传入pulsesource来产生控制脉冲。
3.2 上位机控制功能及程序实现
上位机的控制功能主要为通过连接手柄来实现X,Y轴滑台位置的手动调整,并且能够读入位置控制点系坐标文件(.mat文件),将有关控制信息传给下位机,来驱动滑台和控制氧气的通断,以及控制激光的触发。同时在滑台沿曲线进给的过程中,能够显示出曲线形状,以及激光的光斑在曲线轮廓上所处的位置。计算。由于脉冲个数与位移相对应,设控制脉冲发生时间为t,则在时间t内产生的控制脉冲个数为N=Wt。设一个控制脉冲对应的位移为Δl,则控制脉冲发生时间t内的位移
3.2.1 手柄控制
本文中手柄采用的是USB手柄,手柄信号的接收为用C++语言编写的3个CPP文件,调用Windows的API函数来查找初始化手柄,接收手柄摇杆位置信息、手柄按钮信息。然后,通过MATLAB MEX接口,将CPP文件编译成MATLAB GUI能够调用的mexw64文件(针对WIN7系统)。最后,通过GUI模块编写出一个交互界面,来接收手柄信息传输给下位机实现滑台位置调整,并将手柄的摇杆信息、按钮信息以及滑台的位置信息显示在交互界面的窗口中。完成后的手柄控制界面如图5(b)所示。主要代码如下所示:
图5 手柄控制界面
3.2.2 轮廓曲线程序控制
如前所述由于控制脉冲发生会需要时间t,因此当通过上位机向下位机发送控制指令(X,Y轴坐标值,氧气状态,激光使能状态)时,两次控制指令发送之间应该有一个延时,延时的时间长短需要有一个精确的控制,延时时间过长会增加金属板切缝周围的烧伤面积,延时时间过短会导致控制脉冲不能完全发出。
延时时间Dt可由Dt=tf+to确定。其中tf为延时基本时间,取值为控制脉冲发生的时间t,to为考虑到其他因素(如刻画深度或切割厚度)的预留时间,经实验,在不加氧气助燃情况下,在不锈钢板表面进行刻画时,to取值为0.002s。控制指令的读取及发送通过for循环以及pause函数来实现,其对应的GUI程序中代码如下所示:
编写完成的轮廓曲线程序控制交互界面如图5所示。
3.3 位置控制点系坐标矩阵的获得
通常可以通过相关CAD软件或MATLAB图像处理工具箱来获得位置控制点系坐标矩阵。其中,前者在绘制轮廓曲线时为手动控制,得到的曲线较为光滑,但是工作量大,控制点坐标的调整也较为繁琐,效率不高。而后者是利用图像的锐化处理及边缘检测对图像中的曲线轮廓进行提取,效率很高。
由于二进制图像可以更容易识别出图像的结构特征和描述图形的轮廓,因此在进行图像处理之前应对图像进行二值化处理,即将其他类型的图像转换为二进制类型的图像。在图像进行二值化后,进行边缘轮廓的提取,即图像的锐化处理及边缘检测。锐化处理是指使用锐化空间滤波器对图像进行处理,其主要目的是突出图像中的细节,其实现方式为空间微分。由于二阶微分处理对细节有较强的响应,如细线和孤立点,因此为保证提取边缘的细化以及完整,对图像的锐化处理,采用二阶微分的形式来实现,具体形式为拉普拉斯算子。
对于一元离散函数f(x),表达一阶微分的定义是一个差值。为了与二元图像函数f(x,y)求微分时的表达式保持一致,应使用偏导数符号,因此沿空间轴X的二阶偏微分的定义为。拉普拉斯算子是最简单的各向同性微分算子,一个二元图像函数f(x,y)的拉普拉斯变换定义为因为任意阶微分都是线性操作,所以拉普拉斯变换也是一个线性操作。为了更适合数字图像处理,这一方程需要表示为离散形式。考虑到有两个变量,因此,在x方
上述公式可以用图6(a)所示的图像掩模来实现,它们给出了90°旋转时各向同性的结果。将对角线元素加入到离散拉普拉斯变换的定义中,可得到图6(b)所示的掩模,这种掩模对45°增幅的结果是各向同性的。其实现机理为在M×N的图像f上,用m×n大小的滤波器掩模进行线性滤波,可由下式给出,其中a=(m-1)/2且b=(n-1)/2。为了得到一幅完整的经过滤波处理的图像,必须对x=0,1,2,…,M - 1和 y=0,1,2,…,N - 1 依次应用上述公式。由于45°增幅各向同性拉普拉斯算子增加了对角线方向像素,所以90°旋转各向同性拉普拉斯算子提取的轮廓比45°增幅各向同性拉普拉斯算子细一些。为后续过程中轮廓像素点按加工路线排序方便,本文采用产生较细轮廓的拉普拉斯算子,即90°旋转各向同性拉普拉斯算子[4]。
图6 图像掩模
上述算法可在MATLAB平台中实现。将原始图片导入到MATLAB中提取轮廓。通过拉普拉斯算子对图像进行锐化滤波。此外,MATLAB中还封装了edge函数,用来提取图像边缘,其调用格式为[5]:
其中,BW为返回的二值图像,I为进行边缘检测的图像,log为采用拉普拉斯算子进行边缘检测,thresh为log滤波器的阈值,sigma为log滤波器的标准差。经实验验证,采用90°旋转各向同性拉普拉斯算子进行卷积得到的边缘与通过采用log算子的edge函数所得到的边缘几乎没有区别。
在获得图像中图形的边缘轮廓后,要对轮廓像素点的图像矩阵坐标按加工路线排序,为后续生成位置控制点系坐标矩阵做准备。经分析可以得出通过用edge函数得到的边缘轮廓上像素点的邻域结构特征为:
a.以某一边缘轮廓像素为中心,其8邻域内最多只会出现3个与其相连通的点,最少为2个连通点。
b.邻域内,连通点与中心点的距离的平方最大为2,最小为1。
c.如果按加工路线方向排序,当邻域内有2个连通点时,只会有一个连通点排在中心点之后,如果邻域内有3个连通点时,则会有2个连通点排在中心点之前或之后,剩余的1个中心点与这2个连通点相反。
可以根据上述特征编写相应程序来进行排序,其逻辑流程图如图7所示。
图7 程序流程图
按上文方法,以图8为原始图像进行实验。
图8 原始图像
其中,图9为通过laplace锐化处理得到的由像素组成的边缘轮廓,图10为图9方框部分的局部放大图,可以看到封闭轮廓由像素点组成,图11为对图10中像素点坐标值按加工轨迹进行排序,并进行相关处理得到的实际加工轨迹,图12为加工后的实际效果图。
图9 边缘轮廓图
图10 局部放大图
图11 加工轨迹图
图12 实际效果图
本文详细介绍了xPC target实时系统的特点和图像处理的空间锐化滤波原理,利用xPC target、MATLAB图像处理函数、IPG YLR激光器以及MATLAB GUI开发了一套简易激光切割设备,并对设备的联动控制算法以及控制功能的实现进行了详细的论述。通过获得的相关实验数据,分析上述基于MATLAB图像处理技术和Simulink/xPC target的控制平台能够很好地满足激光切割设备的控制功能要求,并且基于该方法的控制平台具有较低廉的成本、较广泛的通用性、较短的开发周期和较强的二次开发性能。
[1]孙鑫.二维激光切割路径优化研究[D].武汉:华中科技大学,2012.
[2]XU Wei,CHEN Jihong,YANG Jin.Design of Servo System for 3-Axis CNC Drilling Machine Based on xPC target[C]//2009 ISECS International Colloquium on Computing,Communication,Control,and Management Proceedings.Sanya:2009 ISECS International Colloquium on Computing,Communication,Control,and Management,2009.
[3]Shao Limin,An Shijie,Chang Hanbao,et al.Study on Real-Time Test-Bench of Speed Governor Using Matlab/xPC target[C]//Proceedings of 2007 8th International Conference on Electronic Measurement&Instruments.Xian:2007 8th International Conference on Electronic Measurement& Instruments,2007.
[4]拉菲尔·冈萨雷斯.数字图像处理技术[M].2版.北京:电子工业出版社,2007.
[5]杨丹,赵海滨,龙哲.MATLAB图像处理实例详解[M].北京:清华大学出版社,2013.
Design of Laser Cutting Numerical Control System Based on Simulink/xPC and Digital Image Processing Technique
SUN Zhanwen1,ZHANG Xianghui2,LIU Changqing2,ZHANG Kun3
(1.Harbin Institute of Technology Shenzhen Graduate School,Guangdong Shenzhen,518055,China)
(2 Changchun University of Science and Technology,Jilin Changchun,130022,China)
(3.Yunnan Fushui Yuntian Chemical Co.,Ltd.,Yunnan Zhaotong,657800,China)
Now the laser cutting technology has been widely used in metal and non - metallic materials processing.The laser cutting can reduce a lot of processing time and improve the quality of the machined surface.In order to establish a laser cutting control system fleetly,it puts forward a design scheme based on MATLAB and digital picture processing technique,builds a crisscross two - dimension motion platform with Simulink/xPC target,servo sliding table and related peripheral circuit.It also develops a control interface software by MATLAB GUI.
MATLAB;Simulink;xPC Target;Digital Picture Processing Technique;Laser Cutting
TP23
A
2095-509X(2013)11-0063-06
10.3969/j.issn.2095-509X.2013.11.016
2013-09-10
孙占文(1988—),男,吉林吉林人,哈尔滨工业大学深圳研究生院硕士研究生,主要研究方向为超精密数控系统。