实验07(光纤传感器的位移测量及数值误差分析实验)实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告:实验07
(光纤传感器的位移测量及数值误差分析实验)
实验一:光纤传感器位移特性实验
一、实验目的:了解光纤位移传感器的工作原理和性能,测量其静态特性实验数据。学会
对实验测量数据进行误差分析。
二、基本原理:本实验采用的是传光型光纤,它由两束光纤混合后,组成Y 型光纤,半园
分布即双D 分布,一束光纤端部与光源相接发射光束,另一束端部与光电转换器相接接收光束。两光束混合后的端部是工作端亦称探头,它与被测体相距X,由光源发出的光纤传到端部出射后再经被测体反射回来,另一束光纤接收光信号由光电转换器转换成电量,而光电转换器转换的电量大小与间距X 有关,因此可用于测量位移。
三、器件与单元:主机箱、光纤传感器、光纤传感器实验模板、测微头、反射面。
四、实验数据:
实验数据记录如下所示:
表1光纤位移传感器输出电压与位移数据
实验二:随机误差的概率分布与数据处理
1.利用Matlab语句(或C语言),计算算术平均值和标准差(用贝塞尔公式)
clc; clear;
l=[20.42 20.43 20.40 20.43 20.42 20.43 20.39 20.30 20.40 20.43 20.42 20.41 20.39 20.39 20.40];%例2-22数据
v0=l-mean(l)%残差列
M1=mean(l)%算术平均值
M2=std(l)%标准差
计算结果
数据分布
2.利用Matlab语句(或C语言),用残余误差校核法判断测量列是否存在线性和周期性
系统误差
%残余误差校核法校核线性系统误差
N=length(l)%原数组长度
if(mod(N,2))%求数组半长
K=(N+1)/2
else
K=(N)/2
end
A1=0;
delta=0;%delta=A1-A2
for i=1:K;%计算前半部分残差和
A1=A1+v0(i);
end
A2=0;
for j=K+1:N;%计算后半部分残差和
A2=A2+v0(j);
end
A1;
A2;
fprintf('Delta校核结果\n');
delta=A1-A2%校核结果
%阿贝-赫梅特准则校核周期性系统误差
u=0
for i=1:N-1;
u=u+v0(i)*v0(i+1);
end
u=abs(u)
if((u-sqrt(N-1)*M30)>0)
fprintf('存在周期性系统误差\n');
else
fprintf('未发现周期性系统误差\n');
end
运行结果
可见delta近似于0,由马利克夫准则可知,此案例中应用的残余误差校核法无法确定是否存在系统误差。
3.用不同公式计算标准差后通过比较判断测量数据有无系统误差
%不同公式计算标准差比较法
sigema1=0;
sigema2=0;
u=0;
for i=1:N %贝塞尔公式
sigema1=sigema1+v0(i)^2;
end
sigema1=sqrt(sigema1/(N-1))
for i=1:N %别捷尔斯公式
sigema2=sigema2+abs(v0(i));
end
sigema2=1.253*sigema2/sqrt(N*(N-1))
u=sigema2/sigema1-1
if(abs(u)>=(2/sqrt(N-1)))
fprintf('怀疑测量列中存在系统误差\n');
else
fprintf('不确定测量列中是否存在系统误差\n');
end
运行结果
4.利用Matlab语句(或C语言),用罗曼诺夫斯基准则和格罗布斯准则判别有无粗大误
差
%罗曼诺夫斯基法则判断是否存在粗大误差
j=1;%以下开始去除粗大误差
for i=1:N
if(i==8)
i=i+1;
continue
else
l1(j)=l(i);
j=j+1;
end
end
N1=length(l1);
v1=l-mean(l1);%去除粗大误差数据后的残差列
Averagae_lmnfsj=mean(l1);%去除粗大误差数据后的算术平均值
Standard_lmnfsj=0;
for i=1:N1
Standard_lmnfsj=Standard_lmnfsj+v1(i)^2;
end
Standard_lmnfsj=sqrt(Standard_lmnfsj/(N1-1));%去除粗大误差数据后的标准差
if((abs(l(8)-Averagae_lmnfsj)-2.24*Standard_lmnfsj)>0)
fprintf('测量列中存在粗大误差,第8项数据存在粗大误差\n');
else
fprintf('测量列中不存在粗大误差\n');
end
运行结果
%格布罗斯法则判断是否存在粗大误差
l1=sort(l);
N=length(l);
Average_gbls=mean(l);
Standard_gbls=0;
for i=1:N
Standard_gbls=Standard_gbls+v0(i)^2;
end
Standard_gbls=sqrt(Standard_gbls/(N-1));%未去除粗大误差数据的标准差%检查g1
g1=(Average_gbls-l1(1))/Standard_gbls;%g(1)
%检查gn
gn=(l1(N)-Average_gbls)/Standard_gbls;%g(n)
if(g1>=2.41)
fprintf('第一项测量值含有粗大误差\n');
fprintf('现在去除该项,重新计算\n');
else
if(gn>=2.41)
fprintf('最后一项测量值含有粗大误差\n');
fprintf('现在去除该项,重新计算\n');
else
fprintf('测量值不含有粗大误差\n');
end
end
%去除含有粗大误差的数据后重新计算
l20=sort(l);
j=1;%以下开始去除粗大误差
for i=2:N
l2(j)=l20(i);
j=j+1;
end
v2=l2-mean(l2);
N2=length(l2);
Average_gbls=mean(l2);
Standard_gbls=0;
for i=1:N2
Standard_gbls=Standard_gbls+v0(i)^2;
end
Standard_gbls=sqrt(Standard_gbls/(N2-1));%去除粗大误差数据的标准差%检查g1
g1=(Average_gbls-l2(1))/Standard_gbls;%g(1)
%检查gn