基于人工神经网络的釉料厚度沉积率模型拟合软件模块的开发与实现

2011-09-25 09:12于盛睿曹利钢冯浩
陶瓷学报 2011年1期
关键词:施釉釉料编程

于盛睿 曹利钢 冯浩

(1.景德镇陶瓷学院机电工程学院,江西景德镇333403;2.华中科技大学材料成形与模具技术国家重点实验室,湖北武汉430074)

基于人工神经网络的釉料厚度沉积率模型拟合软件模块的开发与实现

于盛睿1,2曹利钢1冯浩1

(1.景德镇陶瓷学院机电工程学院,江西景德镇333403;2.华中科技大学材料成形与模具技术国家重点实验室,湖北武汉430074)

釉料厚度沉积率模型是机器人自动施釉的重要依据。为了进行陶瓷产品的机器人离线编程作业的轨迹自动规划,实现施釉过程中工件釉料厚度的精确性和均匀性,以釉料厚度沉积率模型为研究对象,采用MFC开发了釉料厚度沉积率模型软件功能模块。提出基于神经网络算法拟合沉积模型方案;利用COM形式的VC与MATALB的混合编程实现模型拟合、模型分析功能;设计动态链接库,使模型拟合结果产生word报表。通过试验进行试验验证,结果表明,其最大误差在5um范围之内,从而验证了模型的正确性和有效性。软件界面友好,符合工程实际,提出的方法有助于提高施釉机器人釉料厚度的控制精度,为后续的陶瓷自动施釉离线编程轨迹规划的软件编程和仿真实现提供了具体可操作的模型依据与方法指导。

机器人,釉料厚度沉积率模型,施釉,神经网络,混合编程

1 引言

在机器人离线编程自动施釉作业过程中,釉料厚度沉积率模型的建立是机器人施釉离线编程轨迹规划的核心问题,对陶瓷产品釉料厚度的精确性和均匀性有很大影响。早期的施釉机器人是“示教再现”型的。为了进一步提高产品质量和生产效率,人们开始力图摆脱传统的在线“示教”型的生产方式,寻求施釉机器人离线编程的方法,期望利用计算机自动寻找出能产生最佳施釉效果的喷枪运动轨迹,即施釉机器人离线编程轨迹规划系统[1]。施釉机器人离线编程力图在已知陶瓷产品模型和釉料厚度沉积模型的前提下,生成一条可以控制釉枪运行速度、釉枪距离工件的高度、釉枪与工件喷涂点的位向关系的连续行走路线,即自动生成釉枪轨迹程序。施釉机器人离线编程系统主要由以下几个功能模块组合而成:工艺建模模块、优化控制模块、釉枪轨迹生成模块、釉料厚度分析和轨迹仿真的后处理模块以及最后轨迹导出的机器人程序生成模块。其中工艺建模就是确定釉料在工件上的沉积规律,即确定釉料厚度沉积率模型。准确把握沉积规律是保证离线施釉轨迹规划系统施釉效果的关键。本文首先拟定拟合软件设计方案,对软件系统结构进行规划,选定比较符合生产实际的椭圆双β沉积率模型[2],在此模型理论基础上,采用神经网络算法实现了釉料沉积模型参数的拟合,通过VC与MATLAB混合编程实现了包含模型拟合向导和模型报表生成等功能在内的釉料厚度沉积率模型拟合软件的开发,实例说明该功能模块的实现的基本过程,可为机器人施釉离线编程轨迹规划系统的开发提供有力的参考依据。

2 釉料厚度沉积率模型拟合软件模块设计

2.1 软件模块结构

首先对软件进行总体构架。软件开发采用MFC基于多文档-视图结构[3]的技术开发,系统结构如图1所示。软件由两个部分组成,一部分由VC编程实现,该部分提供良好的人机交互,如实现数据导入、导出、数据打印、模型拟合向导、报表生成等人机交互功能。另一部分主要是接收第一部分交互数据,在计算机后台处理复杂的釉料厚度沉积率模型的拟合和分析。由于此部分涉及到大量运算方面的编程,为了简化编程难度,采用MATLAB遗传算法工具箱和图形工具编程实现,并利用MATALB mcc编译器把该部分程序编译成可独立发布的COM形式[4-6],以使软件模块通过COM接口调用其功能。

2.2 基于神经网络算法的釉料厚度沉积率模型的拟合

2.2.1选定符合实际的釉料厚度沉积模型

