Watt messen, nur Strom in einem Einphasen-Wechselstromsystem

Ich lebe in Griechenland, wo 220 Volt/50 Hz in jeder Steckdose sind.

Ich muss den Wattverbrauch eines Geräts (einer einzelnen Lampe) messen, das ich an die Steckdose anschließe.

Das Problem ist, dass ich nur den Momentanstrom i(t) messen kann . Ich kenne weder den Widerstand der Lampe noch die Momentanspannung. Der Strom wird von einem Arduino mit ACS712-5A gemessen , was meine erste Frage aufwirft:
Ist es für mich, mein Arduino und alle meine Peripheriegeräte sicher, den Strom mit ACS712-5A zu messen?

Zweitens ist dies die "Analyse", die ich durchgeführt habe, um einen Weg zur Messung der Leistung zu bestimmen. Du musst mir sagen, ob es gültig ist?

P R ( T ) = v ( T ) ich ( T ) => P R ( T ) = ( 2 ) v R M S C Ö S ( ω T ) ( 2 ) ICH R M S C Ö S ( ω T + φ )
, aber φ=0, da ich nur eine Lampe habe (eine ohmsche Last). So,
P R ( T ) = 2 v R M S ICH R M S C Ö S 2 ( ω T ) => P R ( T ) = v R M S ICH R M S ( 1 + C Ö S ( 2 ω T ) )
aber Momentanleistung ist nicht so nützlich, also gehe ich für die durchschnittliche Leistung:
P M = 0 T v R M S ICH R M S ( 1 + C Ö S ( 2 ω T ) ) D T => P M = v R M S ICH R M S ( T | 0 T + S ich N ( 2 ω T ) 2 | 0 T ) D T
der zweite Term ist 0, also
P M = v R M S ICH R M S T => P M = v R M S ICH R M S F => P M = 220 ICH R M S 50

Also muss ich nur rechnen

ICH R M S : ICH R M S = ICH M A X 2
was bedeutet, dass ich den maximalen Strom bestimmen muss. Um dies zu tun, muss ich eine Abtastrate haben, die schneller als 50Ηz ist (idealerweise schneller als 2 * 50 Hz, basierend auf dem Nyquist-Theorem). Zu dieser Frage: https://arduino.stackexchange.com/questions/699/how-do-i-know-the-sampling-frequency wird gesagt:

Bei einem 16 MHz Arduino ist der ADC-Takt auf 16 MHz/128 = 125 KHz eingestellt. Jede Umwandlung in AVR benötigt 13 ADC-Takte, also 125 KHz / 13 = 9615 Hz.

Also, ich denke, mein Arduino ist zu dieser Maßnahme fähig. Der Pseudocode, den ich vermute, wird ungefähr so ​​​​aussehen:


    max = 0;
    t = millis();
    while (1)
    {
      instantCurrent = readAnalog();
      if (instantCurrent > max)
        max = instantCurrent;
      if (millis() - t > 1/50) //period is over.
      {                        // prepare for the next maximum in the next period
        Irms = max/sqrt(2);
        AveragePower = 220 * Irms/50; // --> THAT'S WHAT I WANT
        t = millis();
        max = 0;
      }
    }

Also, was ist deine Meinung?

Bearbeiten: Verpasst, die Division durch T bei der Berechnung der durchschnittlichen Leistung:

P M = 1 T 0 T v R M S ICH R M S ( 1 + C Ö S ( 2 ω T ) ) D T
was unabhängig von der Häufigkeit ein vernünftigeres Ergebnis ergibt, wie Anderson erwähnt:
P M = v R M S ICH R M S
Die generellen Probleme gedacht, bleibt gleich :)

Bei einer sinusförmigen in eine ohmsche Last ist die mittlere Leistung keine Funktion der Frequenz. Irgendetwas ist mit deiner Mathematik schief gelaufen. Außerdem müssen wir das schematische und physikalische Layout des Stromsensors und des Arduino sehen.
Die Berechnung des RMS-Stroms aus dem I<sub>max</sub>-Strom funktioniert für eine Glühlampe mit Vollwellen-Wechselstromversorgung ohne Dimmer. Fügen Sie einen Dimmer oder eine widerstandslose Lampe wie eine kompakte Leuchtstofflampe oder eine LED-Lampe hinzu, und dies wird nicht funktionieren. Die Stromwellenformen dieser beiden sind nicht sinusförmig.

Antworten (2)

Aus dem Datenblatt können Sie ersehen, dass eine ausreichende Isolierung vorhanden ist, um Ihre Anforderungen zu erfüllen.

Ob es jedoch für Sie sicher ist, hängt entweder von der Implementierung der von Ihnen gekauften Platine oder von der von Ihnen ausgelegten Leiterplatte ab. Wenn Sie Netzspannungen und MCU-/Logikpegel-Schaltkreise auf derselben Platine unterbringen, müssen Sie sehr vorsichtig sein, um sicherzustellen, dass Sie den richtigen Leiterbahnabstand haben.

