Forum: Mikrocontroller und Digitale Elektronik Beschleunigungssensor - Kompensation Erdbeschleunigung


von Sascha F. (umpfel)


Lesenswert?

Hi,
gibt es eine Möglichkeit die Erdbeschleunigung von einem 3-Achsen Acc 
ohne Gyroskop rauszurechnen?

Sascha

von Gast (Gast)


Lesenswert?

Da sie sich nur sehr langsam ändern kann ist dies sicher einfach 
möglich.

von Sascha F. (umpfel)


Lesenswert?

Sorry^^
ich mein natürlich bei Änderung des Winkels des Sensors.

Anwendung: Beschleunigungssensor kommt in ein Modellauto -> auf einer 
Ebene kein Problem, aber bei einer Steigung/Gefälle hat der Winkel einen 
extrem grossen Einfluss auf die Messung.

von Ahem (Gast)


Lesenswert?

Das Ganze nennt sich Vektorrechnung.

von Sascha F. (umpfel)


Lesenswert?

hatte ich anfangs auch gedacht, aber bin auf keine "kombination" 
gekommen wo ich nicht auch wieder die eigentliche Beschleunigung 
rausrechnen würde...

von Ahem (Gast)


Lesenswert?

>aber bin auf keine "kombination"
>gekommen wo ich nicht auch wieder die eigentliche Beschleunigung
>rausrechnen würde...

Dann am besten am Montag nochmal den Mathelehrer fragen.

von ramon (Gast)


Lesenswert?

das pratisch auftrettende hauptproblem wird wohl der völlig 
uneinheitliche reibungskoeffizient zwischen rad und strassse sein... 
(naja ansonsten wärs ja mathematisch banal...) die lösung dazu würd mich 
übrigens sehr interessieren, werd mal wieder vorbeischauen und freu mich 
zu erfahren wi man da löst...

von gabi (Gast)


Lesenswert?

für geradeausfahrt geht es mathematisch...

a_fzg = a_mess_x + a_mess_y + a_mess_z - 9,81 m/s²
a -> vektor

wenn du weitere unterstützung brauchst, melde dich...

von M. K. (sylaina)


Lesenswert?

Das Problem kann ich mir schon recht gut vorstellen. Der Sensor hat ja 
folgenden Vektor

Davon die Erdbeschleunigung abzuziehen ist ja recht leicht, die schaut 
ja wie folgt aus

Das Problem ist nun nur, dass bei einer Steigung oder einem Gefälle sich 
die Einheitsvektoren des Sensors ändern und man nun nicht so ohne 
weiteres die Erdbeschleunigung vom Messwert abziehen kann. Vielleicht 
baust du dir noch einen Neigungssensor in das Auto mit ein und bestimmst 
daraus die Neigung. Dann kannst du es wieder umrechnen und die 
Erdbeschleunigung raus rechnen.

von Roland Praml (Gast)


Lesenswert?

Bitte nochmal nachdenken

> ...  die Erdbeschleunigung von einem 3-Achsen Acc

> ...  Vielleicht baust du dir noch einen Neigungssensor in das Auto mit
> ein und bestimmst daraus die Neigung.


Der OP will vermutlich eine relative Beschleunig in Fahrtrichtung daraus 
ableiten und dies geht wegen der Drehbewegung ohne Gyro AFAIK nicht.
(OK der Gyro könnte als "Neigungssensor" aufgefasst werden)

Gruß
Roland

von Dennis (Gast)


Lesenswert?

Sascha, überleg dir vielleicht nochmal, ob du den Längsanteil der 
Erdbeschleunigung unbedingt kompensieren musst. So ganz einfach ist das 
nämlich nicht.

von Dennis (Gast)


Lesenswert?

Es könnte außerdem vielleicht einfacher sein, die Geschwindigkeit an den 
Rädern zu messen, und daraus die Beschleunigung zu errechnen.

von yalu (Gast)


Lesenswert?

Nur mit einem dreiachsigen Beschleunigungssensor kann die Beschleunigung
des Fahrzeugs im Allgemeinen nicht bestimmt werden. Das liegt daran,
dass der Sensor drei Messwerte liefert, das System aber fünf Unbekannte
hat, die die Messung beeinflussen: Der Fahrzeugbeschleunigungsvektor
(drei Unbekannte) und die Richtung des Erdbeschleunigungsvektors (zwei
Unbekannte).

Auch im zweidimensionalen Fall (seitliche Beschleunigungen werden nicht
beachtet) tritt das Problem auf: Hier hat man zwei Sensormesswerte, aber
drei Unbekannte.

Um besser zu sehen, woran es im Detail hakt, habe ich das Ganze für den
zweidimensionalen Fall einmal durchgerechnet:

Alle folgenden Überlegungen beziehen sich auf das Fahrzeugkoordinaten-
system, dessen x-Achse x-Achse in Fahrtrichtung und dessen y-Achse
senkrecht dazu nach oben zeigt. Die Vektoren a = (ax,ay), g =
(gx,gy) und m = (mx,my) sind die Fahrzeugbeschleunigung, die
Erdbeschleunigung und der Sensormesswert. Dabei wird der Betrag der
Erdbeschleunigung | g | = g = 9,81m/s² als bekannt vorausgesetzt.

Der Sensor misst die Summe aus Fahrzeug- und Erdbeschleunigung, also

Auflösen nach (gx,gy) und Quadrieren ergibt

Anwenden von gx² + gy² = g² und Auflösen nach ax ergibt

Um das gesuchte ax bestimmen zu können, muss also ay bekannt sein. ay
ist positiv, wenn das Fahrzeug durch eine Mulde und negativ, wenn es
über eine Kuppe fährt. Auf einer schiefen Ebene ist ay = 0 und damit

Wegen des '±' ist das Ergebnis aber immer noch nicht eindeutig. Bei
einer Steigung ist das '-', bei einem Gefälle das '+' anzuwenden.

Wenn man also weiß, dass die Steigung bzw. das Gefälle konstant ist, und
ob es gerade bergauf oder bergab geht, kann die Beschleunigung auf diese
Weise gemessen werden. Wenn nicht, braucht man zusätzliche Sensoren, die
direkt oder indirekt die fehlenden Informationen liefern.

von R. W. (quakeman)


Lesenswert?

Die Beschleunigungssensoren LIS302DL oder LIS3LV02DL haben genau dafür 
einen internen Hochpass-Filter mit einstellbarer Grenzfrequenz den man 
zuschalten kann. Dieser hat den Effekt, daß sämtliche statischen 
Beschleunigungen aus dem Ausgabewert rausgerechnet werden. Dazu zählt 
natürlich auch die unveränderliche Erdbeschleunigung. Das Problem bei 
der Sache ist aber, daß du mit aktiviertem HP-Filter nur dynamische 
Veränderungen gemeldet bekommst. Würdest du z.B. mit 0,5G konstant 
beschleunigen, würde das ebenfalls nach kurzer Zeit als statische Größe 
betrachtet und rausgefiltert werden. Aber mit Hilfe der Grenzfrequenz 
kannst du die Grenze, nach welcher statische Größen rausgefiltert 
werden, festlegen. Die Ausgabewerte des Sensors sind natürlich 
dementsprechend etwas träger als in Echtzeit.
Ich habe mit dem LIS3LV02DL schon etwas herumexperimentiert und das 
Filtern funktioniert recht gut.

Ciao,
     Rainer

von Sascha F. (umpfel)


Lesenswert?

Vielen Dank für die Antworten.

@yalu:
Um auf diese Art die Erdbeschleunigung zu kompensieren ergibt ich 
folgendes Problem:
Die Empfindlichkeit ist in Messrichtung (für die jeweilige Achse) 
größer.
http://www.analog.com/Analog_Root/static/library/techArticles/mems/sensor971/sld28_1.gif

Als kleines Beispiel hierzu:
(X: Fahrtrichtung Y: Senkrecht zur Fahrtrichtung)
Steigung von 10° -> X-Wert verändert sich um 150mg -> der Y-Wert maximal 
um 1mg
Tippe ich den Sensor in Y-Achse minimal an (Fahrzeug fährt über eine 
1-2mm erhebung) dann ergibt sich dadurch schon eine Änderung des 
Y-Wertes von mehr als 20mg

Eigentlich ganz logisch, aber dadurch kann der Y-Wert nicht einfach zur 
kompensation rangenommen werden. Trotzdem Danke :)


@Rainer
Benutze auch den LIS3LV02DL. Werde nun auch mal mir dem HP-Filter 
rumspielen.


Edit:
gleich ausprobiert -> HP-Filter für mein Zweck vollkommend aussreichend.

Sollte ich aber denoch mal bissle zu viel Geld übrig haben, werde ich 
mal mit nem Gyroskop rumspielen :)

Sascha

von mr.chip (Gast)


Lesenswert?

Das geht leider nicht: Wenn das Fahrzeug auf eine Neigung quer zur 
Fahrtrichtung steht (Steilwandkurve), kann man nicht unterscheiden, ob 
es sich um eine Kurvenfahrt oder eben eine Neigung handelt. Selbiges 
gilt für Bremsen und Beschleunigen bei Neigungen längs der Fahrrichtung.

von Sascha F. (umpfel)


Lesenswert?

@mr.chip
auf was beziehst du dich? Gyroskop?

von mr.chip (Gast)


Lesenswert?

> @mr.chip
> auf was beziehst du dich? Gyroskop?

Beschleunigungssensor. Mit einem Gyroskop geht es natürlich :-)

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.