Arduino Forum

Forum 2005-2010 (read only) => International => Deutsch => Topic started by: benny66766 on Aug 10, 2010, 03:50 pm

Title: Strommessung mit analogen Eingängen des Arduino?
Post by: benny66766 on Aug 10, 2010, 03:50 pm
Hallo Arduino Leute,
ich habe ein Verständnisproblem und hoffe Ihr könnt mir helfen.

Ich bin im Besitz eines ATmega1280 mit einem Arduino-Mega-Board, damit möchte ich Strom messen.
Ich dachte da sofort an die analogen Eingänge, wobei 15 Eingänge existieren, ich aber anscheinend zwei zum Messen brauche (also nur ca 6 verschiedene Messungen machen kann)?

Was mir aber noch viel mehr Probleme bereitet ist, dass ich nicht weiss, mit wieviel mA ich die analogen Eingänge belasten darf.

Da ich bei meinen Messungen von bis zu 400 mA messen muss, was sowieso für n direkten Anschluss an ein IC-Beinchen bestimmt tödlich ist, wollte ich fragen wie man da ran gehen kann an die Sache.

Ich habe die Chip-Dokumentation des ATmega1280 von atmel durchgesichtet, jedoch wird dort im Kapitel "Electrical Characteristics" nur von Pull-up Widerständen, Leckströmen und max. Ausgangsspannugnen gelistet. Ich sehe nicht, dass sie einen maximal  verkraftbaren am analog-Eingang anliegenden Eingangsstrom angeben.

Nach meiner Rechnung komme ich auf folgendes, was meiner Meinung nach nicht ganz richtig sein kann:

- 1024 Mess-Schritte -> 0,0048V / Schritt
- Ich möchte 1mA / Schritt messen.
- R = U/I = (0,0048V)/(1mA) = 4,8 Ohm ??? (das geht doch nicht, oder?)

selbst wenn ich die Messschritte kleiner gestalte (z.b. 400) komme ich trotzdem auf R=12,8 Ohm... und wo hänge ich die dann rann?

Vielen Dank für die Kritik... Gruss Benny
Title: Re: Strommessung mit analogen Eingängen des Arduino?
Post by: Joghurt on Aug 10, 2010, 03:56 pm
Also soweit ich das verstehe brauchst Du pro Messung nur einen analogen Eingang. An den schließt Du Deinen 4,8 Ohm-Widerstand gegen Masse an, und zusätzlich Deinen Verbraucher, der gegen 5 Volt geht.

Wenn Dein Verbraucher nun Strom "verbraucht", dieser ihn also durchfließt, dann wird der Strom auch durch den 4,8 Ohm-Widerstand (das ist dann der "Shunt") fließen, es wird eine Spannung abfallen die proportional zum fließenden Strom ist, und das kannst Du messen. :)


Optimaler, weil weniger beeinflussend, wäre natürlich eine OpAmp-Schaltung.
Title: Re: Strommessung mit analogen Eingängen des Arduino?
Post by: benny66766 on Aug 10, 2010, 04:02 pm
Hallo Joguhrt,
danke für die schnelle Antwort.

Ich habe das mit dem "shunt" auch gerade angelesen. Ich arbeite aber mit Stromzangen, die hängt man einfach über das Starkstromkabel und diese liefert einem ein 1000:1 Verhältnis bis zu 400A, also bis zu 400mA... Wie würde es da aussehen mti der Verkabelung?
Title: Re: Strommessung mit analogen Eingängen des Arduino?
Post by: Joghurt on Aug 10, 2010, 04:07 pm
Das ist ja sogar noch einfacher: :)

Einfach zwischen die beiden Pole der Stromzange nen Widerstand schalten, und das eine Ende des Widerstands zusätzlich auf Masse beim Arduino und das andere Ende zusätzlich direkt in einen analogen Eingang.

Über I=U/R kannst Du dann berechnen, wieviel Strom da fließt.

Bei Stromzangen geht aber anscheinend nur Wechselstrom einfach, Gleichstrom ist ungleich komplizierter...
Title: Re: Strommessung mit analogen Eingängen des Arduino?
Post by: uwefed on Aug 10, 2010, 08:50 pm
Hallo benny66766

Welche Stromzange hast Du?
Das mit dem Widerstand stimmt, aber Du mußt den richtigen Wert nehmen der vom Innenwidesrtand des Stromwandlers abhängt.
Außerdem darf ein Stromwandler NIE ohne shunt betrieben werden da ansonsten eine hohe Spannung am Augang anliegt.

Grüße Uwe
Title: Re: Strommessung mit analogen Eingängen des Arduino?
Post by: komputer on Aug 10, 2010, 10:23 pm
Hallo benny66766

