Stellbereich eines digitalen Servos vergrößern PDF Drucken E-Mail
Geschrieben von: Malte   
Dienstag, den 13. März 2012 um 11:16 Uhr

Servos und deren Stellbereich

Modellbauservos werden bekanntlich über einen Puls gesteuert, dessen Breite die Servostellung vorgibt. Der Steuerpuls sollte zwischen 1 und 2 ms lang sein, dieser Pulsbreitenbereich wird dann - je nach Servo - auf ca. 120° Stellbereich umgelegt (wobei Unterschiede zwischen verschiedenen Servomodellen zu erwarten sind). Von ihrer mechanischen Konstruktion steht bei den meisten Servos ein größerer Stellbereich von 180° (und teilweise auch mehr) zur Verfügung. Wenn man einen Servo zerlegt, sieht man, dass der Abtrieb von zwei Anschlägen im Gehäuse an einer Rotation über die besagten 180° hinaus gehindert wird. Servos mit analoger Steuerelektronik haben die angenehme Eigenschaft, dass man durch Verkürzen und Verlängern des Steuerpulses über bzw. unter die 1 - 2 ms hinaus diese mechanisch möglichen 180° auch tatsächlich mehr oder weniger voll nutzen kann.

Digitale Servos

Bei digitalen Servos sieht das meiner Erfahrung nach nun leider anders aus. Diese kommen bei Pulsweiten < 1 ms und > 2 ms über die 120° Stellbereich oft trotzdem nicht hinaus. Ich habe dabei bisher zwei verschiedene Varianten beobachtet: im ersten Fall (z. B. HD-7150MG und HG-D202MG) führen Pulsweiten außerhalb des Bereichs von 1 - 2 ms dazu, dass der Motor im Servo nicht mehr bestromt wird. Er hält unter Last dann seine Position nicht. Im zweiten Falle (z. B. BMS-L530DMG) werden kürzere und längere Pulsweiten einfach gedeckelt, d.h. alles < 1 ms wird als 1 ms interpretiert und alles > 2 ms als 2 ms. Der Servo hält dann weiterhin die Position, trotzdem bleibt der Stellbereich beschränkt.

Stellbereich vergrößern

Der begrenzte Stellbereich hat mich kürzlich besonders bei einem Blue Bird BMS-L530DMG Servo genervt. Deswegen habe ich mir Gedanken gemacht, wie man die mechanisch möglichen 180° besser ausnutzen kann. Am einfachsten ist es, dazu an dem Potentiometer, das die Ist-Position des Abtriebs misst, anzusetzen. Ergänzt man über- und unterhalb dieses Potis jeweils einen Widerstand, ist der Spannungshub, den das Poti für einen gegebenen Drehwinkel macht, kleiner als ohne diese Widerstände. Durch die zusätzlichen Widerstände wird nämlich der Strom, der durch das Poti fließt und damit auch der entsprechende Spannungsabfall geringer. Da die Servoelektronik das Poti zwischen fixen minimalen und maximalen Spannung einstellt, muss der Servo mit den ergänzten Widerständen weiter drehen, um diese Maximal- und Minimalspannungen zu erreichen. Eigentlich ganz einfach...

Widerstände

