Abtastfrequenz für Sensoren, andere Refreshfrequenz für Servos

OP #3609182
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
Gast #3610868
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.
OP #3613095
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ß
#3613201
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.
OP #3613208
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 :) :) :) :) :) !!!!!!!!!!!
OP #3613260
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

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