evtl helfen dir diese Seiten weiter :
http://openenergymonitor.org/emon/
habe auf dieser Basis mit einem Arduino Mega ein Strom Monitoring System mit 10 Eingängen gebaut:
http://www.komputer.de/wordpress/?p=8

Du solltest berücksichtigen dass die Spannung aus deiner Strommesszange auf keinen Fall (z.B. Kurzschluss in deinem "Starkstromkreis") die zulässige Eingangsspannung überschreitet - die internen Schutzdioden vertragen glaube ich aus dem Kopf raus maximal 1mA....
Ausserdem sollte dein Eingangswiderstand auf keinen Fall mehr als 20kOhm betragen (vor allem wenn du mehr als 2-3 Analogeingänge nutzen willst) sonst gibts Messfehler...

Habe mein Projekt auch noch nicht ganz abgeschlossen - muss noch externe Schutzdioden verbauen - hoffe komme in den nächsten Tagen dazu....


Viele Grüsse,   Michi
Title: Re: Strommessung mit analogen Eingängen des Arduino?
Post by: benny66766 on Aug 11, 2010, 11:13 am
Ich hatte mir beispielsweise diese zange ausgesucht:
http://www.reichelt.de/?;ACTION=3;LA=444;GROUP=D15;GROUPID=542;ARTICLE=30701;START=0;SORT=artnr;OFFSET=16;SID=15PMQiUqwQAQ8AAG-WdBg8323c28528246fcc080b76b8a0317c03

Danke für die vielen Anregungen erstmal, ich habe aber immer noch das Problem aus der Doku des ATmega1280 z.B. den Innenwiderstand eines analogen Eingangs zu finden (gibt es überhaupt einen?), oder den max. zulässigen Eingangsstromes.

Die Zange hat ein Ausgabeverhältnis von 1000:1, dh. für gemessenen 1A => 1mA, ich muss maximal 400A => 400mA messen können.

Einen Shunt würde ich nutzen, um den Strom noch kleiner und für die analogen Eingänge verträglicher zu machen.

Ich kann aber nicht anfangen, eh ich mir nicht sicher bin wie die Eingänge zu beschalten sind und was sie vertragen. Das muss doch im Datenblatt bei www.atmel.com stehen, oder?
Title: Re: Strommessung mit analogen Eingängen des Arduino?
Post by: Joghurt on Aug 11, 2010, 11:18 am
Quote
Einen Shunt würde ich nutzen, um den Strom noch kleiner und für die analogen Eingänge verträglicher zu machen.

Nein, der Shunt wird nicht in Reihe zum analogen Eingang geschaltet, sondern parallel zum Arduino zwischen dem analogen Eingang und Masse. Damit gehts dann nur um Spannung, nicht um Strom. ;)
Title: Re: Strommessung mit analogen Eingängen des Arduino?
Post by: benny66766 on Aug 11, 2010, 11:47 am
Hallo Joghurt,
ja das stimmt natürlich. Da ergeben sich aber noch mehr Fragen. So lange ich nicht aus dem Datenblatt lesen kann wie die max. Strombelastung am Eingang sein darf, kann ich nichts planen.

Nach meiner Rechnung:
-> 1024 Mess-Schritte => 5V/1024 = 0,0048V
-> Leider habe ich im Datenblatt lesen können, dass eine ungenauigkeit von +/- 2 Mess-Schritten existiert.
-> R = U/I = 0,0048V/1mA = 4,8 Ohm
-> Bei einer messung Umess = 1,92V wüsste ich dann bei 4,8 Ohm Widerstand, dass ein Strom von 400mA ~ 400A anliegt.

Bin ich da auf dem richtigen Wege?

Das macht aber kein Sinn mehr, wenn z.B. die max. Strombelastung am analogen Eingang 1mA beträgt, ich aber bis zu 400mA messen können muss...

Die Messzange liefert mir ja schon 1mA ~ 1A, ich müsste demnach einen passenden Widerstand wählen, so dass die Spannung noch für den Arduino messbar ist aber der Strom den Eingang nicht zu sehr belastet.
Title: Re: Strommessung mit analogen Eingängen des Arduino?
Post by: komputer on Aug 11, 2010, 12:00 pm
...ich denke du denkst da verkehrt ;-)

Eingangswiderstand vom Atmel ist erstmal uninteressant.
Du Belastest deine Stromzange mit einem externen Widerstand (hier spricht man von Bürde nicht von Shunt). Wie Joghurt sagte - parallell zur Zange.
An diesem fallt eine Spannung ab die dein Arduino messen kann.

Beispiel: externer Widerstand 1kOhm   -  Strom von der Messzange 1mA
entspricht  1V and deinem Eingang

Wie hoch dieser Widerstand für optimale Linearität deiner Stromzange ist sollte im Datenblatt stehen.

