Calibration VCAL ICAL PHASECAL: Difference between revisions

From lechacal
Jump to navigation Jump to search
 
(32 intermediate revisions by the same user not shown)
Line 11: Line 11:


To achieve this a high quality multimeter or scope will be required. This will be the reference system that we will trust as being right.
To achieve this a high quality multimeter or scope will be required. This will be the reference system that we will trust as being right.
Note it is important to ensure the reference device is giving '''True RMS'''. This is what the RPICT does and calibrating against a non-true-rms might not be the best idea.


==Voltage VCAL==
==Voltage VCAL==


===-1-===
===-1-===
Setup in configuration an approximate value for VCAL. You might just use the default provided to start with. We will use VCAL = 545.0 in our example.
Take a note of the VCAL value currently setup in the configuration. Say this is VCAL = 545.0 in our example.
 
For this you might use the lcl-rpict-config.py function without options.
lcl-rpict-config.py -a
 
Reset the RPICT board for the command to complete. Then open the file located in /tmp/rpict.conf.
nano /tmp/rpict.conf
 
In this file you will find a line with KCAL. The KCAL parameter contains both VCAL and ICAL. See the section below to find which one is which.


This can be anything but should be relatively close to the expected final value.
Take a note of the VCAL value that applies to the channel you are calibrating and close nano with Ctrl X.


===-2-===
===-2-===
Vrms must be selected as output in the RPICT config (obviously).
Connect the voltage sensor (ac/ac or zmpt) to the board to be tested and note the reading of the measured voltage given by the RPICT.
Connect the ac/ac adaptor to the board to be tested and note the reading of the measured voltage given by the RPICT.  
Let's say in our case we get Vmes =  269.5V.


Let's say in our case we get Vmes = 269.5
To achieve this you can just read the serial port with the lcl-run command or any other program you might have.
 
  lcl-run


===-3-===
===-3-===
Use the multimeter to read the real voltage value. In our case Vreal = 245.6
Use the multimeter to read the real voltage value. Say in our case we get Vreal = 245.6V


===-4-===
===-4-===
Line 32: Line 44:
  newVCAL = VCAL*Vreal/Vmes
  newVCAL = VCAL*Vreal/Vmes


For us here this is newVCAL = 525*245.6/269.5 = 478.44
For us here this is newVCAL = 545*245.6/269.5 = 478.44


===-5-===
===-5-===
Enter the newVCAL value in the configuration.
Enter the newVCAL value in the configuration.


==Current ICAL==
Open the file again
nano /tmp/rpict.conf


===-1-===
Then modify the appropriate value in the KCAL parameter.
Setup in configuration an approximate value for ICAL. You might just use the default provided to start with. We will use ICAL = 83.33 in our example.


This can be anything but should be relatively close to the expected final value.
Reupload the config to the device using


===-2-===
lcl-rpict-config.py -a -w /tmp/rpict.conf
Irms must be selected as output in the RPICT config (obviously).
Connect the CT sensor to the board to be tested.
Use a significant load of approx 2kW (this can be a kettle for example).
Apply the load and note the reading of the measured voltage given by the RPICT.  


Let's say in our case we get Imes = 2048.5
==Current ICAL==


===-3-===
Current is generally calibrated against a "[https://en.wikipedia.org/wiki/Current_clamp Clamp Meter]" or a Multimeter set as Amps AC.
At the same time the above load is being measured use the multimeter to read the real current value. In our case Ireal = 2105.2


===-4-===
Calibrating current is the same procedure as explained for Voltage above.
Calculate the new ICAL as such
The new calibration formulae is
  newICAL = ICAL*Ireal/Imes
  newICAL = ICAL*Ireal/Imes


For us here this is newVCAL = 83.33*2105.2/2048.5 = 85.64
Ireal being the current measured by the trusted multimeter.
Imes being the current measured initially by the RPICT board.


===-5-===
==PHASECAL==
Enter the newICAL value in the configuration.
 
In general Phasecal does not need to be any different from 0. Giving any other value to PhaseCal will shift the voltage signal against the current signal to compute power. In general there is no need to change phasecal from its default value 0.
 
There are 2 method for ajusting phasecal.


==PHASECAL==
===Resistive Load Method===


===-1-===
===-1-===
Setup in configuration an approximate value for PHASECAL. .
Make sure PHASECAL is set to 0 in the configuration.


===-2-===
===-2-===
Configure the board to output Power Factor.
Configure the board to output Power Factor.


If Power Factor is not configurable take records of RealPower, Vrms, Irms. Calculate Power Factor using RealPower/Irms/Vrms.
===-3-===
Use a purely resistive load like a radiator or a kettle.
 
