Mein Sensor liefert zappelnde Werte (ca +- 0,5%) und da er relativ langsam ist (5 Werte in der Sekunde), kann ich nicht 1000 Werte lesen und den Mittelwert bilden. Hat jemand C-Sourcecode für einen Filter? Suche mit Google führt zu Butterworth-Filter für Noise-Eliminiation. Ist das díe richtige Richtung?
Bringt es nicht - falls Du das hier meinst: gefilterter messwert(t) = Filter * messwert(t) + (1 - Filter) * messwert(t - 1) mit 0.0 < Filter <= 1.0
Der mittelwert ist auch schon eine Art Filter, und nicht mal einer der schlechtesten. Wenn der Mittelwert also immer noch zu sehr schwankt, muß man für ein besseres Signal sorgen oder die art der Störungen genauer untersuchen. Ein "allgemeiner" Filter ohne extra informationen über die STörungen wird kaum besser.
> Eine exponentielle Mittelung. Benoetigt jeweils nur den letzten Wert. Benötigt nur die Summe der letzten n Werte. Der Mittelwert wird abgezogen, und der neue Wert aufaddiert. Such mal im Forum nach "+mittelwert +berechnen" Beitrag "Re: Gleitender Mittelwert" Beitrag "Re: gleitender Mittelwert im Atmel"
> für ein besseres Signal sorgen oder die art der Störungen genauer
untersuchen
Der Sensor liefert, was er liefert, daran kann ich nichts ändern
(digitales SPI-Interface).
Das Herumzappeln von 0.5% bis fast 0.75% ist problematisch für die damit
verbundene Regelung.
Wenn ich das Signal mit meinem Smoothing-Filter (oben) glatt mache, ist
das Zappeln zwar irgenwann weg, der Faktor muss nur extrem genug
ausfallen, aber weil nur 3 - 5 Werte pro Sekunde kommen, ist das Signal
(z.B. Sprung der Messwerte) danach zu stark verfälscht/verschoben
Ich hätte gerne einen Filter, der das mehr oder weniger symmetrische
Zappeln nach oben und unten filtert, ohne die Tendenz des Signals so
stark zu verändern/verzögern.
(mir fallen als Laie "fuzzy"-Lösungen ein, z.B. zwei aufeinanderfolgede
Anstiege => Filterung reduzieren), aber eine mathematische Lösung wäre
mir lieber.
Naja. Wenn man das Sensor signal kuenstlich langsam macht, der Prozess aber schnell ist, so bekommt der regler ein Problem. Falls der Prozess noch langsamer ist, so wuerde ich das Raschen auf den Regler geben. Die Strecke mach das dann schon weg.
Irgendwie sollten noch ein paar grundlegene physikalische Gesetze berücksichtigt werden. Wenn Ihr Rauschen wegbekomen wollt dann geht das NUR wenn Ihr i) die "Integrationszeit" länger macht wodurch die Responsezeit automatisch langsammer wird oder Ihr ii) irgendetwas über das Raussignal wisst was man ausnutzen könnte (es also kein statistisches Rauschen ist). Alle anderen Zauberlösungen können nicht gehen. Wenn dein Zappeln mit einer gewissen Frequenz geschieht (bei 50 oder 100Hz würde man soetwas Brumm nennen), dann hilft zB ein Notchfilter oder so, ansonsten bleibt nur Sensorsignal verbessern. Die 0.5% sind hoffentlich nicht nur das Ergebnis eines 8-Bit Wandlers? Wenn der Prozess langsamer wäre dann würde die Regelung ja keine Probleme machen => offensichtlich ist bei Mirko der Prozess zu schnell, bzw. die Regelung zu langsam... Wie teils schon gesagt, Mirko, dir bleibt nichts anderes als dein Signal zu verbessern, mehr Messpunkte pro Zeit zu bekommen, oder ein langsames System zu akzeptieren (wenn alles in Echtzeit gehen soll). Olli
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.