Hallo zusammen, ich widme mich gerade dem Timer, der x mal pro Sekunde den Akku messen soll. Nach y Messungen soll ein Mittelwert gebildet werden und dann eine Aktion erfolgen. Was denkt ihr über folgendes? 4 mal pro Sekunde messen, insgesamt über 4 Sekunden Dauer. Somit hat man 16 Werte erhalten. Diese 16 Werte addiert dann geteilt durch 16 = Mittelwert -> führe dann eine Aktion durch. Ich wäre dankbar über eine Auskunft, ob obige Vorgehensweise zum Erhalt des Messergebnisses Sinn macht oder würdet ihr die Messungen öfters durchführen bzw. über einen längeren Zeitraum? Danke!
Wie soll man das pauschal beantworten? Allein dass du dir Gedanken über eine Mittelwertbildung machst zeigt ja, dass du einer Einzelmessung aus irgendwelchen Gründen nicht traust. Welche sind das? Welche Genauigkeit strebst du an? ...
Worauf? Dann kann ich dir die genaue Anforderung schildern. Es könnten ein paar Lastspitzen entstehen (Display mit Controller einschalten etc.), von daher die Messung über die 4(?) Sekunden. Eine Genauigkeit von 0,01 V reicht.
:
Bearbeitet durch User
Für solche Zwecke verwendet man normalerweise den Median. Spizten werden damit rausgefiltert/ignoriert. Messintervall und -dauer musst du gemäss deinem Setup wählen.
Alfred S. schrieb: > Worauf? Ich denke mal an eine Kamera ...... diese Zeigt den Ladezustand (Spannung) überhaupt erst an wenn die Kamera einige Sekunden gelaufen ist. Will heissen sie wartet erst einen "brauchbaren" eingeschwungenen Lastzustand ab bevor sie misst und ausgibt. Dieser Zustand ist offensichtlich kurz nach dem Einschalten noch nicht gegeben. Vielviel man misst (Mittelung) ist dann erst (später) zu beurteilen ...
Arduinoquäler schrieb: > Will heissen sie wartet erst einen "brauchbaren" > eingeschwungenen Lastzustand ab bevor sie misst und ausgibt. Verstehe. Also wenn ein paar Sekunden gewartet wird, bis alles "on" ist, reicht es den Mittelwert zu bestimmen!? Wenn ich jetzt an einen USB Hub (Raspberry) noch einen WLAN Stick dranklemme und ggf. noch sonstige stromhungrige Peripherie: dann wäre Mittelwertbildung Quatsch und die Meridianlösung anzustreben?
Nicht nur mit USB Hub ist der Median der Weg. Sogar, wenn die Belastung nicht so hoch ist, kann es trotzdem gut vorkommen, dass du unbrauchbare "Ausreisser" mit unter den Werten hast. Du kannst das entweder Softwaremässig lösen oder z.B. Einen Filter nutzen. Wenn ich eine Akkuzelle mit dem AtMega messe, sind bei 10 Messungen öfter schon mal 2 unbrauchbare dabei. Einer ist dann z.b. Aus unerklärlichen Gründen 0 und einer weicht stark ab (oft die erste Messung). Daher willst du immer erstmal filtern.
Der Nachteil eines Medianfilters ist aber der deutlich höhere Rechenaufwand. Bei einem Mittelwert muß man nur den ältesten Wert von der Mittelwertsumme abziehen und den aktuellen Wert draufaddieren. Sinnigerweise wählt man eine Zweierpotenz als Anzahl der Werte, dann kann man die Mittelwertsumme shiften anstatt zu dividieren. Für die Ausreißerwerte: Man hat ja typischerweise einen Bereich, in dem man arbeiten kann. Dann kann man einfach auf z.B. Untergrenze-0.2V bis Obergenze+0.2V clippen. Ich würde übrigens empfehlen, wenigstens beim Hochfahren erstmal einen Last-Streßtest auf die Batterie zu geben und währenddessen die Spannung zu messen. Das ist dann aussagekräftiger. Vier Sekunden sind auch nicht nötig. Man kann auch alle 10ms im Timerinterrupt messen und über z.B. 8 Werte mitteln. Die nächste Messung stößt man aus dem Timerinterrupt unmittelbar nach dem Auslesen des Meßwertes an - in 10ms ist das auf jeden Fall fertig.
Nop schrieb: > Der Nachteil eines Medianfilters ist aber der deutlich höhere > Rechenaufwand. Es ist ein Witz beim Vorgang einer Batterieladung/-Entladung in Rechenaufwand/Geschwindigkeit zu denken ..... Ob ich eine oder hundert Millisenkunden rechnen muss spielt in solch einem Zusammenhang keinerlei Rolle, schon auch deswegen weil die Messwerte über einen wesentlich längeren Zeitraum gemittelt werden als Rechenzeit benötigt wird.
Danke für den Input. Ich schaue mir mal die Medianvariante an.
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.