资讯详情

压力表校验及压力变送器标定实验

目录

  • (1) 代码
  • (2) 运行结果

(1) 代码

%压力表数据处理 clc;clear; %大气压(MPa) p0 = 0.096; %活塞式压力机标准压力值(MPa) pStd_Upstroke = [0 3 6 9 12]; pStd_Downstroke = [9 6 3 0]; %压力表第一组读数(MPa) p1_Upstroke = [0.0 3.2 6.2 9.2 12.2]; p1_Downstroke = [9.2 6.2 3.2 0.0]; %压力表第二组读数(MPa) p2_Upstroke = [0.0 3.2 6.2 9.2 12.2]; p2_Downstroke = [9.2 6.2 3.2 0.0]; %两组数据平均值 p_Upstroke = (p1_Upstroke   p2_Upstroke)/2.0; p_Downstroke = (p1_Downstroke   p2_Downstroke)/2.0; %数据可视化 figure; subplot(211); hold on;axis tight;grid on; title(标准压力-压力表读数关系(上行程)); xlabel(压力表读数(表压力,单位MPa)');
ylabel('标准压力(绝对压力,单位MPa)');
scatter(p_Upstroke,pStd_Upstroke + p0,'rp');
coefficient_Upstroke = polyfit(p_Upstroke,pStd_Upstroke + p0,1); 
h_Upstroke = fplot(@(x)coefficient_Upstroke(1)*x+coefficient_Upstroke(2),[0.0,16.0]);
set(h_Upstroke,'linestyle','-.');
legend('数据点','拟合曲线','location','northwest');
upstrokeCurveName = strcat('y=',num2str(coefficient_Upstroke(1),2),'x+',num2str(coefficient_Upstroke(2),2));
text(7,5,upstrokeCurveName);
subplot(212);
hold on;axis tight;grid on;
title('标准压力-压力表读数关系(下行程)');
xlabel('压力表读数(表压力,单位MPa)');
ylabel('标准压力(绝对压力,单位MPa)');
scatter(p_Downstroke,pStd_Downstroke + p0,'rp');
coefficient_Downstroke = polyfit(p_Downstroke,pStd_Downstroke + p0,1); 
h_Downstroke = fplot(@(x)coefficient_Downstroke(1)*x+coefficient_Downstroke(2),[0.0,16.0]);
set(h_Downstroke,'linestyle','--');
legend('数据点','拟合曲线','location','northwest');
downstrokeCurveName = strcat('y=',num2str(coefficient_Downstroke(1),2),'x+',num2str(coefficient_Downstroke(2),2));
text(7,5,downstrokeCurveName);
%压力表精度校验
pStd = [pStd_Upstroke,pStd_Downstroke];
p = [p_Upstroke,p_Downstroke];
for i = 1:length(p)
    fprintf('第%i个数据的精度为:%4.2f%%\t',i,abs(p(i)-pStd(i))/16.0*100);
    if abs(p(i)-pStd(i))/16.0 > 0.015
        disp('精度异常!');
    else
        disp('精度正常!');
    end
end
%压力变送器数据处理
clc;clear;
%大气压(MPa)
p0 = 0.096;
%活塞式压力机标准压力值(MPa)
pStd_Upstroke = [0 3 6 9 12];
pStd_Downstroke = [9 6 3 0];
%数字多用电表第一组读数(mA)
p1_Upstroke = [4.1037 7.2902 10.4763 13.6640 16.8537];
p1_Downstroke = [13.6645 10.4770 7.2909 4.1044];
%数字多用电表第二组读数(mA)
p2_Upstroke = [4.1044 7.2906 10.4761 13.6633 16.8528];
p2_Downstroke = [13.6642 10.4772 7.2909 4.1046];
%两组数据平均值
p_Upstroke = (p1_Upstroke + p2_Upstroke)/2.0;
p_Downstroke = (p1_Downstroke + p2_Downstroke)/2.0;
%数据可视化
figure;
hold on;axis tight;grid on;
title('标准压力-压力变送器电流读数关系');
xlabel('压力变送器电流读数(单位mA)');
ylabel('标准压力(绝对压力,单位MPa)');
scatter(p_Upstroke,pStd_Upstroke + p0,'rp');
scatter(p_Downstroke,pStd_Downstroke + p0,'b*');
coefficient_Upstroke = polyfit(p_Upstroke,pStd_Upstroke + p0,1); 
coefficient_Downstroke = polyfit(p_Downstroke,pStd_Downstroke + p0,1); 
h_Upstroke = fplot(@(x)coefficient_Upstroke(1)*x+coefficient_Upstroke(2),[4.0,20.0]);
set(h_Upstroke,'linestyle','-.');
h_Downstroke = fplot(@(x)coefficient_Downstroke(1)*x+coefficient_Downstroke(2),[4.0,20.0]);
set(h_Downstroke,'linestyle','--');
b_Std = (20-15)/4.0;
a_Std = -b_Std*4;
h_Std = fplot(@(x)b_Std*x+a_Std,[4.0,20.0]);
set(h_Std,'linestyle','-');
legend('上行程数据点','下行程数据点','上行程拟合曲线','下行程拟合曲线','标准关系曲线','location','northwest');
upstrokeCurveName = strcat('y_{上}=',num2str(coefficient_Upstroke(1),3),'x',num2str(coefficient_Upstroke(2),3));
text(14,7,upstrokeCurveName);
downstrokeCurveName = strcat('y_{下}=',num2str(coefficient_Downstroke(1),3),'x',num2str(coefficient_Downstroke(2),3));
text(14,5.5,downstrokeCurveName);
stdCurveName = strcat('y_{std}=',num2str(b_Std,3),'x',num2str(a_Std,3));
text(14,4,stdCurveName);
%压力变送器误差计算
x = 0:0.005:15;
y_Std = polyval([b_Std,a_Std],x);
y_Upstroke = polyval(coefficient_Upstroke,x);
y_Downstroke = polyval(coefficient_Downstroke,x);
%重复性误差
deltaR = max(max(abs(y_Std-y_Upstroke)),max(abs(y_Std-y_Downstroke)))/15.0*100;
fprintf('重复性误差为:%4.2f%%\n',deltaR);
%迟滞误差
deltaH = max(abs(y_Upstroke-y_Downstroke))/15.0*100;
fprintf('迟滞误差为:%4.2f%%\n',deltaH);
%非线性度误差
deltaL = max(max(abs(y_Std-y_Upstroke)),max(abs(y_Std-y_Downstroke)))/15.0*100;
fprintf('非线性度误差:%4.2f%%\n',deltaL);
%偏差图
figure;
hold on;axis tight;grid on;
subplot(211);
polyval([b_Std,a_Std],p_Upstroke);
error_Upstroke = p_Upstroke - polyval([b_Std,a_Std],p_Upstroke);
errorbar(polyval([b_Std,a_Std],p_Upstroke),error_Upstroke);
title('上行程偏差图');
subplot(212);
polyval([b_Std,a_Std],p_Downstroke);
error_Downstroke = p_Downstroke - polyval([b_Std,a_Std],p_Downstroke);
errorbar(polyval([b_Std,a_Std],p_Downstroke),error_Downstroke);
title('下行程偏差图');

(2) 运行结果

第1个数据的精度为:0.00%	精度正常!
第2个数据的精度为:1.25%	精度正常!
第3个数据的精度为:1.25%	精度正常!
第4个数据的精度为:1.25%	精度正常!
第5个数据的精度为:1.25%	精度正常!
第6个数据的精度为:1.25%	精度正常!
第7个数据的精度为:1.25%	精度正常!
第8个数据的精度为:1.25%	精度正常!
第9个数据的精度为:0.00%	精度正常!

在这里插入图片描述

重复性误差为:22.65%
迟滞误差为:0.01%
非线性度误差:22.65%

标签: 33x压力变送器t323a压力变送器压力变送器std920y522差压变送器变送器数字压力表

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台