粗大-系统-随机误差处理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计用仪器设备名称
此次课程设计用到的仪器设备和软件包括: (1) 个人计算机; (2) Matlab 软件。
课程设计过程
1、课程设计处理原理:
此次课程开展的数据处理包:(1)粗大误差处理;(2)系统误差处理;(3)随机误差处理。他们的原理分别分析如下:
(1)粗大误差处理
对于粗大误差,采用莱以特准则和罗曼诺夫斯基准则。
莱以特准则:求出数据的算数平均值x 和标准差σ,将残差的绝对值i x v 和
3σ进行比较,大于3σ的值都认为是粗大误差。
罗曼诺夫斯基准则:首先剔除该数据中的最大值,然后再按照t 分布检验,
求出该项与剔除后平均值的差,即d x x −,再与()2,K n a σ−进行比较,如果前者大于等于后者,那么该数据有系统误差。
(2)系统误差处理
对于系统误差,我们采用了残差总和判断法,阿贝-赫梅判别法,标准差比较法,他们的原理如下:
残差总和判断法:对于等精度的系统测量数据12,,...n x x x ,设相对的残差
分别是12,,...n v v v ,若有12n
i i v =>∑,则怀疑测量数据有系统误差
阿贝-赫梅判别法:对于等精度的系统测量数据12,,...n x x x ,设相对的残,
分别是12,,...n v v v ,122311
1
...n
n n i i i u v v v v v v v v
−+==+++=
∑,如果2u >,
则判定该组数据含有系统误差。
标准差比较法:对于等精度的系统测量数据12,,...n x x x ,设相对的残差分
别是12,
,...n v v v ,用不同的公式计算标准差,通过比较可以发现存在的系
统误差。用贝塞尔公式计算,1s
=
,用别捷尔斯公式计算,
1s
=211s s ≥,则怀疑测量中存在系统误差。 (3)随机误差处理
我们考虑了正态分布和t 分布两种情况,通过置信概率和自由度分别在正态分布积分表和t 分布表中找到对应的t 值,再求出极限误差lim x t ςσ=+。 2
课程设计的整体流程图如图(一)所示。在图(一)中,粗大误差分析,系统误差分析,随机误差分析都作为子程序存在。首先我们是将存储在txt 文件中的测量数据导入到matlab 中,然后进行在子程序中用两种方式进行粗大误差分析,并返回剔除异常值以及剔除异常值后的测量数据。接着进行系统误差分析,用了三种方法检测是否具有系统误差,并返回测量结果。之后进行随机误差分析,返回两种分布的极限误差。最后将本次测量结果都写入到txt 文件中。
斯基准则进行分析。首先看莱以特准则,计算测量数据第i项的残差,之后比较残差与三倍标准差的的值大小,如果残差大于三倍标准差就剔除该项,否则进行下一项的比较,比较完成后返回剔除异常值后剩余的数据。另外是罗曼诺夫斯基准则,首先将最大值作为怀疑对象,从测量数据中剔除出来。然后求该值与剔除后数据的平均值之差,与t分布下的标准差进行比较,如果前者大,则进行下一次循环,否则结束循环,并把该次循环中的最大值重新放入测量数据中,最后返回剔除异常值后剩余的数据。
(3)系统误差处理
计算判断方法所需要的数值,然后对各个方法的判断条件进行比较,如果满足就返回有系统误差,否则返回没有系统误差。
如(图四)所示,首先接收已经剔除异常值的数据,然后计算平均值和标准差,进行正态分布和t 分
布的查表,我将正态分布和t 分布的表格数据存储到matlab 的数组中,并将它们封装成独立的
子m 程序,只要输入对应的自由度和置信概率就
可以得到相应的t 值。然后将两个t 值乘上标准
差得到对应的极限误差,并返回两个极限误差。
3、实验规划
如何输入数据:将测量结果以行存储在txt文件中,,在matlab中利用textread函数读取txt数据,并将其存储在一维数组中。
如何使用matlab:首先新建一个主文件并保存,接着建立了5个函数,如下所示: Thick_Error.m 粗大误差处理
Systematic_Error.m 系统误差处理
Random_Error.m 随机误差处理
Normal_distribution.m正态分布t值查找
T_FenBu.m t分布t值查找
如何编写程序:依照误差处理的原理一步一步进行数据分析,将所得结果进行打印在命令行窗口,并将所有数据打印在txt文件中
如何程序运行、调试程序:运行上边三角运行按钮,还可以选中某些行代码右键运行。运行错误时会设置断点,一步一步运行,并看着工作区的显示的数值是否是我想得到的那个值。通常我还在程序中加一些打印字符
串,用于发现错误之处。
4、代码分析
(1)数据输入:
path="C:\Users\dingshuai\Desktop\误差\课程设计\误差处理.txt";
date=textread(path,'%f',15)';
首先将txt文件路径存储在path中,利用textread函数读取存储在txt文件中的15个测量数据,并存储在数组date中
(2)主函数
粗大误差处理
[result_1,rid_value_1,result_2,rid_value_2]=Thick_Error(date);
%莱以特准则:rid_value_1表示剔除值 result_1表示剔除后剩余数据
%罗曼诺夫斯基准则:rid_value_2表示剔除值 result_2表示剔除后剩余数据
disp("莱以特准则剔除数据");disp(rid_value_1);
disp("罗曼诺夫斯基准则");disp(rid_value_2);
判断系统误差