Viele Grüsse,   Michi


Title: Re: Strommessung mit analogen Eingängen des Arduino?
Post by: uwefed on Aug 11, 2010, 12:10 pm
hallo benny66766

Warum nimmst Du nicht dieses Model; als Ausgang hast Du eine Spannung proportional zum Strom. http://www.reichelt.de/?ACTION=3;GROUP=D15;GROUPID=542;ARTICLE=75325;SID=26gX9xS6wQARoAAEKh4P0adc7331eec97e68f1fc0a1becb314330

So brauchst Du am Arduino nur die Spannung zu messen und Dir keine Sorgen machen um eine Shund ecc.

Grüße Uwe
Title: Re: Strommessung mit analogen Eingängen des Arduino?
Post by: benny66766 on Aug 11, 2010, 12:50 pm
wow... jetzt bin ich erneut verwirrt (haha)...

Das sind ja super-dinger, aber ich sehe folgendes:
Code: [Select]
Technische Daten
? ACA: 200 A, ± 2,0 % + 0,5 A (40 - 400 Hz)
? Ausgang: 1 mVAC / A
...


Das heißt:
-> 2 % Fehlertoleranz und in 0,5 A Schritten
-> am Arduino-Eingang würde dann eine Wechselspannung von mind. 1mVAC / A liegen?

Auf der Herstellerseite habe dagegen die Daten gelesen:
-> 200 A; ± 2,0 % + 0,5 A (40 - 400 Hz); 1 mV/A

D.h. es wird mir doch eine Gleichspannung am Ausgang geliefert, richtig?

Ich muss bei <=5% Fehlertoleranz bleiben, ich benötige 6 dieser Zangen. Wäre das da nicht kritisch?
Title: Re: Strommessung mit analogen Eingängen des Arduino?
Post by: LC_Data on Aug 11, 2010, 06:50 pm
Ich denke mal, nach Ansicht des Angebots von Reichelt, wirst Du nicht umhin kommen die Meßspannung gleichzurichten und zu glätten.
Dann solltest Du eine Mittelwertbildung coden um die Meßfehler zu verringern.

LC_Data
Title: Re: Strommessung mit analogen Eingängen des Arduino?
Post by: udoklein on Aug 11, 2010, 10:24 pm
Wozu möchtest Du Strom von was messen? So wie Du fragst kennst Du Dich nicht sehr gut aus. Warum tut es kein einfaches Meßgerät? Also sowas:
http://www.pollin.de/shop/suchergebnis.html?S_TEXT=multimeter ?

Udo

Title: Re: Strommessung mit analogen Eingängen des Arduino?
Post by: webmeister on Aug 12, 2010, 11:49 am
Diese Stromzange ist für AC-Messung ausgelegt.

Um den Ausgangswert (auch eine Wechselspannung) mit dem Arduino zu messen, muss diese in eine Gleichspannung umgewandelt werden. Du brauchst als einen Messumformer oder eine Messumformerschaltung.
Title: Re: Strommessung mit analogen Eingängen des Arduino?
Post by: benny66766 on Aug 12, 2010, 04:57 pm
@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?
Title: Re: Strommessung mit analogen Eingängen des Arduino?
Post by: uwefed on Aug 12, 2010, 05:30 pm
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
Title: Re: Strommessung mit analogen Eingängen des Arduino?
Post by: benny66766 on Aug 12, 2010, 05:44 pm
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.
Title: Re: Strommessung mit analogen Eingängen des Arduino?
Post by: uwefed on Aug 12, 2010, 06:12 pm
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  
Title: Re: Strommessung mit analogen Eingängen des Arduino?
Post by: komputer on Aug 12, 2010, 10:44 pm
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
Title: Re: Strommessung mit analogen Eingängen des Arduino?
Post by: mpeuser on Aug 13, 2010, 03:14 am
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...
Title: Re: Strommessung mit analogen Eingängen des Arduino?
Post by: benny66766 on Aug 13, 2010, 09:32 am
@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?
Title: Re: Strommessung mit analogen Eingängen des Arduino?
Post by: mpeuser on Aug 13, 2010, 10:24 am
(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 :-)

Title: Re: Strommessung mit analogen Eingängen des Arduino?
Post by: uwefed on Aug 13, 2010, 12:02 pm
@ 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
Title: Re: Strommessung mit analogen Eingängen des Arduino?
Post by: LC_Data on Aug 15, 2010, 11:24 am
@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.
Title: Re: Strommessung mit analogen Eingängen des Arduino?
Post by: udoklein on Aug 15, 2010, 11:45 am
@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
Title: Re: Strommessung mit analogen Eingängen des Arduino?
Post by: mpeuser on Aug 15, 2010, 01:22 pm
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...
Title: Re: Strommessung mit analogen Eingängen des Arduino?
Post by: udoklein on Aug 15, 2010, 03:01 pm
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

