Wieviele Schritte kann ein digitales Servo tatsächlich auflösen?

Thomas X

User
Hallo,

in einem anderen Thread gab es vor einiger Zeit eine Diskussion um eine Aussage, nach der ein digitales Servo eine Auflösung von über 16Mio Schritten erreichen könne. Konkret handelt es sich um diesen Thread: https://www.rc-network.de/threads/das-power-servo-duo-von-savÖx.11962223/

Im weiteren Verlauf wurde gezeigt, dass das im gegebenen Rahmen nicht machbar ist; es hat allerdings die interessante Frage aufgeworfen, wie hoch ein solches Servo tatsächlich auflösen kann, bzw. wie groß der kleinstmögliche Schrittwinkel an der Ausgangswelle tatsächlich sein kann. Theoretische Überlegungen mit verschiedenen Ansätzen sind im verlinkten Thread zu finden, aber wie sieht‘s praktisch tatsächlich aus? Gibt es da belastbare Daten, oder Leute, die über entsprechende Messmittel verfügen und da schonmal geschaut haben?
 

Gerd Giese

Moderator
Teammitglied
Meine Feststellungen waren bis her, dass meine getesteten (siehe RC-N Magazin) Servos zwischen 0,003 ms bis 0,005 ms Auflösen.
In diesem Bereich erzeugten die Servos eine erste reproduzierbare Bewegung. Darunter war keine Bewegung feststellbar.
Wenn wir das Mittel nehmen von 0,004 ms und 1 ms als Grundlage des Gesamtweges, kommen wir auf max.: 250 Steps.
Macht in Winkelgrad bei 90° Gesamtweg: 0,36 Grad Schrittwinkel (minimale Ruderbewegung)!
 
Hallo,

Ich habe bei zwei Servos 0.06-0.07 Grad als minimale Schrittweite gemessen. Wohlgemerkt: in der kompletten Kette, d.h. mit Sender, Empfänger, Servo, also nicht nur das Servo alleine. Das wären dann sowas wie 1000-1500 Schritte Auflösung für die Kombi (je nach angenommenem Maximalausschlag).

Gruss,

Michael

PS: Die 16 Millionen sollen ja wahrscheinlich daher kommen, dass ein 24 bit A/D-Wandler eingebaut ist. Sowas hört sich auf Datenblättern oder in der Werbung ja immer ganz toll an... Was davon im "wahren Leben" ankommt steht aber auf einem ganz anderen Blatt ;)
 

S_a_S

User
Ein aktueller 32bit Microcontroller taktet im Bereich von 80MHz. Die 1ms Fenster für PPM lassen dann 80.000 Zählpulse durch, was dann aber auch nicht in ein 16 bit Register passt. Selbst wenn das Poti (Ist) mit 24bit erfasst werden könnte, wird die Auflösung durch die Erfassung des Sollwertes begrenzt. Um die 16 Mio Schritte am Eingang aufzulösen, wäre eine Taktfrequenz von 16 GHz erforderlich (oder über Seriell-Bus übertragener Wert).

Weil es aber nichts kosten soll, eher bei 24.000 Steps am Eingang und 12bit ADC (4096 Stufen) fürs Poti/Hall. Wobei das durch den begrenzten Winkelbereich noch weniger reale Auflösung ergeben dürfte.

Grüße Stefan
 

Gerd Giese

Moderator
Teammitglied
Ich habe bei zwei Servos 0.06-0.07 Grad als minimale Schrittweite gemessen.
Das entspräche ja bei einer normalen Einstellung fast 1/10 eines Steps zum Trimmen (üblich sind pro Step 2%) ! 🤔
Bist Dir sicher, dass das Komma nicht zu weit rechts sitzt? So oder so, diesen Wert messe ich selbst bei den
hochwertigsten Servos nicht.
 

S_a_S

User
(oder über Seriell-Bus übertragener Wert).
S.Bus überträgt auch nur mit 11 bit (2048 steps).