===-4-===
Adjust Phasecal in the configuration until PowerFactor equal to 1 or slightly smaller. We recommend iterating in steps of 1.
If PhaseCal = 0 then try -1 +1 -2 +2 etc until PowerFactor reaches a value close to 1.
Do not set any value above +10 or -10 for phasecal.
 
===Real Power Comparison method===
 
If you have another system measuring Active Power (Real Power) this can be used.
 
===-1-===
Calibrate both Voltage and Current as explained above.
 
===-2-===
Make sure Real Power is in the output.


===-3-===
===-3-===
Use a purely resistive load like a radiator or a kettle.
Apply a load and measure it with both the external system and the RPICT board.  


===-4-===
===-4-===
Adjust Phasecal in the configuration until PowerFactor equal to 1 or slightly smaller. We recommend iterating in steps of 0.1.
Adjust phasecal by increment of 1. Start with -1 then +1 -2 + 2 and so on. Until you get the 2 real power matching as close as possible.
If PhaseCal =1.2 then try 1.3 1.4 etc until PowerFactor=1 is reached.
Do not set any value above +10 or -10 for phasecal.
 
=KCAL=
 
As mentioned above KCAL parameters is an array containing both ICAL and VCAL. We show here below the location of each channel for each board.
 
Value with a 1. are placeholder and do not have any action on the device.
 
===RPICT3T1 & RPIZ_CT3T1===
 
kcal = 83.33 1. 1. 83.33 1. 1. 1. 83.33
kcal = ct1  1. 1. ct2  1. 1. 1. ct3
 
 
===RPICT3V1 & RPIZ_CT3V1===
 
kcal = 83.33 83.33 83.33 1. 1. 1. 1. 545.0
kcal = ct1  ct2  ct3  1. 1. 1. 1. V1
 
===RPICT7V1 all versions===
 
kcal = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 560.0 83.33 83.33 83.33 83.33 83.33 83.33 83.33
kcal = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 V1    ct7  ct6  ct5  ct4  ct3  ct2  ct1
 
===RPICT7V1 all versions with firmware V4===
 
kcal = 560.0 83.33 83.33 83.33 83.33 83.33 83.33 83.33 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
kcal = V1    ct7  ct6  ct5  ct4  ct3  ct2  ct1  1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
 
===RPICT8 all versions===
kcal = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 83.33 83.33 83.33 83.33 83.33 83.33 83.33 83.33
kcal = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ct8  ct7  ct6  ct5  ct4  ct3  ct2  ct1
 
===RPICT8 all versions with firmware V4===
kcal = 83.33 83.33 83.33 83.33 83.33 83.33 83.33 83.33 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
kcal = ct8  ct7  ct6  ct5  ct4  ct3  ct2  ct1  1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
 
===RPICT4V3 all versions===
Also for RPIZ_CT4V3T1 and RPIZ_CT4V3T2
kcal = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 560.0 560.0 560.0 1 83.33 83.33 83.33 83.33
kcal = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 V3    V2    V1    1 ct4  ct3  ct2  ct1


'''Note''' Some of the lastest sketch uses phasecal values as -2 -1 0 +1 +2. Use increments of 1 for these entering an integer between -9 and +9.
===RPICT4V3 all versions with firmware V4===
Also for RPIZ_CT4V3T1 and RPIZ_CT4V3T2
kcal = 560.0 560.0 560.0 1 83.33 83.33 83.33 83.33 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
kcal =  V3    V2    V1    1 ct4  ct3  ct2  ct1  1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Latest revision as of 11:47, 15 September 2023

This guide covers calibration of AC factors VCAL ICAL PHASECAL used with RPICT series and Emonwrt3.

Overview

For AC related measures there are 3 coefficients. VCAL ICAL and PHASECAL.

These coefficients are set by default at manufacturing time. These are normally good enough to operate straight away and provide a decent reading.

All sensors although all produced identically have minor differences between them. This also applies for the ADC and passive components on the RPICT board. Therefore one may want to adjust the calibration coefficients to get more accurate values.

To achieve this a high quality multimeter or scope will be required. This will be the reference system that we will trust as being right.

Note it is important to ensure the reference device is giving True RMS. This is what the RPICT does and calibrating against a non-true-rms might not be the best idea.

Voltage VCAL

-1-

Take a note of the VCAL value currently setup in the configuration. Say this is VCAL = 545.0 in our example.

For this you might use the lcl-rpict-config.py function without options.

lcl-rpict-config.py -a

Reset the RPICT board for the command to complete. Then open the file located in /tmp/rpict.conf.

nano /tmp/rpict.conf

