惠阿玲,唐文亭,王维璐
(西安理工大学材料学院,陕西 西安 710048)
21世纪,先进塑性加工技术向着高质量、高柔性、低能耗、高精密、轻量化的方向发展。具有上述特点的先进塑性加工新技术和新工艺对于提高产品质量、缩短产品开发周期、减少或免除切削加工、降低成本、节省原材料等有着重要的意义,是当今先进制造技术的一个重要发展方向[1]。金属板带不均匀压下面内弯曲成形技术正是一种满足先进塑性加工要求,创造性地利用材料不均匀塑性变形而获得产品的成形方法[2]。根据加载方式的不同,面内弯曲成形可分为断续加载方式和连续加载方式两种,国内外学者对其成形机理已进行了较深入地研究[3-7]。实际加工中由于多工艺参数的交互影响,弯曲半径难以精确控制,使得该成形技术更多地依赖于工作人员的个人能力和经验积累,依赖于设备参数的反复调试和工艺的摸索改进,因而产品开发周期相对较长、成本较大。可以通过开发一套可视化软件,将专家的经验、工艺参数融入实验数据库,通过软件的分析得出优化的结果。本文采用VB和Matlab的混合编程,对面内弯曲成形过程中相关数据进行处理、拟合及工艺优化。利用VB完成人机交互界面的设计,利用Matlab数据计算能力强的特点,完成各种工艺计算。所设计的程序能够很好地完成给定工艺参数下预弯曲半径的计算及预弯曲半径随工艺参数的变化趋势图形显示等功能。
ActiveX是以COM(Component Object Model组件对象模型)技术为基础的一种应用程序开发技术和体系结构的总称,它是Microsoft公司提供的一种用于模块集成的新协议,它允许应用程序或组件控制另一个应用程序或组件的运行[8]。一般来说,VB和Matlab之间的通信主要用到自动化服务器和自动化控制器。本文用Matlab作为自动化服务器,被作为自动化控制器的VB程序所调用。为了在VB中请求Matlab的服务,必须获得Matlab对象在系统注册表中定义的名字,通常来说,这个名字为“Matlab.Application”。V B 6.0中ActiveX连接Matlab的原理如下:
(1)创建对象声明一个对象变量,创建并返回一个ActiveX对象的使用;
(2)操作对象 得到一个ActiveX对象引用的变量,然后就可以对此变量进行操作,如同对VB中其它对象的操作 (即获取、设置、方法和属性)一样;
(3)释放对象操作完成后,用自动化对象提供Close或Quit函数来结束并释放对象,以免浪费系统内存。
面内弯曲成形主要工艺参数有加载锲角α、压下量S、进给量P、预弯曲半径R;毛坯参数主要有毛坯材料、毛坯宽度W0、毛坯厚度t0。预弯曲半径是成形过程中主要关心的因素。本文所使用的数据库为Microsoft Access,采用了ODBC(Open DataBase Connectivity)开放式数据库互连标准以及ADO(Active Data Objects)连接方式打开。Matlab支持ActiveX自动化技术,能被任何作为ActiveX的控制程序所控制,完成预弯曲半径的数值计算和图形分析,便于工作人员对工艺参数的修改和完善。在VB应用程序内创建了Matlab ActiveX对象后,可实现对Matlab的调用,本模块采用的方法是:
(1)用VB编制与用户进行交互的界面窗口,包括用户信息的输入和结果的显示;
(2)实现VB与Matlab之间的通讯,把VB中用户输入的参数传到Matlab工作空间;
(3)在Matlab中建立预弯曲半径计算的数学模型,根据用户输入进行计算。
图1是用VB控件DataGrid显示的预弯曲半径及相关参数的原始数据,图形下方有五个按钮,可以对数据可进行操作,直观地看到修改结果。
图1 相关工艺参数的原始数据Fig.1 Original data of related process parameters
图2为弯曲半径预测及分析界面。左边输入需要分析的压下量S、加载锲角α、毛坯宽度W0等,右边显示数据库部分数据,方便用户根据自己要求进行快速选择。输入需要分析的参数后,单击确定,VB就会在后台调用Matlab进行必要的计算分析,预测出弯曲半径的值[6]。程序同时给出预弯曲半径随工艺参数变化的趋势图(如图3所示),用户可据此进行下一步的工艺优化工作。
图2 弯曲半径预测Fig.2 Prediction of bending radius
如下代码完成将参数传送到Matlab工作空间并实现计算的功能:
Public objmatlab As Object
Print#1,Text3.Text
Input#1,X(m)
生成Matlab所要执行的命令
strcommand="x=["
图3 预弯曲半径随工艺参数变化趋势图Fig.3 Variation tendency of pre-bending radius with process parameters
g=j-1
For i=0 To g
strcommand=strcommand&Str(X(j* j*i+1))&""
Next i
strcommand=strcommand& "〛;y= ["
For i=0 To g
strcommand=strcommand&Str(X(j*i+2))&""
Next i
……
生成Matlab对象并执行
Set objmatlab = CreateObject("matlab.application")
objmatlab.Execute(strcommand)
strcommand=" [xx,yy] =meshgrid("& X(1)& ":0.002:"& X(j* j*g+1)& ","& X(2)&":0.001:"&X(j* g+2)&");zz=interp2(x,y,z,xx,yy);mesh(xx,yy,zz);xlabel('压下量');
执行命令:
objmatlab.Execute(strcommand)
图4为按本程序提供的优化工艺参数而进行的工业纯铝板面内弯曲试样,实验证明实际弯曲半径与预弯曲半径吻合良好,误差不大于10%。
图4 板面内弯曲试样Fig.4 Samples of in-plane bending of strip metal
基于客户/服务器计算模式,利用ActiveX协议,在VB应用程序中可以集成Matlab强大的数值分析和图形显示功能。将Matlab和VB相结合编制数据处理及分析软件,充分利用了VB良好的用户界面和MATLAB强大的计算和图形功能,提高了软件的整体性能、节约了开发时间和精力。将此方法融入板带不均匀压下面内弯曲成形技术,所开发的软件用户界面直观,操作方便,能够综合考虑各工艺因素的影响,快速准确预测弯曲半径,提高了工作效率、增强了成形过程的可操作性。
[1] 董湘怀.塑性加工技术的发展趋势[J].中国机械工程,2000,11(9):1074-1075.
[2] 鲜飞军,杨合.不均匀压下面内弯曲成形技术的研究进展[J].中国机械工程,2000,11(12):1426.
[3] JIN Yingjun,MAkOTO Murata.Influence of pitch and cross-sectional ratio of strip of sheet metal on incremental in-plane bending[J].Journal of Materials Processing Technology.2004,155(33):1810-1814.
[4] JIN Yingjun,TAKASHI Kuboki,MAkOTO Murata.Influence of strip materials on behavior of incremental inplane bending[J].Journal of Materials Processing Technology,2005,162(40):190 -195.
[5] TANG Wenting,JIN Li,ZHANG Jin et al.A 3D rigid-plastic FEM simulation on radius of incremental inplane bending of strip metal[J].Materials Science Forum,2008,575/578(Part 1):579-583.
[6] TANG Wenting,TANG Chaoli,HUANG Lei et al.Application research on expert system of incremental inplane bending [J].Materials Science Forum,2008,575/578(Part 1):600-605.
[7] 杨合,肖红生,雷军.板带金属不均匀压下面内弯曲成形机理的研究 [J].塑形工程学报,1997,4(3):52-58.
[8] The Mathworks Inc.MATLAB Manuals for External Interfaces(Version 6) [EB/OL].http://maxwell.me.gu.edu.au/spl/matlab-page/apiext.pdf,2001.