Servos für die Modellbahn

Technischer Hintergrund

    Servos werden mit einen schmalen Puls von 1ms bis 2ms Dauer angesteuert, die Pulsbreite gibt die Position an. Dieser Puls wird alle 20ms wiederholt. Erste Voraussetzung für eine gute Ansteuerung ist daher eine genaue Erzeugung des Pulses: 1ms deckt den Bereich von 180° ab - d.h. bei einer (elektrischen) Auflösung von 1µs kann man theoretisch auf 0,2° genau positionieren (OpenDecoder machen die Auflösung mit Timern, also auf 1µs genau und ohne Jitter). Das ist für die absolute Position i.d.R. mehr als ausreichend, wird allerdings bei langsamen Bewegungen wichtig: ist da die Auflösung gröber, laufen die Servos nicht gleichmäßig.
    Hinweis: es gibt auch Implementierung, die nicht auf Timer basieren, sondern mit das mit Software machen (oft bei achtfach Dekodern). Diese haben implementierungsbedingt eine schlechtere Auflösung und sind für langsame Bewegungen nicht so gut geeignet.

    Das Servo setzt nun diesen Puls auf Bewegung um und dabei gibt es ziemliche Qualitätsunterschiede. Prinzipiell gibt es zwei verschiedene Arten von Servos:
  • Analoge Servos:
    Der Puls wird in Servo mit der Stellung eines Potis verglichen, dass vom Stellarm betätigt wird. Das Vergleichsergebnis wird der Motorendstufe zugeführt, welche den Motor entsprechend links/rechts dreht. Diese Konstruktion ist recht einfach und billig, hat aber ein paar Nachteile:
    • Je nach mechanischer Güte der Potiankopplung ergeben sich Totbereiche und 'Hüpfer': das Servo ruckeln dann bei langsamer Bewegung.
    • Bei der Auslegung des Potis und der Elektronik im Servo wird der Bereich 1ms bis 2ms oft nur unzureichend auf den möglichen Drehbereich abgebildet. Ich hatte hier schon Dinger vom Wühltisch, die machen nur 90° und brauchen ein nicht normgerechtes erweitertes Signal.
    • Das Poti ist manchmal nicht wirklich linear - Pulsbreite und Stellweg hängen nicht linear voneinander ab. Das macht normalerweise nichts, weil es durch die Justage im Dekoder kompensiert wird.
    • Das Poti hat einen Temperaturgang, d.h. die angefahrene Position ist bei kaltem Zustand eine andere als in warmen Zustand. Das ist ein ziemlich lästiger Effekt, wenn z.B. bei einer Modellanlage nach mehrstündigem Betrieb eine Weichenzunge nicht mehr anliegt. Vermindern kann man diesen Effekt durch möglichst große Übersetzung von Drehwinkel auf Stellweg. Von der oft vorgeschlagenen Methode, den Stelldraht durch den Servoarm hindurch bis zur Stellschwelle zu verlängern halte ich aus diesem Grund wenig, weil da nur ein geringer Stellweg benutzt wird. Seitliche Anlenkung ermöglicht mehr Stellweg.
    • Die analoge Regelung startet 'einfach so'. Das führt zu Einschaltruckeln, wenn die internen Spannungen und Ansteuerpulse noch nicht hundertprozentig stabil stehen. Trotz vieler Versuche habe ich bisher noch keine Methode gefunden, das komplett für alle Typen zu unterdrücken: Ein Einschalten mit zuerst abgeblendeten Ansteuersignal scheint das geringste Übel zu sein und bei den meisten Servos ist das Ruckeln fast weg.
      Bessere Servo habe eine Art Verzögerung für die Ausgangsstufe und mucken nicht auf.
  • Digitale Servos: Der Puls wird hier einer Digitalschaltung zugeführt. Das Messsystem kann entweder wieder ein Poti sein (mit ähnlichen Problemen wie analoge Servos) oder eine digitaler Drehencoder. Die beiden Zahlen werden verglichen und eine Ausgangsstufe entsprechend angesteuert. Die Regelung muß nicht unbedingt im 20ms Raster erfolgen, sondern kann auch häufiger bedient werden.
    • Durch die digitale Kontrolle wird die Ausgangstufe erst aktiv, wenn alles stabil ist - es gibt i.d.R. kein Einschaltruckeln (leider gibt es da auch Ausnahmen)
    • Der Drehbereich wird komplett erreicht.
    • Zusammen mit der teureren Elektronik ist i.d.R. auch eine bessere Mechanik verbaut - kein Ruckeln o.ä.
    • Durch die häufigere Regelung ergibt sich manchmal ein höherer Stromverbrauch.
    • Gute Digitalservos (in der 50€-Klasse) sind für anspruchsvolle Aufgaben wie z.B. Segmentdrehscheibe zu verwenden.
    Futaba hat einen Artikel über die Vorteile eines Digitalservos veröffentlicht.