如何利用机器人进行施釉作业实现陶瓷产品釉料厚度的精确性和均匀性是涂装领域的一大技术瓶颈。研究者提出了多种平面或规则曲面釉料厚度数学模型,早期的釉料厚度分布有椭圆分布、抛物线形分布、高斯分布、有限范围分布,而β分布由于提供了能够较好涵盖以上模型分布的造型参数β,从而在沉积模型的表达上具有较好的适应性。但是经典的β分布模型只考虑了釉枪喷炬为圆锥的情况,而在施釉生产中,为使釉雾在工件表面形成更均匀的釉膜,在釉枪枪口两侧辅助空气孔引出压缩空气将圆锥状釉雾压成扁平状,形成具有一定厚度的扇形体,在垂直于釉枪轴线的平面上形成一个椭圆形的釉膜图幅形状。这与圆锥喷炬的β分布模型有较大差别。针对实际生产中,考虑施釉沉积图幅形状有可能是圆形和椭圆形两种情况,本文采用的是椭圆双β分布模型[2]:

(其中-a≤x≤a-b(1-x2/a2)1/2≤y≤b(1-x2/a2)1/2)

公式(1)中表示的是釉枪施釉作业沉积在某平面坯体上的椭圆釉膜图幅。q(x,y)是椭圆图幅内厚度分布函数,qmax是釉枪中心轴线在工件投影点的釉膜厚度,该点获得的厚度是整个图幅内最大的。a、b分别是椭圆长短轴长度。β1、β2分别是长、短轴上的分布参数。当β1=1且β2≠1或者β2=1且β1≠1时(即β1和β2有一个等于1,但不能同时为1),釉膜图幅形状就是圆形;除此之外,釉膜图幅形状就是椭圆形。该模型是以釉枪模型为椭锥体作研究对象,涵盖了椭锥及圆锥两种釉枪模型情况,比单β模型更具有合理性。

2.2.2 BP神经网络拟合原理

BP神经网络是一种单向传播的多层前向网络,网络具有输入、隐层、输出节点。其本质可看成是一从输入到输出的高度非线性映射[7-8]。BP神经网络拟合算法是将误差信号(样本输出与网络输出之差)按原联接通路反向计算,按照梯度下降法调整各层神经元的权值和阈值,使误差信号减小[9-10]。BP神经网络拟合算法步骤为:

(1)设置初始权系数为较小的非零随机值。

(2)设定输入/输出样本对,计算网络的输出。(3)计算网络的目标函数,并调整权值。

(4)判别目标函数是否满足设定要求,若不满足,则返回(2),否则拟合结束。

2.2.3釉料厚度沉积率模型BP神经网络算法拟合逼

近的MATLAB实现

如图2所示,为BP神经网络算法拟合Matlab实现流程图。

其中釉料厚度平面实测数据文件的格式为:

数据文件读入Matlab后,得到一个N×3维的数据变量。在读入实测釉料厚度数据文件后,还必须处理文件中无数据的点,这是因为实际测量时,工件常常不对称,工件上某些点的釉料厚度不可测。这些点的数据在读入Matlab后,显示为NaN,所以这些数据必须过滤掉。

为了处理数据方便,采取归一化处理的方法,使实测数据变化范围在[-1,+1]之间,归一化处理主要用到神经网络工具箱函数premnmx,模型采用神经网络算法中的贝叶斯归一化算法拟合。为了对拟合后的模型进行分析,通过surf函数绘制拟合后的模型的误差曲面,并把图形另存为图片格式以供VC调用。

神经网络初始化是神经网络拟合的关键步骤之一。以下是初始化神经网络的Matlab源代码:

net=newff(minmax(p),[15 1],{'tansig','purelin'}, 'trainbr');

net.performFcn='sse';

net.trainParam.goal=0.0001;

net.trainParam.show=inf;

net.trainParam.epochs=20000;

net.trainParam.Mu_max=1e-5;

net.trainParam.min_grad=1e-16;

net.trainParam.mc=0.95;

net.trainParam.mem_reduc=1;

这里采用两层神经网络,第一层15个节点,传递函数采用tansig函数。第二层1个节点,传递函数采用purelin函数。BP网络训练函数为trainbr函数,以均方误差最小作为目标函数,训练次数为20000次。

2.3 模型拟合向导模块的设计

为了软件的更人性化使用,将该功能模块按照向导式方式设计。模型拟合向导模块通过向导形式完成釉料厚度沉积率模型的拟合。这个向导模块设置四个向导步骤:

(1)针对陶瓷平面坯体进行釉枪相对该坯体静止一较短时间的施釉试验,获取该坯体的釉料厚度关于坐标位置的釉料厚度试验数据文件,在模块系统中导入该数据文件。该文件可以是Excel格式的,也可以是mat格式的。

(2)输入工艺参数,包括釉枪速度、釉枪距离、釉料种类、施釉环境湿度和环境温度。

(3)通过COM接口调用M函数进行模型拟合,窗口同时显示拟合进度。

(4)调用结束,以方程形式返回釉料厚度沉积率模型,并图形化显示釉料厚度曲面及误差曲面。

在第(3)步中涉及到VC以COM形式调用matlab程序。由于拟合过程用到了大量的神经网络工具箱函数,而很多神经网络工具箱函数都不能正确生成COM。因此,必须首先解决COM中正确使用神经网络工具箱函数的问题。通过调试发现,很多神经网络工具箱函数如newff实现过程中,需用到如“mse”等神经网络工具箱函数,而这些函数因编译器无法定位,而未被matlab mcc编译器包括进去,导致newff函数调用出错。为了避免这种情况,必须在matlab源程序中加入指令:“%#function mse”,该指令的作用是帮助matlab编译器定位feval、eval等库函数所指定的函数位置。

COM对象建立需要用到MATLAB Bulider for COM工具箱。在MATALB命令窗口输入comtool命令后,出现工具箱图形界面,然后建立工程,把模型分析M文件、模型拟合M文件、数据变换M文件加入工程,经过编译之后,便生成了COM对象。为了使软件独立于MATLAB运行,COM编译时必须包括MATLAB运行时库。编译之后得到了三个类文件Inn_testclass、Inn_analysisclass、Inn_outportlass,分别对应模型拟合COM对象客户端、模型分析COM对象客户端、数据变换COM对象客户端。三个类均继承ColeDispatchDriver类。ColeDispatchDriver类是MFC基础类,该类实现了COM客户端的Dispatch接口。对于模型拟合M文件,在Inn_testclass类中生成了如下的公共成员函数:

void nn_test(const VARIANT&file);其中:file为VARIANT引用变量输入,表示釉膜数据文件的位置,调用该函数便可实现釉料厚度沉积率模型的拟合。

为了在VC环境下调用COM接口,必须实现COM 客户端的 IDispatch接口,通过调用ColeDispatchDriver类的成员函数CreateDispatch实现,该函数以IDispatch接口的位置为参数,对于模型拟合COM,通过编译得到的IDispatch接口的名字为“nn_test.nn_testclass.1_0”。由于调用matlab神经网络拟合功能耗费时间很长,因此在VC中开辟了独立线程处理神经网络模型的拟合,如下所示。

2.4 报表模块的设计

报表模块主要是通过调用matlab图形函数生成釉料厚度、误差分布曲面图,并将曲面图及拟合参数结果、模型表达式导入到word2003中,生成功能丰富的报表。

首先,在matlab环境中建立釉料厚度、误差分布的M函数:

Function []=Modal_Pic_Analyze (modal,measurement_data),

其中输入参数 modal为模型拟合的结果;measurement_data为测量得到的数据。

Modal_Pic_Analyze实现过程为:判断modal的值是否合法,若不合法则返回,否则读入模型拟合数据,然后根据读入measurement_data的长度,生成理论值,调用MATLAB库函数“mesh”生成釉膜厚度、误差分布曲面图,并利用MATLAB库函数"saveas"将图形对象另存为bmp文件。

在VC中,报表模块实现的过程为:通过COM接口调用上述MATLAB函数生成釉膜厚度、误差分布曲面图,产生图像文件。接着访问word2003文件,生成报表。Word2003程序本身已经实现了IDISPATCH接口,因此可通过MFC的Automation技术访问。由于Word2003类型库产生的类较多,因此客户端访问采用动态链接库实现。动态链接库实现的思路为:设计一个导出类,用户可通过调用的导出类的函数来实现对word的访问。报表的生成函数如下面代码所示。

表1平面坯体施釉区域釉料厚度数据测量Tab.1 Measured glaze thickness on flat body surface (单位:um)

3 试验验证

为了验证拟合模型的正确性,以平面坯体为试验喷釉对象,利用实测釉料厚度数据进行建模来验证模型的正确性。试验步骤为釉枪相对于平面坯体不动,枪距d=200mm,釉枪开关时间t=2.5s的喷釉试验,目的是为了记录下平面工件上的图幅长轴位置。

如表1所示,为平面坯体工件实测釉膜厚度数据。

