Go Down

Topic: Strommessung mit analogen Eingängen des Arduino? (Read 27037 times) previous topic - next topic

benny66766

@Herr Klein,
genau an diesem Messgerät habe ich kein Interesse, da ich selbst so eins mal nachbauen möchte in einer sehr vereinfachten Form.

@LC_Data,
ja, das Problem ist nur wie schaffe ich es in der Halbleitertechnik 1mV in Gleichspannung umzuwandeln, wenn ein pn-Übergang erst ab 0,7V reagiert? eventuell eine Schaltstufe zur Signalverstärkung vorbauen?

@komputer,
Du müsstest das Problem ja schon gelöst haben, einen Wechselstrom gleichzurichten, zu glätten und die Messwerte von 0V - 5V zu interpretieren. Habe mir Deine Seite angeschaut, aber wie wandelst Du das Signal genau um?

uwefed

Du brauchst nicht das Wechselspannungssignal gleichzuichten sondern Du nimmst einen Spannungsteiler mit 2 gleichen Widerständen ( 10 kOhm) und erhälst so 2,5V. An diese schließt Du den einen negativen Pol der Stromzange an und den anderen auf den Analog-Eingang. So kannst Du eine Wechselspannung bis 2,5V messen.

Ich weiß nicht wie große Ströme Du messen willst; gegebenenfalls nußt Du noch das Signal mit einem Operationsverstärker verstärken.

Lies mal auch dies: http://openenergymonitor.org/emon/node/59

Grüße Uwe

benny66766

Hallo Uwe,
toller Link... den werde ich mir anschauen...

ich habe nun einen Stromzangen-Adapter ausgewählt, der bis zu 400A messen kann, dass ist auch genau die Höchtgrenze für den zu messenden Drehstrom (Abnahme am N-Leiter).

Das Gerät meiner Wahl ist folgendes geworden:
http://www.peaktech.de/produktdetails/kategorie/zangenadapter/produkt/p-4300.html

Habe schon mit den Herstellern gesprochen. Bei einer Wechselstrommessung liegt am Ausgang eine Wechselspannung an.
Bei einem Übersetzungsverhältnis von 1mV/A muss ich gewährleisten können, dass max 400mV messbar sind.

uwefed

Bei Drehstrom kannst Du nicht am Nulleiter messen.
Wenn Du symetrisches Last hast dann genügt die Strommessung an einem Außenleiter und dann ist der Strom auf dem Nulleiter null.; wenn Du einen unsymetrischen Verbraucher oder mehrere einphasige hast dann mußt Du alle 3 Außenleiter messen.

Grüße Uwe  

komputer

#19
Aug 12, 2010, 10:44 pm Last Edit: Aug 12, 2010, 10:46 pm by komputer Reason: 1
hallo benny66766,

...die Gleichrichtung findet softwaremässig statt ;-)

schau dir den Code an - es werden samples genommen aufaddiert geteilt usw.  - auf diese art kann mit einer gleichzeitigen Spannungsmessung Strom, Leistungsfaktor, Wirkleistung, Blindleistung
und sogar die Frequenz ermittelt werden.

Hatte in einem alten Projekt eine Schaltung mit Brückengleichrichter hinter dem Messwandler aber wozu - wenn du schon einen Mikrocontroller einsetzt kann das auch softwaremässig erledigt werden...

Viele Grüsse,   Michi

mpeuser

Nun zusammengefasst:
- Die Stromzange liefert +/- 400mV
- Um eine gute Auflösung zu haben, sollte man die 1,1 V Spannungsreferenz benutzen.
- Somit könnte eine "virtuelle Masse" durch einen Spannungsteiler 1k + 10k gebildet werden.
- Wie vorgeschlagen hier und an den ADC Eingang den Zangenausgang anschließen
- Nun im etwa Milisekundenabstand (besser etwas schneller!) die Sinuskurve erfassen und daraus die benötigten Werte errechnen. Der ADC wird bei der angegebenen Dimensionierung im Sinusverlauf Werte zwischen
(5*1/11 -0,4)/1,1*1023 = ca 50 und (5*1/11+0,4)/1,1 = ca 1000
liefern.

Die Dimensionierung ist allerdings etwas "eng". Und Ströme unter 1 A wird man so nicht messen können...

benny66766

#21
Aug 13, 2010, 09:32 am Last Edit: Aug 13, 2010, 09:33 am by benny66766 Reason: 1
@uwefed:
Ja, sorry ich hatte mich vertan und vergessen zu sagen, dass es sich um einen symmetrischen Verbraucher handelt. Daher müssten alle Ströme gleich sein und ich kann mit nur einer Leitungsmessung den Gesamtstrom bestimmen.

@komputer:
Ein echt tolles Projekt, mein Kompliment. Ich konnte jedoch kaum den Schaltplan lesen aufgrund der futuristischen Schrift, vielleicht ging es nicht nur mir so beim Sichten des Plans?

