Solar wattage accuracy

Hi All,

I currently have 3 phase power and a 3 phase solar inverter with about 10kw of capacity
My setup is 3 emontx v3 shields with arduinos.
I currently have a power point on each phase that the AC-AC transformers meassure voltage from
ct1 → mains phase1
ct2 → solar phase1
voltage-> ac-ac → phase1

ct1 → mains phase2
ct2 → solar phase2
voltage-> ac-ac → phase2

ct1 → mains phase3
ct2 → solar phase3
voltage-> ac-ac → phase3

im using 2 different models of ac-ac adapters. (2 from an old system i used to have and another when i added a 3rd emontx)

The models of the ac-ac adapters i havent found existing calibration.
To calibrate them i took a 100watt halogen, wrapped the active around the ct sensor 10 times to give 1000watts of current.
The adjustments i calibrated were:
emontx1: vCal = 275.8
emontx2: vCal = 266.7
emontx3: vCal = 291.5
Then the following current and voltage settings for all tx:

ct1.voltage(0,vCal, 1.7)
ct2.voltage(0,vCal, 1.7)

That got my test globe to 1000watts
However the power that my solar inverter reports (it has a display panel) about 6.8k currently
but emoncms is reporting just shy of 10k which is way out.

Have i done something stupid or misunderstood the calibration?

Cheers folks!

Your calibration at 1 kW ( ~ 4 A ) is a reasonable value for 10 kW of generation, but if you’re using 100 A c.t’s (that’s a guess, you don’t say), you calibrated at only 4% of the rated current. And c.t’s are inherently inaccurate at ‘low’ currents.

Apologies for asking hopefully stupid questions: you did measure each phase voltage and current (you didn’t rely on the lamps stated wattage), and once calibrated, you kept each phase’s parts as a set, and kept the c.t’s to the input that you calibrated them on? Because the calibration corrects both the sensor and it’s input in the Shield.

Probably, the error is coming from the phase error of the c.t’s. That increases rapidly at low currents, so your phase calibration/compensation of 1.7 could be significantly wrong. Different a.c. adapters will also have a different phase error, and that is part of the “1.7”. Did you in fact check the phase calibration, or accept the nominal value?

You could improve the accuracy if it’s possible to use multiple turns for the primary winding on your installation - the closer you can get to the c.t’s maximum rating the better. Then of course in software you divide the current (or power) by the number of turns, or change the current calibration likewise.

Hi Robert,
Thanks very much for the quick response!

They are up to 100amp ct sensors SCT-013 from memory.

I think i may have went off the lamps stated wattage as i didnt have anything else to measure it by.

the process i used to get the voltage correct was use a multimeter on the phase that the lamp was connected to and adjusted vcal until it matched the multimeter reading (did this for each phase)

I did not touch the 1.7 setting, as i had no idea how to get that calibrated (electrical noob here).

Im unable to do multiple winds through my ct’s on the actual power consumption and solar as the mains im monitoring are the grid feed in so theyre 12mm cables and the solar side has little slack left in it to wind it.

I will repeat the voltage calibration using an amperage meter (clamp style) and work out the wattage off the voltage from there, but im interested if you can share any experience calibrating the phase error of the cts?

Just doing a quick test, i took my 100watt globe, wound it 10 times through an amp meter: 4.38 amps, at the same time i took a multi meter in the same phase to measure the voltage and i get 245.5v
amps to watts: 4.38 * 245.5 = 1075.29 watts

ill adjust my vcal again to make sure nothing silly is going on
should i then adjust that 1.7 or should i be adjusting the 87.0 part in ct1.current(1,87.0) to match my calculated wattage?

That’s iffy. Lamp current (of those sort - tungsten) is heavily dependent on voltage as well as the usual manufacturing tolerances, so if the voltage was different to the nominal, then the power is going to be way out.

That’s exactly right.

It’s all spelled out in detail in “Learn” - there’s a page of instructions there. Also in Learn is a lot of the basics, so if you want to, er, learn, then there’s your starting point.

I thought that was highly likely to be the case.

Why bother to work out the power, when with a small change to your sketch, you can read the current itself? And while you’re at it, read the power factor as well to make it easy to adjust the phase calibration.
EmonLib does the calculations, all you have to do is pick out and print the values to the serial port, then look at them with the Arduino IDE’s monitor. If you look at emonlib.h, these quantities are calculated and “public” - meaning you can access them in your sketch:

    //Useful value variables
    double realPower,

So in your sketch, after they’ve been calculated by
ct1.calcVI(20,2000); // Calculate all. No.of crossings, time-out
etc, you can add a line that’s like an amalgamation of the next two:


and the same for the power factor:


or to make it pretty, put all 3 together:

Serial.print("CT1: Power = "); Serial.print(ct1.realPower); Serial.print(", Current = "); Serial.print(ct1.Irms); Serial.print(", p.f. = "); Serial.println(ct1.powerFactor);

and likewise for ct2.

(Don’t take out the line
emontx.power1 = ct1.realPower;
if you do, emoncms won’t get the power.)

reporting back in, well im now very close to accurate, well accurate enough for my needs
6800watts measured on emontx 6600watts reported on the inverter

The resolution was actually 2 things, the voltage was slightly off
secondly the the ct sensor calibration was out, i had manually adjusted that to get the number i was expecting. I just cycled through the in practice ct sensor calibrations until one got me the value i was expecting and sure enough that was close:
|22 Ω ±1% - standard in emonTx V3 for CTs 1-3 |90.9|

Thanks very much for your help @Robert.Wall

There’s no harm in adjusting those calibration values - indeed, you should expect to, because there are many components in the calibration chain, and all have a spread of values due to manufacturing tolerances. The numbers we publish for the calibration constants assume every one is exactly at the specified value, in practice that will never happen.

yeah im going to just leave it as the default value then im going to adjust any variance in the feeds for each nodes if needed