为拟合釉料厚度沉积率模型,启动功能软件的模型拟合向导模块,如图3所示。第一步把实际测量数据导入系统,包括上表所列数据。

图4为施釉沉积率模型拟合第二步。在这一步中,主要是输入相关的工艺参数,为模型分析和报表生成提供数据。

图5为拟合的第三步,在这一步中,通过COM接口调用MATLAB拟合的M函数。

第三步大概经过4分钟结束,得到釉料厚度沉积率模型如图6所示。

从图6可以看出,平面沉积的釉料厚度理论值和实测值最大均方误差小于5um,符合单次施釉作业的公差允许范围,从而验证了釉料厚度沉积模型拟合的正确性和软件功能模块的实用性。

4 结束语

本文对机器人施釉釉料厚度沉积率模型拟合软件功能模块进行了开发。利用VC开发了良好的人机交互界面及word报表功能,利用MATLAB实现了复杂的神经网络拟合模型及三维曲面图的绘制;通过COM形式的VC与MATLAB编程使两者有机结合在一起。试验表明,所开发的软件能为机器人施釉提供准确的模型依据,有助于施釉产品表面质量的提高,具有一定的应用价值。当然,对施釉机器人离线编程系统的构建和应用研究还需要进一步深入。

1石银文.快速发展的机器人自动喷涂技术.机器人技术与应用,2007-09-30

2张永贵,黄玉美,高峰等.喷漆机器人空气喷枪的新模型.机械工程学报,2006,42(11):226~233

3 David J.Kruglinski.Programming Visual C++6.0技术内幕[.北京:希望电子出版社,1999

4刘志刚,汤时虎,鲍加贞.基于VC与MATLAB混合编程的LAMOST跑合数据处理.现代制造工程,2008(5):34~37

5李文煜.VC与MATLAB混合编程实现图像处理.计算机仿真,2005,22(1):254~257

6陈瑶,李诗龙.基于MATLAB环境瓷砖的智能分类检测.计算机仿真,2008(12):52~54

7飞思科技产品研发中心.神经网络理论与MATLAB 7实现.北京:电子工业出版社,2005

8周开利,康耀红.神经网络模型及其MATLAB仿真程序设计.北京:清华大学出版社,2005

9董长虹.MATLAB应用丛书--神经网络与应用.北京:国防工业出版社,2005

10葛哲学,孙志强.神经网络理论与MATLAB R2007实现.北京:电子工业出版社,2007

Abstract

The model for the deposition rate of glaze lays an important basis for automatic glazing of ceramics.For the automatic track-planning of the offline programming robot working on ceramic production line to ensure the accuracy and uniformity of glaze thickness,the software module fitting the glaze deposition model is developed with MFC.The fitting scheme is proposed based on neural network.Model fitting and analysis are realized by hybrid programming with VC and MATLAB based on COM.DLL file is developed to produce word report of the model.The software module is tested by experiments. The result shows that the error of the thickness model is within 5μm.The model built by the software module is correct and effectual.The software's UI is friendly and satisfactory for project practice.The method increases the control over the accuracy of glazing thickness.The paper provides a specific theoretical and methodological support for the realization of process planning and simulation system in ceramic glazing.It will make the future developed system meet the actual processing requirement.

Keywords robot,glaze deposition model,glazing,neural network,hybrid programming

SOFTWARE MODULE DEVELOPMENT AND REALIZATION FOR GLAZE DEPOSITION FITTING BASED ON ARTIFICIAL NEURAL NETWORK

Yu Shengrui1,2Cao Ligang1Feng Hao1
(1.School of Mechanical and Electronic Engineering,Jingdezhen Ceramic Institute,Jingdezhen Jiangxi 333403 China;2.State Key Lab of Material Processing and Die&Mold Technology,Huazhong University of Science and Technology,Wuhan Hubei 430074,China)

TQ174.5

A

1000-2278(2011)01-0100-07

2010-12-04

景德镇市科技项目(编号:景科字{2009}第22号)

于盛睿,E-mail:ysr.hotdog@163.com

猜你喜欢
施釉釉料编程
卫生陶瓷施釉工序常见缺陷分析及解决方法
烧成工艺对Fe2O3-Al2O3-SiO2系多彩釉料呈色及显微结构的影响
编程,是一种态度
元征X-431实测:奔驰发动机编程
编程小能手
基于MATLAB的曲面施釉轨迹优化仿真
纺织机上诞生的编程
试谈陶瓷元素在壁画创作中的运用技法
一种抗菌陶瓷釉料及其制备方法
一种高透强化白陶瓷釉料及制备、使用方法