Forum: Mikrocontroller und Digitale Elektronik Gyrosensor implementieren, brauche Hilfe!


von chmbw (Gast)


Lesenswert?

Hallo,

ich bräuchte ein wenig Hilfe beim implementieren eines Gyrosensors in 
ein bestehendes Projekt (mit SPS gesteuert). Der Sensor ist leider schon 
installiert, es geht primär um die softwaretechnische bzw. rechnerische 
Seite:

Datenblatt zum Sensor:

http://www.sensor-technik.de/dbdownload/downger_105_1.pdf

Ich soll mit dem Sensor Richtungsänderungen in der Ebene messen, sprich 
um welchen Winkel hat sich innerhalb eines Abtastschrittes die 
Orientierung verändert. Momentan ist die Zykluszeit noch 3,5ms. Der 
Ausgang vom Gyro wird in einen vorzeichenbehafteten Integerwert 
umgewandelt und steht so im Programm zur Verfügung. Ich Rechne bisher:

winkel_wert = 0.0035 * (winkel_integer + offset) * 50 / 32767

winkel = winkel + winkel_wert

winkel_integer ist der digitalisierte Ausgang vom Gyrosensor, also mein 
"Rohwert". Der Offset ist notwendig, weil wenn der Sensor komplett in 
Ruhe liegt er um -4000 leicht schwankt und ich ihn somit auf 0 lege. Ich 
habe jetzt zwei Probleme: Zum einen die starke Drift des Sensors, zum 
anderen, je nachdem wie schnell ich den Sensor drehe unterschiedliche 
Winkelwerte kriege. Z.B:
ich drehe den Sensor LANGSAM um 45° ich kriege etwas mit 20° ausgegeben. 
Ich drehen ihn SCHNELL um 45° ich komme in den Bereich um 75°-85°.

Ich wollte versuchen mal die Zykluszeit zu verlängern, da der Sensor nur 
40 mal pro Sekunde misst. Aber welche Lösungsstrategien könnte ich noch 
verfolgen? Ich bin ein wenig ratlos und hoffe auf eure Hilfe! Sollte ich 
irgendwelche Infos vergessen haben zu erwähnen, bitte unbedingt sagen!

Vielen Grüße und vielen Dank im Voraus!
chmbw

von Matze N. (hupe123)


Lesenswert?

Also im Allg. haben Winkelsensoren eine enorme Drift (ich habe ein 
ähnliches Teil auch mal in den Fingern gehabt, war schlimm!). Es heißt 
eigentlich, wenn man mit so einem Teil dyn. messen will nimmt man einen 
Beschl.Sensor zur Hilfe. Mit dem kann man einen 0-Grad durchgang gut 
erkennen und den Neigungssensor von seiner Drift befreien (Nullen).
Ich habe damals das Problem anders gelöst:
Ich habe mit einen drei-achsigen Beschl. Sensor besorgt (du hast ja 
schon einen) und den ausgelesen. Mit ein bißchen Geometrie kann man 
damit auch herlich die Winkel messen (es dürfen eben nur keine achsialen 
Beschl. auftreten (aber selbst die lassen sich rausrechnen)!
Für ein 2D Problem bedient man sich z.B. einfach Pytagoras und der 
Trigonomie:
Winkel=cot([Beschl.Y]/[Beschl.X])
Der Trick ist, daß die Erdbeschl. immer 1g ist (eben keine Beschl. des 
Sensors in X oder Y Richtung). Demnach ist deine Hypothenuse auch immer 
1g "lang". X und Y sind min. immer kleiner. Der Rest ist Mathematik.

(keine Garantie auf math. Richtigkeit (is auch schon spät); zudem: wer 
Rechtscheibfehler findet, kann sie behalten ;)

von Denk (Gast)


Lesenswert?

>wer Rechtscheibfehler findet, kann sie behalten

Und wer denkt, dass man Rechtschreibfehler besitzen kann, mag seine 
Gedanken für sich behalten ;-)

von Matze N. (hupe123)


Lesenswert?

Wichtig is es doch Ideen zu teilen nicht im Rechtschreibkurs eine 1 zu 
haben. Warten wir ab und fragen den Fragesteller nach seiner Meinung. 
Wenn er meine Rechtschreibfehler nicht mag, dann lösche ich meinen 
Beitrag wieder. Wenn es aber nich so ist, dann würde ich mir wünschen, 
wenn der Herr Deutschlehrer das nächste mal nen Beitrag zum Thema 
schreibt!

von Sebastian E. (senz) Benutzerseite


Lesenswert?

@Matze Niemand:
Erklär bitte nochmal wie Du die Drehrate um Z mit dem linearen 
Beschleunigungsmesser ermitteln willst, wenn das Schwerefeld ebenfalls 
in Z-Richtung liegt?
Um X oder Y ist das statisch möglich.

von Matze N. (hupe123)


Lesenswert?

Hm.. ich versteh das Problem nicht. Was ist eine Drehrate? Ist das die 
Winkelgeschwindigkeit? Noch nie im Maschinenbaustudium gehört.
Es ist mit meiner Methode nur möglich den aktuellen Winkel zum 
Erdmittelpunkt (und für Klugscheißer: Erdschwerepunkt) zu errechnen.
Im 3D-Raum wird das natürlich ein bißchen anspruchsvoller.

Um die Winkelgeschw. zu bekommen müsste man nur einmal differenzieren. 
Jedoch tritt da mit zunehmender Dauer ein Problem auf: die Rechenzeit, 
da es dadurch nicht kontinuierlich gemessen wird... Aber auch das 
Problem bekommt schon irgendwie durch geschicktes Nullen wieder hin.

von Thomas K. (thkusch)


Lesenswert?

@Sebastian Enz: wozu die DrehRATE? Dafür nehmt man die Gyrowerte direkt. 
Das Problem ist daraus den Winkel zu errechnen, da aufgrund des nötigen 
Integrals der Fehler sehr schnell wächst. Die Drehrate war noch nie ein 
Problem (Ausgangssignal des Gyros = Drehrate)

Gruss
Thomas

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.