Matlab计算传感器静态特征参数

任务

对于《传感器检测与技术》中第二章的数据计算题目,需要对系列数据进行处理,可以利用Matlab中的矩阵运算和相关函数快速实现。下面以一道例题进行分析,并最后附上最小二乘法求取拟合直线的相关代码。

题目

设有压力传感器的校准数据列于下表,试求

(1)端基拟合直线;

(2)端基线性度;

(3)滞环误差;

(4)重复性误差(λ=3);

(5)准确度。

解答

端基拟合直线

端基拟合是求取传感器线性度的拟合直线中一种,顾名思义,是直接连接输入/输出曲线两端点以得到拟合直线。

但由于题目中提供测量的多组数据,故需要取平均值:

%import data
m=[0.0020 0.2015 0.4005 0.6000 0.7995 1.0000
    0.0030 0.2020 0.4020 0.6010 0.8005 1.000
    0.0025 0.2020 0.4010 0.6000 0.7995 0.9995
    0.0035 0.2030 0.4020 0.6015 0.8005 0.9995
    0.0035 0.2020 0.4010 0.6000 0.7995 0.9990
    0.0040 0.2030 0.4020 0.6010 0.8005 0.9990];
%mean value
meanM=mean(m)

输出:

meanM = 1×6
    0.0031    0.2023    0.4014    0.6006    0.8000    0.9995

则两端点分别为(0.0,0.0031)(5.0,0.9995),相应得出拟合直线Y=A0+KX中的参数值:

A0=0.0031

K=(0.9995-0.0031)/(5.0-0.0)

端基线性度

线性度则是通过定义公式进行求取,即实际输入/输出曲线与拟合直线的最大偏差ΔYm与满刻度输出值Yfs的比值,由于题目仅提供散点,则只需选取散点的最大偏差进行计算。

X=[0:1:5]
Y=0.0031+0.19928*X
deltY=meanM-Y
sigmaL=max(abs(deltY))/(Y(end)-Y(1))

滞环误差

计算正、反行程差距最大偏差与最大输出与满刻度输出值之比

%求正行程平均值
meanMF=mean(m(1:2:6,:))
%求反行程平均值
meanMB=mean(m(2:2:6,:))
%滞环误差
sigmaH=max(abs(meanMF-meanMB))/(Y(end)-Y(1))

重复性误差

通过贝塞尔公式求取标准差,可以通过matlab中的std()函数实现。

%setting:设置置信系数λ
lambda=3
%求正行程标准差
stdMF=std(m(1:2:6,:))
%求反行程标准差
stdMB=std(m(2:2:6,:))
%重复性误差
sigmaR=lambda*max(abs([stdMB,stdMF]))/(Y(end)-Y(1))

准确度

将上述得到的线性度σL、滞环误差σH与重复性误差σR代入公式即可。

sigma=sqrt(sigmaL^2+sigmaH^2+sigmaR^2)

最小二乘法

%setting:设置相关参数
n=6%分隔数目
Xmin=0%最小输入
Xmax=0.5%最大输入
step=(Xmax-Xmin)/(n-1)%求取步长
%计算X,Y,X^2,XY
%X=[0:0.1:0.5]
X=[Xmin:step:Xmax]
Y=sqrt(X+1)
XX=X.*X
XY=X.*Y
%求和
sumX=sum(X)
sumY=sum(Y)
sumXX=sum(XX)
sumXY=sum(XY)
%直线Y=A0+KX中的参数A0与K
A0=(sumXY*sumX-sumY*sumXX)/((sumX)^2-n*sumXX)
K=(sumY*sumX-n*sumXY)/((sumX)^2-n*sumXX)

参考资料

Leave a comment

Your email address will not be published. Required fields are marked *