Spielt in die Auflösung eigentlich auch das Dead Band mit ein?
Interpretiere ich ja als keine Reaktion, wenn Sollwert - Istwert kleiner als Dead Band ist. Bei 10us und 1ms wären das auch nur 100 Schritte, bei 4us immerhin 250.
Könnte auch ein Thema des Messens/Verlaufs sein. Hängt es an der "richtigen" Seite der Zeittoleranz, ist das Dead Band auch bei geringfügiger Sollwertänderung überschritten und es reagiert schnell. Hängt es an der "falschen" Seite, passiert erst mal gar nichts.

Grüße Stefan
 
Zuletzt bearbeitet:

Gerd Giese

Moderator
Teammitglied
Zuletzt bearbeitet:

S_a_S

User
Gerd,

ich meine jetzt nicht die Ansprechzeit (Reaktion auf Sollwertsprung).

Wenn Du das Sollsignal auf 1,500ms stellst, soll sich das Servo im Idealfall auf die zu 1,500ms passenden Position setzen. Kann aber (Totband / Hysterese 4us) real bei einer zu 1,496...1,504ms passenden Position landen und der Motor bleibt stehen (damit er nicht knurrt).

Von 1,500ms musst Du dann aber den Soll auf 1,504ms setzen, damit ein Servo bei 1,500ms Position aus dem Totband kommt und losläuft.

Hängt das Servo bei 1,500ms Sollwert (nach Einschwingen) auf der zu 1,496ms passenden Position (auch im Totband), wird dann bereits bei einer Änderung auf 1,501ms eine Reaktion zu erwarten sein.

Und das ist letztlich die zu beobachtende Auflösung. Jetzt ist natürlich die Frage, wie bekommt man da ein vernünftiges Sollwertsignal hin. Trimmung lässt sich bei meiner alten MC12 in 1% Schritten (in beide Richtungen) bewegen, das wären also 200 steps Auflösung.
Arduino Standardbibliothek kann auch nur writeMicroseconds() -> 1000 steps Auflösung. Vermutlich liefe die Auflösungsmessung dann auf einen Analogen Generator + sehr guten Zähler hinaus...

Grüße Stefan
 
Das entspräche ja bei einer normalen Einstellung fast 1/10 eines Steps zum Trimmen (üblich sind pro Step 2%) ! 🤔
Bist Dir sicher, dass das Komma nicht zu weit rechts sitzt? So oder so, diesen Wert messe ich selbst bei den
hochwertigsten Servos nicht.
Hallo Gerd,

ja, da hast Du wohl recht. Mir kam's gestern Abend (immerhin schon ;)) auch merkwuerdig vor und wollte nicht zu dem Bild passen, was sich ueblicherweise bietet, wenn man versucht z.B. die Innenklappe eines mit Butterfly versehenen Seglers einzustellen.
Also: Die Werte sind Unsinn. Ob nur der Dezimalpunkt verrutscht ist, weiss ich nicht, kann sein, aber dann waeren die Werte eigentlich zu schlecht. Leider sind die Messungen schon 10 Jahre her und ich konnte nicht mehr rausfinden, was ich damals eigentlich gemacht habe...

Eine schnelle "Messung" gestern abend (wieder mit der Gesamtkette, d.h. am Sender eine mikrosekundenweise Aenderung der Neutralstellung vorgenommen und die benoetigte Aenderung fuer 20 sicht-/fuehlbare Servoschritte notiert) ergab folgendes Bild:
HiTec HS 5565MH, HS5245MG und MPX Nano-S ca. 2.7 us
VEGA KMST XV 10-911 ca. 2 us
CYS Model S0005, Simprop SES 100 ca 4.5 us (beide ausser Konkurrenz, da analog)
Wenn man es naeherungsweise mit 1000 us entspr. 90 Grad umrechnet waeren das Winkelschritte von 0.18 - 0.4 Grad
Das hoert sich ganz gut vertraeglich mit Deinen Werten an.
Die Werte des KMST sind mit etwas Vorsicht zu betrachten, das Servo bewegt sich so "sanft/weich", dass mir das Feststellen einzelner Schritte nicht so ganz eindeutig moeglich war.

Gruss,

Michael

PS: Die damals getesteten Servos habe ich nicht mehr. Alle kaputtgetestet...:D
 
Ansicht hell / dunkel umschalten
Oben Unten