Forum: Mikrocontroller und Digitale Elektronik Mittelwertbildung


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
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.

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]
  • [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.