Maker Pro
Maker Pro

Current transformer

flippineck

Sep 8, 2013
358
Joined
Sep 8, 2013
Messages
358
I have a small through-hole type current transformer

https://docs.rs-online.com/93d6/0900766b8169af7d.pdf

with a coil ratio of 2500:1 with a single pass of live 240V AC 6mm² conductor through the hole.

If my calculations are correct, feeding the secondary across a 100Ω burden resistor should result in a voltage output swing up to around +-2.4V, proportional to the primary current ranging from 0 - approx 40A.

The plan is to then apply a suitable DC offset using two 330kΩ resistors as a reference divider, to give a 0-5V input suitable for an arduino analog input pin.

https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino

If left with the primary powered & with the secondary open circuit (e.g. if the 100Ω resistor fails open circuit), it could result in a high voltage resulting across the secondary, maybe up to the primary voltage x the coils ratio - 600kV?

Would it be a good or a bad idea to include in the circuit, a neon lamp in parallel with the burden resistor, would that work as a belt-and-braces way to mitigate against burden resistor failure?



I
 

Harald Kapp

Moderator
Moderator
Nov 17, 2011
13,722
Joined
Nov 17, 2011
Messages
13,722
If my calculations are correct, feeding the secondary across a 100Ω burden resistor should result in a voltage output swing up to around +-2.4V, proportional to the primary current ranging from 0 - approx 40A.
Your calculations are not correct. A current transformer transforms, as the name says, primary current into secondary current. It does not transfrom voltages. With respect to this transformer, 40 A are 40 A, regardless of the primary voltage, be it 12 V or 240 V.

A primary current of Ip = 40 A is transformed to a secondary current of Is = Ip / 2500 = 40 A / 2500 = 1.6 mA.
1.6 mA through a 100 Ω burden result in Vs = Is × Rburden = 1.6 mA × 100 Ω = 160 mV.
But: note that the trasformer has an internal winding resistance of 171 Ω. So we have an ideal current transformer with a total burden of no 100 Ω but 271 Ω. The voltage that develops across the burden counteracts the transformed current, reducing it somewhat. One can model this and calculate the exact values, but that is leading too far here. Look up hw to model a transformer.

The plan is to then apply a suitable DC offset using two 330kΩ resistors as a reference divider, to give a 0-5V input suitable for an arduino analog input pin.
Add offset and gain with a simple operational amplifier adder circuit.

If left with the primary powered & with the secondary open circuit (e.g. if the 100Ω resistor fails open circuit), it could result in a high voltage resulting across the secondary, maybe up to the primary voltage x the coils ratio - 600kV?
This is definitely a risk, but doesn't depend on primary voltage but primary current.
Assume 1 A primary, then you have only 400 µA secondary. But an open circuit on the secondary is equivalent to an infinite resistance. As there is no such thing as an infinite resistance, let's assume 100 MΩ as a good enough approximation to account e.g. for isolation resistance etc. 400 µA through 100 MΩ result in 40 kV! The isolation will break long befor this value is reached.
To prevent such an accident, add 2 Zener diodes (e.g. 6.2 V types) antiparallel to the secondary coil of the transformer. In normal operation these diodes will be "invisible". If the burden resistor should fail open, the zener diodes limit the output voltage to safe levels. A neon lamp will do the same trick, but the voltage may be to high to protect the circuit connected.
 
Last edited:

Harald Kapp

Moderator
Moderator
Nov 17, 2011
13,722
Joined
Nov 17, 2011
Messages
13,722
Another way to increase the sensitivity without addign an amplifier is to reduce the winding ratio.
By feeding one primary wire through the hole you have a ration of R = 1 / 2500.
upload_2021-2-18_19-4-30.png
Trust me, although this doesn't loop like a winding or loop at all, physically this works as a single turn of the wire as the loop is closed by the circuitry connected to both ends of the red primary wire.

Feed the primary twice through the hole in a loop and you have R = 2 / 2500 and thus twice the output current (or voltage across the burden).
upload_2021-2-18_19-7-19.png
This would be 2 (!) windings with respect to winding ratio.

Depending on the thickness of the primary wire you can add more turns to further reduce the winding ratio.
upload_2021-2-18_19-9-36.png
etc. etc.
 

flippineck

Sep 8, 2013
358
Joined
Sep 8, 2013
Messages
358
Thanks. I now get, using two parallel 100Ω resistors;

40 A RMS primary / 2500 turns secondary = 0.016 A RMS into 221Ω

giving rise to 3.536 V RMS over 221Ω = 4.99 V peak, either end of the two parallel 100Ω resistors?

Since the Arduino is measuring RMS current by repeated sampling, and it's default analog reference voltage is 5V, I should be able to feed the output through a bridge rectifier to the Arduino ground and A0 pins, and track the current with a stripped down version of the Emon code, something along the lines of

