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
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
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.
hi, durchfluss integrieren.... vielleicht kannst du ueber einen Totalisator (xxx Liter) einen mittelwert errechnen. ed
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?)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.