基于MATLAB的直线度误差数据处理
基于MATLAB的直线度误差数据处理《机电技术>)2oo5年第2期基于MATLAB的直线度误差数据处理林志熙周景亮
({岳建工程学院机电及自动化工程系福州350014)摘要:本文采用最:b---乘法来建立数学模型评定直线度误差,利用数学软件MATLAB给出了这种方法的自动求法.节省大量的数据处理时间,且数据更加准确,并给出仿真测试.关键词:直线度误差;最:b--.乘法;MATLAB;数据处理中图分类号:TP312文献标识码:A文章编号:1672—4801(2005)02—045—03在几何量测量中,经常对机床导轨,轴类零件进行直线度误差的测量.用于直线度误差测量的方法很多.常用的有:光隙法,打表法和节距法.对于较长的零件(如:机床导轨)通常采用节距法测量.节距法测量常用的仪器有水平仪和自准直仪.它们都属于高精度的测量装置.以往,多采用手工作图法对测量数据进行处理,所需时间较长,精度不高,较为繁琐.因此,本文介绍基于MATLAB的数据处理程序,程序简单可靠,处理时间短,计算精度大大提高.并给出仿真测试.
1数据处理原理直线度误差是指实际被测直线对其理想直线的变动量,理想直线的位置应符合最小条件.最小条件是指实际被测要素对其理想直线的最大变动量为最小.在数学上,最小二乘法最容易实现最小条件.本方法的数据处理原理即采用最小二乘法.设最小二乘中线为:Y=Ax+B点(,yk)到线上的点(,+B)的距离=IAx.+B一I.需要对距离的平方和
NN
E=∑f+一=∑最小化.而E取最小值的必要条件是:k=lk=l
EA=0EB=0因此,可得求解A,B的正规方程:
∑k=l
∑xkykk=l
∑k=l最小二乘中线方程确定后,即可找出相对最小二乘中线的最高点△.和最低点△厶f△max{Y—A+);△min{】,一A+)它们的差即为直线度误差△厶△△厶£{一△厶
2计算机数据处理程序框图计算机数据处理程序框图见图1所示.
3MATLAB程序设计
MATLAB是一种高度集成化的科学计算语言,是集数值计算和图形处理等功能于厶体的工程计算应用软件.它不仅可以处理代数问题和数值分析问题,而且还具有强大的图形处理及仿真模拟等功能.MA’I’I.AB~成为公认的优秀的应用软件之一.
45
=
1●●__]A
—..................L]●●●●●●●●●j
∑《机电技术》2005年第2期因此,利用MATI_AB语言进行直线度误差运算和作图都很方便,尤其是MATLAB具有最小二乘法直线拟合功能,可以非常简便地求出最小二乘中线,编写程序很简单.只需将原始测量数据输入计算机,就可直接求出直线度误差,绘出误差评定图形,节省大量的数据处理时间,且数据更加准确.求直线度误差△£的函数zxd:
functionL=zxd(x,ys,yO
n=length(x);
%ysx,yfx,ym一顺测相对值,返测相对值,顺,返测的平均值
f0rk=l:n一1
ysx(k)=ys(k)-ys(1);
y£K(k)~f(k)-yf(1);
ymk)=(ysx(1c)+y&(k))/2;
end
%求累积值
y(1)=0;
fork=1:n-1
y(1c+1)=ym(1c)+y(1c);
end
p=pol~,Y,1);
%求最小二乘中线系数
~---pO);b=p(2);
%绘出最小二乘中线及采样点
pl0t(x,y,O);holdon;plot(x,y);xlabel(‘测点序号x’);ylabel(‘累积值y’);
Y=ax+b;pbt~,
%求相对最小二乘中线的最高点和最低点
f0rk=l:n
l(1c)=y(1c)一(a(1()+b)
end
ll=max(1);12=rain(1);
%求直线度误差
L=ll——12;
%绘出相对最小二乘中线的最高点和最低点
Y=ax+b+~;pbt(x,Y,’r’);
Y=ax+b+ll;plot(x,Y,’r’)
4直线度误差测量实验读入顺测值,读入返测值
1上r求相对值求顺,返测平均值求累计值求A,B计算,x1△绘出仿真图形显示结果图1计算机数据处理程序框图设用分度值为0.01mndm的合象水平仪测量长度为1400mm的导轨的直线度误差.所采用的桥板跨距为
200mm,将导轨分成七段进行测量.测量数据见表1.在命令窗口输入:
%,r-测点序号
x--[o1234567];《机电技术>>2005年第2期
%ys,yf-一顺测值,返测值
ys=[26.524.528.530282725];
yf--[26.525.528.329.627.626825];
L=zxd(x,ys,y0;
%C一当量系数
C=rO.01/1000)’200;
%d一直线度误差
d=L*C输出结果:
d=0.007492857