Code:
  for (unsigned int n = 0; n < Number_of_Samples; n++)
  {
    thisI = analogRead(A0);
    this_sqI = thisI * thisI;
    sumI += this_sqI;
  }

  Irms = sqrt(sumI / Number_of_Samples);
  return Irms;

.. and dispense with any need to otherwise scale or offset the input?

Absolute current value accuracy is less important than repeatability, I'm looking to monitor for a setpoint, adjustable as a variable in the code along with it's associated hysterisis, whereby the Arduino operates a changeover relay when the primary current rises above or falls below a certain level.

The LEM current sensor CKSR 50-NP looks really suitable from everything I understand in the datasheet. It pretty much looks like, for a very reasonable price, it would drop straight in beside the (5V) Arduino. How does it's output voltage vary with an AC primary current though.. the output range is specified as 0.375 - 4.625 V, does this denote a range of instantaneous values from zero crossing to either peak, a full range from negative peak to positive peak, or an RMS value?

Trying to think mathematically here, never my strong point, RMS is a polarity-blind quantity with only one value for any given waveform? or, can it take a double value depending on whether you're looking at the full cycle or only the negative or positive side.. [edit - ok I got it, the square-ing bit makes everything positive]
 
Last edited:

Harald Kapp

Moderator
Moderator
Nov 17, 2011
13,722
Joined
Nov 17, 2011
Messages
13,722
Thanks. I now get, using two parallel 100Ω resistors;

40 A RMS primary / 2500 turns secondary = 0.016 A RMS into 221Ω
Two 100 Ω in parallel don't make 221 Ω.

40/2500 = 16mA.
Of course, my bad. So all related numbers go up by a factor of 10.

I should be able to feed the output through a bridge rectifier to the Arduino ground and A0 pins,
Using a bridge rectifier is no good here. The rectifier will drop ~ 1.2 V across the diodes and you'll get completely wrong measurements - none at all for small currents.
Measuring the AC by adding an offset of Vref / 2 (2.5 V in your case with Vref = Vcc = 5 V) is much better. You can subtract the offset in SW before doing the RMS calculation.

The LEM current sensor CKSR 50-NP looks really suitable from everything I understand in the datasheet.
It is certainly also going to be much more expensive than the passive one you presented first.
the output range is specified as 0.375 - 4.625 V, does this denote a range of instantaneous values from zero crossing to either peak, a full range from negative peak to positive peak, or an RMS value?
Think for yourself: could these be RMS values? What would be the peak value of a 4.625 V RMS signal? Could this be produced from a supply voltage of 5 V? Do you see any RMS circuit in the block diagram?
 

Harald Kapp

Moderator
Moderator
Nov 17, 2011
13,722
Joined
Nov 17, 2011
Messages
13,722
It wasn't obvious to me that the internal burden has been taken into account. I should have remembered my own advice :rolleyes:

But then there is another problem still hidden: @flippineck can actually measure only the voltage drop across the external 50 Ω burden. The drop across the internal 171 Ω cannot be measured.
Therefore at 40 A primary we have 16 mA secondary and thus 50 Ω × 0.016 A = 0.8 V (rms, or 2.263 V peak-peak) which can be measured. Not the 3.536 V as expected.
Anyhow, 2.263 V peak-peak is a value one can work with. Use 2 primary windings and that value increases to 4.526 V. Perfect for measuring with a 5 V reference. All that is required is to add an offset which can easily be done with 2 resistors:
upload_2021-2-19_8-28-27.png
 

flippineck

Sep 8, 2013
358
Joined
Sep 8, 2013
Messages
358
Just now I saw it as three resistances all in parallel, applied 1/Rt=1/R1+1/R2+1/R3 and got 38.7Ω

That can't apply, can it?
 

Harald Kapp

Moderator
Moderator
Nov 17, 2011
13,722
Joined
Nov 17, 2011
Messages
13,722
Assuming the impedance of the input to the Arduino is very high ( a few 100 kΩ), I don't see where you see these resistors being in parallel.
 

flippineck

Sep 8, 2013
358
Joined
Sep 8, 2013
Messages
358
x.png

I think I'm probably misapplying the parallel resistor equation in this thought process.

For R1 & R2 I'd originally ordered a pack of 10 x 330 kΩ 1% 2W resistors, I was hoping a high value might keep battery drain down.
 

Harald Kapp

