Some clarifications about burden resistors

So I finally have both the time and the necessary hardware to start experimenting with energy monitoring. I’m starting with the CT-sensors tutorial and after some hic-ups, I think I’m finally seeing correct values (current and apparent power).

I thought I’d share my mistake here so that others might avoid it (and perhaps the tutorial can be improved).

My main mistake was that I calculated the value of the burden resistor not based on the max. current of the CT (a YHDC SCT-013-000) but the maximum current that will flow through the wire around which the CT is clamped. My thinking was that since each of the three phases coming into our house is fused with a 25A fuse, so that I will never measure more than 25 Amps on any single phase. This is, of course, correct, but it was apparently not correct that I could/should use a different burden resistor because of this.

I have not quite fully understood, why this is so, but I think it has to do with the fact that the CT produces 50mA at full primary amperage and that will, of course, not change just because I never measure such high currents. It seems that my thinking-mistake was that in order to increase my measurement accuracy, I need to get a CT whose max current is closer to my max current. But then again, isn’t the accuracy already maxed out by following the turtorial, i.e. by using a 33 or 35 ohm resistor?

I think what confused me in the tutorial is that it speaks of “max. primary current” and not “max. CT clamp current”. Also, it doesn’t mention the 50 mA max. secondary current of the CT at all even though this seems to be really what the calculation of the burden resistor is about, right? I now realize that the 50 mA is indirectly represented via the 2000 CT turns, but doesn’t this complicate things more than necessary? Who cares how may turns the thing has if we know that it outputs a maximum of 50mA? Or maybe I’m just looking at it from the wrong angle?

Anyway, while I’m at it I might as well mention another little mistake I made: In

Burden Resistor (ohms) = (AREF * CT TURNS) / (2√2 * max primary current)

I misread 2√2 as the square root of two, rather than two times the square root of two. I think it would be more consistent with the notation used if this were written as 2 * √2 instead.

Oh, and another question: I created my 33 Ohm burden resister with three 100 Ohm resistors in parallel. Is there any disadvantage with this? To me it seems like the obvious solution but parallel resistors are not even mentioned in the turtorial, so I’m wondering whether there is a reason for this.

No, you are definitely not doing that. I find the way that article presents the calculations as confusing - one day I will rewrite it.

A current transformer is exactly that (and it is NOT a clamp). It transforms a high current into a lower current. The ratio is correctly (or should be, as you say) always given as a ratio of two currents: the rated primary current and the secondary current at that rated primary current. In the case of an SCT-013-000, it is 100 A : 50 mA. If you write 2000:1, that implies a rated primary current of 2 kA and a secondary current of 1 A.

When calculating the burden value, I first calculate the maximum rms voltage (of a sine wave) that the ADC input can tolerate under worst case conditions, taking into account all the tolerances of components that affect this (the ADC supply voltage, the accuracy of the d.c. bias voltage, the c.t. tolerance and finally the burden resistor tolerance itself. Plus a little for safety. The numbers I use are 1.1 V rms for a 3.3 V emonTx, and 1.6 V for a 5 V Arduino.

Given these voltages, it’s easy to calculate the value of the burden. Say you want to measure 25 A. The secondary current from your c.t. is 50 mA × 25 A ÷ 100 A = 12.5 mA. For a 5 V Arduino, the resistor value is 1.65 V ÷ 12.5 mA = 132 Ω. If your current wave is not a true sinusoid, then if it’s ‘peaky’ you must allow for that and reduce the burden value accordingly. If it’s ‘flat-topped’, I ignore that, because that works in your favour.

You would have no means of knowing that a 132 Ω burden would be acceptable, but it is. It is not a standard value, so always use the nearest lower value - in this case 130 Ω or 120 Ω. But even then, I would use a lower value still, because if your fuse or circuit breaker is rated at 25 A, it will carry 25 A indefinitely, but it will not rupture immediately with a higher current, it will carry a much larger current for a short time - and you still want to be able to measure that larger current. So I would choose a burden of 82 Ω, giving you a maximum current (doing the maths backwards) of 40 A. You must trade inaccuracy in the c.t. against inaccuracy in the ADC - you can’t have both with this c.t.

You should always choose a c.t. whose rated primary current is greater than the maximum current that you will ever measure, but greater by the smallest amount possible. Current transformers are happiest when they are short-circuited. It is perfectly safe to do that, it is never a good idea to leave a c.t. without a burden, and it can be dangerous to do so. As you steadily increase the burden resistance above zero Ω, you increase the load on the c.t. and distortion and errors slowly increase. If you want to see what happens to a sine wave with no burden at all (and a very low primary current even so), look at the early version of my report on the SCT-013-000 here (Section 6).

We have to assume that people who are constructing their own electronic devices know some of the basics - like for example how to calculate parallel resistors and that the peak-peak amplitude of a sine wave is 2√2 times the rms value (and yes, that’s how it’s written - you were confusing it with ³√ meaning the cube root).

It’s quite in order to use parallel resistors to achieve a non-standard value. It’s especially useful if you have a selection of resistors available but not the right one, it’s not quite so good if you’re purchasing new.

1 Like

Thanks a lot for your detailed reply. You got me confused:

This was my reasoning before I finally got correct readings by using 33 Ω as burden. The only difference is that I didn’t use any safety margin for the Arduino voltage (why do you?) so that my calculation was 2.5 V ÷ 12.5 mA = 200 Ω. But if I remember correctly, with 200 Ω my readings were completely off. Probably about four times the real value.

No, wait, my initial calculation was actually that I should have a 141 Ω burden resistor for max 25 A but since I didn’t have a resistor with that value, I figured I could use 100 Ω which gives me up to 35 A. (I also tried 330 Ω and 200 Ω in parallel, which gives me 125 Ω and max 28 A.

So it looks like our results differ only because of different security margins. But why do I get completely wrong readings with all of them?

Because you must always design with the worst case in mind. No component is ever exactly the correct value, either out of the factory or when it’s affected by temperature, for example. You always need to figure out what the worst possible combination of values is and use those. That way, your design will always work.

Did you remember to change the calibration coefficient to match? It’s the current that gives you 1 V at the Arduino’s analogue input (if you’re using emonLib).

Aha! Calibration makes sense. Are you referring to the 111.1 in emon1.current(1, 111.1);? There is no info on that in the tutorial. Where do I find more on this? (Yes, I’m using EmonLib)

Read the section on calibration in ‘Learn’.

Okay, thanks for pointing me in the right direction. I suppose you mean this part?

I did not expect to find information that I need for setting up a simple arduino current meter at the beginning of “Learn” in a much later section. Perhaps a link could be added pointing out that if the value of the burden resistor is changed, the calibration coefficient needs to be adjusted?

IMHO, if you’ve adjusted the sensitivity of the hardware, there’s got to be some way of telling the software that you have done so.

As I wrote in the beginning, I didn’t write that page, but when or if I do, I shall try to remember that.

1 Like