Erfahrungen mit Servos

    Die folgenden Angaben sind subjektive Beurteilungen, und sind speziell bei den Servos vom Wühltisch auch noch chargenabhängig.
    TypGröße / PreisklasseBewertung
    Conrad ES-030 Standard, 5€ Läuft laut und rauh, ruckelt. Hoher Stromverbrauch (Pulsspitzen), Einschaltruckler.
    Conrad ES-05 JR Mini, 10€ Läuft nicht ganz so laut mit singenden Ton, ruckelt bei langsamen Bewegungen Einschaltruckler.
    Conrad ES-05 JR Mini, 10€ Läuft nicht ganz so laut mit singenden Ton, ruckelt bei langsamen Bewegungen Einschaltruckler.
    Robbe FS 100 Standard, 10€ Läuft leise, langsame Bewegung ist gut, kaum Einschaltruckler, gutes Servo.
    Graupner C505 Standard, 15€ Läuft etwas knurrig, bischen rauh. kaum Einschaltruckler, akzeptabel.
    Hitec HS311 Standard, 15€ Läuft etwas leise, langsame Bewegung ist gut, wenig Spiel, gutes Servo.
    Hitec HS55 Micro, 15€ Läuft singend, langsame Bewegung ist gut, wenig Spiel, gutes Servo.
    E-Sky 02 Mini, 8€ Leise, langsame Bewegung ist gut, kein Ruckeln, digital. Erfordert aber durchlaufenden Ansteuerpuls (kein Abschalten am Ende der Bewegung)
    EMAX ES08 Mini, 5€ Leise, langsame Bewegung ist gut, deutliches Einschaltruckeln, digital.

Einschaltruckeln

    Analoge Servos zeigen oft beim Anlegen der Betriebsspannung ein Einschaltruckeln. Dieses Ruckeln stört in der Orginalanwendung nicht weiter, beim Betrieb auf der Modellbahn ergeben sich aber fallweise folgende Probleme:
  • Überlastung der Stromversorgung:
    Da Ruckeln verursacht einen Stromimpuls im Motor, dieser beträgt je nach Servogröße bis zu 2A. Typische Standard-Servos ziehen 400mA-800mA. Sind nun mehrere Servos parallel verbaut, so summiert sich der Stromimpuls beim Einschalten auf Größen, für die übliche Stromversorgungen nicht ausgelegt sind.
    Dies kann dramatische Folgen haben: Das Netzteil fährt an, Servos beginnen mit Ruckeln, Netzteil schaltet wegen Überlast ab und wieder an, usw. In diesem Fall fahren die Servos wild hin- und her bis irgendein beteiligtes Teil den Dienst quittiert.
  • Unerwünschte Wirkungen:
    Ev. kann das bewegte Objekt dem Einschaltruckler nicht folgen und wird dadurch beschädigt oder verstellt. Auch kann die Einschaltbewegung einen Vorgang auslösen, den man gar nicht wollte. Dies ist z.B. lästig bei Faller Car Strecken, wenn der Stopmagnet durch das Ruckeln kurz wegschwenkt und das Fahrzeug unkontrolliert losfährt.

  • Also habe ich eine Reihe von Maßnahmen untersucht und teilweise auch eingebaut, um das Ruckeln zu reduzieren bzw. die Auswirkungen abzumildern. Leider habe ich keine Methode gefunden, welche universell bei allen Servos wirkt. Manche Servos werden mit Methode 1 ruhig, manche mit Methode zwei, manche sind immer ruhig, manche nie :-(. Und leider ist z.B. ein ES030 (chargenabhängig) mal so oder mal so ruhig zu bekommen.
  • Methode 1: Ansteuerpuls zu Beginn blockieren und verzögert sowie synchron freigeben.
    Erzeugte Initfolge: Puls = ______________X_____X_____X_____
  • Methode 2: Ansteuerpuls zu Beginn auf Dauer-Ein setzen und verzögert in den Pulsbetrieb umschalten.
    Erzeugte Initfolge: Puls = XXXXXXXXX_____X_____X_____X_____
  • Methode 3: Betriebspannung des Servos sehr langsam von 0 auf 5V erhöhen, dann erst Pulsbetrieb aufnehmen.
  • Methode 4: Betriebspannung des Servos beim Hochfahren nur in Pulspausen anlegen, um die Servo-interne Elektronik ohne Motorleistung stabil zu bekommen.
  • Methode 5: Betriebspannung des Servos beim Hochfahren synchron (in allen möglichen Phasenlagen) anlegen. Optimal scheint 'Einschalten genau nach einem Puls' zu sein.
  • Methode 6: Betriebspannung des Servos verzögert zuschalten. Damit läßt sich die Überlast der Stromversorgung in den Griff bekommen. Zusätzlich zur Grundverzögerung ist eine von der eigenen Dekoderadresse abhängige Komponente implementiert, damit verschiedene Dekoder zeitversetzt zuschalten.
  • Eingebaut sind die Methoden 1 und 2 (Bit 6 der Konfigurations-CV (CV555)), zusätzlich bei der Hardware 2.5 auch die Methoden 5 und 6. (Nur die Hardware 2.5 hat einen MOSFET, um die Betriebsspannung der Servos zu schalten.)