Moderator
Moderator
Nov 17, 2011
13,722
Joined
Nov 17, 2011
Messages
13,722
The two 100 Ω resistors are in parallel, resulting in a 50 Ω burden. The current from the transformer (thick red line) is evenly split between these resistors (thin red lines).
upload_2021-2-19_16-3-26.png
Neglecting the input impedacne of the Arduino (a reasonable simplification as the burden is only 50 Ω) there is no current into the arduino. Consequently (upper arrow, pointing to the right). If there is no current out of the transformer into the Arduino, consequently there is no current back into the transformer (lower arrow, pointing left). Therefore R1 and R2 are not parallel to the burden.
If they were, they would share the current with the burden resistors which, as I have shown, doesn't happen.
 

Attachments

  • upload_2021-2-19_15-59-23.png
    upload_2021-2-19_15-59-23.png
    15 KB · Views: 1

Harald Kapp

Moderator
Moderator
Nov 17, 2011
13,722
Joined
Nov 17, 2011
Messages
13,722
For R1 & R2 I'd originally ordered a pack of 10 x 330 kΩ 1% 2W resistors
2 W? Why? The total power dissipation is P = V / (R1 + R2). With R1 = R2 = 330 kΩ and V = 5 V this results in 38 µW. 1/4 W resistors would have been more than sufficient.

Tip: If the sampled values are very noisy, add a 100 nF capacitor parallel to R2. This helps to stabilize the 1/2 × Vcc reference.
 
Last edited:

flippineck

Sep 8, 2013
358
Joined
Sep 8, 2013
Messages
358
Sorry it was the two 100Ω burden resistors, and the 171Ω internal resistance I was wondering about all 3 being in parallel.

Yes those potential divider resistors are very fat! No other reason than I liked the look of the ebay seller & the price was fine.

We use 10 kΩ resistors for mains powered monitors. The emonTx uses 470 kΩ resistors to keep the power consumption to a minimum, as it is intended to run on batteries for several months.

I was planning on running the CT & Arduino from a rechargeable PP3 in the field, so I wanted to try and keep the offset chain to a high resistance to maximise battery life. The emonTx guys seem to use 470 kΩ.

They also seem to use a capacitor in the position you describe, but of a markedly different value, and I had wondered what that was for:

Capacitor C1 has a low reactance - a few hundred ohms - and provides a path for the alternating current to bypass the resistor. A value of 10 μF is suitable.
 

Harald Kapp

Moderator
Moderator
Nov 17, 2011
13,722
Joined
Nov 17, 2011
Messages
13,722
The typical qiescent current drawn by an Arduino Uno for xample is 6 mA, in low power mode it will draw ~28 mA from 9 V(source), equvalent to 9 V × 28 mA ~ 250 mW.
The 38 µW from the rsistive divider are negligible compared to that.

Sorry it was the two 100Ω burden resistors, and the 171Ω internal resistance I was wondering about all 3 being in parallel.
The internal 171 Ω are in series with the burden (50 Ω). The transformer "sees" 221 Ω as you calculated yourself, but only the voltage drop across the 50 Ω can actually be measured.
 

flippineck

Sep 8, 2013
358
Joined
Sep 8, 2013
Messages
358
Thanks for your patience Harald, I've gone over it all a few times & I think I now better appreciate post #10

One thing that for some reason wasn't clear to me at first was that the current in the burden loop depends entirely on the size of the primary current and the turns ratio, the resistances don't change it, the resistance values only affect the PD measured across them.

Just the one thing that's left puzzling me, the reactance value of the capacitor across R2.

Xc(Ω) = 1 / (2π.f(Hz).C(F))

At 50 Hz, this gives a reactance of 31.8 kΩ for 100 nF and 0.318 kΩ for 10 μF

Not sure whether I would want a higher or lower reactance in that value, or why?
 

Harald Kapp

Moderator
Moderator
Nov 17, 2011
13,722
Joined
Nov 17, 2011
Messages
13,722
The reactance of this capacitor is of no concern for the measured current. As I have tried to explain, there is no current from the ct into R1 or R2, therefore there is also no current into any capacitor parallel to one of these resistors and thus the capacitance is irrelevant with respect to the measured value.
The only reason for a capacitor from the center connection between R1 and R2 is noise suppression and stabilization of the midpoint at 2.5 V.
 

flippineck

Sep 8, 2013
358
Joined
Sep 8, 2013
Messages
358
Is that suppression of noise from, and stabilization of potential variations on, the power supply, so that the choice of value of the capacitor would depend only on the characteristics of the reference power supply?

I can't decide whether to use 100 nF as you suggest, or 10 μF as in the Emon design, or some other value.

I'm building the trial circuit with stripboard, powered directly from the 5V & GND pins of, & mounted next to the Arduino in a small plastic enclosure, with the Arduino powered by a rechargeable PP3 9V battery plugged into the DC IN jack. The only mains power entering and leaving the box is the 2 turns of conductor carrying the monitored power.

Hopefully once finished I can have a look at the samples via USB & the serial monitor, and appraise the noise.
 
Top