求传感器非线性误差、灵敏度(matlab).doc
- netball个人认证 |
- 2020-05-10 发布|
- 29 KB|
- 2页
选用matlab对实验数据进行处理:
在实验过程中通过差值的计算可以看出,x~v关系为线性关系所以选择使用MATLAB进行线性拟合
%输入实验数据
x=[4.2,4.3,4.4,4.4,4.4,4.7,4.8,4.9,5.0,5.1];%自变量位移
y=[-44,1,39,79,125,164,208,247,289,333];%因变量电压
xmean=mean(x);ymean=mean(y);
sumx2=(x-xmean)*(x-xmean)';
sumxy=(y-ymean)*(x-xmean)';
a=sumxy/sumx2;%解出直线斜率a(即传感器灵敏度)
b=ymean-a*xmean;%解出直线截距b
z=((a*(x(1,10))+b-(y(1,10)))/(y(1,10)));%“10”是自变量的个数,z为非线性误差(即线性度)
a
b
z
%作图,先把原始数据点用蓝色"十"字描出来
figure
plot(x,y,'+');
xlabel('v/mv');
ylabel('x/mm'); %x、y轴表示
legend('实验数据','拟合曲线');
hold on
% 用红色绘制拟合出的直线
px=linspace(0,6,50);
py=a*px+b;
plot(px,py,'r');
运行结果:
a = 386.5502
b = -1.6418e+03
z = 0.0101