@deSilva:
Hallo deSilva, ja die Auflösung soll nur ganz grob sein, sprich in 1A-Schritten.
Ich ahne schon, welche Einheiten und Größen in Deiner Formel vorkommen. Kannst Du mir dennoch vielleicht sagen, wie Du auf die Rechnung kommst? Ist die '(5*...' z.B. die Betriebsspannung des Arduinio?

mpeuser

#22
Aug 13, 2010, 10:24 am Last Edit: Aug 13, 2010, 10:27 am by mpeuser Reason: 1
(a) Das ist die übliche Berechnung der erwarteten ADC Werte:

ADC Wert = gemessene Spannung / ADC Referenzspannung *1023

Die Referenzspannung ist entweder die Versorgungsspannung des Controllers, die am Pin AREF angelegte Spannung oder 1,1V

Die "gemessene Spannung" beträgt: Spannung an der "virtuellen Masse" des Spannungsteilers  +/- Zangenwert.

Die Spannung am Spannungsteiler hängt von den beiden Widerständen ab; bei 1k und 10k und einer Versorgungsspannung sind es eben
1k Ohm/(10 k Ohm+1 k Ohm) * 5V.

Diese "Offsetspannung" hilft, mit den negativen Spannungen aus der Zange zu leben....

(b) Ich weiß nicht, ob Dir genau klar ist, was Du dann misst? Es ist ein sehr "quantisiertes" Sinussignal in 400mA Schritten, mit einem Rauschen von 400 bis 800 mA! Bei Strömen über 5A wird dies durch eine Mittelung (Achtung! Was für eine? RMS ist trickreich!) einigermaßen ausgeglichen; für Ströme unter - sagen wir mal - 3 A musst Du noch einige Softwareüberlegungen hineinstecken. Unter 1A ist keine wirkliche Aussage mehr möglich, außer dass es nicht 2A sind :-)


uwefed

@ benny66766
Ok dann brauchst Du nur eine Stronzange aber NICHT auf dem Nulleiter weil dieser bei symetrischer Last keinen Strom führt ( kann auch weggelassen werden)
Grüße Uwe

LC_Data

#24
Aug 15, 2010, 11:24 am Last Edit: Aug 15, 2010, 11:25 am by LC_Data Reason: 1
@Komputer:
Du bist Dir aber schon im Klaren darüber, das Deine "softwaremäßige Gleichrichtung" extrem fehleranfällig und zeitaufwändig ist und meiner persönlichen Meinung nach eher Humbug als Lösung ist. Nicht das es bei entsprechend langer Samplezeit bei hoher Spamplefrequenz unmöglich wäre ein Ergebnis zuerhalten, aber eine kleine Gleichrichtung der Messspannung ist wirklich einfacher zu realisieren und bietet auch in kürzerer Zeit ein verlässlicheres Ergebnis.

@Benny
>@LC_Data,

>ja, das Problem ist nur wie schaffe ich es in der Halbleitertechnik
>1mV in Gleichspannung umzuwandeln, wenn ein pn-Übergang erst
>ab 0,7V reagiert? eventuell eine Schaltstufe zur Signalverstärkung
>vorbauen?

Dafür gibt es Operationsverstärker und einfache Grundschaltungen lassen sich prima auf Deine Bedüfnisse anpassen.

udoklein

#25
Aug 15, 2010, 11:45 am Last Edit: Aug 15, 2010, 11:46 am by udoklein Reason: 1
@LC_Data: extrem fehleranfällig würde ich nicht unterschreiben. Eher: extrem flexibel. Er könnte dann sogar gleich eine FFT einbauen und im begrenzten Rahmen sogar einen Teil des Spektrums ermitteln. Jedes DSO macht das so. Allerdings stimme ich zu, daß bei Anfängern alles fehleranfällig ist ;)

Ob eine Hardware oder Softwarelösung jemand einfach erscheint hängt stark davon ab was derjenige der das Teil realisieren soll gelernt hat.

Udo
Check out my experiments http://blog.blinkenlight.net

mpeuser

#26
Aug 15, 2010, 01:22 pm Last Edit: Aug 15, 2010, 01:54 pm by mpeuser Reason: 1
Ein Sinussignal der angedachten Stromstärke ist extrem stabil; da kann sich innerhalb 100 ms  überhaupt nichts dran ändern, erst recht kaum an der Frequenz. Nehmen wir mal 50 Hz dann reichen  200 samples im etwa ms Abstand vollkommen aus. Eine FFT ist schick, aber eine einfache Integration der gemessenen Werte tut es auch für die Bestimmung der effektiven Stromstärke, also:

Kalibrierungsfaktor * SUMME (ABS(messwert)*zeit_seit_letzter_messung) / Gesamtzeit


