Filterdesign Komplementärfilter

#2693518
Lesenswert?

Liebe Elektronikfreunde,

beim Design eines Beschleunigungssensors für ein Auto bin ich auch der 
suche um zuverlässig den Neigungswinkel dessen zu bestimmen.
Nun wird auf der Platine wohl ein dreiachsiger Beschleunigungssensor und 
ein Gyroskop in zwei Richtungen sein. Zur Fusionierung ist mir der 
Kalman Filter zu komplex, deswegen dachte ich an einen 
Komplementärfilter erster Ordnung.
Diesen stelle ich mir in etwa wie folgt vor:
winkel = (0.97) * (winkel + gyro*dt) + (0.03) * (acc)

Nun kann man ja eine Zeitkonstante ausrechnen, wir gehen davon aus, dass 
die Schleife 100 Mal pro Sekunde ausgeführt wird: 0,97*0,01/0,03 = 0,32 
sec

Die Werte sind beliebig gewählt. So kann man grob sagen, dass unter 0,32 
Sekunden mehr Gewichtung dem Gyroskop zukommen wird um die Neigung 
festzustellen, darüber hinaus dem Beschleunigungssensor.

Wenn ich nun einen Berg hinauffahre mit meinem Auto, mag der Winkel der 
Steigung bewrechnet werden. Wenn ich nun aber noch Gas gebe(für zB 5 
Sekunden), schlägt der Beschleunigungssensor ja noch mehr aus, aufgrund 
der Beschleunigung des Fahrzeuges.
Gleiches Problem bei einer Vollbremsung von 200 km/h, die evtl 5 
Sekunden dauert.

Gehe ich Richtig in der Annahme, dass dieser filter solche situationen, 
also Beschleunigungen die wesentlich länger als die Zeitkonstante 
dauern, nicht richtig handeln kann und immer einen Neigungswinkel 
ausgeben wird, wo keiner vorliegt?

Vielen Dank und eine schöne Woche!
#2693899
Lesenswert?

Mit dem Zeitintervall hat das wenig zu tun, dieses beschreibt eher die 
Reaktionsgeschwindigkeit auf Gyroskopänderungen. Das Akzelerometer wird 
nur gebraucht, um die Gyroskopdrift auszugleichen. Da ein Akzelerometer 
in deinem Anwendungsfall ein schlechter (immerhin ist es überhaupt 
einer) Neigungssensor ist, muss der entsprechende Faktor sehr klein 
gewählt werden, die 0,03 in deinem Fall, dies ist, wenn lange 
Beschleunigungsphasen ausgeglichen werden sollen, sicher zu groß: 3% bei 
100 Hz, heißt, nach 0,3 Sekunden ist der Akzelerometeranteil voll 
eingeflossen.

Du brauchst also hochgenaue Gyroskope, die auch selbst wenig 
Beschleunigungsrauschen haben.
#2694497
Lesenswert?

Florian A. schrieb:
> Nochmals Danke für deine Antwort!
>
> Welches ist der Wert im Datenblatt, der den Drift über der Zeit
> beschreibt:
> Initial Null?
> In-Run Bias Stability?
> Angle Random Walk?

Der ADXRS450 oder ADXRS453 (oder, wenn man mag das analoge Gegenstück) 
wären dann einen Versuch wert. Habe ich aber selbst noch nicht benutzt. 
Die Drift kommt ja aus dem Sensorrauschen und der Fortschreibung des 
Winkel über die Zeit (dt). Die AD-Teile haben eine höhere Auflöung (beim 
inversense 15 vs 80 LSB/°/s) und sollen schockunempfindlicher sein. Das 
sollte dann insgesamt in weniger Drift resultieren. Wäre schön, wenn das 
mal einer z.b. mit dem itg3200 vergleicht und dann die Ergebnisse 
postet. ;-)
#5747556
Lesenswert?

Hallo!

Ich möchte etwas ähnliches machen! Bei mir ist ein MPU 6050 an einem 
Modell-Spaceshuttle montiert, und der Sensor soll die Verdrehung um die 
x und y Achse erfassen. Nun bekommt man aber mit dem MPU 6050 nur 
Beschleunigungen und Gyro Werte. Kann man das dann mit diesem 
Komplementärfilter auf Winkel umrechnen? Wenn ja, wie funktioniert das?

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