基于Matlab-GUI数控机床热误差补偿的仿真系统
2011-05-18徐卫东任小洪周天鹏乐英高
徐卫东,任小洪,周天鹏,乐英高
(四川理工学院 自动化与电子信息学院,四川 自贡643000)
随着现代化机械制造业的不断发展,提高数控加工精度尤为重要。对于数控机床而言,热误差是其最大的误差源,可达机床总误差的70%左右[1],因此热误差补偿成为这项技术的重要支柱之一。目前,国内外许多专家学者主要在数控机床热误差补偿建模方法和简单的热误差补偿软件系统上作了大量的研究,如文献[2]讲述了基于神经网络的数控机床热误差建模。文献[3]提出了一种基于可编程多轴运动控制器(programmable multi-axis controller,PMAC)的软件热误差补偿系统。虽然在这些实验研究中误差都得以补偿,但都存在许多问题,如补偿实时性差、补偿系统操作繁琐等,并缺少一套系统化、明朗化的互交性热误差补偿操作系统。GUI是一种以图形化为统一的图形操作系统,如可移动的视窗、选项与鼠标,作为用户与操作系统之间的中介[4]。GUI负责系统可视化界面的生成、管理以及系统与用户之间的信息交换。本文以Matlab-GUI为基础,结合BP神经网络模型,对数控机床热误差补偿仿真系统进行研究,使数控加工过程中的热误差补偿更加具有实时性、高效性,且操作简单明了。
1 实验数据检测与BP神经网络模型建立
1.1 实验数据检测
研究以三轴联动卧式加工中心X轴为例。用无纸记录仪和激光干涉仪采集了X轴丝杠的定位误差。具体方法:开机后以速度(6~14)m/min运行,间隔10 min采集定位精度数据(用检测定位精度的程序每间隔100 mm,暂停5 s,行程1 000 mm,前后端各留有5 mm余量,共1 010 mm),定位误差由-28.63μm~+35.7μm。另外,在此期间随时采集温度数据。温度数据采集过程中还进行了降温试验。
该三轴联动卧式加工中心的主要热误差源有左右光栅温度、左右轴承座温度、左右电机座温度、工作台温度、环境温度等。利用粗集理论方法[5],分析热误差与各变量之间的相关性,提取车床热误差补偿重要特征参数。实际分析中,选取了右光栅尺温度、右轴承座温度、左电机座温度、工作台温度等4个重要特征。
1.2 BP神经网络模型建立
BP神经网络是一种多层前馈神经网络,该网络的主要特点是信号前向传递,误差反转传播[6]。神经网络的神经元传递函数一般是s型。输出层神经元传递函数可以是s型,也可以是线性。
结合4个关键的温度点值作为网络输入。因此,神经网络输入层节点数为4,又通过kolmogorov定理[7],隐含层的节点数为(2N+1)=2×4+1=9,又由输出节点为1个,因此所创建的BP网络建模为4-9-1结构。BP神经网络结构如图1所示。
2 机床热误差补偿仿真系统设计
2.1 Matlab-GUI设计工具介绍
Matlab中图形用户界面(graphical user interfaces,GUI)是由窗口、光标、按键、菜单、文字说明等对象(objects)构成的一个用户界面,用户通过一定的方法(如鼠标或键盘)选择并激活这些图形对象,使计算机产生某种动作或变化,比如实现计算、绘图等[8]。根据用户需要,Matlab将所有GUI支持的用户控件都集成在界面设计集(GUIDE)中,并提供界面外观、属性和行为相应方式的设置方法[9]。
2.2 系统界面设计
在软件设计中,以建立出符合实际应用需要的GUI,大体步骤为[10]:
1)建立figure对象以作为整个GUI的基础窗口并设置相关属性,接着建立的子对象就会依据这个figure对象的句柄值来不断加入到窗口中。
2)设置需要建立的axes、uicontrol、uimenu、uicontextmenu等对象,并设置相关的属性及Callback来实现相关的控制操作。
3)配合界面的人性化,可以加入坐标轴的子对象,如line、patch等。
在设计数控机床热误差补偿仿真系统界面时,通过文本编辑框控件构建界面大体框架。该框架分为5个模块:数据导入与显示模块、神经网络参数设置模块、控制按键模块、热误差补偿图形显示模块、误差补偿数据分析与保存模块。具体界面如图2所示。
1)数据导入与显示模块。该部分完成对机床的温度数据和误差数据的导入,即实现神经网络的输入。该数据分为训练组数据与测试组数据。
2)网络参数设置模块。根据神经网络模型结够设置好输入层神经元个数、隐层神经元个数、输出神经元个数。然后是训练最大步数、训练目标、学习率等参数的设置。
3)控制按键模块。该模块是整个仿真系统的核心,他将数据导入模块与其他模块联系起来,构成一个统一的整体,并且完成各按键操作。
4)热误差补偿图形仿真显示模块。当神经网络训练好后,操作“预测仿真”和“残差仿真”,该模块对应地显示预测补偿图和残差图。
5)误差补偿数据分析与保存模块。在图形仿真后,此模块完成的是补偿后数据的显示与保存。
图2 数控机床误差补偿仿真系统界面框架
2.3 应用程序M文件的设计
当设定好界面布局后,GUIDE将图形界面保存在一个FIG资源文件中,同时将自动生成包含图形界面初始化和组件界面布局控制代码的M文件,在该M文件中可以实现回调函数的编写与修改。M文件中包含GUI设计、控件函数和控件回调函数,主要用来对GUI展开时的各种特征进行控制。
实现上述界面功能,主要是完成数据导入与显示模块中控件下的回调函数的编写,以及控制按键模块中的“网络训练”、“预测仿真”、“残差仿真”、“补偿数据”、“保存数据”、“退出系统”等各个控件下的回调函数的编写。这里由于篇幅的原因,下面以数据导入与显示模块与数据分析与保存模块为例做简单描述:
结合机床关键温度点及关键温度数据和误差数据,对导入数据控件“pushbutton”和归一化“radio button”callback下的回调函数的编写,同时对温度数据和误差数据显示“list box”和“edit”callback下的回调函数的编写,实现控件的功能,完成数据的导入和显示。其导入数据程序片段为:
综合机床实际情况完成与用户互交。实现其各自的功能,使整个界面连贯统一。
2.4 界面仿真
根据上述机床关键点温度数据和误差数据,再结合BP神经网络模型完成界面上机床热误差补偿的仿真。首先,导入网络训练的相关机床关键点温度数据和误差数据,设置好网络结构参数和训练参数,然后点击“网络训练”控件进行网络训练。训练好网络后,接着导入测试数据,点击“预测仿真”控件,得出相应的预测补偿图。点击“残差仿真”控件,得出补偿残差图。最后点击“补偿数据”和“保存数据”控件完成补偿数据的分析和保存,补偿数据分析中包括预测误差数据、实测数据、残余误差数据。将这些数据保存后并反馈给CNC控制系统,CNC控制系统做出误差控制指令,进而做出相应的误差补偿。具体的补偿实现可视化界面如图3所示。
图3 热误差补偿实现后可视化界面
由图3中预测补偿和残余差可知,经补偿后,径向热漂移从28.63μm以上降到约7μm,热误差降低约75.6%。拟合性能也很好。因此表明,数控机床热误差得以补偿,加工精度得以提高。同时结合界面中各个模块的数据显示与分析,使数控机床热误差补偿更加系统化、可视化、明朗化。
3 结束语
通过基于Matlab-GUI数控机床热误差补偿仿真系统的研究,进行可视化界面操作,完成网络的训练、预测仿真,最终得出误差补偿数据并保存。研究表明:在补偿方面,补偿精度得以明显提高;在操作方面,基于Matlab-GUI的补偿系统界面使整个操作过程变得连贯和统一,在通过视觉观察仿真图形的同时,还能实时地完成对补偿数据的分析和处理。但如何将该课题研究与实际机床更完美地对接整合,将是下一步面临的重要工作。
[1] 杜正春,杨建国.制造机床热误差研究现状与思考[J].制造业自动化,2002,24(8):1-3.
[2] 刘国良,张宏涛.神经网络理论在数控机床热误差建模中的应用[J].现代制造工程,2005(8):20-23.
[3] 潘淑微,贺永.基于PMAC的数控车床主轴热误差补偿系统研究[J].机械制造,2007,45(5):40-42.
[4] 刘洲洲,肖军.基于跨平台下的嵌入式GUI人机界面系统研究与设计[J].现代电子技术,2010,14:34-36.
[5] 曾黄磷.智能计算[M].重庆:重庆大学出版社,2004:45-47.
[6]MATLAB中文论坛.MATLAB神经网络30个案例分析[M].北京:北京航空航天大学出版社,2010.
[7]Hecht-Nielsen R.Kolmogorov’s mapping neural network existence theorem[C]//IEEE First International-Conference on Neural Networks.New York:[s.n.],1987:11-14.
[8] 贾建科,韩团军.基于Matlab GUI的模拟带通滤波器的设计[J].现代电子技术,2010.10:58-62.
[9] 李海涛,邓樱.Matlab程序设计教程[M].北京:高等教育出版社,2002.
[10]李显宏.MATLAB 7.X界面设计与编译技巧[M].北京:电子工业出版,2006.