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.
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
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
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.
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
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...
Nerd 8. schrieb:> Noch ein Wink mit dem Zaunpfahl:> https://de.wikipedia.org/wiki/Gleitender_MittelwertGeorg 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:> aktuellen Durchschnittsstrom zu ermittelnepika 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 ;)
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...