www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Mittelwertbildung


Autor: Tobias Herwick (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: edi.edi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi,

durchfluss integrieren....

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

ed

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?)

Autor: Tobias Herwick (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.