Um mal zu überschlagen, wie groß die Widerstände gewählt werden müssen, um den gewünschten Stellbereich zu erzielen, muss man dem Servo etwas zu Leibe rücken. Nach dem Öffnen können bei verschiedenen Servostellungen korrespondierende Widerstände und Spannungen am Poti gemessen werden. Ich habe das mal für den besagten BMS-L530DMG getan und bin zu den folgenden Erbenissen gekommen. Am rechten Anschlag des Servos (per Hand eingestellt) beträgt der Widerstand zwischen dem Schleifer und dem ersten Potianschluss 350 Ω, zwischen dem Schleifer und dem anderen Potianschluss ca. 4.4 kΩ. Am linken Anschlag verhält es sich erwartungsgemäß in etwa umgekehrt. Es handelt sich folglich um ein Poti mit ca. 4.7kΩ. Die mechanischen Anschläge erlauben dem Servo einen Arbeitsbereich von 180°, dieser wird also nach obiger Messung auf 4.7 kΩ - 2 * 350 Ω = 4 kΩ abgebildet, was ca. 22 Ω/° entspricht. Dieser mechanisch mögliche Bereich von 180° wird wie gesagt tatsächlich nicht ausgenutzt sondern nur etwa 120° davon. Bei einer Steuerpulsbreite von 1 ms erreicht der Servo seine Maximalposition in einer Richtung von etwa - 60°. Unter dieser Bedingung liegt am Potischleifer ca. 900 mV an. Bei einer Steuerpulsbreite von 2 ms dreht das Servo auf seine entgegengesetzte Maximalposition von + 60°, am Potischleifer können dann ca. 2.4 V gemessen werden. Die Regelungselektronik im Servo sorgt also dafür, dass der Motor so angesteuert wird, dass sich proportional zu Steuerpulsbreiten zwischen 1 und 2 ms Potispannungen zwischen 0.9 V und 2.4 V einstellen. Diese Werte der Servoelektronik sind nicht ohne weiteres zu verändern. Aber wie angedeutet, lässt sich das Spannungsteilerverhalten des Potis leicht ändern, um auf diese Weise den Stellbereich zu vergrößern. Dem serienmäßigen Stellbereich von 120° entspricht eine Widerstandsänderung des Potis von 120° * 22 Ω/° ≈ 2.6 kΩ. Um nun einen größeren Stellbereich von z. B. ca. 170° (ein bisschen Abstand zum Anschlag soll noch bleiben) zu erhalten, muss der Schleifer des Potis einen größeren Bereich überstreichen, nämlich 170°/180° * 4 kΩ ≈ 3.8 kΩ. Dies tut er dann, wenn er in den Maximal- und Minimalpositionen den Potibereich in 0.45 kΩ und 4.25 kΩ teilt. Weil das Ganze natürlich symmetrisch ist, muss einmal in 0.45 kΩ und 4.25 kΩ geteilt werden und einmal in 4.25 kΩ  und 0.45 kΩ. Oberhalb und unterhalb des Potis soll nun ein Widerstand Rx ergänzt werden, sodass diese Potistellungen zu einer Teilung der 3.3V Gesamtspannung in 0.9 V und 2.4 V bzw. 2.4V und 0.9 V entsprechen. Die nebenstehende kleine Schaltungsskizze macht das Ganze anschaulicher. Der Widerstand Rx lässt sich nun auf verschiedene Weise berechnen, z. B. so:

für den Spannungsabfall am unteren Teilwiderstand gilt:

0.9 V = Rx + 0.45 kΩ ∙ I

für den Spannungsabfall am oberen Teilwiderstand gilt:

2.4 V = Rx + 4.25 kΩ ∙ I

Da die Widerstände in Reihe liegen werden sie vom gleichen Strom I durchflossen, man kann die beiden Gleichungen also für I gleichsetzen und erhält:

0.9 V / (Rx + 0.45 kΩ) = 2.4 V / (Rx + 4.25 kΩ)

0.9 V / 2.4 V = (Rx + 4.25 kΩ) / (Rx + 0.45 kΩ)

0.375 =(Rx + 0.45 kΩ) / (Rx + 4.25 kΩ)

0.375 Rx + 1.59 kΩ = Rx + 0.45 kΩ

1.59 kΩ = 0.625 Rx + 0.45 kΩ

1.14 kΩ = 0.625 Rx

1.8 kΩ ≈ Rx

Ergänzungswiderstände von etwa 1.8 kΩ sollten Stellbereich in der gewünschten Weise vergrößern.

Modifikation des Servos

Ich habe in einer ersten Version testweise mal Widerstände mit 1.6 kΩ verbaut. Es wurden SMD Widerstände in 1206 Bauform verwendet, diese ließen sich direkt auf die Lötaugen setzen, in denen vorher die Kabel von dem Potentiometer saßen. Diese Kabel wurden dann natürlich an der jeweils anderen Seite des Widerstandes wieder angesetzt. Folgende Abbildung zeigt das nochmal:

 

