Forum: Mikrocontroller und Digitale Elektronik LiPo per ADC messen und Mittelwert bilden


von Alfred S. (hood)


Lesenswert?

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!

von Stefan P. (form)


Lesenswert?

Kommt drauf an.
Bitte!

: Bearbeitet durch User
von Stefan (Gast)


Lesenswert?

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? ...

von Alfred S. (hood)


Lesenswert?

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
von Mick (Gast)


Lesenswert?

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.

von Arduinoquäler (Gast)


Lesenswert?

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 ...

von Alfred S. (hood)


Lesenswert?

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?

von Adc (Gast)


Lesenswert?

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.

von Nop (Gast)


Lesenswert?

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.

von Arduinoquäler (Gast)


Lesenswert?

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.

von Harald W. (wilhelms)


Lesenswert?

Alfred S. schrieb:

> Eine Genauigkeit von 0,01 V reicht.

Das ist aber schon recht anspruchsvoll.

von Alfred S. (hood)


Lesenswert?

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
Noch kein Account? Hier anmelden.