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.
Zuletzt aktualisiert am Dienstag, den 09. Mai 2017 um 12:50 Uhr