王一璋, 何小妹
(中航工业北京长城计量测试技术研究所,北京100095)
对回转体类零件的测量和评价,涉及直径、圆度、圆跳动、平面度、垂直度和直线度等多个尺寸参数和形位参数,坐标测量机测量是应用最为广泛的一种方法[1]。为满足对回转体类零件高精度、高效率的校准需求,课题组研制了一套四坐标综合测量仪样机。测量仪在测量中必然会产生一定的误差,利用误差建模补偿技术,能够在资金和技术相对有限的情况下有效地提高整体测量精度。
四坐标综合测量仪样机使用了RationalDMIS坐标测量软件,但该软件只支持直线运动21项误差的补偿,不提供四轴补偿的功能。同其它商业软件一样,其内部算法不公开,也没有提供对其误差模型进行修改的可能性。因此,本文依据四坐标综合测量仪空间误差模型,基于VB.NET平台,构造合适的算法,结合MATLAB、Access和坐标测量软件二次开发接口编程,开发了误差仿真分析应用软件,实现对测量数据进行补偿处理的功能。
编写四坐标综合测量仪误差仿真分析应用软件,涉及到多项数值计算方法。如果完全采用C++或C#等高级语言,需要开发人员具有相当高的算法和编程水平,而且费时费力。为了提高开发效率,综合利用多种开发工具的优势,采用接口编程技术,而RationalDMIS软件自身也带有供VB和VC进行二次开发的部分功能。
MATLAB拥有强大的科学运算能力、简洁的程序设计理念、便捷的开发接口等优势,在科学计算和模拟仿真等方面应用广泛。基于它的这些优点,在仿真程序的算法开发中选择了MATLAB作为开发工具。VB.NET在图形界面开发等方面功能强大,可以对Access数据库进行查询、修改、添加和删除等操作,但在数值计算和图形绘制等方面并不易用。由于仿真程序需要进行大量的计算,并且初始误差数据需要分别设置,通过调用Access的数据库引擎可以方便地对数据库里的误差数据进行检索、更新等各种管理。
因此,在误差仿真分析软件开发中,采用VB.NET进行程序界面设计和功能模块开发,MATLAB进行核心算法的编写,Access进行数据的保存和管理,同时利用RationalDMIS的测量功能。通过混合编程,实现软件与用户的外在交互,隐藏其相互之间的内在调用,从而提高了软件的易用性。
VB.NET与MATLAB混合编程通常可以使用COM组件、DDE动态数据交换、MatrixVB插件和ActiveX技术等方法,它们的适用程度和范围均不同[2]。其中,ActiveX技术是Microsoft公司提供的一种用于模块集成的协议,它允许应用程序或组件控制另一个应用程序或组件的运行。VB.NET和MATLAB均支持ActiveX自动化控制端协议和服务器端协议,这样通过ActiveX协议就可以相互调用和控制,即实现混合编程过程[3]。RationalDMIS对VB所支持的开发方式也使用了ActiveX技术,因此在编程中采用这种方法,灵活性较好,适合随时对算法进行修改与调试。
使用ActiveX方法的步骤是:首先在VB.NET应用程序中创建MATLAB的ActiveX对象,然后通过各种方法和函数实现对MATLAB的调用。该方法的使用过程如下:
步骤1:启动MATLAB的自动化服务。使用创建对象的方法,在程序中加入“MATLAB=CreateObject("MATLAB.Application")”。
步骤2:利用MATLAB对象的各种方法和函数,在VB.NET与MATLAB的自动化服务器端进行命令和数据的传递。表1给出了这些方法和函数的详细功能。
表1 VB.NET访问MATLAB的各种方法和功能
通过上述方法即可在VB.NET中对MATLAB进行调用和控制。在混合编程过程中,由于MATLAB和VB.NET中数据传递不正确引起的错误较多。这是因为MATLAB和VB.NET的参数传递形式以及数据类型不一样,而且MATLAB中使用了大量矩阵数组运算,因此必须注意不同数据类型的转换和调用。VB.NET接受MATLAB数据的变量,一般均为Object对象类型。
表2 VB.NET中访问RationalDMIS对象的常用方法及功能
与前文所述的调用MATLAB方法类似,在程序中需要首先创建被调用的对象,加入“NeptunePublic=CreateObject("Neptune.KNeptunePublic")”语句之后,就可以使用该对象的各种方法与RationalDMIS软件之间进行命令和数据的传递。表2列出了一些常用方法的功能。
数据库的构建是整个系统软件的基础,应具有较高的可靠性、条理性和较低的冗余性。选用Microsoft Access 2007作为数据库管理系统。通过操作ADO.NET连接数据库,并完成数据整理、编辑和分析等功能。
VB.NET提供了数据向导用于连接数据库,其数据库应用的主要方法是ADO.NET,提供了访问、搜索、更新、管理数据库的类库。ADO.NET的两个主要组件是数据提供程序和DataSet,数据提供程序用于连接、读取和管理数据库,将所需数据保存在DataSet中,之后断开与数据库的连接进行脱机处理,以供其他客户端访问数据库[4]。
利用上述技术,进行了四坐标综合测量仪误差仿真分析应用软件的开发。该软件目前主要具备三项功能:(1)实现了对单轴误差的仿真计算和分析,(2)对空间综合误差的仿真分析和处理,(3)加入四轴补偿功能,从而完善了RationalDMIS的几何误差补偿功能,并提供了综合精度测试分析。
软件开发过程大致分为5个步骤。首先是进行功能分析,然后根据功能进行VB界面设计,编写误差模型的MATLAB算法和调用RationalDMIS的控制命令,最后上机进行调试。流程如图1所示。
图1 软件开发流程
混合编程中各部件的相互关系结构如图 2所示,VB.NET平台是其中的核心,直接面向用户。
软件中误差补偿的计算流程为:首先在数据库中录入四坐标综合测量仪的各项系统误差,对单项误差数据进行插值计算,最后基于已知的理论基础进行补偿。
图2 软件结构
(1)单轴误差仿真计算
图3所示为单轴误差仿真计算界面,其主要包括误差数据导入、曲线拟合、插值点计算、仿真数据生成和数据图形显示区域六部分。通过输入坐标点数据,可以进行单轴测量补偿的仿真计算。
图3 单轴误差仿真计算
图4 四坐标综合测量仪回转工作台试验验证程序
(2)空间综合试验验证程序
图4为根据ISO10360标准和JJF1064-2010规范中相关内容编写的四坐标综合测量仪空间综合试验验证程序界面[5]。试验验证程序实现了机器坐标系与回转工作台坐标系在进行误差补偿时的换算,能够充分利用原有测量软件来完成试验。
软件首先从RationalDMIS中获取测量得到的两个标准球的球心坐标值,根据该坐标值和回转角度进行四轴空间误差补偿计算。之后,根据回转中心坐标、标准球回转半径和转角,将原始坐标换算到回转工作台坐标系下。与软件计算出的该次转动的理论坐标值差分后,再将得到的X、Y值沿径向和轴向分解、合成,最终得到规范中要求的径向和轴向坐标数据,并显示在右侧的文本框中。
为了验证所建空间误差模型的可行性,运用所开发的误差仿真分析应用软件平台,对空间测量误差补偿过程进行仿真验证。仿真所研制的四坐标综合测量仪进行测量,工作空间范围600mm×300mm×600mm。
首先在Access数据库中录入四坐标综合测量仪的29项系统误差,仿真测量测量空间内的四条空间体对角线,然后对测量数据进行分析、误差分离,最后生成补偿文件并补偿误差。
仿真测量完成后,对装置空间体对角线的仿真数据进行分析。从图5和图6中可以看到,对角线方向的最大绝对误差从86.2μm减小到8.8μm,补偿后误差相对减少了89.8%。根据补偿前后数据分析,可以基本验证误差模型和计算方法的正确性。
图5 补偿前的空间体对角线误差
图6 补偿后的空间体对角线误差
本文充分利用不同软件的优势所在,采用VB.NET、MATLAB、Access等多种软件混合编程的模式,开发了四坐标综合测量仪误差仿真分析应用软件。通过对软件模块及功能进行系统分析,合理设计软件流程及软件界面,然后编写和调试代码,完成了整个软件的开发。最后,对空间测量过程进行了仿真分析。利用所开发的软件平台进行仿真分析,减少了时间成本和经济成本,为进行试验验证分析奠定了基础。
[1] 杨仁平,张国雄,刘书桂,等.回转曲面测量技术[J].天津大学学报,2005,38(5):385-390.
[2] 欧金成,林德杰,彭备战.通过VB调用MATLAB实现图形和界面的结合[J].计算机工程与设计,2002,23(12):64-66.
[3] 陈振强.基于混合编程的大坝安全监测评价系统研究[D].郑州:郑州大学,2009.
[4] WILLIS T.VB.NET数据库入门经典[M].北京:清华大学出版社,2006.
[5] JJG1064-2010,坐标测量机校准规范[S].