Problems with current readings when the measured load is far from the calibrated load

Hi, how are you doing? I created a prototype to mesure a 3 phase system. In order to do that I used an Arduino UNO, 3xZMPT101B to mesure voltage and 3x100A SCT-013 to mesure current. The voltage sensor is connect directly to Arduino because its maximum output is 5v. The current sensor is connected to a Burden resistor of 33 ohms and a voltage divisor with 2 resistors of 10k ohms and a capacitor of 10 uf. I calibrated it at home with the same voltage that I would mesure (220V), however the current was’t the same because it was installed in an industrial machine and I can`t calibrate there. I faced some problems in this scenario:
1-It is measuring power factor and real power completely wrong. After I face this problem I created another prototype at home and I found out that this problem could be related to the phase shift value. So, I mesure a resistive load and set it to -0.9, so then its measuring the power factor as 1. am I right on changing the phase shift?
2-The second problem and most important one is: when I calibrate the current sensor by measuring a resistive load of 1.5 A for example. I set the current calibration to 4.33 and the voltage calibration and phase shift to 574.5, -0.9. In this case it works well, but if I change the load to less than 1A or more than 2A it completely diverges from my Minipia ammeter. Do you know how to solve it?
Note: I also tried a 5A no invasive (TA12-100) sensor with a burden resistor of 200 ohms and the same problem has occurred (same as the second item).
Thank you! Open energy has been helping me a lot.

From what you write, I think you have at least two separate problems.
But first, after you have calibrated correctly, you should measure exactly the same whichever system you are on. Second, as we say in the calibration instructions, you must calibrate with a resistive load, and you should calibrate with a load that is “large” - ideally of the same sort of magnitude as the current you will normally be measuring.

The phase shift will be completely different to our default value because you are using a ZMPT101, which is quite different from our usual a.c. adapter. From the data sheet, it’s phase error is much smaller. But don’t be fooled by that, because phasecal also compensates for the time that elapses between taking the voltage and current samples. Therefore, you are right to change phasecal.

That tells me that something is not behaving linearly. It could be anything, including your ammeter. And

suggests that it may well be your ammeter.

Do you read zero current accurately? if not, then you are measuring noise (possibly from outside but more likely from the Arduino itself) and that will give you a higher than expected current at very low currents.(And ‘low’ means less than about 5 A .) If you are only measuring 1 or 2 A, then you have the wrong c.t. - you are only working at 1-2% of the maximum it is designed for. You can safely increase your burden to 120 Ω and possibly more, at the expense of increase phase errors. (See the test report in ‘Learn’.)

Thank you for your fast reply! And thank you for the inputs!
Actually a dind’t know the magnitude of the current. I thought it would be bigger than it is because it’s an industrial environment. And, unfortunatly, it’s not possible to calibrate in the real environment.
However, at home, I also tried a 5A sensor (TA12-100) with burden resistor of 200 ohms and the same problem has occured.
When it’s far from calibration point It reads lower values then the ones that ammeter reads. And when I remove the load, it never gets 0 as a result it always reads something in between 0.01A and 0.06A.
So what do you think that is causing this current acurracy problem?

That is the noise that I mentioned. The ‘square’ part of rms is actually rectification, which means that even though the noise samples might be random in amplitude and sign, the negative ones end up being counted equally with the positive ones. When you measure real power, then because each sample is multiplied by the voltage and then averaged, negative and positive noise samples tend to cancel and so the noise you see is much lower.
Do you now know the current you want to measure? Do you know that, if you have a milliammeter capable of reading 50 mA a.c., you can connect that directly to the c.t.? 50 mA will represent 100 A, and everything is proportional to that.

As I said, you don’t need to do that.

Thank you again for your answer.
About this little noise that is left, do you know how to minimize this even more?

Yes, now I know. Its about 1.5A per phase (its a delta system), however maybe I’ll be measuring some higer ones. But I think 100A sensors were super sized, in my case. I think the 20A ones would be much better.

I didn’t think about this 50mA technique, Thats cool! Thank you! So then, by using this it’s possible to simulate any load.

There’s probably nothing you can do about that. We think it’s dependent upon the design details of your Arduino.

It’s possible to increase the sensitivity of your c.t. by having multiple primary turns. To test the 100 A c.t. up to 250 A, I used 5 A in a coil of 50 turns (this was at 6 V, not at mains voltage).

This of course is how it was done before electronic instruments - normally a 5 A moving iron ammeter and, in your case, a 100:5 c.t.