(Statt ABS kann man auch quadrieren für RMS ähnliche Werte.)

Im Gegensatz zu mathematischen Theorien ist es sogar günstiger, wenn die Messintervalle leicht jittern, um Interferenzen mit dem gemessenen Signal zu verhindern.

Bei 400Hz (sowas gibt es in der Flugzeugindustrie) sollte man etwas schneller sampeln, das sollte auch kein Problem sein.

Ohne Kenntnis der Phasenlage der Spannung ist diese Stromstärke aber natürlich erst mal sehr "virtuell" :-)

Es kann etwas problematisch sein, die Nullline zu bestimmen, wenn man da mit der vorgeschlagenen Offset-Spannung ran geht. Recht genau ist die Methode, die - sagen wir mal - 200 Messwerte erst mal zu erfassen, und dann (MAX+MIN)/2 zu bilden.


Edit:
-----
Das Spannende an diesen Forumsbeiträgen ist ja, dass man ins Grübeln kommt  ;D
Wenn man schon von einem approximativen Sinussignal ausgeht, dann ist auch eine Integration etwas überflüssig, weil das Ergebnis sogar schon Archimedes bekannt war (Fläche unter einer Halbschwingung = 2/pi*Amplitude). Wenn man mehrere Schwingungen misst, muss man nicht einmal die Frequenz genau kennen, also

Stromstärke = Kalibrierung * (MAX-MIN)/PI
(MAX-MIN) liefert die DOPPELTE Amplitude).

Wenn man empirisch PI mit in die Kalibrierung rein zieht, dann ist das das Naivste, was man überhaupt machen kann - erstaunlicherweise auch das absolut Korrekte  ;)

Für RMS (mit der Quadrierung) ist die Formel allerdings etwas komplizierter...

udoklein

Integration = Bestimmung des konstanten Koeffizieten der FT.

Quote

Im Gegensatz zu mathematischen Theorien ist es sogar günstiger, wenn die Messintervalle leicht jittern, um Interferenzen mit dem gemessenen Signal zu verhindern.


Die mathematischen Theorien sagen überhaupt nicht, daß Jitter schlecht ist. Wie kommst Du denn auf den Trichter? Sie sagen nur, daß mit Jitter alles viel schwieriger zu berechnen wird.

Quote

Es kann etwas problematisch sein, die Nullline zu bestimmen, wenn man da mit der vorgeschlagenen Offset-Spannung ran geht. Recht genau ist die Methode, die - sagen wir mal - 200 Messwerte erst mal zu erfassen, und dann (MAX+MIN)/2 zu bilden.


Hmm, der Arduino hat eine ADC clock von ~125kHz. Wenn Du da 200 Messwete mittelst wirst Du selbst bei einem 50 Hz Sinus nicht den richtigen Mittelwert finden. Ausser Du baust geeignete Verzögerungen ein. Davon abgesehen kannst Du nicht wissen ob der OP wirklich 50 Hz Sinus misst. Er hat ja immer noch nicht gesagt was er da messen will. Wenn er ein Schaltnetzteil misst wird das sicher etwas ganz anderes als 50 Hz Sinus anliegen.

Udo

Check out my experiments http://blog.blinkenlight.net

mpeuser

#28
Aug 15, 2010, 04:40 pm Last Edit: Aug 15, 2010, 04:55 pm by mpeuser Reason: 1
(a) O.k., also "Im Gegensatz zu EINFACHEN mathematischen Theorien..."

(b) Natürlich muss man das Sampling ggf verzögern. Um Klarheit zu schaffen: Es muss wenigstens EINE Welle vollständig erfasst werden, und es sollten wenigstens 200 Werte sein, und - das ist so noch nicht gesagt worden - es wäre gut, wenn wenigstens 10 Werte auf eine Halbwelle fallen. Das sind jetzt nur  (vernünftige) Richtwerte. Am besten malt man sich das mal auf, dann wird der Sinn schon klar.


Ein Fehler entsteht, wenn man unvollständige Wellen erfasst, also z.B. 2,5 oder so. Dieser Fehler wird umso kleiner, je mehr Wellen während des Samplings auftreten. Man kann das auch sehr präzise machen, wenn man die gesampelten Bereich vorne und hinten abschneidet, am besten von Maximum zu Maximum. Es wird jetzt auch klar, dass die Software mäßige Behandlung nicht ohne Tücken ist :-)

komputer

True RMS....

@LC_Data  wie würde denn eine "kleine Gleichrichtung" für echten Effektivwert von nicht so ganz sinusförmigen Signalen aussehen ;-)
....ich hab da einiges ausprobiert auch mit Gleichrichtung und OPs und bin mit den momentanen Ergebnissen sehr zufrieden.
Vor allem kann ich damit Schein und Wirkleistung messen - und der Messfehler ist für meine Anwendung akzeptabel.

Viele Grüsse,   Michi







Go Up