标定(标准样气校正)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单点校正,标准样品的待测组分含量可在上下量程之间的任意值;在线下一般取该流程中组分的常用值。
变量定义
Y:组分含量下量程(零点量程)Y0;上量程(满量程)Ym
(y:传感器输出信号下量程输出(零点量程)y0;上量程输出(满量程)ym)
(X: 放大器输出信号下量程输出(零点量程)X0(=0V);上量程输出(满量程)
Xm(=+5V))
x: A/D采样值下量程输出(零点量程)x0(=0);上量程输出(满量程)
xm(=0FFH,255—8位A/D)
xm(=03FFH,1023—10位A/D)
xm(=0FFFH,4095—12位A/D)
相关程序设计及计算方法
计算机程序中:1)数据滤波子程序(函数):-——对A/D采样值xi进行滤波处理
以获得准确的x`值;
2) x值校整处理子程序(函数):x=K2(x`)2+K1 x`+b (三点校准得到的
参数K2,K1,b)
或 x=K1 x`+b (两点校准得到的参数K1,b)
或 x= x`+b (单点校准得到的参数b)
3)组分含量转换子程序(函数):由Y=f(x) 计算得出;
若Y=f(x)=kx+c即为线性转换关系;
否则,为非线性关系,如Y=f(x)=a0+ a1x+ a2x2+ a3x3+ a4x4+ a5x5
(一般情况下该转换关系已保存在测控系统的软件程序中)
4)标准样品标定(校准)子程序(函数):
①单点校准设这个标准样品的组分含量为Y1,由键盘输入为已知变
量;令校准前b=0; 调用组分含量转换反函数 x1=f-1(Y1)=(Y1-c)/k(线性
转换),得出对应Y1的A/D采样校整值x1. 由A/D 采样得到的实际值为
x; 从而可得:b=x1-x
②两点校准设这两个标准样品的组分含量为Y1、Y2,由键盘输入为已
知变量;令校准前K1=1、b=0; 调用组分含量转换反函数
x=f-1(Y),得出对应Y1、Y2的A/D采样校整值x1、x2. 由A/D 采样得到的
实际值为x1’、x2’; 从而可得:K1和b。
x1=K1* x1’+b
x2=K1* x2’+b
③三点校准设这三个标准样品的组分含量为Y1、Y2、Y3,由键盘输入
为已知变量;令校准前K2=0、K1=1、b=0; 调用组分含量转换反函数
x=f-1(Y),得出对应Y1、Y2、Y3的A/D采样校整值x1、x2、x3. 由A/D 采
样得到的实际值为x1’、x2’、x3’; 从而可得:K1、K2和b。
x1=K2*( x1’)2+K1* x1’+b
x2= K2*( x2’)2+K1* x2’+b
x3= K3*( x3’)2+K1* x3’+b
例:某红外甲烷分析仪,其含量分析量程为0-100PPm,与16位A/D采样值的转换关系为线性关系;使用一年后,进行两点校准:采用的标准气甲烷含量分别为0.5 PPm 和
95PPm,此时仪器显示对应甲烷含量分别为0.46 PPm 和95.25PPm。试计算校准参数的值;并用C++语言编写一段函数实现两点校准。(计算中应尽量减少对测量误差的影响,保留5位小数)
解:仪器量程为:0-100PPm;
A/D转换器为:0-65535 则线性转换关系为:Y=100/65535*x=0.3922*x.
两者的线性反转换关系为:x =65535/100*Y=655.35*Y.
以下作无量纲计算。
由标准气甲烷含量得:Y1=0.50 Y2=95.00
计算标准气甲烷含量对应A/D采样值:x1=65535/100*0.50=327.67500=328
X2=65535/100*95.00=62258.25000=62258 计算仪器显示甲烷含量对应A/D采样值:x1’=65535/100*0.46=301.46100=301
x2’=65535/100*95.25=62422.08750=62422 由校准参数计算公式:
x1=K1* x1’+b
x2=K1* x2’+b
带入得:
328=301*K1+b
62258.=62422.*K1+b
K1=0.996925
B=27.936585
核对样气含量显示: 零点气—Y=100/65535*(301*0.996925+27.936585)=.050051=0.50PPm 量程气—Y=100/65535*(62422*0.996925+27.936585)=94.99960=95.00PPm
float K1=1.0;
float b=0.0;
void probK (float Y0,float x ,int i,int j)
// Y0为样品标准含量值,Y0[0]:零点气含量值 Y0[1]:量程气含量值;
// x为A/D转换校整值,x[0]:零点气转换值 x[1]:量程气转换值;
// i:指示为零点(i=0)或量程校准(i=1);
// j: 指示上一次校准为零点(j=0)还是量程校准(j=1);完成两点校准后j=-1. {
K1=1; //当仪器键盘上选择零点或量程校准时也有同样操作
b=0;
If(j==-1)
{
j==i; //作单点校准
x0[i]=Y0[i]*635535/100;
b=x0[i]-x[i];
}
Elseif(j==i)
{
j==i; //作单点校准