赞
踩
上网上找pt100电桥,会出来不少讲平衡电桥的,我不知道这个具体应用场合在哪,讲相关理论当然可以,可是放在实际检测中我实在想不出怎么平衡法,谁会教教我。
上面四图都是Rp随温变产生差压交给后端处理采集的。
A图浪费3线Pt100计算引入1.5Rr。
D图三线制单横流源有相减后再后续处理,理论没误差。
E图三线制双横流源在专用RTD上见过,理论没误差。
再来看C图,假设后端输入阻抗高采集吸取电流小,动桥臂高侧低侧各引入一个Rr,如果高低侧比例相同抵消了,但是从稀少的经验看一般高侧远大于低侧这时有个特点是即使Rp=Rref,deltaV也不为零,所以还是不好分析写个式子:deltaV=2.5V[(Rp+2Rr)/(Rh+Rp+2Rr)-Rref/(RH+Rref)]。
B图还是给个前提Rh>>Rref>>Rr 所以B图中电桥真正的电源轨为VCC-GND’,这个电路动桥臂RH-Rr-Rp和定桥臂Rh-Rref-Rr各串了一个Rr,看图
(if Rr=0)Rp<Rr时deltaV<0 图中竖红色线,反之则是蓝线。
先忽略GND’引入Rr使上图黄斜线向右移动VCC不动,绿线为高低侧分界线不动所以红线蓝线都会减小。再考虑GND’使桥轨减小,VCC下移,还是缩短红线蓝线。
B图总的来说Rr会使测得的压差deltaV要比没有Rr时绝对值更小。我曾尝试列式子寻找Rr引入得到deltaV使用标准不计Rr反算Rp的关系,可是式子分母套分母越来越复杂,谁曾成功推出来过,一定要教教我。
Matlab算误差
Script.m %% DataInitalization clear clf srcRp=(91:0.1:175)'; srcRl=(0:0.5:10)'; %% Result calc %stand equation % deltaU=U*(Rp/(Rh+Rp)-Pr/(Rh+Rr)); %res(i:size(srcRp,i),i)=0; xAxisSize=size(srcRp,1); yAxisSize=size(srcRl,1); for i=1:yAxisSize for j=1:xAxisSize resB(j,i)=RealRp2deltaU(RealU(srcRp(j,1),srcRl(i,1)),srcRp(j,1),srcRl(i,1)); calcBRp(j,i)=deltaU2RpUseSE(resB(j,i)); errBRp(j,i)=calcBRp(j,i)-srcRp(j,1); errBTemp(j,i)=Rp2Temp(calcBRp(j,i))-Rp2Temp(srcRp(j,1)); resC(j,i)=ClassCRealRp2deltaU(1,srcRp(j,1),srcRl(i,1)); calcCRp(j,i)=deltaU2RpUseSE(resC(j,i)); errCRp(j,i)=calcCRp(j,i)-srcRp(j,1); errCTemp(j,i)=Rp2Temp(calcCRp(j,i))-Rp2Temp(srcRp(j,1)); end end %% Tempdel srcTemp(1:size(srcRp,1),1:size(srcRp,2))=0; for i=1:size(srcRp,1) srcTemp(i,1)=Rp2Temp(srcRp(i,1)); end %% plot Vector figure(1); mh=mesh(srcRl,srcRp,errBTemp); hold on; %figure(2); mh2=mesh(srcRl,srcRp,errCTemp); zlabel('err') ylabel('Rp') xlabel('Rl') % So Rl make deltaU closing Balance Position when Rp<Rr calcRp More ,Rp>Rr % calcRp less Rp2Temp.m function [res]=Rp2Temp(RpIn) res=RpIn*RpIn*0.00104+2.3509*RpIn-245.37028; end RealU.m %ClassB 桥轨电压 function [ resU ] = RealU(Rp, Rl ) U=1; Rh=2490; Rr=100; Br1=Rh+Rp+Rl; Br2=Rh+Rr+Rl; Br=ParallelRes(Br1,Br2); resU=U*Br/(Br+Rl); end RealRp2deltaU.m % ClassB function [ output_args ] = RealRp2deltaU(Ur,Rp,Rl ) %Ur=1; Rh=2490; Rr=100; deltaUr=Ur*((Rp+Rl)/(Rh+Rp+Rl)-(Rr+Rl)/(Rh+Rr+Rl)); output_args=deltaUr; end ParallelRes.m function [ output_args ] = ParallelRes( ra,rb ) %PARALLELRES Summary of this function goes here % Detailed explanation goes here res=ra*rb/(ra+rb); output_args =res; end deltaU2RpUseSE.m function [ output_args ] = deltaU2RpUseSE( deltaU ) %DELTAU2RP Summary of this function goes here % Detailed explanation goes here U=1; Rh=2490; Rr=100; RpCalc=Rh*(deltaU/U+Rr/(Rr+Rh))/(1-deltaU/U-Rr/(Rr+Rh)); output_args=RpCalc; end ClassCRealRp2deltaU.m % ClassC function [ output_args ] = ClassCRealRp2deltaU(Ur,Rp,Rl ) %Ur=1; Rh=2490; Rr=100; output_args=Ur*((Rp+2*Rl)/(Rh+Rp+2*Rl)-Rr/(Rh+Rr)); end
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。