Start

Experimente
- Servo 1
- Servo 2
- Servo 3

Grundlagen

Produkte

Neues

Impressum

Versuche mit dem Servomotor, Teil 1

Servomotoren gibt es komplett mit eingebauter Elektronik für Fernsteuermodelle. Aber kann man die erforderliche Steuerung auch selbst entwickeln? Dazu braucht man zunächst die geeignete Mechanik, also einen Getriebemotor mit angesetztem Potentiometer. Das hier verwendete Modell wurde ursprünglich für den Einsatz in Kartenlesegeräten entwickelt. Eine weiche Gummiwalze sollte eine Plastikkarte einziehen. Die Betriebsspannung des Motors beträgt 3 V, das Poti hat einen Widerstand von 5 kOhm.

Für eine erste Untersuchung der Eigenschaften des Servos eignet sich das SIOS-Interface. Der Motor lässt sich über die analogen Leistungsausgänge A und B ansteuern. Damit beide Drehrichtungen möglich werden, wird er in Brückenschaltung zwischen die Ausgänge gelegt. Das Poti wird mit den äußeren Anschlüssen an Masse und die Betriebsspannung von 5 V gelegt. Der Schleifer führt zum Analogeingang A.

 

Für den ersten Versuch eignet sich das Programm DoIt. Hier lassen sich die Ausgänge direkt steuern und die Eingänge ablesen. Damit kann man sehr schnell feststellen, dass der Moror bereits mit ca. 1 V anläuft. Wenn einer der Ausgänge auf eine mittlere Spannung von 2,5 V eingestellt wird, kann der andere zwischen 0 V und 5 V den beide Drehrichtungen und Stillstand steuern.

Der erste Test zeigt auch, dass das Getriebe einen internen Anschlag hat, der den Drehwinkel begrenzt. Das Poti erreicht daher nicht seinen Anschlag. Das verwendete Muster zeigte einen Stellbereich zwischen 1,2 V und 4,8 V. (Diese Werte sind möglicherweise nicht allgemeingültig, weil der Autor seine Neugier nicht zügeln konnte und das Getriebe vor dem Versuch einmal öffnete. Es zeigt sich dass, der Schleifer leicht abgenommen werden kann. Eine Justierung auf der Achse ist möglich.)

Ein Regelkreis

Normalerweise werden Servomotoren nicht manuell gesteuert sondern durch einen Regelkreis. Dabei wird durch Vergleich mit einem Sollwert festgestellt, ob der Istwert zu klein oder zu groß ist. Dann wird eine entsprechende Nachführung veranlasst. Ein guter Regelkreis muss schnell und exakt sein und die Sollposition unabhängig von der Belastung des Motors ansteuern. Wie präzise das geht, sieht man an Industrierobotern in der Autoproduktion.

DoIt enthält eine einfache Programmierumgebung, mit denen man die ersten Gehversuche unternehmen kann. Dabei ist klar, dass das erste Servoprogramm nicht gleich perfekt werden kann. Nicht umsonst ist die Regelungstechnik ein eigenes Fachgebiet.

    PROGRAMM
    B-Ausgang = 125
    A-Ausgang = 125
    Wiederhole
    Wenn A-Eingang > 100 Dann
    A-Ausgang = 50
    Sonst
    A-Ausgang = 200
    EndeWenn
    Bis A-Eingang = 100
    A-Ausgang = 125
    ENDE.

Das Ergebnis: Im Prinzip funktioniert es. Aber Der Motor scheint laufend über das Ziel hinauszuschießen. Es entstehen starke Regelschwingungen. Wenn die äußere Schleife nach einiger Zeit tatsächlich mit dem Istwert 100 verlassen wird, dauert es noch einige Millisekunden, bis der Motor abgeschaltet wird. In dieser Zeit entsteht eine neue Abweichung. Also wenn auf diese Art Industrieroboter gesteuert würden, sähen auch neue Autos schon arg verbeult aus.

Das erste Programm kann etwas verbessert werden, wenn man die Motordrehzahl reduziert. Die Regelung ist zwar langsamer, dafür aber präziser. Trotzdem ist mit diesem Verfahren keine durchgreifende Verbesserung möglich. Es handelt sich nämlich um einen Zweipunktreger, der also nur zwei Ausgangszustände kennt: links und rechts.Nach der Theorie muss es auf jeden Fall zu Regelschwingungen kommen.

Proportionalregler

Damit der Regelkreis einen stabilen Endzustand erreichen kann, muss ein Regler analog gesteuert werden. Beim Proportionalregler ist die Stellgrößer proportional zu Abweichung. Wenn der Istwert sich dem Sollwert annähert, wird der Motor langsamer, bis er schließlich steht. So etwas kann man mit DoIt leicht programmieren:

    PROGRAMM
    A-Ausgang = 125
    B-Ausgang = 125
    Wiederhole
    B-Ausgang = A-Eingang
    Bis Tastendruck
    B-Ausgang = 125
    ENDE.

Vor dem Test sollte der Motor manuell an eine der Randpositionen gebracht werden. Dann startet man das Programm und untersucht, ob der Motor seinen Sollwert erreicht. Ergebnis: Im Prinzip ja, aber nicht genau. Tatsächlich gibt es jetzt keine Regelschwingungen mehr. Aber der Motor bleibt schon vor dem vorgesehenen Endpunkt stehen.

Für eine Verbesserung müsste man eine größere Verstärkung der Abweichung haben. Allerdings ist das in DoIt etwas aufwendiger, weil hier nur mit Byte-Variablen gearbeitet wird. Das folgende Programm verwendet die Verstärkung 2.

    PROGRAMM
    A-Ausgang = 125
    B-Ausgang = 125
    Wiederhole
    Zahl = A-Eingang
    Wenn Zahl < 80 Dann
    Zahl = 80
    Sonst
    EndeWenn
    Wenn Zahl > 120 Dann
    Zahl = 120
    Sonst
    EndeWenn
    Zahl - 100
    Zahl * 2
    Zahl + 125
    B-Ausgang = Zahl
    Bis Tastendruck
    B-Ausgang = 125
    ENDE.

Ergebnis: Jetzt ist der Regler tatsächlich genauer. Mit einer kleinen Änderung kann man die Verstärkung noch weiter erhöhen (Zahl * 3). Aber dann kommt es doch wieder zu Regelschwingungen. Auch dieses Verhalten ist in der Regelungstechnik bekannt. Man begegnet ihm mit einem Integral-Anteil (I) und einem Differentialanteil (D) und baut einen PID-Regler. Den kann man allerdings mit DoIt nicht realisieren, schon aber mit VB oder Delphi.

Hinweise zu DoIt 

DoIt gibt es für unterschiedliche Interfaces als Freeware. Die Software läuft an Windows3.1. Vorsicht mit langen Datei- und Verzeichnisnamen. Hier muss man noch Rücksicht auf die alte Längenbegrenzung (8+3) nehmen. Inzwischen gibt es zwar das 32-Bit-Programm TurboCompact. Aber dieses neuere Programm ist für viele Interfaces von AK-Modul-Bus gemeinsam zu nutzen und unterstützt deshalb keine Analogausgänge. Außerdem hat DoIt eine sehr gute Hilfe. Deshalb eignet es sich nach wie vor für einfache Experimente.

Ideen für den Einsatz des Servomotors am SIOS:

  • Demonstrationsmessgerät mit langem Zeiger
  • Mini-Roboter, der auf der Gummiwalze "läuft"
  • Roboterarm mit zwei Motoren
  • Steuerung einer Marionette

Links:

Das Sios-Interface
Software-Download