Ich halte Leiterplatten wie diese (Ebay-Sonderangebote) für ziemlich gefährlich, da sie keine festen Befestigungspunkte oder einen sehr geringen Sicherheitsabstand auf den Schienen haben und daher schwierig und möglicherweise gefährlich zu verwenden sind.

Geben Sie hier die Bildbeschreibung ein

Eine viel sicherere Sensorschnittstelle ist die Verwendung eines Stromwandlers, der ebenfalls leicht verfügbar und einfach an einen Arduino A/D anzuschließen ist.

Geben Sie hier die Bildbeschreibung ein

Hier wird das Netz in seinem Nennkabel gehalten und ist gut von Ihren MCU- / Logikpegeln isoliert.

Da Sie eine ohmsche Last messen, müssen Sie nur den Spitzenstrom finden, der fließt. Daraus können Sie den RMS-Strom ermitteln und selbst unter der Annahme der Netzspannung erhalten Sie einigermaßen genaue Ergebnisse. Für eine Arduino-basierte Lösung, die nur den Stromfluss erfasst, würde ich vorschlagen, dass Sie die Nulldurchgänge (der Stromwellenform) finden und einfach die Spitze des Sinuswellenstromflusses berechnen und den A / D auslösen. Oder Sie könnten beispielsweise 1-kHz-Messwerte nehmen und nach dem höchsten aktuellen Messwert suchen.

Denken Sie daran, dass Sie, wenn Ihre Last in irgendeiner Weise reaktiv ist, Spannung/Phase/Strom zusammen messen müssen, um genaue Leistungsmesswerte zu erhalten. Dann könnten Sie den hüpfenden Ball bei OpenEnergyMonitor verfolgen .

Mein Mini-Design-Review:

Der von Ihnen ausgewählte Chip wird nicht für ein neues Design empfohlen und durch eine verbesserte Version ersetzt. https://www.allegromicro.com/en/Products/Current-Sensor-ICs/Zero-To-Fifty-Amp-Integrated-Conductor-Sensor-ICs/ACS723.aspx

Der Grad der Sicherheit bei der Verwendung dieses Chips hängt vom richtigen PCB-Design ab, das Sie dem Demonstrationsboard entnehmen können. Die Verbesserung in diesem Chip reduziert den effektiven Serienwiderstand (ESR), der unter 1 mOhm des vorherigen ICs liegt. Während das Isolationsniveau mit 2,4 kV Standard und einer verbesserten Option bei 4,2 kV für die Blitzisolierung geliefert wird. Ihr Leistungsmesser hat eine Blitzlichtbogen-Nebenschlussspannung, die bei 6 kV zusammenbricht.

Gelegentlich erhalten Sie beim Lastschalten von Motoren spontan schlechte Messwerte, die Sie in Software oder Hardware werfen oder mitteln können. Der bevorzugte Weg für die Hardware-Mittelwertbildung ist die Verwendung eines Operationsverstärkers (OA) Präzisions {Halb- oder Voll-} Wellengleichrichter am AC-Ausgang. Der Ausgang ist bei Vcc/2 DC-vorgespannt, um Ihre Referenz für den OA zu sein. Während der Höhepunkt ist

v R M S = v P / 2
v R M S = v A v G π 2 2   = v A v G 1.11

Geben Sie hier die Bildbeschreibung einDas Schöne daran ist, dass Sie einen Dual OpAmp verwenden können, um einen Vollwellengleichrichter zu erstellen, und dann die Verstärkung wählen können, um AVG zu RMS mit einem durchschnittlichen Gewichtszeitfilter für viele Sekunden einzubeziehen, um CPU-Datenverarbeitung zu sparen.

Wählen Sie zuerst Ihre Genauigkeit und entwerfen Sie dann 2. z. B. Teile, z. B. 0,1 % oder 0,5 % für R-Werte, die Verstärkung und Offset beeinflussen. Denken Sie daran, dass niedrige Eingangssignale einen größeren prozentualen Fehler haben.

Wenn Sie V(t)*I(t)=P(t) nicht zwischen den Proben messen, verlieren Sie natürlich die Genauigkeit aufgrund der oft angegebenen Toleranz von 10 % für die Spannung in Wohngebieten.

Die Konvertierung dieses Produkts würde in der Firmware mit der gleichen durchschnittlichen Genauigkeit erfolgen, die für jedes gleichgerichtet und mit einem Tiefpassfilterverfahren behandelt wird.

Aber es hängt alles von Ihren Spezifikationen für Auflösung, Genauigkeit und Reichweite für Energieverbrauchsspezifikationen ab.

Übrigens, was sind deine?

Sollte nicht v P irgendwo in der Gleichung sein, die beginnt v R M S = ?
oops nein das sollte Vavg sagen
Nein, ich meine Ihre Formel, die beginnt v R M S = liefert nur einen konstanten Wert. Irgendetwas fehlt an dieser Formel.
Ja habe ich vorher verstanden