Forum: Offtopic Selbstregulierender Moving Average?


von Pet. H. (p_h)


Lesenswert?

Guten Tag,

ich kenne mich mit diesen Dingen wenig aus und habe mal eine Frage an 
die Profis hier die sicher mehr Ahnung von Datenfilterung usw verstehen 
als ich.

Ich suche eine Möglichkeit einen Moving Average (Gleitender Mittelwert) 
sich auf beliebigen Datenreihen selbst zu regulieren indem dieser sich 
möglichst "optimal" an eine beliebige Datenstruktur anpasst. Das Problem 
ist, dass es beim normalen Moving Average immer einen fixen Parameter 
gibt und zwar die Wahl der Anzahl der Daten die zur Berechnung gewählt 
werden.

Egal um welche Daten es sich handelt (Wetter oder sonstwas), es wird 
immer Phasen geben wo eine kleinere Datenspanne dem Verlauf besser folgt 
als eine größere Datenspanne oder umgekehrt. Ziel ist es also den 
Parameter der Datenspanne (Anzahl der zu berechnenden rückliegenden 
Datenpunkte) anhand der Datenstruktur selbst zu regulieren.

Als Beispiel: Eine Temperatur steigt im Durchschnitt über ein paar 
Wochen stetig an und die Tag/Nacht-Differenz liegt bei 5°C. Man probiert 
verschiedene Datenspannen aus und kommt zB. zum Ergebnis, dass zur 
Berechnung des MAs 100 Datenpunkte zu einer angemessenen Kurve führt, 
die die Tag/Nacht-Differenz wegglättet aber trotzdem beim sinken der 
Durschnittstemperatur nicht zu spät reagiert.
Und jetzt wird es spannend: Nun ändert sich das Wetter indem sich 
plötzlich die Tag/Nacht-Differenz stark erhöht auf zB. 15°C. Der MA 100 
versagt durch die stärkere Schwankung und glättet nicht mehr korrekt. 
Ein höherer MA zb 150 wäre nun angemesser.
Und genau diesen Parameter möchte ich automatisieren also 
selbstregulierend hinbekommen, habe aber keine Idee wie das 
funktionierten könnte.

Ich hoffe ich konnte es einigermaßen Darstellen auf was ich hinaus will 
und würde mich über Ideen und Tipps freuen.

Gruß

von Lord of L. (lightninglord)


Lesenswert?

Wie du selbst schön beschrieben hast, mittelt der MA gewisse 
Schwankungen aus. Woher soll der MA den aber wissen auf welche minimale 
Änderungsgeschwindigkeit du aus bist? Wenn du nur Rauschen filtern 
möchtest, könntest du das System schätzen bzw. dessen kleinste 
Zeitkonstante. Die Zeitkonstante des MA muss dann kleiner als diese 
sein, damit du tatsächliche Änderungen, welche vom Rauschen verschieden 
sind, noch mitbekommst.

Der Glaskugel-Modus funktioniert aber i.A. nicht, du musst die Daten 
interpretieren, das ist nun mal von Fall zu Fall verschieden...

von Pet. H. (p_h)


Lesenswert?

Ok stimmt irgendein Anhaltspunkt für den Start braucht es. Man könnte 
erst manuell gucken welcher Wert zur Zeit am besten passt und könnte 
diesen als Basis für die weitere Berechnung verwenden. Wenn jetzt die 
Schwankung oder die Struktur stärker wird könnte dies ein 
Multiplikationsfaktor steuern, der Startwert wird dann zB mit 1.1 
multipliziert und somit passt sich das System dynamisch an. Die Frage 
ist nur welcher Algorythmus oä steuert einen Multiplikationsfaktor? 
Dieser Algo müsste in der Lage sein die Struktur oder Schwankung als 
Zahl auszugeben damit man dies wiederrum als Faktor  nutzen kann...

von Falk B. (falk)


Lesenswert?

Das nennt sich adaptiver Filter, über das Thema wurden schon Dutzende 
Bücher geschrieben. Wenn man das Filter automatisch abgleichen will, 
muss man eine Zielfunktion definieren. Damit wird der Filter zur 
Regelstrecke. Hinter dem Filter muss man messen, ob der Zielparameter 
(Z.B. Spitze-Spitzte Rasuchen) erreicht wurde oder nicht. 
Dementsprechend muss dann der Regler die Filterkoeffizienten verändern, 
im einfachsten Fall die Anzahl der Messwerte zur Mittelwertbildung.

von P. M. (o-o)


Lesenswert?

Nehmen wir als Beispiel einen Temperatursensor: Der hat zunächst 
kurzfristiges Rauschen. Dann schwankt der Wert durch vorbeiziehende 
Wolken. Dann schwankt er im Tagesverlauf. Dann schwankt er im 
Jahresverlauf. Dir bleibt hier nichts anderes übrig, als manuell zu 
entscheiden, welcher dieser Kurven du folgen möchtest.

Man kann es drehen und wenden, wie man will, aber das geht nicht 
automatisch. Man könnte mit einer FFT natürlich wichtige Peridizitäten 
und Grenzfrequenzen finden und dann anhand derer sich für eine 
Periodenlänge entscheiden, aber auch dann muss man eine manuelle 
Entscheidung treffen.

von Pandur S. (jetztnicht)


Lesenswert?

Die vorgeschlagene Mittelung geht in die Richtung : wie bescheisse ich 
mich selbst mit angenehmen Kurven.
Bei Temperaturen wuerde ich erst mal die Physik betrachten, bevor ich 
mich der Mittelung widme. Der Sensor misst naemlich schon richtig. 
Dessen Rauschen ist sehr klein.

Die Frage ist eher : WAS misst der Sensor ?

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.