Forum: Mikrocontroller und Digitale Elektronik Mittelwertbildung


von Tobias Herwick (Gast)


Lesenswert?

Hallo,

ich arbeite gerade an einem Projekt, ein kleiner Teil davon ist das
erfassen eines Durchflusses per 4-20mA Sensor.
Die nötige Schaltung zum I/U wandeln ist schon fertig.
Der µc misst nun alle 500ms die Spannung, so und nun kommt das
Problem:
Es soll ein Mittelwert gebildet werden, der entweder alle 5,20, oder 60
Minuten per UART abgefragt wird. (µc bekommt eine Anfrage und schickt
daraufhin den Mittelwert raus)

Die konkrete Frage ist nun, wie bilde ich über diesen Zeitraum einen
vernünftigen Mittelwert?
Zu testzwecken hab ich das mal einfach mit:
Mittelwert=(Mittelwert+neuerWert)/2 gemacht, geht auch, aber da ist der
Fehler ja enorm hoch.
Würde ich das mit einem gleitenden Mittelwert machen, würde ich aber
auch nur die letzten x Werte berücksichtigen.

Der Clou wäre es alle Werte zu berücksichtigen und dabei die zuletzt
gemachte Tendenz zu priorisieren.

Wäre schön wenn mir da Jemand einen Tip geben könnte :-)

Ich wünsche allen noch einen schönen oster Sonntag.

Bye Tobias

von Martin (Gast)


Lesenswert?

Hallo,

verwende doch einen Ringbuffer:

A B C D E F G

Schreibe einfach von A bis G und wieder von A - G und bilde den
Mittelwert über diesen Buffer.


Martin

von Tom (Gast)


Lesenswert?

Gib doch einfach die Summe aller Messwerte seit der letzten Abfrage mit
der Anzahl der Messungen an. Dann kannst du dir (warscheinlich mittels
PC) denn Mittelwert einfach ausrechnen.

Ist warscheinlich die fehlerärmste Methode.

von edi.edi (Gast)


Lesenswert?

hi,

durchfluss integrieren....

vielleicht kannst du ueber einen Totalisator (xxx Liter) einen
mittelwert errechnen.

ed

von Rahul (Gast)


Lesenswert?

Tom hat doch die Lösung schon gegeben:
Messwert aufnehmen, zu den anderen hinzuaddieren und einen Index
inkrementieren.
Sobald ein die Anfrage vom PC kommt den Quotient aus Summe und Index
bilden und an den PC übertragen.
Danach müsste man doch die Summe und den Index auf Null zurücksetzen;
ansonsten hättest du irgendwann ein Problem (konvergiert gegen
Unendlich, oder?)

von Tobias Herwick (Gast)


Lesenswert?

Ja danke so werde ichs machen, manchmal sieht man den Wald vor lauter
Bäumen nicht hehe.
Ich glaube ich werd es auch lassen, die letzten Messwerte anders zu
gewichten als die ersten.
Jo, nach dem Senden müssen die beiden Variablen auf 0 gesetzt werden.
Sonst würde irgentwann ein überlauf stattfinden.
Sie divergiert gegen Unendlich, dh. sie hat keinen Grenzwert,
Konvergente Folgen haben einen Grenzwert.

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.