Forum: Analoge Elektronik und Schaltungstechnik Filterdesign Komplementärfilter


von Florian A. (florian_a)


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!

: Verschoben durch User
von Thomas F. (tomasf)


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.

von Florian A. (florian_a)


Lesenswert?

Erstmal vielen Dank, das hilft mir gut weiter!
Kennst du einen Hersteller, der Gyros mit derart geringem Drift 
herstellt?
Ich werde nun mal bei Analog Devices schauen, vll haben die etwas im 
Angebot..

von Thomas F. (tomasf)


Lesenswert?

Wenn es normale Gyros in der itg3200-Klasse nicht mehr schaffen, würde 
ich als nächstes auch bei AD gucken, da gibt es dann bessere Teile, so 
für 80 Euro pro Achse.

von Florian A. (florian_a)


Lesenswert?

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?

von Thomas F. (tomasf)


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. ;-)

von Florian A. (florian_a)


Lesenswert?

Also ich werd mir wohl nun den AD ADXRS450 bestellen. Denke es ist 
einiger Aufwand 2 solcher Bauteile zu vergleichen, aber interssant wäre 
es sicherlich. Bei AD ist da ja preislich open end nach oben :D

von Felix E. (felix1601)


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?

von Wolfgang (Gast)


Lesenswert?

Felix E. schrieb:
> Kann man das dann mit diesem
> Komplementärfilter auf Winkel umrechnen? Wenn ja, wie funktioniert das?

Guckst du hier (S.4). In dem Artikel wird das Komplementärfilter auch 
mit einem Kalman-Filter verglichen.
https://aip.scitation.org/doi/pdf/10.1063/1.5018520

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
Noch kein Account? Hier anmelden.