1 / 9
文档名称:

传感与检测C语言程序.doc

格式:doc   大小:293KB   页数:9页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

传感与检测C语言程序.doc

上传人:xiang1982071 2021/3/10 文件大小:293 KB

下载得到文件列表

传感与检测C语言程序.doc

相关文档

文档介绍

文档介绍:1
某压力传感器的校准数据如下表所示,试分别用端点连线法和最小二乘法求校准直线、非线性误差,并计算迟滞和重复性误差。
端点连线法
对于传感器正行程和反行程的三次测量,可通过如下方法解决:
平均值法:
即先将三次测量的正行程和反行程的值求平均值,再对求的平均值进行直线拟合。
最小二乘法
即先将三次测量的正行程和反行程的值求平均值,再对求的平均值用最小二乘法进行直线拟合。
则有c语言程序:
#include <>
#include <>
/*求绝对值*/
float fab(float a)
{float z;
z=a;
if(a<0)
z=-a;
return z;
}
/* 求线性度*/
float linethl(float a,float b,float *p)
{
float max,z,c;
int i;
c=*(p+1)-a*(*p)-b;
max=fab(c);
for(i=0;i<5;i++)
{ p=p+2;
c=*(p+1)-a*(*p)-b;
z=fab(c);
if(z>max)
max=z;
}
return max;
}
/*n个数之和*/
float sums(float *p ,int n)
{float y=0;
int i;
for(i=0;i<n;i++)
{ y=*p+y;
p=p+2;
}
return y;
}
/*n个x,y数之积的和*/
float inc(float *p ,int n)
{float y=0;
int i;
for(i=0;i<n;i++)
{ y=(*p)*(*(p+1))+y;
p=p+2;
}
return y;
}
/*n个数平方之和*/
float sums2(float *p ,int n)
{float y=0;
int i;
for(i=0;i<n;i++)
{ y=(*p)*(*p)+y;
p=p+2;
}
return y;
}
/*迟滞误差计算*/
float delay(float *p)
{float max,z,c;
int i;
c=*(p+1)-(*p);
max=fab(c);
for(i=0;i<17;i++)
{ p=p+2;
c=*(p+1)-(*p);
z=fab(c);
if(z>max)
max=z;
}
return max;
}
/*重复误差计算*/
float repeat(float *p)
{float max=0,c,c1;
int i,j,k,q;
for(i=0;i<6;i++)
{
for(q=0;q<2;q++)
{
for(j=0;j<3;)
{
for(k=j+2;k<5;)
{
c=*(p+j)-*(p+k);
c1=fab(c);