"Ähnlichkeitsanalyse" von Sensorwert

Gast #4447613
Lesenswert?
• ▲
▼
Hallo zusammen,

ich würde bei einer Sensormesswertausgabe, bevor ich den Sensorwert an 
das Display übergebe, eine erhöhte Sicherheit einbringen, in dem ich
den gemessenen Wert mit den vorher-gemessenen Wert vergleiche.

Ich will dadurch verhindern, dass ein Ausreißer, der aufgrund des 
Messaufbaus leider vorkommen kann, ausgegeben wird.

Ich bräuchte also einen Algorithmus, der im Prinzip den (die) 
vorhergehenden Wert(e) mit den aktuellen vergleicht, und dann erst ggf. 
die Ausgabe macht.
Ein Mittelwert von Messungen o.ä. macht keinen Sinn, da die Ausreißer 
das Ergebis zu sehr verfälschen.

Wie stellt man sowas an ? Mit welcher Methode speichere ich die vorher 
gemessen Sensorwerte und vergleiche dann den aktuellen damit ?

Vielleicht kann mit jmd. ein paar Stichpunkte nennen ?

Danke, Michael
Gast #4448325
Lesenswert?
• ▲
▼
Das Erkennen von Ausreißern ist relativ leicht, wenn man sich
die Daten HINTERHER anschaut.

Du sagst aber nicht, ob du Messreihen erfassen willst, die
später ausgewertet werden sollen, oder eine Überwachung
von Betriebsparametern durchgeführt werden soll, die nicht
auf Ausreißer über-reagieren soll.

Hier zwei übliche Methoden, bei denen man sich nur den vorherigen
Ausgabewert merken muss - oft reicht das:

1) Üblicherweise werden "verrauschte" Messwerte mit einer
RC-Tiefpass-Nachbildung gefiltert.
Von jedem neuen Messwert wird die Abweichung zum vorherigen
Ausgabewert ermittelt. Diese Abweichung wird mit einem Faktor
TP < 1.0 multipliziert. Das Ergebnis wird zum vorigen Ausgabewert
addiert und als neuer Ausgabewert zur Anzeige gebracht.
Damit werden Ausreißer gedämpft, aber die Anzeige hinkt dem
realen Verlauf der Messwerte IMMER etwas hinterher.

Liegen vielleicht Erfahrungen vor, wie groß die maximale
Änderung der Messwerte pro Messzyklus (ohne Ausreißer) in
68% ... 96% der Fälle ist? (Hier kommt sigma ins Spiel.)
- Nennen wir diesen Wert DMAX.

2) In diesem Fall kann man neue Messwerte, die sich (absolut)
um weniger, als DMAX vom vorherigen Anzeigewert unterscheiden,
unverändert durchlassen, während größere Änderungen mit
passendem Vorzeichen auf alten Wert +/-DMAX begrenzt werden.

Damit bleibt die Anzeige zeitlich nah am realen Messwert,
während Ausreißer reduziert werden - und ECHTE (dauerhafte)
Sprünge mit nur wenig Verzögerung sichtbar werden.

Es geht natürlich auch aufwändiger...
Gast #4448419
Lesenswert?
• ▲
▼
Michael schrieb:
> ich würde bei einer Sensormesswertausgabe, bevor ich den Sensorwert an
> das Display übergebe, eine erhöhte Sicherheit einbringen, in dem ich
> den gemessenen Wert mit den vorher-gemessenen Wert vergleiche.

So ein Algorithmus hat lange Zeit die Entdeckung des Ozone-Loches über 
der Antarktis verhindert. Die Daten wurden in der ersten Zeit als 
Messfehler rausgeschmissen.

Ein Median-Filter hilft, erzeugt aber in Form eines kausales Filter auch 
einen Zeitversatz.

Jakob schrieb:
> Liegen vielleicht Erfahrungen vor, wie groß die maximale
> Änderung der Messwerte pro Messzyklus (ohne Ausreißer) in
> 68% ... 96% der Fälle ist?

Das hängt vom Prozess und von der Messung ab. Pauschal läßt sich das 
nicht beantworten.
Gast #4448546
Lesenswert?
• ▲
▼
Jakob schrieb:
> in
> 68% ... 96% der Fälle ist? (Hier kommt sigma ins Spiel.)

Daher der 3Sigma-Test. Das Wissen darüber scheint aber gründlich 
verlorengegangen zu sein. Der Unterschied zum Median-Filter: da bleibt 
der wahrscheinliche falsche Messwert drin in der Auswertung, es wird 
lediglich so gemixt, dass ein gemittelter Momentanwert entsteht. Bei 
Sigma-Tests fliegt ein unplausibler Wert ganz aus der Messreihe raus.

Voraussetzung ist theoretisch, dass die Messwerte einer Gaussverteilung 
unterliegen. Ob man nun 1,2 oder 3 Sigma als Grenze nimmt ist 
Geschmackssache und auch von der Qualität der Messungen abhängig. Bei 3 
Sigma ist eine Überschreitung so unwahrscheinlich dass sie in der Praxis 
nicht vorkommt.

Implementieren kann das der TO sicher nicht, aber mit der Rechenleistung 
gibt es kein Problem, ich hatte das vor Jahrzehnten schon auf einem Z80 
laufen.

Georg
#4448595
Lesenswert?
• ▲
▼
Georg schrieb:
> Der Unterschied zum Median-Filter: da bleibt
> der wahrscheinliche falsche Messwert drin in der Auswertung

sehe ich nicht so, aus einer Reihe von Werten wird der "mittlere" Wert 
genommen, damit kommt eine Ausreißer nicht in die AUswertung

Wolfgang schrieb:
> Ein Median-Filter hilft, erzeugt aber in Form eines kausales Filter auch
> einen Zeitversatz.

man kann den Medianfilter etwas abwandeln:
man nimmt den neuen Wert dann, wenn er in der Messreihe von sagen wir 10 
Werten keinen Randplatz einnimmt, wenn der Wert auf einem Randplatz 
sitzt wird entweder der nächstliegende Wert genommen oder der Medianwert

damit gibt es keinen Zeitversatz solange keine Störungen sind
Gast #4448611
Lesenswert?
• ▲
▼
Walter S. schrieb:
> damit gibt es keinen Zeitversatz solange keine Störungen sind

Doch, wenn die Eingangsgröße der Messung ein Sprung ist, wird die 
Erkennung verzögert. Die Erkennung von Störungen erfordert mehr 
Abtastwerte und mehr Abtastwerte erzeugen bei kausalen Filtern 
Zeitversatz.

Georg schrieb:
> Das Wissen darüber scheint aber gründlich verlorengegangen zu sein.

Mitnichten. Aber nicht alle Prozessdaten lassen sich damit beurteilen.
Die statistische Verfahren die auf Normalverteilung beruhen, können auch 
nur mit Prozessdaten umgehen, die sich ausreichend gut durch eine 
Normalverteilung beschreiben lassen. Sprünge gehören nicht dazu.
Gast #4448660
Lesenswert?
• ▲
▼
Also mir fällt da ja direkt die Autokorrelationsfunktion ein. Verwendet 
man in Radaranlagen, um den zurückkommenden Radarpuls von Störstrahlung 
unterscheiden zu können.
Sollte sich bei genügend großer Abtastrate auch auf nem µC 
implementieren lassen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren