Hallo, via Mikrcontroller (A/D) Wandler kann ich den Strom im Bereich >1A bis ca. 50A messen. Dieser Strom wird nach jedem Loop-Durchgang ermittelt. Wie berechne ich jetzt am genauesten den Stromverbrauch über eine bestimmte Zeit? Ist es falsch quasi nach jedem Loop-Durchgang den vorherigen Stromwert + aktuellen Stromwert zusammenzurechnen und geteilt durch 2 um den aktuellen Durchschnittsstrom zu ermitteln, und um dann quasi zu jedem Zeitpunkt den Stromverbrauch berechnen zu können? Danke
Du musst den Strom integrieren, das benötigt ein bekanntes, am besten konstantes, Abtastintervall. Einfach in der Loop addieren funktioniert da nicht, dafür gibt es Timer.
oder sollte ich die Stromwerte aufaddieren und die Anzahl Werte zählen und nach dem gewünschten Zeitpunkt die Summe geteilt durch die Anzahl Werte?
epika schrieb: > Ist es falsch quasi nach jedem Loop-Durchgang den vorherigen Stromwert + > aktuellen Stromwert zusammenzurechnen und geteilt durch 2 um den > aktuellen Durchschnittsstrom zu ermitteln, und um dann quasi zu jedem > Zeitpunkt den Stromverbrauch berechnen zu können? Jain? Du kannst den Strom mit einem gleitenden Filter oder sonstwie filtern, wie es für deine Anwendung angemessen ist. Mittelwert über 2 Samples ist vielleicht etwas wenig, je nach Anwendung. "True RMS" wäre dann wohl so schnell wie möglich, also einfach Strom zum Samplezeitpunkt mal Zeit zwischen zwei Samples. Je nachdem, was du vor hast, kann es sinnvoll sein oder auch nicht. Und um kleinlich zu sein: Strom*Zeit ist kein Stromverbrauch, sondern eine Ladungsmenge. Was landläufig als "Stromverbrauch" bekannt ist, würde noch die Spannung beinhalten, also Leistung*Zeit. Da gilt für die Filter aber auch das, was sinnvoll für deine Anwendung ist.
Das du die Bandbreite des Eingangssignals begrenzt (über einen Tiefpass)? Dann weißt du die minimal notwendige Abtastrate. Ob die ausreicht, hängt von system ab, also wie der Stromverlauf, den du messen möchtest überhaupt aussieht (insbesondere die Bandbreite. Mitteln funktioniert bei Gleichstrom wunderbar, bei (zu schnellem) Wechselstrom vielleicht nicht mehr.
epika schrieb: > Wie berechne ich jetzt am genauesten den Stromverbrauch über eine > bestimmte Zeit? epika schrieb: > oder sollte ich die Stromwerte aufaddieren und die Anzahl Werte zählen > und nach dem gewünschten Zeitpunkt die Summe geteilt durch die Anzahl > Werte? Was ist Dein Ziel? Also welchen Wert, welche Einheit erwartest Du? * Ah (Amperestunden wie bei einer Batterie)? * Wh (Wattstunden, das, was wir gemeinhin als "Stromverbrauch" bezeichnen)? * Ampere? Also einen Durchschnittsverbrauch? Wenn es Ah oder Wh sind, dann ist Integration notwendig und dafür eine Zeit. Für Wh auch die Spannung, falls nicht konstant. Es kommt auf den Einsatzfall an, ob z.B. negative Ströme negativ gezählt werden. Darum solltest Du schreiben, was Du erreichen willst.
epika schrieb: > Wie berechne ich jetzt am genauesten den Stromverbrauch über eine > bestimmte Zeit? Das, was Du Deinem Stromversorger bezahlst, ist nicht der Strom (A), sondern die elektrische Arbeit in Wh bzw kWh, also Wirkleistung über die Zeit aufsummiert. Für die Wirkleistung musst Du nicht nur den Strom, sondern auch die Spannung messen. https://de.wikipedia.org/wiki/Wirkleistung fchk
Eins N00B schrieb: > Das du die Bandbreite des Eingangssignals begrenzt (über einen > Tiefpass)? > > Dann weißt du die minimal notwendige Abtastrate. Im praktischen Leben gibt es leider keine Rechteckfilter. Bei der Wahl der Abtastrate kommt es daher immer auf die Bandbreite des Filters, die Steilheit des Filters, das Spektrum des Eingangssignal und die zulässigen Fehler an.
Was es gibt sind schnelle Stromwandler, 2mA zu 2mA Wandler für die Spannungsmessung und DsPik33 mit simultan 12bit AD Wandlern im Msample Bereich. Da winkt eine brauchbare RMS Berechnung schon dank des DSP und der fetten Hardware Multiplizier. MfG Michael
Allenfalls sollte man solche Dinge Energiemessern wie zB einem ADE7758, welcher jetzt grad fuer 3 phasen waer, es gibt auber auch einphasige.
epika schrieb: > Stromverbrauch Wovon denn ? Gleichstrom, Wechselstrom, Drehstrom, mit Blindstrom oder ohne ? Erzähl bloss nicht zu viel uber dein Mossad-Projekt, es könnte sonst noch eine Lösung am Horizont auftauchen.
Hallo, sorry, da waren wohl zu wenig Informationen vorhanden, aber ihr habt mir schon sehr weitergeholfen. Ich messe Gleichstrom zwischen 1A und 50A. Messen möchte ich den Ah-Verbrauch (Akku / Ebike). Angenommen die Strommessung erfolgt in gleichen Zeitabständen (z.B. alle 10ms), dann sehe ich zwei Möglichkeiten den "Durchschnittsstrom" z.B. nach jeder Minute zu ermitteln: 1) Immer letzter Stromwert + aktueller Stromwert geteilt durch 2, und nach einer Minute diesen "Durchschnittsstrom"-Wert geteilt durch 60. 2) Oder ich addiere alle 10ms die Stromwerte und teile nach einer Minute durch 6000 und setze die Summe wieder auf 0 zurück.. Irgendwie bin ich mir nicht sicher ob und wenn ja, welches von beiden korrekt ist? Danke
bei 2) natürlich geteilt durch 6000 und dann noch teilen durch 60...
epika schrieb: > Irgendwie bin ich mir nicht sicher ob und wenn ja, welches von beiden > korrekt ist? Kommt drauf an, ob du einen gleitenden Mittelwert haben willst oder einen blockweisen. Du kannst auch, wenn du alle 10ms misst und den Mittelwert über die letzte Sekunde haben willst, einen Puffer uber 100 Werte aufbauen, und die Summe mitführen: erst den letzten Wert von der bosherigen Summe subtrahieren, dann den neuen Wert an seiner Stelle in den Puffer schreiben, und der Mittelwert ist die Summe/100.
MaWin schrieb: > Du kannst auch, wenn du alle 10ms misst und den Mittelwert über die > letzte Sekunde haben willst, einen Puffer uber 100 Werte aufbauen, und > die Summe mitführen: erst den letzten Wert von der bosherigen Summe > subtrahieren, dann den neuen Wert an seiner Stelle in den Puffer > schreiben, und der Mittelwert ist die Summe/100. wieso nicht einfach all 100 Werte summieren, dann nach einer Sekunde die Summe/100 ? Ich verstehe den Sinn der Subtraktion gerade nicht :-/ ...
epika schrieb: > wieso nicht einfach all 100 Werte summieren, dann nach einer Sekunde die > Summe/100 ? Ich verstehe den Sinn der Subtraktion gerade nicht :-/ ... Vielleicht willst du nicht nur alle Sekunde den aktuellen Mittelwert wissen, sondern öfter.
Energie = 0 (kWh) Strom =0 (A) Spannung = 0 (V) Zeit1 = time(now) (sec) Zeit2 = 0 (sec) Differenz = 0 (sec) While(1) { Spannung = (lese ausm shared Momery oder Controller) Strom = (lese ausm shared Momery oder Controller) Zeit2 = time(now) If(Zeit2>Zeit1) { Differenz (sec) = Zeit2-Zeit1 Zeit1= Zeit2 Energie = Energie + ((Spannung*Strom)*(Differenz/3600)) Printf... } } Suchst du sowas?
Hmm schrieb: > Energie = 0 (kWh) > Strom =0 (A) > Spannung = 0 (V) > Zeit1 = time(now) (sec) > Zeit2 = 0 (sec) > Differenz = 0 (sec) > While(1) > { > Spannung = (lese ausm shared Momery oder Controller) > Strom = (lese ausm shared Momery oder Controller) > Zeit2 = time(now) > If(Zeit2>Zeit1) > { > Differenz (sec) = Zeit2-Zeit1 > Zeit1= Zeit2 > Energie = Energie + ((SpannungStrom)(Differenz/3600)) > Printf... > } > } > Suchst du sowas? Sorry eben gesehen du suchst Ah "k" weg (war eh zu viel) Und Spannung weg
Für die "Verbrauchsanzeige" eines E-Bikes erscheint es mir mehr als ausreichend, diese alle 5 sec ... 5 min zu aktualisieren. Viel öfters würde ich eh nicht auf drauf schauen. Wollte ich mir so was basteln (die Sinnhaftigkeit mal außen vor), wäre die Aktualisierungsrate parametrisierbar bzw. sogar am fertigen Gerät einstellbar. 10 "Verbrauchsmessungen" pro Sekunde würden für mein Gerät ausreichen, denn viel dynamischer sind weder die von mir gefahrenen Strecken noch mein Tretstil. Den Aufwand einer Spannungsmessung würde ich nicht treiben. Meine "Verbrauchsanzeige" würde also gemittelte "AMPERE" anzeigen (und keine "WATT"). Es könnte aber durchaus sein, dass mich eher der verbliebene "Tankinhalt" interessiert. Liegt aber auch daran, dass ich das vom V-Bike so gewohnt bin. just my 2ct
Wolfgang schrieb: > Vielleicht willst du nicht nur alle Sekunde den aktuellen Mittelwert > wissen, sondern öfter. sorry, irgendwie verstehe ich trotzdem nicht, wieso ich das so subtrahieren muss. Wenn ich jede Sekunde, bzw. besser nach jeder Minute den Durchschnittwert ausrechne mit Summieren aller Werte und teilen durch die Anzahl Werte (d.h 6000 Werte, wenn Messung jede 10ms für 1min), weiss ich den AmpereDurchschnitt welcher ich dann in Ah umrechne und von der aktuelle AkkuAh abziehe... ist das falsch?
epika schrieb: > Immer letzter Stromwert + aktueller Stromwert geteilt durch 2, und > nach einer Minute diesen "Durchschnittsstrom"-Wert geteilt durch 60. Man kann mit Excel experimentieren und feststellen, welche Verfahren zu falschen Ergebnissen führen.
Georg M. schrieb: > Man kann mit Excel experimentieren und feststellen, welche Verfahren zu > falschen Ergebnissen führen. ich hatte dies probeweise schon mit 10 Werten gemacht, der Unterschied zwischen beide Verfahren war ca. 2..3A, so deshalb bin ich mir unsicher was jetzt korrekt ist...
Georg M. schrieb: > Man kann mit Excel experimentieren und feststellen, welche Verfahren zu > falschen Ergebnissen führen. tja, meine ursprüngliche Frage ist damit noch nicht beantwortet, deshalb habe ich es im Bild im Anhang via Excel veranschaulicht. So logisch und einfach finde ich es nämlich nicht. Beide Ergebnisse scheinen plausibel... Was ist richtig A) oder B) oder gar nichts von beidem ? Danke
Baue doch einfach einen extremen Ausreißer ein mit 1kA für 10ms und schaue dir das Excel-Ergebnis nochmal an.. ;-)
:
Bearbeitet durch User
Nerd 8. schrieb: > Baue doch einfach einen extremen Ausreißer ein mit 1kA für 10ms und > schaue dir das Excel-Ergebnis nochmal an.. ;-) siehe Anhang, 1400A, für mich sind immer noch beide Ergebnisse plausibel...
epika schrieb: > Beide Ergebnisse scheinen plausibel... Plausibel ist nur der Mittelwert per Definition. https://de.wikipedia.org/wiki/Arithmetisches_Mittel Und wenn ein anderes Verfahren ein stark abweichendes Ergebnis liefert, dann ist es falsch.
Nerd 8. schrieb: > Noch ein Wink mit dem Zaunpfahl: > https://de.wikipedia.org/wiki/Gleitender_Mittelwert Georg M. schrieb: > Plausibel ist nur der Mittelwert per Definition. > https://de.wikipedia.org/wiki/Arithmetisches_Mittel Oh god ich werde verrückt, muss eine Antwort auf meine Frage so komplex sein? Ist A) oder B) richtig, oder nichts von beidem? Wenn gar nichts von beidem, werde ich versuchen diese zwei komplexen links zu studieren.... {\displaystyle m_{\text{MA}}^{(n)}(t)={\frac {1}{n}}\sum _{i=0}^{n-1}x(t-i)} Und überhaupt, wie soll ich so eine Formel in C für ein Mikrocontroller programmieren?
epika schrieb: > Oh god ich werde verrückt, muss eine Antwort auf meine Frage so komplex > sein? Ist A) oder B) richtig, oder nichts von beidem? Etwas Eigeninitiative ist schon erforderlich und hier auch erwünscht. Leite zuerst den mathematisch korrekten Weg ab und setzte dann diesen in ein Programm um. So schwer ist das jetzt auch wieder nicht.. :-/
Die Letzer-Wert-plus-Aktuellem-durch-2-Methode ist falsch. Damit baust du dir einen IIR-Filter. Eine Integration, was du brauchst, ist das nicht. Bei deiner Methode einfach mal die Klammern auflösen und schauen, zu welchen Anteilen der Messwert in das Ergebnis eingeht, du wirst feststellen, dass der aktuelle Wert zu 1/2 eingeht, der letzte zu 1/4, der vorletzte zu 1/8, der vorvorletzte zu 1/16 usw. Eine Integration ist einfach die Addition aller Werte. Also Methode A. Eigentlich ganz einfach. Wichtig ist die Wahl der Variablen, nicht, dass die Summe zu groß wird und es zum Überlauf kommt. Aber die Batteriegröße ist ja bekannt.
epika schrieb: > Und überhaupt, wie soll ich so eine Formel in C für ein Mikrocontroller > programmieren? Ein ganz banales Beispiel für einen gleitenden Mittelwert: Beitrag "Re: gleitender Mittelwert im Atmel"
epika schrieb: > aktuellen Durchschnittsstrom zu ermitteln epika schrieb: > Oh god ich werde verrückt, muss eine Antwort auf meine Frage so komplex > sein? Ist A) oder B) richtig, oder nichts von beidem? Wenn DU mit dem Durchschnittsstrom das Arithmetisches Mittel meinst, dann ist A) richtig.
epika schrieb: > Oh god ich werde verrückt, muss eine Antwort auf meine Frage so komplex > sein? Ist A) oder B) richtig, oder nichts von beidem? Dein (A) ist der Mittelwert per Definition, und Excel berechnet den Mittelwert sogar automatisch.
Maxe schrieb: > Die Letzer-Wert-plus-Aktuellem-durch-2-Methode ist falsch. Damit baust > du dir einen IIR-Filter. Eine Integration, was du brauchst, ist das > nicht. > Bei deiner Methode einfach mal die Klammern auflösen und schauen, zu > welchen Anteilen der Messwert in das Ergebnis eingeht, du wirst > feststellen, dass der aktuelle Wert zu 1/2 eingeht, der letzte zu 1/4, > der vorletzte zu 1/8, der vorvorletzte zu 1/16 usw. > > Eine Integration ist einfach die Addition aller Werte. Also Methode A. > Eigentlich ganz einfach. Wichtig ist die Wahl der Variablen, nicht, dass > die Summe zu groß wird und es zum Überlauf kommt. Aber die Batteriegröße > ist ja bekannt. Ok super danke, das hilft sehr. Also in dem Fall ist "Integration" wohl gleichzusetzen mit arithmetischen Mittelwert... Nerd 8. schrieb: > Ein ganz banales Beispiel für einen gleitenden Mittelwert: > Beitrag "Re: gleitender Mittelwert im Atmel" ob jetzt gleitender Mittelwert oder arithmetischer Mittelwert für die Ermittlung des Ah Verbrauch bei einem EBike sinnvoll ist, muss ich mir wohl selber beantworten. Ok, also herzlichen Dank für alle Beiträge, sehr hilfreich.
Nerd 8. schrieb: > Noch ein Wink mit dem Zaunpfahl: > https://de.wikipedia.org/wiki/Gleitender_Mittelwert Ja, richtig, er braucht den gleitenden Mittelwert. Aber wie prüft man, ob die Implementierung korrekt ist? - Ganz einfach: mit dem klassischen arithmetischen Mittel.
epika schrieb: > ob jetzt gleitender Mittelwert oder arithmetischer Mittelwert für die > Ermittlung des Ah Verbrauch bei einem EBike sinnvoll ist, muss ich mir > wohl selber beantworten. Ich bin gerade der Meinung, das sich der arithmetischer Mittelwert besser eignet, da einfacher zu realisieren. Der arithmetischer Mittelwert * Zeitintervall ist bereits die elektrische Ladung. Diese dann für die gesamte Fahrt über aufsummiert ergibt die Gesamtladung. Wenn du aber keine Anzeige des Mittelwerts brauchst sondern nur die Ah feststellen willst, dann ist das doch gar nicht notwendig. Dann einfach Stromwerte aufsummieren und fertig. Durch den Zeitintervall zwischen den Stromwerten und dem jeweiligen Messwert weist du bereits alles. Z.B. Zeitintervall 1s, also in einer Stunde 3600 Messwerte und das entspricht dann As. Das lässt sich einfach in Ah umrechnen ;) Das setzt natürlich voraus, dass die Abtastung schnell genug ist. Aber das ist ein anderes Thema.
Dirk K. schrieb: > Ich bin gerade der Meinung, das sich der arithmetischer Mittelwert > besser eignet, da einfacher zu realisieren. Der arithmetischer > Mittelwert * Zeitintervall ist bereits die elektrische Ladung. Diese > dann für die gesamte Fahrt über aufsummiert ergibt die Gesamtladung. > > Wenn du aber keine Anzeige des Mittelwerts brauchst sondern nur die Ah > feststellen willst, dann ist das doch gar nicht notwendig. Dann einfach > Stromwerte aufsummieren und fertig. Durch den Zeitintervall zwischen den > Stromwerten und dem jeweiligen Messwert weist du bereits alles. > > Z.B. Zeitintervall 1s, also in einer Stunde 3600 Messwerte und das > entspricht dann As. Das lässt sich einfach in Ah umrechnen ;) > > Das setzt natürlich voraus, dass die Abtastung schnell genug ist. Aber > das ist ein anderes Thema. mm ja genau, ich messe und summiere aktuell alle 10ms und berechne den Mittelwert jede Minute. Also Summe der Werte / 6000 (60'000ms / 6000 = 10ms) und dann weiss ich den Stromverbrauch pro Minute und für Ah einfach noch durch 60 teilen...
Nein, kein Mitteln! Richtig ist: Summe der Stromwerte mal Meßintervall (hier 10ms) über die gesamte Zeit. Dann erhältst du das, was du im ersten Post gesuchst hast: "Wie berechne ich jetzt am genauesten den Stromverbrauch über eine bestimmte Zeit?"
epika schrieb: > Also Summe der Werte / 6000 (60'000ms / 6000 = 10ms) und dann weiss ich > den Stromverbrauch pro Minute und für Ah einfach noch durch 60 teilen... Damit bekommst du einen Durchschnitt. Einheit ist [A] Ampere. Du sucht aber die "verbrauchte" elektrische Ladung in [Ah] Amperestunden. Dann musst du bei der Rechnung auch auf diese Eineit(en) kommen. Also (Strom [A] * Zeit [h oder s oder ms]! KeinMitteln schrieb: > Nein, kein Mitteln! Richtig ist: > > Summe der Stromwerte mal Meßintervall (hier 10ms) über die gesamte Zeit. > > Dann erhältst du das, was du im ersten Post gesuchst hast: > "Wie berechne ich jetzt am genauesten den Stromverbrauch über eine > bestimmte Zeit?" THIS! Idealisiert gibt dein AD-Wandler bereits das arithmetische Mittel über die 10ms an. Gehen wir davon nun einfach mal aus und vernachlässigen die möglichen Abweichungen falls dem nicht so ist. Du summierst einfach ALLE Messwerte auf: SUM_A= SUM_A + Actual_A. Das multiplizierst du mit dem Zeitintervall von 10ms: SUM_Ams = SUM_A * 10[ms] Das kannst du natürlich noch in Ah umrechnen, wenn du magst. 1h = 3.600.000ms -> SUM_Ah = SUM_A * 10 /3600000. Idealerweise siehst du dann noch eine Möglichkeit vor, SUM_A auf Null zu setzen, sonst wird es irgendwann unübersichtlich ;)
:
Bearbeitet durch User
Dirk K. schrieb: > Damit bekommst du einen Durchschnitt. Einheit ist [A] Ampere. > Du sucht aber die "verbrauchte" elektrische Ladung in [Ah] > Amperestunden. Dann musst du bei der Rechnung auch auf diese Eineit(en) > kommen. Also (Strom [A] * Zeit [h oder s oder ms]! ui ja danke, da habe ich ein groben Überlegungsfehler gemacht. Also nach einer Minute die Summe der Anzahl gemessenen Wert durch die Anzahl Werte zu teilen gibt immer noch A und nicht Amin oder sonst was..
epika schrieb: > ui ja danke, da habe ich ein groben Überlegungsfehler gemacht. > Also nach einer Minute die Summe der Anzahl gemessenen Wert durch die > Anzahl Werte zu teilen gibt immer noch A und nicht Amin oder sonst was.. ...aber dann mit 1/60 multipliziert sind dann Ah...
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.