基于误差分离技术的圆柱度测量系统
2010-04-05罗建伟李济顺
罗建伟 ,李济顺,b
(河南科技大学 a.机电工程学院;b.河南省机械设计及传动系统重点实验室,河南洛阳 471003)
0 前言
精密和超精密加工技术是机械制造业最重要的组成部分之一,其不仅直接影响尖端技术和国防工业的发展,而且还影响着机械产品的精度和表面质量以及产品的使用性能[1],而精密加工的精度主要是靠测量精度来保证,因此对工件的测量提出了更高精度要求。
圆柱度误差是指零件的三维、立体空间的形状误差,它反映的是实际圆柱轮廓表面对其理想圆柱面的变动量,其测量过程比圆度误差的测量要复杂得多。目前,圆柱度误差的测量大多是在圆度仪上进行,实现圆柱度的精密测量最主要的方法是采用误差分离技术[2],亦即:通过分离工件的多个截面的圆度误差并重构出实际被测圆柱轮廓,得出工件的圆柱度误差值。
本文基于圆柱度误差分离技术,针对现有的圆度测量仪,设计了适用于圆柱度精密测量的测量系统。
1 测量原理和系统构成
利用圆度仪测量圆柱度时,将被测圆柱体工件沿垂直轴线分成数个等距截面放在回转台上,回转台带动工件一起转动;3个传感器安装在导轨支架上,并可沿导轨做上下的间歇移动,逐个测量等距截面,获取含有混合误差的原始信号(测量原理图如图1所示)。测量传感器拾取的原始信号中不仅包含有被测工件的各个截面的圆度误差、母线的直线度误差,而且还含混入了导轨的直行运动误差及回转台的回转运动误差。将上述误差相分离,并依据最小二乘圆心进行重构出实际圆柱面轮廓,然后采用国标规定的误差评定方法得到被测圆柱面的圆柱度误差。
图1 三点法圆柱度误差测量原理图
圆柱度测量系统的整体结构主要有 3部分构成:机械测量主体、数据采集板及数据处理系统[3]。机械测量主体采用河南省机械设计及传动系统重点实验室的圆度仪。数据采集板与 PC机之间为RS232C串口连接,与圆柱度仪之间则靠I/O、A/D、D/A等关联,实现误差信号的放大、滤波及模数转换等功能。数据处理系统采用VC++作为开发平台并调用OpenGL的相关函数,实现了误差分离、评定、结果数据显示、图形输出等功能。
2 硬件系统设计
根据圆柱度的测量原理设计了以AT89C52 MCU为核心,以完成高精度的数据采集为目的的单片机系统。主要由MCUAT89C52、A/D芯片ADS1211、D/A芯片MAX531、I/O扩展芯片PCF8574、电源输入及其DC-DC模块、RS232接口以及看门狗X 25045、外扩RAM等几部分组成,其系统硬件结构图如图2所示。
单片机AT89C52含有定时/计数器T2,可利用T2的加减计数功能[4]。T2有两个输入端,T2(P1.0)为脉冲输入端, T2EX(P1.1)为加减计数控制端。利用90°相差的信号可以实现加减计数。24位高精度A/D芯片ADS1211采用了低噪声的输入放大器,可以在转换速度为10 Hz时获得 23位的有效分辨率,借助于其内部独特的调制器加速操作模式,在转换速度为1 kHz时仍可达到 20位的有效分辨率[5]。MAX232是MAXIM公司的一种RS-232接口芯片,利用MAX232实现AT89C52单片机与PC机的RS-232三线制串行通讯。
图2 系统硬件结构图
3 软件系统设计
软件系统是由数据采集、上下位机串行通信以及 PC机数据处理等功能模块构成。
3.1 数据采集模块
数据采集模块处于软件系统的底层,并且固化到数据采集板的 MCU中。
系统运行时,数据采集模块首先接收PC机传输的各项参数(采样点数、通道数、采样增益等)进行系统初始化;然后等待采样开始信号来到时,采集板上的 AT89C52外部中断INT1引脚响应芯片ADS1211申请,开始采样;在本系统中使用了3点误差分离技术,因而将采样通道数设置为 3路,在采样过程实行轮采的工作方式,保证每路都能正确合理的得到数据;将采样数据暂存于数据采集板上的外扩RAM中,等该截面采样结束发送数据到PC机;最后,将传感器移动到下一截面进行采样。
传感器的位置变动由圆度仪上的电机来控制,速度的大小由数据采集板的 D/A输出电压决定, D/A芯片采用MAX531。MAX531输出的电压可正可负,故电机可正转亦可反转,使得传感器可上可下运动,达到逐个截面测量的目的。
3.2 串行通信模块
数据采集板与上位机的通信采用芯片 MAX232,利用它可以实现RS232三线制串行通讯。
串行通信协议[6]是上位机与下位机的共同通信约定,用以确保双方正确的联系。本系统的通信协议规定如下:单片机接收数据采用中断方式,接收前先接收开始字符,告知单片机开始接收一帧,随后接收数据,数据接收后接收校验和,最后接收结束字符。单片机将接收的数据帧进行解析进行相应的操作,如果是连接命令,则将接收到数据帧回送给上位机;如果是采样命令,则进入采样的主程序,进行数据采集。返回给上位机是采样得来的数据,数据发送采样查询方式。
编写上位机通信程序时,利用VC++提供的完备的Win32通讯 API[7]应用程序接口函数与硬件接口,实现与单片机的通信。通信函数是中断驱动的:发送数据时,先将其放入缓存区,串口准备好后,就将其发送出去;传来的数据迅速申请中断,使Windows接收它并将其存入缓冲区,以供读取。
3.3 数据处理模块
数据处理模块主要是对采集到数据进行误差分离,圆柱形貌的重构,误差的评定以及数据、图形的输出等。
为获取截面圆的圆度误差序列,计算过程使用VC++和Matcom的数学库[8]编写程序来实现,这样便于大量数据的处理和矩阵的运算。得到圆度误差序列,可进一步求出截面圆度误差、最小二乘圆心以及纯回转运动误差,最后求出被测量点在直角坐标系上的坐标值以及各截面的半径差,其基本数据处理流程如图3所示。
图3 数据处理流程图
得到了上面所提到的基本要素就可以利用OpenGL实现圆柱体的重构。OpenGL是由许多绘制函数、颜色函数、光线函数和照相机函数等操作组成的函数库,这些函数都是为了绘制出三维空间图形而设计的。基于OpenGL的良好的图形绘制命令[9],程序就可以将截面圆上点的坐标,利用线段连接在一起就可以给出圆柱形貌的网格显示方式,不过为了使圆柱的显示更加逼真,通过利用NURBS曲面插值法,绘制出圆柱曲面。u向k阶,ν向l阶的NURBS曲面的函数形式[10]为:
其中:ωi,j为控制顶点的权因子;Pi,j为控制顶点网格;Ni,k(u)和Nj,l(ν)分别为u向k阶,ν向l阶B样条基函数。
绘制NURBS曲面,必须根据圆柱上的数据点反求控制顶点网格,即需对曲面进行插值,考虑到圆柱上数据的特点,将权因子取为 1,采用三维空间插值。
要反算NURBS曲面控制点,需要进行两次NURBS曲线控制点的反算,即曲面反算归结为曲线反算。圆柱NURBS曲面插值的基本过程可以表述为:根据数据点构造u向和ν向上的节点矢量,由节点矢量上相关的节点集计算 B样条基函数,最后,由两次曲线反算控制顶点网格的方程组,联立边界条件,使方程个数与欲求顶点数相等,通过解方程组得到控制顶点。
将控制顶点存储到三维浮点型数组中,就可以利用OpenGL绘图函数绘制曲面。
绘制NURBS曲面的函数是:
将控制点的网格数组和节点数据、阶数等参数代入即可进行三维显示,可以得到渲染之后显示的重构圆柱体效果图,如图4所示。
圆柱体绘制后,可利用鼠标消息响应函数实现观察角度的调整以及圆柱体的放大缩小,因此需要实现圆柱的缩放和旋转变换。缩放变换可由OpenGL中模型变换函数glScale()来实现,glScale()的3个参数表示模型分别沿3个轴向缩放的比例因子。旋转变换可由OpenGL中模型变换函数glRotate()来实现,它指定 1个从原点到鼠标左键所指向点的坐标(x,y,z)的向量,作为旋转轴的中心轴,可以任意角度的旋转。
4 实验分析
在圆度仪上测量已精密磨削的圆柱体(40mm×400mm),选取20个等距截面,每个截面取 128个点;传感器调整好位置固定在可沿垂直导轨移动的支架上。测量系统进行信号采集和数据的分析处理,得到各截面的圆度误差、最小二乘圆的圆心坐标、半径差以及重构圆柱体形貌的数据等。计算出的圆柱度误差为:23.545μm,达到了测量要求。
5 结束语
本文利用单片机和PC机的优势,设计了一套高精度的圆柱度测量系统。该系统采用误差分离技术处理数据后使得测量结果更为精确,达到了精密测量的目的;通过OpenGL技术实现圆柱曲面重构,不但可以高质量的显示三维圆柱曲面,而且便于全方位地观察圆柱的外观形状。
图4 重构出的圆柱体
[1] 贺大兴,盛伯浩.超精密加工技术的发展现状与趋势[J].新技术新工艺,2006(5):2-3.
[2] 雷贤卿,李 言,李济顺,等.圆柱度的三点法测量技术[J].仪器仪表学报,2007,28(5):944-951.
[3] 朱文娟,徐春广,周世圆.深孔内轮廓尺寸光学测量系统[J].机械工程学报,2006,42(5):201-204.
[4] 宋清昆,蒋继成.基于AT89C 52单片机CAN总线节点的设计[J].自动化技术与应用,2009,28(5):55-58.
[5] 李忠健,姜长泓,冯 刚.ADS1211在热量表中实现的高精度温度测量[J].自动化技术与应用,2007,26(6):96-97.
[6] 徐会杰.数据采集系统中串行通信协议的设计与实现[J].河南科技大学学报:自然科学版,2008,29(5):30-32.
[7] 赵彦锋,李 钢.基于Win32 API的多线程串行通信程序设计[J].现代电子技术,2005,28(19):110-112.
[8] 张 晶.基于MATCOM的VC++与MATLAB混合编程[J].自动化技术与应用,2007,26(5):59-61.
[9] 吴银霞,陈雷霆,何明耘.OpenGL中基于粒子系统雷达扫描实时模拟[J].计算机应用,2009,5(1):258-260.
[10] 王明炎,贾传荧.船体非均匀有理B样条曲面造型与OpenGL显示[J].大连海事大学学报,2005,32(1):23-25.