Monitor 3 phases with one voltage sensor

 Hello everyone,

As we all know, there are two ways of measuring electrical power with the CT sensors: one involves using a CT sensor + voltage sensor, and the other just a CT.

Each method has advantages and disadvantages:

CT only CT+Voltage sensor


+Does not require a voltage sensor (assumes the AC voltage is constant and the phase shift is 1)

+Does not require an electricity plug next to the monitor

-Inaccurate because RealPower does not always equal ApparentPower


+Measures actual voltage values

+Measures phase shift and actual RealPower and ApparentPower

-Requires an AC plug next to the monitor

-Requires a voltage sensor per phase

The biggest drawback of the CT only method is that it does not measure the phase shift between the current and voltage, and it just multiplies the measured current values by the fixed voltage value (say 230v), so for example if your device consumes 3Amp and it is not purely resistive (phase shift different than 1, let's say 0.20) then your CT only monitor will show a power consumption of 690 Watt while a CT + Voltage sensor monitor will show the accurate value of 144.9 Watt.

Here comes the biggest drawback of the CT only method. It also does not measure the voltage drop but that is very tolerable I think (not more than a few volts).

Now if we want to monitor more than one phase with the CT + Voltage sensor method (say 3 phases), we would need 3 CTs and 3 voltage sensors. 

However, I think we can use only one voltage sensor to measure one phase voltage, and since the phase shift between the three voltage vectors is always 120° (see diagram below) , we can create two variables that are 120° shifted from the measured voltage phase, and multiply the measured current values from the CTs by an assumed voltage value and by the phase shift between this current and the created 120° shifted phase.

What do you think? Can this idea be further developed?

glyn.hudson's picture

Re: Monitor 3 phases with one voltage sensor

 Hi Amin, 

How are things? What have you been up to?

Sorry we have been slow replying, we have been busy assembling up a load of emonTx's and Nanodes (see tweets) for our community energy project. We have also been working on polishing the emonTx and Nanode firmware. 

Sounds pleasuable, I will need to do some more reading an thinking. With the new version of the emonTx (V2.0) including 3 x CT channels it would be really cool to get some 3-phase monitoring working. 

Trystan and I did an interesting test last night. We graphed real power, apparent power and P.F. The test was conducted over night, the main loads connected were fridges (3 different ones I think). You can see the effect of their inductive loads. 



All the best, Glyn. 

TrystanLea's picture

Re: Monitor 3 phases with one voltage sensor

Hey Amin, I reckon your idea is worth a go. The challenge might be to create that phase shifted waveform, maybe it could be done with an array that say stores the last 100 samples and the 50th sample back is 120 deg out of phase?

As glyn said we have started to do some proper testing of the difference between realpower and apparent power when monitoring a 'normal' house's combination of loads over time. A good measure would be realpower kwh in a year vs apparent power kwh in a year. So far though we only have two days and these are the results:

Day 1: | real power 20.6kWh | apparent power 21.8kWh | real power = 94% of apparent power

Day 2: | real power 10.3kWh | apparent power 11.6kWh | real power = 89% of apparent power

It would be interesting to know what the average difference is between real and apparent for the typical house, we could then calibrate it out in a rough way giving a good enough for our needs result.

If the loads being measured however where not average household loads like a workshop full of motors this would be less lickely to work. Anyhow we can get around all this by adding voltage measurement which is what this topic is actually about, sorry for the digression.

Amin Zayani's picture

Re: Monitor 3 phases with one voltage sensor

 Hey guys,

It's cool that you started measuring the real power vs apparent power. Now we have an "empirical" evidence that voltage measurement makes an important difference. It is already more than 10% deviance: WAY TOO MUCH! I am afraid I'll have to disagree with you about the "calibrating" solution. I believe that every decent monitor needs a voltage sensor. Calibration opens the door for an error margin that's too important to tolerate.

Amin Zayani's picture

Re: Monitor 3 phases with one voltage sensor

 The challenge might be to create that phase shifted waveform, maybe it could be done with an array that say stores the last 100 samples and the 50th sample back is 120 deg out of phase?


I'm sorry I did not get the idea, do you want to create that array in the arduino memory or in the database? 

I think the other two waveforms must both be created within the arduino, the other challenge will be to make the arduino match the corresponding generated voltage waveform to the current measured. Tricky.


Should we start a topic on the official arduino forums?


Do you think the little ATMega 328 can handle it?

TrystanLea's picture

Re: Monitor 3 phases with one voltage sensor

I think that the method choosen depends on your aims and accuracy requirements. The main disadvantage of the voltage measurement option is the need for a AC socket near to you utility meter and also the cost of the additional adapter. If you need an indication of your energy use, good enough for seeing trends then the CT only option may be fine. I believe this is why most domestic energy monitors go for the CT only option. If we can layout each options advantages and disadvantages on this site clearly then each of us can decide for ourselves which option best suits our own needs and our particular applications needs.

I will try and create a page on this later this week


Guest's picture

Re: Monitor 3 phases with one voltage sensor

I'm asuming there arn't enough pins on the ATMega 328 to just measure the additional two phase voltages ? Wouldn't that be the simplest and most accurate.

I'm also interested in this, and don't really have a typical electrical usage (workshop etc) to make any kind of estimations for the trouble.

Pcunha's picture

Re: Monitor 3 phases with one voltage sensor

YES, i hat the exactly same ideia, and i think it can handle.

I'm thinking in create a array to buffer the x last ac waveform samples where:
x = (F_CPU / ADC_PRESCALER / 13 / (Number of voltage sensors + number of CT's) / Mains_HZ) * Max_Phase_Angle / 360 
Where F_CPU is the CPU frequency or 16000000
13 is the ADC clocks to give a reading
Mains_HZ is the line frequency (60 or 50Hz)
Max_Phase_Angle = the maximun angle ex: 240 for 3 phase circuit with 3 cts.
(16.000.000/128/13/4/60) * 240 / 360 = 22
so we need to mantain the last 22 voltage readings on a fifo buffer ant then apply only a little phase shift correction.
When reading the first phase, we will pick the array[0] position, on the second phase the array[11] and on the third array[22], so that way we can maintain the original active and real power measurements.
I'm working on that code right now to prove it's concept.
ControlGadgets_Geoff's picture

Re: Monitor 3 phases with one voltage sensor

The calculations above suggest that the supply voltage affects the accuracy of the calculation more than the power factor does.

The problem with only measuring 1 phase is, the voltage on all 3 phases is rarely the same. This is because the load is generally only randomly balanced by linesmen.  If the supply is overhead, the linesman will usually attach each connection to the closest phase.  This is call  "short arm linesman" theorem and is generally the first thing that we check when there are voltage problems.  If the supply is underground it relies on the favorite color (red, white or blue) or favorite letter. (A,B or C) to get the balancing correct.  Even if the load in numercally balanced, rarely do all people draw the same amount of power at the same time, so a balanced load is practically impossible.

An unbalanced system can cause the voltage on some phases to be far greater than the supply and others to be less, since the voltage on the neutral will move towards the heaviest loaded phase and therefore away from the lightest loaded phase.  So, when one customer draws more load their voltage will go down and other customers supply voltage can go up!  Also consider a highly inductive load (pool pump), the current direction is somewhere off in space...

It sounds to me like you are getting too excited by the prospect of doing something clever, as we all do from time to time, instead of focusing on being practical.  I frequently see this in some of my programmers' work.  The Keeping It Simple Stupid theory is frequently the best solution and is always more reliable than some convoluted algorithm. (Or maybe I'm just getting too old to see the fun in programming...)

In my opinion, measuring voltage and/or power factor is only really useful if you are going to challenge your power company's meter reading. Simply measuring current and multiplying by a arbitrary supply voltage will give you all the data that you need to determine what is consuming the most energy.

I'd also be doing some linearity tests on your CT's.  Since you are using Atmel/arduino, I'd guess you are measuring around 3-5 volts from a CT using a high value (200 ohm+) resistor.  If this is the case you will likely see an error of up to 40% from 0 to full scale.  Use a resistive heater to check, it's very interesting!

Sounds like your having fun.


Pcunha's picture

Re: Monitor 3 phases with one voltage sensor

Yes i´m having a lot of fun! ( Don´t trow  cold water in me). 

If i wanted to be practical  i have had both a presicion meter... a fully assembled one. with a user manual, a waranty certificate...

The voltage problem is a problem that could be  resolved easy using 3 voltage sensors with 3 cts. ( my actual hack of OpenEnergyMonitor). The approach of using only one voltage sensor will give-us at least the same precision as using none.

(correct-me if i´m wrong):

As far as i can read the pratical approach has been already acomplished by the OpenEnergyMonitor Project. It gives you some accurate readings with very cheap hardware that you can assemble yourself.

As i can see, the actual approach of the project is simplicity and easy to use not precision. I can see that for the simple fact that the code base only utilize some samples of the AC grid to determine it´s load. This is great. a very simple software with simple hardware to provide some acurracy...

What i´m trying to do is a way of improving the actual project on a software basis. If my code, compiles, fits and runs on the same processor, with the exactly same hardware only losing it´s power saving capability, but improving the accuracy of the meter, let´s say, some %, the user will have a choice on what firmware to use...

I´ve not tested yet, but the CT´s datasheet gives-me a high linearity from 0 to 30A.




Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.