Forum: Mikrocontroller und Digitale Elektronik Abtastfrequenz für Sensoren, andere Refreshfrequenz für Servos


von X. A. (wilhem)


Lesenswert?

Hallo zusammen, super Gurus....
Der Titel ist zwar (fast) klar, doch soll ich vielleicht das Ganze 
besser formulieren und erklären.

Also: mein Mikrocontroller ist in einem RC-Modellflugzeug eingebettet. 
Er hat die Funktion die Sensoren für die 3DLage zu bestimmen und die 
Fläche durch die Servos (HS-311 von Hitec) anzusteuern.
Doch ich weiß, dass das PWM Signal für die Servos mit einer Abtastzeit 
von min. 20 milliSekunden erzeugt werden muss. Die Sensoren könnten aber 
mit einer deutlich höher Abtastzeit abgelesen werden. Nach der aktuellen 
Konfiguration liest der Mikro die Gyro und Beschleunigungssensoren alle 
20 millisekunden ab, berechnet die Lage in dem Raum und steuert die 
Servos. Am Ende habe ich, dass der Mikro einen Zyklus von 20 mS 
durchgelaufen hat. Innerhalb dessen die Sensoren einmal eingelesen und 
die Servos einmal gesteuert hat.

Nun stelle ich mir die Frage: würde ich die Abtastfrequenz für die 
Sensoren erhöhen (der Einfachheit halber nehmen wir 4 millisekunden an), 
dann liest und berechnet der Mikro die 3D-Lage 5 Male innerhalb von 20 
Millisekunden, wäre diese Konfiguration sinnvoll?
Innerhalb desselben Zeitbereichs würden die Servos dennoch immer noch 
nur einmal gesteuert werden.

Macht es dann Sinn, die Sensoren meherere Male abzulesen und die 
darauffolgenden Berechnungen laufen zu lassen? Oder muss ich mich mit 
dem größten Abtastzeitintervall (in diesem Fall die Servos) "abfinden"?

Gruß
Dave

von X. A. (wilhem)


Lesenswert?

Wieso meine Fragen finden immer keine Antwort :( :( :(

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Du kannst natürlich die Sensoren nur alle 20ms abfragen, aber wenn sie 
schneller sind, kannst du doch noch ein wenig mitteln. Das kann sogar 
sehr hilfreich sein, da die Sensoren an Bord ja allen möglichen 
Artefakten ausgesetzt sind.

von Bernd R. (Firma: Promaxx.net) (bigwumpus)


Lesenswert?

Hast Du schon mal versucht, die Servos statt alle 20ms mal alle 4ms 
anzusteuern ?
Ich könnte denen das glatt zutrauen...

von Bernhard S. (b_spitzer)


Lesenswert?

Die Servos, die mir bisher untergekommen sind, hatten alle keinerlei 
Probleme mit einer Periodendauer von 10-100ms. Entscheidend ist die 
Impulsdauer... Einfach mal probieren.
Die 20ms kommen halt vom PPM-Summensignal der 8-Kanal 
Fernsteuer-Anlagen. (2,5ms Abstand je Kanal)

von Mike (Gast)


Lesenswert?

Bernd Rüter schrieb:
> Hast Du schon mal versucht, die Servos statt alle 20ms mal alle 4ms
> anzusteuern ?

Was soll denn das für ein zappeliges Modellflugzeug sein, dass einem 
Update der Steuerinformation alle 4ms irgendwie folgen kann?
Da ist es wohl meist sinnvoller, die Sensordaten zu filtern, bevor sie 
in die Steuerung/Lageregelung eingehen.

von X. A. (wilhem)


Lesenswert?

Vielen Dank für eure Antworten,
aber wenn die Servos mit einer Abtastzeit von 4 ms ansteuern würde, 
würden die Servos sozusagen "zittern". es entsteht also der Jitter bei 
den Servos.
Erfahrungsgemäß ist eine Abstastzeit > 20 millisekunden problemlos für 
die Steuerung.

Ich finde den Vorschlag, einen mittleren Wert zu berechnen, sinnvoller.
Ich werde nun bald das Programm ändern.

Danke!
Gruß

von Harald W. (wilhelms)


Lesenswert?

Mike schrieb:

> Was soll denn das für ein zappeliges Modellflugzeug sein, dass einem
> Update der Steuerinformation alle 4ms irgendwie folgen kann?

Ein Überschallflugzeug?
:-)

von H.Joachim S. (crazyhorse)


Lesenswert?

Von wegen...
Die 20ms sind für schnelle Modelle deutlich zu langsam.
100km/h =27m/s.
Also in den 20ms ein satter halber Meter. Bevor das Servo überhaupt 
erstmal mitbekommt, dass es etwas tun soll. Dann die Stellzeit und die 
Reaktionszeit des Modells. Da kommt einiges zusammen.
Diese Totzeit war das Hauptargument für die Digitalservos.

von X. A. (wilhem)


Lesenswert?

Moment!
Das Intervall von 20 ms ist standard für jedes Servo. Es stammt aus den 
alten analogischen Fernsteuerungen und seitdem wurde nicht geändert. 
Versuche ein normales Servo (wie meins) mit einer Frequenz < als 20 ms 
und sieht du den sogenannten Servoglitches

Also 20 ms ist eine universelle Konstante fast wie die eulersche Zahl e 
oder die Kreiszahl pi :) :) :) :) :) !!!!!!!!!!!

von Mike (Gast)


Lesenswert?

H.Joachim Seifert schrieb:
> Dann die Stellzeit und die Reaktionszeit des Modells.

Eben das meinte ich. Das Verhalten wird durch die Stellgeschwindigkeit 
des Servos und durch die Trägheit des Modells bestimmt. Ob die 
Steuerdaten alle 4 oder alle 20ms kommen, dürfte eher von 
untergeordneter Bedeutung sein.

von X. A. (wilhem)


Lesenswert?

> Eben das meinte ich. Das Verhalten wird durch die Stellgeschwindigkeit
> des Servos und durch die Trägheit des Modells bestimmt. Ob die
> Steuerdaten alle 4 oder alle 20ms kommen, dürfte eher von
> untergeordneter Bedeutung sein.

Richtig aber wenn du eine Folge von Pulsen mit 4 ms Takt einem Servo 
schickst, fängt es an, zu "zittern"
http://www.youtube.com/watch?v=6tD05mTdjqY
http://www.youtube.com/watch?v=e2EHajAaDuc

von kif (Gast)


Lesenswert?

Ich raff es nicht

Du benutzt doch einen PWM Ausgang, oder? Dem ist es doch egal wie oft 
pro s/ms du den TOP-Wert korrigierst ... ?

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.