Nachführen einer Schaltschwelle

OP #642647
Hallo Leute,
ich lese einen Sensor aus. Dieser gibt mir einen 14bit Wert und daraus 
bilde ich wiederumeinen Mittelwert. Das funktioniert alles soweit 
100%ig. Der Sensor reagier auf Wärmestrahlung (Bewegungsmelder). Nun 
pendelt sich der Mittelwert natürlich immer woanders ein (je nach dem wo 
der Bewegungsmelder steht draußen/drinnen).
Am Anfang setzte ich Wert k = dem Mittelwert. Wenn sich der Mittelwert 
nun weiter als eine Zahl X von dem festgesetzen Wert k entfernt, soll 
ein Flag gesetzt werden. Wenn natürlich der Mittelwert nur langsame 
veränderungen zeigt, soll der Wert k wieder = dem Mittelwert sein.
Wie kann ich das am besten realisieren?

Ich hoffe ihr habt mich verstanden ;-)

MfG
Muecke
Du brauchst vermutlich eine differentielle Erfassung der Werte, d.h., 
Dich interessiert nicht der Wert an sich sondern die Änderung (Steigung) 
des Wertes. Im einfachsten Fall wertest Du (bei konstanten 
Abtastintervallen) nur die Differenz zwischen dem aktuellen und dem 
letzten Wert aus. Wenn die einen bestimmten Wert überschreitet, dann 
wird das Flag gesetzt.
Gast
Ist doch recht einfach. Wenn ein Bewegungsmelder eine Person detektiert,
ändert sich schlagartig das Wärmestrahlungsnieveau. Also eine schnelle 
Änderung.
Die Umgebungstemperatur ändert sich vermutlich nicht so schnell.

Ich würde das so lösen:

Mit einem IIR-Filter einen Mittelwert nachführen.
Das einfachste wäre hier alle paar Sekunden den alten Mittelwert mit 
Faktor 0,5 auf den aktuellen Momentanwert mit Faktor 0,5 auf zu 
addieren.
Dadurch steigt dein Mittelwert langsam mit der Umgebungstemperatur an.
Die Anstiegszeit kannst du mit der Periodendauer der Messwertaufnahme 
oder auch mit den beiden Faktoren ändern.

k = 1/2 k_alt + 1/2 X (IIR-Filter)

Weiter würde ich ein gewisses Delta für die Detektion einer Person 
fordern.
Das Messsignal muss also um Delta über dem nachgeführten Mittelwert 
liegen.

Probiers mal oder du musst noch mehr Infos geben.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 19 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.