matlab变动节距的数组,基于MATLAB的直线度误差数据处理.docx

基于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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值