Hallo zusammen! Ich beschäftige mich in meiner BA Praxisphase gerade mit der Regelung eines Mischprozesses anhand von Feuchtemessdaten. Dabei soll anhand der Feuchte der Trockenmischung das zusätzlich zu dosierende Wasser bestimmt werden. Leider sind die gemessenen Werte stark verrauscht und enthalten viele prozessbedingte Messfehler. Jetzt bin ich dabei einen Filter zu entwerfen der mir aus den vorliegenden Daten[1] eine schön geglättete Messkurve macht. Bei meiner Recherche bin ich auf das Kalmanfilter gestoßen, welches mit den richtigen Parametern eigentlich schon ganz passable Ergebnisse erzeugt[2]. Indem ich das Filter nicht über alle Messdaten laufen lasse, sondern mit Hilfe eines Moving Average einen begrenzten Bereich aus den Messdaten wähle ist meine Kurve inzwischen eigentlich schon ziemlich gut geworden [siehe rote Kurve, 3]. Leider habe ich noch das Problem das meine Kurve unter einigen Bedingungen zu langsam zur richtigen Zielfeuchte konvergiert. Diese unbequemen Bedingungen sind eine sehr geringe Anfangsfeuchte bevor die Trockenmischung zugegeben wird. Dann schafft mein Filter es oft nicht bis zum Ende der Trockenmischphase zum richtigen Feuchtewert hoch zu laufen und es wird zuviel Wasser dossiert. Da ich inzwischen bezweifle dass sich mein Problem mit dem Kalmanfilter lösen lässt wollte ich jetzt hier mal fragen was man an sonnsten noch für Algorithmen mutzen könnte um dieses Problem in den Griff zu bekommen. Wie würdet ihr da ran gehen? Würde evtl. das Unscented Kalman-Filter oder das Extendet Kalman-Filter mein Problem lösen? Leider kenne ich mich mit Signalverarbeitung noch zu wenig aus, um einen Überblick zu haben, was es eigentlich alles für Methoden gibt und welche für mein (nichtlineares?) System geeignet sind. Vielen dank schon mal im Voraus, Markus [1] http://dl.dropbox.com/u/2721576/raw.png [2] http://dl.dropbox.com/u/2721576/kal.png [3] http://dl.dropbox.com/u/2721576/lim.png
Ich verstehe noch nicht ganz wie du den Kalmanfilter einsetzt. Hast du ein Systemmodel? Was sind deine Eingangsgrößen? Oder machst du Sensorfusion mit dem KF? Der KF setzt ein lineares System voraus. Für nichtlineare Systeme gibt es Modifikationen wie den erweiterten KF. Mit der gleitenden Mittelwertbildung bringst du natürlich auch Verzögerung in das System. Generell halte ich es eh für Blödsinn die Messdaten zu filtern, erst recht mit einer gleitenden Mittelwertbildung. Denn diese reduziert nur zufälliges Rauschen, ist aber nicht in der Lage Frequenzbänder zu trennen. Der Kalmanfilter basiert aber gerade auf der Annahme, dass das Signal von einem normalverteilten weißen Rauschen überlagert ist. Apropos, sind das in deinem Plott reelle Messdaten? Es sieht so aus, als ob der Sensor die Daten auf 25 limitiert. So wird dir auch ein KF keine verlässlichen Daten liefern können.
Nich dass der Prozess nichtlinear waere, .. die Messwerte sind Schrott. Einen Filter drueber zulassen und dabei zu hoffen es kaeme was Sinnvolles raus ist naiv. Ich wuerd mir den Feuchtemessvorgang neu ueberlegen. Es gibt hinreichend Moeglichkeiten die Feuchte zu messen. zB Kapazitiv, Leitfaehigkeit, Absorption von Wellen, ... Was darf's denn kosten ? Wie wichtig ist eine bessere Aussage zur Feuchte ?
Ein Standard Kalmanfilter wird bei diesen Messungen nicht gut funktionieren. Er setzt vorraus, dass die Rauschprozesse normalverteilt sind - offensichtlich ist dies hier nicht der Fall. Es werden nur Werte zwischen 0 und 25 gemessen. Falls du ein gutes Modell der "Messstrecke" hast/herleiten kannst, dass nichtlinear ist, dann wird ein Extened oder Unscented Kalmanfilter etwas bringen.
Thomas schrieb: > Ich verstehe noch nicht ganz wie du den Kalmanfilter einsetzt. > Hast du ein Systemmodel? Was sind deine Eingangsgrößen? Hmm also ein Systemmodel habe ich nicht ... das heißt eigentlich ist mir nicht ganz klar was man unter einem Systemmodel versteht. Im Fall meiner Messwerte sind das ja nur Feuchtewerte. Ich habe eigentlich nichts mit dem ich diese Werte in Beziehung setzen könnte ... > Oder machst du Sensorfusion mit dem KF? > Der KF setzt ein lineares System voraus. Für nichtlineare Systeme gibt > es Modifikationen wie den erweiterten KF. Das ist auch eine Sache die mir noch nicht ganz klar ist. Ist meine System linear oder nicht? Und macht es überhaupt Sinn sowas wie den erweiterten KF zu benutzen, wenn man nur ein Phänomen misst ... ?! > Der Kalmanfilter basiert aber gerade auf der Annahme, dass das Signal > von einem normalverteilten weißen Rauschen überlagert ist. Hmm also ich habe in den Messdaten, denke ich, nicht nur normalverteiltes Rauschen, sondern auch prozessbedingte Falschmessungen unterschiedlicher Art. Denn jedesmal wenn beim Prozess des Mischens einer der Mischerarme über des Sensor streift, messe ich eine zu hohe Feuchte. Der Mischerarm zieht dann meist eine "Luftblase" hinter sich her (Null Messungen). > Apropos, sind das in deinem Plott reelle Messdaten? > Es sieht so aus, als ob der Sensor die Daten auf 25 limitiert. > So wird dir auch ein KF keine verlässlichen Daten liefern können. Ja sind reelle Messdaten. Das abschneiden der Messdaten bei 25 wahr ein Fehler der Sondenkonfiguration. Ich werde demnächst deutlich bessere Messdaten bekommen.
Hä-jetzt Noch schrieb: > Nich dass der Prozess nichtlinear waere, .. die Messwerte sind Schrott. > Einen Filter drueber zulassen und dabei zu hoffen es kaeme was > Sinnvolles raus ist naiv. Ich wuerd mir den Feuchtemessvorgang neu > ueberlegen. Es gibt hinreichend Moeglichkeiten die Feuchte zu messen. zB > Kapazitiv, Leitfaehigkeit, Absorption von Wellen, ... > Was darf's denn kosten ? Wie wichtig ist eine bessere Aussage zur > Feuchte ? Also wir messen mit einem Verfahren die Feuchte das sich TDR[1] nennt. Dieses Verfahren ist in der Regel sehr genau. Das Problem sind eher Prozessbedingte Falschmessungen (Metall der Rührstäbe, Luftblasen, Inhomogenitäten). Und diese sollen ausgefiltert werden. Das Ziel ist es, in diesem dynamischen Prozess bei ca 1m³ Material die Feuchte auf einen Liter genau zu bestimmen. [1] http://de.wikipedia.org/wiki/Feuchtemessung_mit_TDR
freddy feedback schrieb: > Ein Standard Kalmanfilter wird bei diesen Messungen nicht gut > funktionieren. > > Er setzt vorraus, dass die Rauschprozesse normalverteilt sind - > offensichtlich ist dies hier nicht der Fall. Es werden nur Werte > zwischen 0 und 25 gemessen. 0 Bedeutet bei der momentanen Konfiguration des Sensors Luft, 25 der Maximale Feuchtewert. Das ist inzwischen aber schon angepasst worden. > Falls du ein gutes Modell der "Messstrecke" hast/herleiten kannst, dass > nichtlinear ist, dann wird ein Extened oder Unscented Kalmanfilter etwas > bringen.
Markus Hubig schrieb: > Denn jedesmal wenn beim Prozess des Mischens > einer der Mischerarme über des Sensor streift, messe ich eine zu hohe > Feuchte. Der Mischerarm zieht dann meist eine "Luftblase" hinter sich > her (Null Messungen). Dann solltest Du diese erkennbaren Falschmessungen eliminieren. Es macht keinen Sinn mit eindeutig fehlerhaften Werten zu rechnen. Wenn ich mich richtig an die Uni erinnere dann kann man auch sehr starkes Rauschen gut durch Korrelationsanalyseverfahren beseitigen, zumindest wenn man grundlegende Eingenschaften des Rauschens kennt. Ich habe nur Zweifel, daß das in Echtzeit geht. Stichwort wäre "statistische Signaltheorie".
U.R. Schmitt schrieb: > Dann solltest Du diese erkennbaren Falschmessungen eliminieren. Es macht > keinen Sinn mit eindeutig fehlerhaften Werten zu rechnen. Jo das denke ich inzwischen auch. Allerdings werde ich da wahrscheinlich mit den reinen Messdaten nicht wirklich weiterkommen. Evtl. muss ich dazu die rohen Messdaten der Sonde auswerten. Der Feuchtewert errechnet sich nämlich anhand von Signallaufzeit und Leitfähigkeit zusammen mit einer Kalibrierkurve. > Wenn ich mich richtig an die Uni erinnere dann kann man auch sehr > starkes Rauschen gut durch Korrelationsanalyseverfahren beseitigen, > zumindest wenn man grundlegende Eingenschaften des Rauschens kennt. Ich > habe nur Zweifel, daß das in Echtzeit geht. Stichwort wäre "statistische > Signaltheorie". Werde mal versuchen dazu etwas Literatur zu finden. Echtzeit ist leider unbedingt notwendig.
Markus Hubig schrieb: > Hmm also ich habe in den Messdaten, denke ich, nicht nur > normalverteiltes Rauschen, sondern auch prozessbedingte Falschmessungen > unterschiedlicher Art. Denn jedesmal wenn beim Prozess des Mischens > einer der Mischerarme über des Sensor streift, messe ich eine zu hohe > Feuchte. Der Mischerarm zieht dann meist eine "Luftblase" hinter sich > her (Null Messungen). Nun, wenn du das schon weißt schließe die "Blasen" von der Messung aus. Vielleicht geht das über die "Blasenmessung" aber die Position deiner Mischerarme zu kennen ist einfacher und robuster. Du hast vermutlich nicht nur "Null Messungen" sondern auch "Mischmessungen" Aus dem Gewirbel was sinnvolles zu extrahieren wird mit Mathe schwierig. Die Formel lautet da wohl Garbage in = garbage out. Besser ist ganz banal die Fehler bei der Messung zu eliminieren.
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.