Title: Re: Strommessung mit analogen Eingängen des Arduino?
Post by: mpeuser on Aug 15, 2010, 04:40 pm
(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 :-)
Title: Re: Strommessung mit analogen Eingängen des Arduino?
Post by: komputer on Aug 15, 2010, 09:44 pm
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






Title: Re: Strommessung mit analogen Eingängen des Arduino?
Post by: udoklein on Aug 16, 2010, 07:15 pm
@deSilva: auch die "einfachen" mathematischen Theorien kommen zur gleichen Erkenntnis. Keine Ahnung wieso Du so abfällig über sie redest. Die Standardtheorie wird hier kurz angerissen:
http://de.wikipedia.org/wiki/Nyquist-Shannon-Abtasttheorem

Was Du bei (b) sagst ist auch nicht korrekt. Die Frage ist letztendlich wie groß das Spektrum des zu erfassenden Signals ist. Solange das unbekannt ist kann man nicht sagen wieviele Werte man braucht um das Signal zu approximieren.

Udo
Title: Re: Strommessung mit analogen Eingängen des Arduino?
Post by: mpeuser on Aug 18, 2010, 05:11 am
Mir ist jetzt nicht so klar, was Du genau meinst? Natürlich ist alles, was ich in diesem Thread geschrieben habe nützlich und nicht falsch. Ich bin allerdings nicht auf die wirklichen Randbedingungen und Notwenigkeiten eingegangen, weil das recht unübersichtlich wäre für einen Forumsbeitrag.

Wir sind in der Vereinfachung im 2. Schritt immer von einem annähernd Sinus förmigen Signal ausgegangen. Da müssen wir nicht über Bandbreite reden, das hat nur eine Frequenz. In diesem Fall kann eine einfache Überabtastung beste Ergebnisse erzielen.

Wenn man kein Sinus förmiges Signal hat, dann ist die einfache Summationsformel, die ich im ersten Schritt angegeben habe, äußerst nützlich; die Anpassung für RMS ist offensichtlich, am Ende sollte man dann noch eine Quadratwurzel ziehen.

"einfache" mathematische Theorien setzen eine gleich abständige Abtastung voraus, weil man sonst nur sehr schwer die Fehlerabschätzung machen . Letztendlich macht eine gleich verteilte Zufallsverteilung der Abtastimpulse bei einer unendlich langen Abtastung keinen Unterschied, aber das ist nicht leicht zu sehen. Bei einer gleich abständigen kurzen von 2- oder 4- fach Überabtastung besteht deutlich die Gefahr der Interferenz...

Bei einem nicht Bandbreiten begrenzten Signal kann man schon sagen wie oft man abtasten muss, nämlich unendlich oft. Die Wahrheit ist aber komplizierter, denn so ein Signal hätte eine unendliche Leistung falls die Amplituden hoher Frequenzen nicht sehr klein werden. Hier greift dann also die Amplitudenquantisierung gnädig ein...

Der ADC des Arduino kann etwa 500 Amplitudenwerte trennen und dies bei einer Zeitquantisierung von etwa 150 Mikrosekunden.
Nur solche Signale können verarbeitet werden. Punkt.

Ich habe dazu ein Oversampling von 10 entlang der erwarteten Hauptfrequenz vorgeschlagen und ein praktisches Verfahren angegeben.

Title: Re: Strommessung mit analogen Eingängen des Arduino?
Post by: udoklein on Aug 18, 2010, 08:05 pm
Was ich meine ist, daß Du unterstellst, daß der OP etwas mit 50 Hz Sinus messen will. Ob dem so ist wissen wir immer noch nicht. Er hat dazu noch gar nichts gesagt. Oder ich hab's überlesen. Bloß weil die Netzspannung mit 50 Hz eingeprägt wird heisst ja nicht, daß der Strom dann auch mit 50 Hz fliesst. Das hängt ja vom Verbraucher ab.

Weiterhin sagst Du

Quote

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


Das stimmt so nicht. Die Theorien sagen nicht, daß Jitter schlecht ist. Die einfacheren Theorien sagen nur, daß im Fall von Jitter keine Aussage getroffen werden kann. Das ist alles.

Ob Jitter dann tatsächlich hilfreich ist hängt davon ob der Jitter eher wie Rauschen oder eher systematisch auftritt. Im zweiten Fall kann der Jitter Dir die Ergebnisse auch verfälschen. Der Frequenzjitter bei der Auswertung im Arduino wird eher vom Timer Interrupt abhängen und deshalb systematischer Natur sein. Von daher ist die Aussage "etwas Jitter ist eher gut" auch nicht ganz korrekt.

Udo