In this file you will find a line with KCAL. The KCAL parameter contains both VCAL and ICAL. See the section below to find which one is which.

Take a note of the VCAL value that applies to the channel you are calibrating and close nano with Ctrl X.

-2-

Connect the voltage sensor (ac/ac or zmpt) to the board to be tested and note the reading of the measured voltage given by the RPICT. Let's say in our case we get Vmes = 269.5V.

To achieve this you can just read the serial port with the lcl-run command or any other program you might have.

lcl-run

-3-

Use the multimeter to read the real voltage value. Say in our case we get Vreal = 245.6V

-4-

Calculate the new VCAL as such

newVCAL = VCAL*Vreal/Vmes

For us here this is newVCAL = 545*245.6/269.5 = 478.44

-5-

Enter the newVCAL value in the configuration.

Open the file again

nano /tmp/rpict.conf

Then modify the appropriate value in the KCAL parameter.

Reupload the config to the device using

lcl-rpict-config.py -a -w /tmp/rpict.conf

Current ICAL

Current is generally calibrated against a "Clamp Meter" or a Multimeter set as Amps AC.

Calibrating current is the same procedure as explained for Voltage above. The new calibration formulae is

newICAL = ICAL*Ireal/Imes

Ireal being the current measured by the trusted multimeter. Imes being the current measured initially by the RPICT board.

PHASECAL

In general Phasecal does not need to be any different from 0. Giving any other value to PhaseCal will shift the voltage signal against the current signal to compute power. In general there is no need to change phasecal from its default value 0.

There are 2 method for ajusting phasecal.

Resistive Load Method

-1-

Make sure PHASECAL is set to 0 in the configuration.

-2-

Configure the board to output Power Factor.

-3-

Use a purely resistive load like a radiator or a kettle.

-4-

Adjust Phasecal in the configuration until PowerFactor equal to 1 or slightly smaller. We recommend iterating in steps of 1. If PhaseCal = 0 then try -1 +1 -2 +2 etc until PowerFactor reaches a value close to 1. Do not set any value above +10 or -10 for phasecal.

Real Power Comparison method

If you have another system measuring Active Power (Real Power) this can be used.

-1-

Calibrate both Voltage and Current as explained above.

-2-

Make sure Real Power is in the output.

-3-

Apply a load and measure it with both the external system and the RPICT board.

-4-

Adjust phasecal by increment of 1. Start with -1 then +1 -2 + 2 and so on. Until you get the 2 real power matching as close as possible. Do not set any value above +10 or -10 for phasecal.

KCAL

As mentioned above KCAL parameters is an array containing both ICAL and VCAL. We show here below the location of each channel for each board.

Value with a 1. are placeholder and do not have any action on the device.

RPICT3T1 & RPIZ_CT3T1

kcal = 83.33 1. 1. 83.33 1. 1. 1. 83.33
kcal = ct1   1. 1. ct2   1. 1. 1. ct3


RPICT3V1 & RPIZ_CT3V1

kcal = 83.33 83.33 83.33 1. 1. 1. 1. 545.0
kcal = ct1   ct2   ct3   1. 1. 1. 1. V1

RPICT7V1 all versions

kcal = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 560.0 83.33 83.33 83.33 83.33 83.33 83.33 83.33
kcal = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 V1    ct7   ct6   ct5   ct4   ct3   ct2   ct1

RPICT7V1 all versions with firmware V4

kcal = 560.0 83.33 83.33 83.33 83.33 83.33 83.33 83.33 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
kcal = V1    ct7   ct6   ct5   ct4   ct3   ct2   ct1   1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 

RPICT8 all versions

kcal = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 83.33 83.33 83.33 83.33 83.33 83.33 83.33 83.33
kcal = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ct8   ct7   ct6   ct5   ct4   ct3   ct2   ct1

RPICT8 all versions with firmware V4

kcal = 83.33 83.33 83.33 83.33 83.33 83.33 83.33 83.33 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
kcal = ct8   ct7   ct6   ct5   ct4   ct3   ct2   ct1   1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 

RPICT4V3 all versions

Also for RPIZ_CT4V3T1 and RPIZ_CT4V3T2

kcal = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 560.0 560.0 560.0 1 83.33 83.33 83.33 83.33
kcal = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 V3    V2    V1    1 ct4   ct3   ct2   ct1

RPICT4V3 all versions with firmware V4

Also for RPIZ_CT4V3T1 and RPIZ_CT4V3T2

kcal = 560.0 560.0 560.0 1 83.33 83.33 83.33 83.33 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
kcal =  V3    V2    V1    1 ct4   ct3   ct2   ct1  1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1