Kalibrierung - RrPt/REM GitHub Wiki
Die Kalibrierung beruht darauf, dass die Messwerte mit einer Referenzmessung verglichen wird. Anschließend werden die Parameter (Offset und Gain) so angepasst, dass der Referenzwert möglichst genau erreicht wird.
Die Kalibrierung sollte in unten angegebener Reihenfolge durchgeführt werden, insbesondere muss die Stromkalibrierung am Anfang durchgeführt werden und die Phasenkalibrierung vor den Leistungskalibrierungen.
In meinen Beispielen wurde als Referenz ein Siemens Sentron PAC3200 verwendet. Das verwendete Referenzgerät entscheidet über die Genauigkeit der Kalibrierung.
Vom Hersteller des ADE7816 wird das Kalibrierverfahren hier beschrieben: https://www.analog.com/media/en/technical-documentation/application-notes/AN-1152.pdf
Die Kalibrierung des REM wird über seinen Webserver durchgeführt. Dazu muss seine IP bekannt sein, die normalerweise per DHCP vergeben wird. In meinem Beispiel ist das 192.168.22.136
Die Parameter zur Konfiguration sind an 4 verschiedenen Stellen gespeichert:
- ADE7816-Register
diese sind flüchtig, d.h. die gespeicherten Werte sind nach einem Neustart verloren. Aus diesem Grund speichert der Controller die Parameter im RAM des ESP32 in der Klasse ADE7816ParaClass - ADE7816ParaClass
sobald die Werte hier geändert werden, werden alle Änderungen auch an die ADE7816 Register übertragen. Änderungen an den Werte erfolgen durch eine Kalibrierung oder werden beim Programmstart aus dem SPIFF FIlesystem des ESP32 geladen.
Diese Werte liegen im RAM, d.h. sind flüchtig gespeichert und nach einem Neustart verloren. Deshalb werden Sie im SPIFFS gesichert. - SPIFF FIlesystem des ESP32
Hier sind die Parameter dauerhaft gespeichert, d.h. auch nach einem Neustart verfügbar. Die Parameter sind für jede REM-MM Platine in einem eigenen File im JSON-Format angelegt. Der Dateiname lautet REMMM.json, also z.B. REMMM7201.json- Beim Programmstart werden die Daten automatisch vom SPIFFS in die ADE7816ParaClass übertragen.
- wurden die Werte durch eine Kalibrierung in ADE7816ParaClass geändert, so müssen sie dauerhaft im SPIFF gespeichert werden, dies geschieht durch drücken des Buttons "All Para to Flash"
- Die Parameter können aus dem SPIFFS gesichert werden, indem sie über den Browser über http:///Files ausgewählt und dann heruntergeladen werden. Oder direkt über http:///fs?fn=/
- Gesicherte Daten können von der Entwicklungsumgebung aus dem Verzeichnis DATA über den Befehl "Publish Server Data Files (spiffs)" ins SPIFFS geladen werden.
- DATA Verzeichnis der Entwicklungsumgebung
Dieses Verzeichnis dient der Sicherung der SPIFFS Dateien
Todo
Die Stromkalibrierung (Gain Calibration) ist immer erforderlich, da Sie die Abweichungen der einzelnen Kanäle untereinander ausgleicht. Im REM Projekt wird diese Kalibrierung auch gleich verwendet um die Umrechnung in physikalische Einheiten vorzunehmen.
Sie wird unter http://<IP>/KalibCurrent durchgeführt.
In der Spalte "Modul" werden alle erkannten Module aufgelistet.
Für jedes Modul werden in der Spalte Kanal die zugehörigen 6 Stromkanäle angezeigt.
Für jeden Kanal werden in den folgenden Spalte die Werte angezeigt:
- Gain: der eingestellte Gain Wert
- Offset: der eingestellte Offsetwert
- Strom raw: der Rohwert des gemessenen Stroms, dabei wurden schon Gain und Offset berücksichtigt
- Strom [A]: Strom in Ampere
- Alle 6 Sensoren eines Moduls werden an den Referenzstromkreis angeschlossen.
- An den Stromkreis wird eine konstante (ideal ohmsche) Last angeschlossen. Die Leistung ist im Idealfall im oberen Bereich. In meinem Fall ein Heizlüfter mit ca. 2200W Leistung.
- Der Strom wird mit dem Referenzmessgerät gemessen, in meinem Fall 9.69 A
- Dieser Wert wird in Feld 3 (Spalte Strom [A] oben) eingetragen und dann beim zu kalibrierenden Modul der Button "Kalib Gain" gedrückt
- Daraufhin wird für dieses Modul der Gainwert berechnet, der erforderlich ist um diesen Wert zu messen. Der errechnete Gain Wert wird in der Spalte Gain angezeigt. Innerhalb einiger Sekunden muss dann auch der richtige Wert in der Spalte "Strom [A]" angezeigt werden.
- Alle 6 Sensoren eines Moduls werden an den Referenzstromkreis angeschlossen.
- An den Stromkreis wird keine Last angeschlossen, d.h. der Strom ist 0A.
- Wenn in der Spalte "Strom raw" nun schon 0 steht, so kann die Kalibrierung nicht richtig funktionieren, dann muss der Offset manuell so gesetzt werden (z.B. auf 1000000), dass hier überall Werte ungleich 0 stehen. Siehe unten manuelle Offseteinstellung
- Beim zu kalibrierenden Modul wird der Button "KalibOffset" gedrückt
- Daraufhin wird für dieses Modul der Offsetwert berechnet, der erforderlich ist um den Strom 0A zu messen. Der errechnete Offset Wert wird in der Spalte Offset angezeigt. Innerhalb einiger Sekunden muss dann auch der richtige Wert in der Spalte "Strom [A]" angezeigt werden.
- evtl. sind die letzten beiden Schritte zu wiederholen
Die berechneten Kalibrierparameter sind im RAM und im jeweiligen ADE7816 eingetragen, allerdings nicht dauerhaft gespeichert,
d.h. nach einem Neustart sind die Parameter zurückgesetzt. Um dies zu verhindern sollten die Werte durch drücken des Buttons
"All Para to Flash" gesichert werden.
Siehe Absatz Parameterspeicherung oben.
In einigen Sonderfällen will man die Gain Werte manuell setzen.
Dazu wird der gewünschte Wert in Feld 1 (Spalte Gain ganz oben) eingetragen und dann bei dem entsprechenden Modul der Button
"Set Gain" gedrückt. Alle 6 Gainwerte diese Modules werden dann gesetzt.
In einigen Sonderfällen will man die Offset Werte manuell setzen.
Dazu wird der gewünschte Wert in Feld 2 (Spalte Offset ganz oben) eingetragen und dann bei dem entsprechenden Modul der Button
"Set Offset" gedrückt. Alle 6 Offsetwerte diese Modules werden dann gesetzt.
Die Spannungskalibrierung ist immer erforderlich, da im REM Projekt diese Kalibrierung auch gleich verwendet um die Umrechnung in physikalische Einheiten vorzunehmen.
Sie wird unter http://<IP>/KalibVoltage durchgeführt.
In der Spalte "Modul" werden alle erkannten Module aufgelistet.
Für jeden Kanal werden in den folgenden Spalte die Werte angezeigt:
- Gain: der eingestellte Gain Wert
- Offset: der eingestellte Offsetwert
- Spannung raw: der Rohwert der gemessenen Spannung, dabei wurden schon Gain und Offset berücksichtigt
- Spannung [V]: Spannung in Volt
- Die jeweilige Phase muss am REM-C Modul angeschlossen und am REM-MM Modul per Jumper ausgewählt sein
- Die Spannung wird mit dem Referenzmessgerät gemessen, in meinem Fall 238 V
- Dieser Wert wird in der Obersten Zeile in der Spalte Spannung [V] eingetragen und dann beim zu kalibrierenden Modul der Button "Kalib Gain" gedrückt
- Daraufhin wird für diese Modul der Gainwert berechnet, der erforderlich ist um diesen Wert zu messen. Der errechnete Gain Wert wird in der Spalte Gain angezeigt. Innerhalb einiger Sekunden muss dann auch der richtige Wert in der Spalte "Spannung [V]" angezeigt werden.
- Die Messpannung wird vom REM-C Modul getrennt oder der Jumper auf REM-MM entfernt.
- Wenn in der Spalte "Spannung raw" nun schon 0 steht, so kann die Kalibrierung nicht richtig funktionieren, dann muss der Offset manuell so gesetzt werden (z.B. auf 1000000), dass hier überall Werte ungleich 0 stehen. Siehe unten manuelle Offseteinstellung
- Beim zu kalibrierenden Modul wird der Button "KalibOffset" gedrückt
- Daraufhin wird für diese Modul der Offsetwert berechnet, der erforderlich ist um die Spannung 0V zu messen. Der errechnete Offset Wert wird in der Spalte Offset angezeigt. Innerhalb einiger Sekunden muss dann auch der richtige Wert in der Spalte "Spannung [V]" angezeigt werden.
- evtl. sind die letzten beiden Schritte zu wiederholen
Die berechneten Kalibrierparameter sind im RAM und im jeweiligen ADE7816 eingetragen, allerdings nicht dauerhaft gespeichert,
d.h. nach einem Neustart sind die Parameter zurückgesetzt. Um dies zu verhindern sollten die Werte durch drücken des Buttons
"All Para to Flash" gesichert werden.
Siehe Absatz Parameterspeicherung oben.
In einigen Sonderfällen will man die Gain Werte manuell setzen.
Dazu wird der gewünschte Wert in Zeile1 Spalte "Gain" eingetragen und dann bei dem entsprechenden Modul der Button
"Set Gain" gedrückt. Der Gainwert dieses Moduls wird dann gesetzt.
In einigen Sonderfällen will man die Offset Werte manuell setzen.
Dazu wird der gewünschte Wert in Zeile1 Spalte Offset eingetragen und dann bei dem entsprechenden Modul der Button
"Set Offset" gedrückt. Der Offsetwert dieses Moduls wird dann gesetzt.
Die Phasenkalibrierung ist erforderlich um Phasenverschiebungen durch die Spannungs- und Stromwandter zu korrigieren. Diese liegen bei den verwendeten Komponenten bei ca. 1°. Der dadurch verursachte Fehler spielt nur bei der berechneten Blindleistung eine wesentliche Rolle.
Sie wird unter http://<IP>/KalibPhase durchgeführt.
In der obersten Zeile befinden sich folgende Eingabefelder:
- PCF_Coeff: Hier kann direkt ein Wert für PCF_Coeff angegeben werden, welcher dann über den die Buttons "Set PCF_Coeff" direkt in die jeweiligen Mpdule geschrieben werden (immer für alle 6 Kanäle)
- phi_Ist: Hier kann der Istwert des Phasenwinkels angegeben werden. Auf diesem Wert basieren die Werte der letzten beiden Spalten.
Für jedes Modul und jeden Kanal werden folgende Daten angezeigt:
- PCF_COEF: der interne PCF_Coefizient. Das ist ein Parameter der die Phasenkorrektur zwischen Spannungs- und Stromsignal beeinflusst. Direkt unter dem Wert wird dieser in Grad umgerechent angezeigt
- Leistung [W]: Wirkleistung
- Blindlestung [VA]: Blindleistung
- Fehler [°]: Hier wird der Pasenfehler angezeigt.
Dabei wir die gemessene Phasenverschiebung (berechnet aus Wirkleistung und Blindleistung) mit der oben angegebenen Ist Phasenverschiebung (phi_Ist) verglichen. Dieser wert sollte 0 sein. - PCF neu: In dieser Spalte wird der Wert für PCF_Coeff angezeigt, der notwendig ist, damit die gemessene Phase gleich phi_Ist ist. Über den Button "Kalib Gain" kann der wert für alle Kanäle des jeweilgen Modules übernommen werden.
Anmerkung: Im einfachsten Fall wird diese Kalibrierung mit einer ohmschen Last durchgeführt, dann ist phi_Ist=0.
- Alle 6 Sensoren eines Moduls werden an den Referenzstromkreis angeschlossen.
- An den Stromkreis wird eine konstante Last angeschlossen, für die die Phasenverschiebung bekannt ist. Diese kann aich 0° sein, d.h. eine rein ohmsche Last. In meinem Fall habe ich den bekannten Heizlüfter verwemdet. Dieser hat eine Phasenverschiebung von 0°.
- Dieser Wert wird in der oversten Zeile bei Spalte "phi_Ist=" eingetragen. In der gleiche Spalte darunter werden die PCF_Coeff Wert berechnet, der erforderlich ist um die angegebene Phasenverschiebung zu messen.
- Beim zu kalibrierenden Modul der Button "Kalib Phase" drücken.
- Daraufhin werdeb für dieses Modul die berechntetn PCF_Coeff Werte übernommen.
Diese werden dann in der ersten Spalte PCF_Coef angezeigt.
Innerhalb einiger Sekunden muss dann auch die Phasenabweichung in der Spalte "Fehler" mit 0 angezeigt werden.
Die berechneten Kalibrierparameter sind im RAM und im jeweiligen ADE7816 eingetragen, allerdings nicht dauerhaft gespeichert,
d.h. nach einem Neustart sind die Parameter zurückgesetzt. Um dies zu verhindern sollten die Werte durch drücken des Buttons
"All Para to Flash" gesichert werden.
Siehe Absatz Parameterspeicherung oben.
Sie wird unter http://<IP>/KalibPower durchgeführt.
In der Spalte "Modul" werden alle erkannten Module aufgelistet.
Für jedes Modul werden in der Spalte Kanal die zugehörigen 6 Stromkanäle angezeigt.
Für jeden Kanal werden in den folgenden Spalte die Werte angezeigt:
- Gain: der eingestellte Gain Wert
- Offset: der eingestellte Offsetwert
- Leistung raw: der Rohwert der gemessenen Leistung, dabei wurden schon Gain und Offset berücksichtigt
- Leistung [W]: Wirkleistung in Watt
- Alle 6 Sensoren eines Moduls werden an den Referenzstromkreis angeschlossen.
- An den Stromkreis wird eine konstante (ideal ohmsche) Last anggeschlossen. Die Leistung ist im idealfall im oberen Bereich. In meinem Fall ein Heizlüfter mit ca. 2200W Leistung.
- Die Leistung wird mit dem Referenzmessgerät gemessen, in meinem Fall 2140 W
- Dieser Wert wird in der Zeile1 bei Spalte Leistung [W] eingetragen und dann beim zu kalibrierenden Modul der Button "Kalib Gain" gedrückt
- Daraufhin wird für diese Modul der Gainwert berechnet, der erforderlich ist um diesen Wert zu messen. Der errechnete Gain Wert wird in der Spalte Gain angezeigt. Innerhalb einiger Sekunden muss dann auch der richtige Wert in der Spalte "Leistung [W]" angezeigt werden.
- Alle 6 Sensoren eines Moduls werden an den Referenzstromkreis angeschlossen.
- An den Stromkreis wird keine Last anggeschlossen, d.h. die Last ist 0W.
- Wenn in der Spalte "Leistung raw" nun schon 0 steht, so ist keine Kalibrierung erforderlich. Das ist meistens der Fall.
- Beim zu kalibrierenden Modul wird der Button "KalibOffset" gedrückt
- Daraufhin wird für diese Modul der Offsetwert berechnet, der erforderlich ist um die Leistung 0 W zu messen. Der errechnete Offset Wert wird in der Spalte Offset angezeigt. Innerhalb einiger Sekunden muss dann auch der richtige Wert in der Spalte "Leistung [W]" angezeigt werden.
Die berechneten Kalibrierparameter sind im RAM und im jeweiligen ADE7816 eingetragen, allerdings nicht dauerhaft gespeichert,
d.h. nach einem Neustart sind die Parameter zurückgesetzt. Um dies zu verhindern sollten die Werte durch drücken des Buttons
"All Para to Flash" gesichert werden.
Siehe Absatz Parameterspeicherung oben.
In einigen Sonderfällen will man die Gain Werte manuell setzen.
Dazu wird der gewünschte Wert in Feld 1 (Spalte Gain ganz oben) eingetragen und dann bei dem entsprechenden Modul der Button
"Set Gain" gedrückt. Alle 6 Gainwerte diese Modules werden dann gesetzt.
Eine Erhöhung des Gainwertes um 1000000 vergrößert den Messwert um ca. 14%
In einigen Sonderfällen will man die Offset Werte manuell setzen.
Dazu wird der gewünschte Wert in Feld 2 (Spalte Offset ganz oben) eingetragen und dann bei dem entsprechenden Modul der Button
"Set Offset" gedrückt. Alle 6 Offsetwerte diese Modules werden dann gesetzt.
Ein Offsetwert von 10000 entspricht ca. 1.2 Watt
Sie wird unter http://<IP>/KalibPowerReactive durchgeführt.
In der Spalte "Modul" werden alle erkannten Module aufgelistet.
Für jedes Modul werden in der Spalte Kanal die zugehörigen 6 Stromkanäle angezeigt.
Für jeden Kanal werden in den folgenden Spalte die Werte angezeigt:
- Gain: der eingestellte Gain Wert
- Offset: der eingestellte Offsetwert
- Blindleistung raw: der Rohwert der gemessenen Blindleistung, dabei wurden schon Gain und Offset berücksichtigt
- Blindleistung [W]: Blindleistung in Watt
- Alle 6 Sensoren eines Moduls werden an den Referenzstromkreis angeschlossen.
- An den Stromkreis wird eine konstante induktive oder kapazitive Last angeschlossen, d.h. es muss eine Phasenverschiebung zwischen Strom und Spannung vorhanden sein. Die Leistung ist im idealfall im oberen Bereich.
- Falls eine solche Last nicht verfügbar ist, kann auch mit einem Trick weiter verfahren werden: Der Jumper zur Auswahl der Phase wird bewusst auf eine andere Phase gesteckt. Damit kann man eine Phasenverschiebung von 60° mit einer ohmschen Last erreichen. In meinem Fall habe ich das mit dem bekannten Heizlüfter gemacht.
- Die Blindleistung wird mit dem Referenzmessgerät gemessen (das natürlich genauso angeschlossen werden muss), in meinem Fall -985 W (diesmal nur auf Stufe 1)
- Dieser Wert wird in der Zeile1 bei Spalte Leistung [W] eingetragen und dann beim zu kalibrierenden Modul der Button "Kalib Gain" gedrückt
- Daraufhin wird für diese Modul der Gainwert berechnet, der erforderlich ist um diesen Wert zu messen. Der errechnete Gain Wert wird in der Spalte Gain angezeigt. Innerhalb einiger Sekunden muss dann auch der richtige Wert in der Spalte "Blindleistung [W]" angezeigt werden.
- Alle 6 Sensoren eines Moduls werden an den Referenzstromkreis angeschlossen.
- An den Stromkreis wird keine Last angeschlossen, d.h. die Last ist 0 W.
- Wenn in der Spalte "Blindleistung raw" nun schon 0 steht, so ist keine Kalibrierung erforderlich. Das ist meistens der Fall.
- Beim zu kalibrierenden Modul wird der Button "KalibOffset" gedrückt
- Daraufhin wird für diese Modul der Offsetwert berechnet, der erforderlich ist um die Leistung 0 W zu messen. Der errechnete Offset Wert wird in der Spalte Offset angezeigt. Innerhalb einiger Sekunden muss dann auch der richtige Wert in der Spalte "Blindleistung [W]" angezeigt werden.
Die berechneten Kalibrierparameter sind im RAM und im jeweiligen ADE7816 eingetragen, allerdings nicht dauerhaft gespeichert,
d.h. nach einem Neustart sind die Parameter zurückgesetzt. Um dies zu verhindern sollten die Werte durch drücken des Buttons
"All Para to Flash" gesichert werden.
Siehe Absatz Parameterspeicherung oben.
In einigen Sonderfällen will man die Gain Werte manuell setzen.
Dazu wird der gewünschte Wert in Feld 1 (Spalte Gain ganz oben) eingetragen und dann bei dem entsprechenden Modul der Button
"Set Gain" gedrückt. Alle 6 Gainwerte diese Modules werden dann gesetzt.
Eine Erhöhung des Gainwertes um 1000000 vergrößert den Messwert um ca. 14%
In einigen Sonderfällen will man die Offset Werte manuell setzen.
Dazu wird der gewünschte Wert in Feld 2 (Spalte Offset ganz oben) eingetragen und dann bei dem entsprechenden Modul der Button
"Set Offset" gedrückt. Alle 6 Offsetwerte diese Modules werden dann gesetzt.
Ein Offsetwert von 10000 entspricht ca. 1.2 Watt