Saturday 27 September 2014

resistors - Tolerance of voltage dividers with different values for R1 and R2


If I have two 1k resistors rated at 1% fed by a perfect 10V source then what is the otuput guaranteed to be? 5V ±1% or 5V ±2% or some other value?



I can work out this case easily, assume that R1 is at the minimum, R2 is at the maximum, then the output is 4.95V; for the reverse case it is 5.05V, which is ±1%.


But is there a general rule for differing values? What about differing tolerances - what if one resistor were ±0.1% and one ±1%. While you can work it out by plugging values into the voltage divider formula, I'm looking for some general rule of thumb.



Answer



I think you asking for sensitivity analysis of f(x,y) = x/(x+y). Since there are two variables, I do a general analysis first, then look at the dependence on each variable separately. Since you might not care for the algebra, I tried to sum up each case after the bold heading.



The bad news is that the tolerance on the measured voltage can be very far from the predicted voltage, 1000000% or more relative error. The good news is that in reasonable cases it can only be a tad more than twice as bad as the resistor tolerances, and often you can do much better.





If X is supposed to be x, then the signed relative error is (X-x)/x = dx and X = x*(1+dx). If dx is 1% = 0.01, then X is x*101%, and if dx is -1%, then X is x*99%. In other words, we care about X = x*(1+dx).


If X is the resistance of R1, and Y is the resistance of R2, with R1 and R2 in series connected +10V to ground, then the measured voltage with one probe between R1 and R2 and the other probe at ground is f(X,Y) = X/(X+Y), but it was supposed to be f(x,y) = x/(x+y).



If x changes to X=x*(1+dx) and y changes to Y=y*(1+dy) then f(x,y) changes to f(X,Y):


x*(1+dx)/( x*(1+dx) + y*(1+dy) )


The relative error is:


E(x,y,dx,dy) = | f(x,y) - f(X,Y) | / f(x,y) = ( x/(x+y) - x*(1+dx)/( x*(1+dx) + y*(1+dy) ) ) / ( x/(x+y) )


which simplifies to the:


Exact relative error



E(x,y,dx,dy) = y*|dy-dx| / ( X + Y )



This formula is not too bad to plug values into, and it is not too bad to analyze in specific cases.



Quick symmetric bound


Assuming |dx| and |dy| are bounded by 0 ≤ e < 100%, this is bounded by:



E ≤ 2*y*e / ((x+y)*(1-e)) = y/(x+y) * 2 * ( e + e*e + e*e*e + … )



For instance when x = R1 = 1K and y = R2 = 1K and dx = 1% = 0.01 and dy = -1% = -0.01 you get the relative error E = 1% = 0.01. The bound I gave is a little loose since it predicts 1.0101...% but probably this is not too big a deal.


Large R1



When R1 is very large compared to R2, then the relative error goes down considerably.




If x → ∞, then E(x,y,dx,dy) → 0.


It goes to zero about as fast 1/x: x*E(x,y,dx,dy) → y*(dx-dy)/(1+dx).


This is not too surprising: if you have an open circuit with +10V attached to your probe and the other other probe attached to R2 attached to ground, then the current is 0 and both terminals of R2 remain at +0V, so you measure +10V no matter what the value of R2.


Large R2



When R2 is very large compared to R1, then the relative error can be very large, but for reasonable tolerances on R1 and R2, E is only a little more than twice as bad.



If y → ∞, then r(x,y,dx,dy) → |dx-dy|/(1+dx).


If dy = -dx = 0.10 = 10%, then you get 22% error (a little more tan twice as bad).


If dy = -dx = 0.50 = 50%, then r = 2 = 200% relative error (four times as bad).



As dx → 1 = 100%, r → ∞ (infinitely worse).


If |dx| and |dy| are bounded by e < 1 = 100%, then for large y, r is bounded by 2e/(1-e), which is a little bigger than twice as big as e.


If dy = -dx = 0.01 = 1%, then you get E = 2*1%/(99%) = 2.0202…% relative error on the measured voltage (a little more than twice as bad).


If dy = -dx = 0.001 = 0.1%, then you get 2*0.1%/(99.9%) = 0.2002002…% relative error (a very little more than twice as bad).


Asymmetric tolerances



If R2 is very accurate and R1 ≈ R2, then the error is at most a little more than half as bad.



If dy = 0, then E = dx*y / ( X + y ) and if x = y, then E = dx/(2+dx).


If -dx = 0.01%, then E = 0.01 / 1.99 = 0.005025… = 0.5025…% (a little more than half as bad).



No comments:

Post a Comment

arduino - Can I use TI&#39;s cc2541 BLE as micro controller to perform operations/ processing instead of ATmega328P AU to save cost?

I am using arduino pro mini (which contains Atmega328p AU ) along with cc2541(HM-10) to process and transfer data over BLE to smartphone. I...