Ergebnis

Wie das Video am Anfang dieses Artikels zeigt, hat die Modifikation problemlos funktioniert. Ich habe die Widerstände nachträglich noch etwas vergrößert, um näher an die 180° heranzukommen. Strenggenommen müsste natürlich (mindestens) der Gain des von der Servoelektronik ausgeführten Regelalgorithmus an diese Modifikation angepasst werden. In dem Video oben ist tatsächlich ein gewisser Overshoot nach der Modifikation zu beobachten, im Verlaufe der weiteren Experimente konnte ich den aber nicht mehr reproduzieren. Um dem noch etwäs näher auf die Schliche zu kommen, habe ich die Spannung am Servopoti mal aufgezeichnet.

Die Spannung am Schleifer des Potis gibt ja direkt die Position des Servos wieder. Auch bei einigen Wiederholungen sind kaum signifikante overshoots oder Instabilitäten zu erkennen - mit der kleinen Ausnahme vielleicht, dass am Beginn der Fahrt von einer Extremposition in die gegenüberliegende reproduzierbar eine kleine Störung in die Gegenrichtung auftritt.

 

AddThis Social Bookmark Button
Zuletzt aktualisiert am Donnerstag, den 15. März 2012 um 14:56 Uhr
 

Kommentare  

 
#5 malte 2013-08-22 12:03
Hallo Felix! Dann geht aber die Positionsregelu ng verloren und man hat noch die mechanischen Anschläge.
Zitieren
 
 
#4 Felix Kechel 2013-08-13 13:08
Man kann es noch einfacher machen in dem man den Poti mitnehmer einfach aus dem zahnrad ausbaut und den servo einfach ohne betreibt.
Zitieren
 
 
#3 2012-07-09 10:11
Ich bin mir nicht sicher, ob ich deine Konstruktion richtig verstehe. Wird der Stellbereich deines Servos durch eine zusätzliche Mechanik auf zehn Umdrehungen erweitert? Wenn diese zehn Umdrehungen in irgendeiner Weise 30 cm entsprechen, dann sind 1-2 cm etwas zwischen 3 und 6 % des Stellbereiches. Wenn man sich jetzt z. B. mal obige Diagramme anguckt, könnte es durchaus sein, dass die Regelung bei der relativ geringen Regelabbweichun g den Motor nicht mehr voll aktiviert - was eben dazu führt dass er langsamer dreht. Und wenn du jetzt tatsächlich noch eine Untersetzung hast, mag das schon recht langsam am Abtrieb sein. Aber keine Ahnung, ob ich dich richtig verstanden habe... :-) Allerdings sehe ich nicht, wie zusätzliche Widerstände da helfen könnten. Damit stellst du ja quasi nur ein, welcher Drehbereich des Potis auf welchen Spannungshub abgebildet wird.

Gruß
Malte
Zitieren
 
 
#2 2012-07-08 17:58
Ich habe einen Externen Poti mit 5kΩ an meinen Servoe gebaut, um ein Zahnrad zu bewegen. Der Servo muss ca. 30cm Weg zurücklegen, was ungefähr 10x360° ist. Klappt eigentlich ohne Probleme. Wenn ich aber jetzt nur 1 oder 2cm z.B. Weg zurücklegen will, dann läuft der Servo ziemlich langsam, weil der Servo denkt, er ist schon relativ nahe am gewünschsten Stellwert. Das soll aber nicht sein, der Servo soll dennoch schnell den Weg zurücklegen. Ich habe mir jetzt überlegt, ich könnte auch mit zusätlichem Widerstand (oder geringerem) dieses Phänomen korrigieren. Liege ich da richtig?
Zitieren
 
 
#1 2012-04-10 22:43
Ist ja ein super Hack =)
Danke!
Zitieren
 

Kommentar schreiben

Sicherheitscode
Aktualisieren

 

Suche

Benutzer

Wir haben 6 Gäste online

unterstützt von

batronix logo

spacer

rotacaster logo

spacer

spacer

spacer

Meine Tweets

Extern

youtube logo twitter logo email logo

spacer

spacer

spacer

Reklame