Inhaltsverzeichnis:
- Schritt 1: Schaltungsdesign
- Schritt 2: Prototyping & Testing
- Schritt 3: Arduino-Code
- Schritt 4: Der Säuretest
Video: AC-Leistungsfaktor mit Arduino messen - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:21
Hallo allerseits! Dies ist mein drittes anweisbares, hoffe, Sie finden es informativ:-) Dies wird ein anweisbares sein, wie man eine grundlegende Leistungsfaktormessung mit einem Arduino durchführt. Bevor wir beginnen, gibt es ein paar Dinge zu beachten:
- Dies funktioniert NUR mit LINEAR Lasten (z. B. induktive Motoren, Transformatoren, Magnetspulen)
- Dies funktioniert NICHT mit NICHT-LINEAR (z. B. CFL-Lampen, Schaltnetzteile, LEDs)
- Ich bin Elektroingenieur und sehr kompetent im Umgang mit Netzpotential (z. B. 230V)
Warnung! Wenn Sie nicht geschult sind oder nicht wissen, wie man mit Netzspannung richtig arbeitet, schlage ich vor, dass Sie mit diesem Teil des instructable nicht fortfahren, und ich werde Ihnen eine sichere Methode zeigen, um zu beweisen, dass die Schaltung funktioniert.
Dies ist eine Hardwarelösung für das Problem der Messung des PF bei linearen Lasten. Dies kann auch rein durch Code erfolgen, einschließlich der Möglichkeit, nichtlineare Lasten zu messen, die ich in einem anderen anweisbaren abdecken werde.
Für Anfänger, die dies lesen, ist der Leistungsfaktor das Verhältnis von Wirkleistung zu Scheinleistung und kann berechnet werden, indem der Kosinus des Phasenwinkels zwischen Versorgungsspannung und Strom ermittelt wird (siehe angehängtes Bild von Google). Dies ist bei AC-Anwendungen von Bedeutung, da die "Scheinleistung" (Volt-Ampere) einfach aus Spannung multipliziert mit Strom berechnet werden kann. Um jedoch die Wirkleistung oder "wahre Leistung" (Watt) zu erhalten, muss die Scheinleistung mit dem Leistungsfaktor multipliziert werden, um eine echte Messung der Leistung in Watt durchzuführen. Dies gilt nur für Lasten, die einen signifikanten induktiven oder kapaktiven Anteil haben (zB ein Motor). Rein ohmsche Lasten wie Elektroheizungen oder Glühbirnen haben einen Leistungsfaktor von 1,0 (Eins) und daher sind Wirkleistung und Scheinleistung gleich.
Schritt 1: Schaltungsdesign
Der Leistungsfaktor kann mit einem Oszilloskop berechnet werden, indem die Zeitdifferenz zwischen dem Spannungs- und Stromsignal gemessen wird. Diese können an jedem Punkt der Welle gemessen werden, solange sie an derselben Stelle abgetastet werden. In diesem Fall war es logisch, zwischen Nulldurchgangspunkten (Punkten in der Welle, an denen die Spannung die X-Achse kreuzte) zu messen.
Ich habe die folgende Schaltung in Multisim entworfen. Unter der Annahme, dass Strom und Spannung an der Last reine Sinuswellenformen sind, kann der Leistungsfaktor gemessen werden. Jede Wellenform wird in einen Nulldurchgangsdetektor (manchmal als Sinus-Rechteck-Wandler bekannt) eingespeist, der einfach ein 741-Operationsverstärker im Komparatormodus ist, bei dem die Vergleichsspannung 0 V beträgt. Wenn sich die Sinuswelle im negativen Zyklus befindet, wird ein negativer Gleichstromimpuls erzeugt, und wenn die Sinuswelle positiv ist, wird ein positiver Gleichstromimpuls erzeugt. Die beiden Rechteckwellen werden dann unter Verwendung eines Exklusiv-ODER-(XOR)-Logikgatters verglichen, das nur dann einen positiven hohen DC-Impuls ausgibt, wenn sich die Rechteckwellen nicht überlappen, und 0 V, wenn sie sich überlappen. Die Ausgabe des XOR-Gatters ist daher die Zeitdifferenz (Delta t) zwischen den beiden Wellen ab dem Punkt, an dem sie den Nullpunkt überschreiten. Dieses Differenzsignal kann dann von einem Mikrocontroller zeitgesteuert und mit der folgenden Berechnung in den Leistungsfaktor umgewandelt werden (stellen Sie sicher, dass Ihr wissenschaftlicher Taschenrechner in Grad und nicht im Bogenmaß angegeben ist):
cos(phi) = f * dt * 360
Woher:
cos(phi) - der Leistungsfaktor
f - Die Frequenz der gemessenen Versorgung
dt - Delta t oder Zeitdifferenz zwischen den Wellen
360 - eine Konstante, die verwendet wird, um eine Antwort in Grad zu geben
In den Bildern sehen Sie drei simulierte Oszilloskopspuren für die Schaltung. Die beiden Eingangssignale repräsentieren den Strom und die Spannung zur Last. Ich habe dem zweiten Signal eine Phasendifferenz von 18 Grad gegeben, um die Theorie zu demonstrieren. Dies ergibt einen PF von ca. 0,95.
Schritt 2: Prototyping & Testing
Für meinen Prototypenbau habe ich das Schaltungsdesign auf ein lötfreies Steckbrett gelegt. Aus dem UA741CN-Datenblatt und dem CD4070CN-Datenblatt werden beide ICs mit einer 12-15-V-DC-Versorgung betrieben, so dass ich mit zwei Batterien versorgte, um eine Dual-Rail +12V, 0V, -12V Volt-Stromversorgung herzustellen.
Simulation einer Last
Sie können eine Last simulieren, indem Sie einen zweikanaligen Signalgenerator oder Funktionsgenerator verwenden. Ich habe diese billige und fröhliche chinesische Box verwendet, um zwei 50-Hz-Sinuswellen mit einem Abstand von 18 Grad zu erzeugen, und die Signale in die Schaltung eingespeist. Sie können die resultierenden Wellenformen auf einem Oszilloskop sehen. In den obigen Bildern sehen Sie die beiden überlappenden Rechteckwellen (Ausgang von jedem Operationsverstärker), und die anderen drei Bilder veranschaulichen den Ausgang des XOR-Gatters. Beachten Sie, wie die Breite des Ausgangsimpulses mit abnehmendem Phasenwinkel kürzer wird. Die obigen Beispiele zeigen 90, 40, 0 Grad.
Schritt 3: Arduino-Code
Wie oben erwähnt, ist die Ausgabe der Messschaltung die Zeitdifferenz zwischen den beiden Eingangssignalen (d. h. dem Strom- und dem Spannungssignal). Der Arduino-Code verwendet "pulseIn", um die Länge des Ausgangsimpulses der Messschaltung in Nanosekunden zu messen und verwendet sie in der oben genannten PF-Formel.
Der Code beginnt mit der Definition von Konstanten, hauptsächlich um den Code besser organisiert und lesbarer zu machen. Am wichtigsten ist, dass C-Code (Arduino-Code) im Bogenmaß und nicht in Grad arbeitet, daher ist eine Konvertierung von Bogenmaß in Grad erforderlich, um später Winkel und PF zu berechnen. Ein Radiant ist ca. 57,29577951 Grad. Die Zahl 360 wird ebenfalls gespeichert und der Multiplikationsfaktor 1x10^-6 zur Umrechnung von Nanosekunden in reine Sekunden. Die Frequenz wird auch am Anfang definiert. Wenn Sie etwas anderes als 50 Hz verwenden, stellen Sie sicher, dass dies zu Beginn des Codes aktualisiert wird.
Innerhalb von "void loop ()" habe ich dem Arduino gesagt, dass er den Winkel basierend auf der zuvor erwähnten PF-Formel berechnen soll. Bei meiner ersten Iteration dieses Codes würde der Code den richtigen Winkel und Leistungsfaktor zurückgeben, jedoch wird zwischen jedem korrekten Ergebnis auch ein falscher niedriger Wert in der seriellen Konsole zurückgegeben. Mir ist aufgefallen, dass dies entweder jeder zweite Messwert oder alle vier Messungen war. Ich habe eine "if"-Anweisung in eine "for" -Schleife eingefügt, um den Maximalwert von jeweils vier aufeinanderfolgenden Messwerten zu speichern. Dies geschieht, indem die Berechnung mit "angle_max" verglichen wird, die anfänglich Null ist, und wenn sie größer ist, wird der neue Wert in "angle_max" gespeichert. Dies wird für die PF-Messung wiederholt. Wenn Sie dies in einer "for"-Schleife tun, bedeutet dies, dass der richtige Winkel und pf immer zurückgegeben werden, aber wenn sich der gemessene Winkel ändert (höher oder niedriger), wenn "for" endet, wird "angle_max" für den nächsten Test auf Null zurückgesetzt, wenn " void loop()" wiederholt. Auf der Arduino-Website (https://www.arduino.cc/en/Tutorial/Calibration) gibt es ein sehr gutes Beispiel dafür, wie das funktioniert. Die zweite "if"-Formel verhindert einfach, dass bei einer fehlerhaften High-Messung beim Ausschalten des Prüflings ein Wert größer als 360 zurückgegeben wird.
Schritt 4: Der Säuretest
Versuchen Sie Folgendes nicht, es sei denn, Sie wissen, wie man sicher mit Wechselspannung arbeitet. Wenn Sie Zweifel an Ihrer Sicherheit haben, versuchen Sie, die Eingangssignale mit einem Zweikanal-Wellenformgenerator zu simulieren.
Auf Wunsch eines Followers habe ich auf Fritzing ein Steckbrett-Layout erstellt, um eine bessere Vorstellung von der Schaltung und der Abtast- / Erfassungsschaltung zu erhalten (ich habe die.fzz-Datei und ein.png-Diagramm angehängt). Der Motor oben stellt den verwendeten Tischlüfter dar, und die Induktionsspule stellt den Stromwandler dar, den ich um den Live-Leiter gewickelt habe. Ich habe die 741 ICs mit zwei 12-V-Batterien versorgt, die so angeordnet sind, dass sie +12 VDC, 0 VDC (Masse) und -12 VDC liefern. Der CD4070 kann auch direkt über die 5-V-Stromschiene des Arduino mit Strom versorgt werden.
Um zu beweisen, dass das Konzept in der Realität funktioniert, wurde die Schaltung auf einem lötfreien Steckbrett aufgebaut. Auf den Bildern sehen Sie die Schaltungsanordnung. Ich habe einen Tischlüfter als meine induktive Last verwendet, um das Konzept zu testen. Zwischen dem 230V-Netz und der Last befindet sich meine Sensorik. Ich habe einen Abwärtstransformator, der 230 V direkt in 5 V umwandelt, damit die Spannungswellenform abgetastet werden kann. Ein nicht-invasiver Stromwandler, der um den stromführenden Leiter geklemmt wurde, wurde verwendet, um die Stromwellenform abzutasten (rechts vom aluminiumbeschichteten Widerstand). Beachten Sie, dass Sie nicht unbedingt die Amplitude des Stroms oder der Spannung kennen müssen, sondern nur die Wellenform für den Operationsverstärker, um den Nulldurchgang zu identifizieren. Die obigen Bilder zeigen die tatsächlichen Strom- und Spannungswellenformen des Lüfters und der seriellen Arduino-Konsole, die einen PF von 0,41 und einen Winkel von 65 Grad meldet.
Dieses Arbeitsprinzip kann in einen selbstgebauten Energiemonitor integriert werden, um echte Leistungsmessungen durchzuführen. Wenn Sie kompetent sind, können Sie versuchen, verschiedene induktive und ohmsche Lasten zu überwachen und ihren Leistungsfaktor zu bestimmen. Und da ist es! eine sehr einfache Methode zur Messung des Leistungsfaktors.
Empfohlen:
Heimwerken -- Einen Spinnenroboter herstellen, der mit einem Smartphone mit Arduino Uno gesteuert werden kann – wikiHow
Heimwerken || Wie man einen Spider-Roboter herstellt, der mit einem Smartphone mit Arduino Uno gesteuert werden kann: Während man einen Spider-Roboter baut, kann man so viele Dinge über Robotik lernen. Wie die Herstellung von Robotern ist sowohl unterhaltsam als auch herausfordernd. In diesem Video zeigen wir Ihnen, wie Sie einen Spider-Roboter bauen, den wir mit unserem Smartphone (Androi
Bodenfeuchtigkeit mit Raspberry Pi messen 4: 4 Schritte
Bodenfeuchte messen mit Raspberry Pi 4: Wissen Sie, wie oft Pflanzen gegossen werden müssen? Oder Pflanzen ausgegossen und verloren. Um dies zu lösen, dachte ich, es wäre umständlicher, wenn wir den Wert des Wassergehalts im Boden ermitteln können, um eine Entscheidung für die richtige Bewässerung der Pflanzen zu treffen
Wie man einen CubeSat herstellt, der die Temperatur messen kann – wikiHow
Wie man einen CubeSat herstellt, der die Temperatur messen kann: Kommen Sie mit und Sie werden einen 11x11x11x11-Würfel der reinen Fantasie sehen, nehmen Sie meine Hand und Sie werden die Temperatur des Mars sehen! (zur Melodie von Willy Wonkas „Imagination“) Heute zeige ich dir, dass du deinen ganz eigenen CubeSat bauen musst! Ich und meine Partner Alyssa und
Messen Sie den Innenwiderstand der Batterie in 4 Schritten: 4 Schritte
4 Schritte zum Messen des Innenwiderstands des Akkus: Hier sind die 4 einfachen Schritte, die Ihnen helfen können, den Innenwiderstand des Akkus zu messen
Nitratkonzentration in Wasser mit EOS messen 1: 13 Schritte
Nitratkonzentration in Wasser messen mit EOS 1: Dies ist eine kurze Schritt-für-Schritt-Anleitung zur Verwendung der EOS1 zur Messung der Nitratkonzentration in Wasser. Ähnliche Schritte können für die Messung von Phosphat verwendet werden (ein anderes Testkind ist erforderlich)