PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Signalfilterung



Carsten_
06.10.2009, 15:54
Hallo,
wir bauen gerade einen Quadrokopter, und haben zur Zeit noch ein Problem mit der Filterung der Signale aus Gyros und Beschl.-Sensoren. Wir arbeiten zur Zeit mit einem RCP-System und "malen" unser Programm mit MATLAB-Simulink.
Um das Driften der Gyros zu vermeiden und durch das Integral natürlich auch eine Filterung zu erreichen, verwenden wir gerade folgenden Aufbau:
http://dl.getdropbox.com/u/1933232/filter1.JPG

Leider ist das Signal (PhiF) für eine saubere, stabile Ruhelage noch zu verrauscht. Verwenden wir nun einen einfachen Tiefpassfilter wird die Regelung (PID-Regler) aufgrund der Phasenverdrehung schnell instabil. Ein gleitender Mittelwert über 7 Werte bewirkt schon eine gute Verbesserung bei vertretbarer Verzögerung, leider ist das Ergebnis bei höheren Motordrehzahlen noch immer unzureichend. Eine weitere Erhöhung der Anzahl der Werte führt zu keiner Verbesserung.

Wie sollen wir denn nun am Besten vorgehen um eine ausreichende Filterung bei akzeptabler Verzögerung zu erreichen?!

Das Thema Kalman-Filter scheint hier zu helfen, allerdings haben wir noch keinen gut funktionierenden aufbauen können... gibt es vielleicht Alternativen?


Vielen Dank für Eure Hilfe!
Carsten

Besserwessi
06.10.2009, 19:28
Wenn man den Eingeschwungenen Zustand hat, ist der Kalmanfilter auch nichts anderes als eine Liniearkombination von mehreren Werten des AD wandlers. Also auch nichts anderes als ein normaler digitaler Filter. Nur über das Verfahren mit dem Kalmanfilter hat man eine Begründung für die Wahl des Filters und hat eine Anleitung wie man die Filterkoeffizienten berechnet.
Oft kommt beim Kalman Filter ein IIR filter Raus, z.B. einfach ein Summe mit exponentiellen abnehmenden Gewichten.

Carsten_
06.10.2009, 20:16
Kalman, IIR, FIR usw...klingt alles gut :)
Also im Grunde würde ich einfach gerne wissen, ob es irgendeine Möglichkeit gibt, das Rauschen weiter zu verringern OHNE eine große Verzögerung zu produzieren, bzw. welche Filtermöglichkeiten sind zu empfehlen und vor allem auch gut umzusetzen? Hat jemadn evtl. ein passendes Bsp. ? Wie filtert Ihr eure Signale bei den Balancier-Robotern und Quadkoptern/Trikoptern ?

Vielen Dank für eure Hilfe!
Carsten

Willa
06.10.2009, 22:06
ob es irgendeine Möglichkeit gibt, das Rauschen weiter zu verringern OHNE eine große Verzögerung zu produzieren
Ja: bessere Gyro's :-D Bei meinem Tricopter filtere ich einfach mit einem elektronischen Tiefpass mit fg = 40Hz. Die Gyro's werden dann mit 400 Hz abgefragt und das Signal wird nicht weiter konditioniert. Du musst bedenken: Die Motoren mit ihrer Trägheit wirken selber auch noch mal als starker Tiefpass. Da kann ganz schön verrauschtes Zeugs ankommen und man kann es im Flug nicht nachweisen.

Willa
06.10.2009, 22:08
Ich verstehe aber euer Schaltbild nicht so ganz.... Addiert ihr einfach die ACC und die Gyro Signale...? Was ist "Ein Phi" und "Ein Phi°"...?

Carsten_
06.10.2009, 22:36
"Ein Phi°" ist das Signal eines Gyro und "Ein Phi" das Signal einer Achse des ACC. Die Gyros (LISY300AL) machen eigentlich nen ganz guten Eindruck im direkten Vergeich mit den Murata ENC-03R die wir vorher benutzt haben.

Willa
06.10.2009, 23:07
Okay, aber ich verstehe das Schaltbild immer noch nicht so ganz... Kannst du das mit einfachem Vokabular umschreiben...? Ihr integriert das Signal aus dem ACC...? Damit berechnet ihr dann die Geschwindigkeit des Copters oder wie...? ich verwende zur Lagestabilisierung eigentlich ausschließlich das Gyrosignal. Dabei wird das Integral des Gyrosignalpegels immer ganz leicht in Richtung ACC-Pegel gezogen. Dadurch hat man dann auch keine Probleme mit Drift und das Signal bleibt sehr schnell. Aber mir fehlen da wie gesagt die theoretischen Grundlagen. Bei Regelungstechnik bleibe ich deutlich lieber ein Praktiker...

Carsten_
06.10.2009, 23:33
Wir integrieren hier das Gyro-Signal und erhalten damit den Winkel, dieser Winkel wird dann vom direkt gemessenen Winkel des ACC abgezogen und das Ergebnis wird dann wiederum vom Integral abgezogen um Drift zu unterbinden(ok, hier wirds addiert und das Gyrosignal wird negativ eingebracht...das ist ne dumme Vorzeichengeschichte, läuft aber aufs selbe hinaus, sollten wir bald mal umbauen...)
so ists vielleicht klarer:
http://dl.getdropbox.com/u/1406171/sensorfusion.jpg

Ich glaube ich hab gerade den Fehler gefunden... der Tip mit den besseren Gyros war wohl doch sehr gut... unser LISY300AL scheint laut http://forum.uavp.ch/viewtopic.php?t=2015 denkbar ungeeignet zu sein.

Welche Gyros sind denn zu empfehlen? ADXRS610 ?

Willa
06.10.2009, 23:39
ADXRS610 ?
Ja! :-D Die benutze ich, haben fast keinen Drift und lassen sich schön einfach auswerten. Günstigere Gyro's sollten aber eigentlich auch funktionieren, da muss man halt nur mehr Kompromisse eingehen.