SinCos - die Motorsteuerung

 Startseite | Blog | Sitemap | Impressum | Login

Für den TD125MKII wurde eine neue Motorsteuerung entwickelt. Diese ist jedoch nicht nur für den Thorens, sondern prinzipiell für fast alle Niederspannungs-Synchronmotoren zu gebrauchen.

Sie bietet folgende Leistungsmerkmale

  • Generierung von 2 phasenverschobenen Sinus-Signalen mit der gleichen Frequenz.
  • Takterzeugung über einen quarzstabilisierten Mikrocontroller
    Damit kann die Drehzahl sehr genau eingestellt werden (heoretisch auf 0.001Hz genau, allerdings macht das praktisch wenig Sinn, weshalb eine minimale Auflösung von 0.01 Hz gewählt wurde)
  • Phasenversatz der Signale im 0.2 Grad-Schritten einstellbar, unterschiedliche Phasenlagen für unterschiedliche Drehzahlen möglich
  • Laufende Messung der IST-Drehzahl
    Im Prinzip handelt es sich um einen Ersatz für das Stroboskop
  • Softstart
    Während der Startphase dreht der Motor etwas langsamer. Hierdurch wird der Antriebsriemen weniger belastet. Weiterhin kann man mit dieser Methode Motoren auf Drehzahlen bringen, die sie "aus dem Stand" nicht erreichen würden, da die Mechanik dafür zu träge ist. So schaffe ich es mit dieser Methode auch mit dem sehr schwachen Motor des TD125 78 U/min zu erreichen. Dazu muss man aber sehr langsam beschleunigen (ca. 40 Sekunden Anlaufzeit).
  • Powerstart
    Die Ergänzung zum "Softstart". Hierbei wird während der ersten 10Sekunden ein höhere Ausgangsspannung bereitgestellt bzw. die Ausgangsspannung nach 10 Sekunden reduziert. Gerade bei Motoren mit einem hohen Drehmoment macht es Sinn, die Motorspannung während des Anlaufens gross zu wählen und während des Abspielens zurreduzieren. Dies hilft Vibrationen zu minimieren.
  • Automatische Abschaltung
    Nach einer definierten Zeitspanne schaltet der Motor automatisch ab (ähnlich einer Endabschaltung)
  • LCD-Display mit Anzeige der aktuellen SOLL/IST-Drehzahl oder anderer Parameter
  • Umschaltung von verschiedenen Drehgeschwindigkeiten (33/45/78)

Prinzipiell sind noch andere Features denkbar, die hier genannten sind bereits fertiggestellt.

Sinus/Cosinus-Erzeugung

Für die Erzeugung des Sinus/Cosinus-Signals werden die PWM-Ports von Timer1 benutzt. Mit Hilfe des Timers wird ein PWM-Signal mit der Frequenz fclk/512 (hier ca. 29kHz) erzeugt. Durch einen nachgeschalteten Hochpass (f=2Hz) wird der Gleichspanungsanteil entfernt und in einem Tiefpass (f=160Hz) die PWM-Frequenz ausgefiltert.

Zur Erzeugung des eigentlichen Signals wird Timer0 benutzt. Dieser läuft mit vollem CPU-Takt und erzeugt somit alle 256 Takte einen Overflow-Interrupt. In der ISR dieses Interrupts wird nun ein 32-bit Counter erhöht und aus einer Tabelle im Flash (1024 Werte) ein neuer Wert für die PWM-Generatoren von Timer1 erzeugt.

Durch die Benutzung von 32-bit-Werten erreicht man eine sehr hohe Granularität der Frequenz (mit 16-bit-Werten wäre die Granularität mit ca. 0.25Hz recht grob gewesen). Allerdings hat dies auch seine Schattenseiten: ca. 50% der gesamten CPU-Leitung wird hier benutzt. Da aber keine anderen zeitkritischen Berechnungen benötigt werden, ist das kein Problem.

Motortreiber

Für den TD125 wurde zuerst ein sehr einfacher Motortreiber aus einem OPV mitnachgeschalteter Transistor-Treiberstufe eingesetzt. Dies ist für den schwachen Motor des TD125 eine brauchbare Lösung. 

Um die Steuerung allerdings universeller einsetzen zu können, wurden 2 andere Endstufen entwickelt. Beide basieren auf gängigen NF-Verstärkerchips und sind damit auch vollwertige NF-Endstufen. Die kleinere Variante SinCos Power mit dem TD2050 kann für Motoren bis etwa 14V Spannung benutzt werden, die grössere LM3886-basierte SinCos Megapower kann auch 24V-Motoren ansteuern.

Prinzipiell ist es möglich, auch Hochvolt-Endstufen einzusetzen, die Spannungen bis zu 220V bereitstellen, um Netzspannungsmotoren zu betreiben. Hier bewegt man sich dann aber im Spannungsbereich >42V, von dem man als Amateur möglichst die Finger lassen sollte. Experimente mit Netzspannung können tödlich ausgehen! Daher werde ich auch keine Tips für mögliche Hochvolt-Endstufen geben. Wer selbst so etwas entwickelt, weiss hoffentlich, womit er es zu tun hat und welche Sicherheitsvorschriften einzuhalten sind.

Spannungsumschaltung

Werden statt LED3 der Transistor und das Relais bestückt, besteht die Möglichkeit, 2 verschiedene Spannungen am Ausgang zu wählen.  Hierfür ist für LED3 die Funktion "Anlauf" zu wählen.

In diesem Fall wird während der ersten 10 Sekunden nach Start bzw. nach Geschwindigkeitsänderungen (Umschlatung 33/45) die volle Spannung am Ausgang bereitgestellt und danach eine reduzierte Spannung. Die reduzierte Spannung wird über die beiden rechten Trimmer eingestellt.

Dieses Feature macht bei drehmomentstarken Motoren Sinn. Man kann in diesem Falle den Motor mit voller Leistung laufen lassen und dann die Spannung soweit reduzieren, dass der Motor gerade noch sauber läuft. Gerade bei drehmomentstarken und leistungsstarken Motoren macht das Sinn, da damit die Leistungsaufnahme reduziert wird, was zu einer geringeren Wärmeentwicklung führt und die Kühlung des Motors erleichtern. Weiterhin werden durch eine reduzierte Betriebsspannung u.U. auch die Vibrationen des Motors geringer.

Drehzahlmessung

Für die Drehzahlmessung kommt eine Reflexlichtschranke zur Anwendung. Im Prinzip ist die Schaltung aber für beliebige andere Sensoren ausgelegt. Einzige Anforderung: Betriebsspannung von 5V und eine Ausgangsspannung zwischen 0V und 5V. Zwischen den Stroboskopmarkierungen "hell" und "dunkel" sollte ein Spannungshub von minimal 0.3V vorhanden sein. Mehr ist natürlich auch gut, je geringer die Spannungsdifferenz zwischen den beiden Extremwerten ist, desto grösser ist das Risiko, dass es zu Problemen kommt.

Ich selbst benutze hierfür eine SFH9202, deren Vorteil die Verfügbarkeit beim grossen "C" ist (und billig ist sie auch noch). Die Spannungsdiferenz zwischen "schwarz" und "weiss" beträgt hier ca. 0.7V. Das reicht für eine saubere Erkennung problemlos aus, da die AD-Wandlung eine Auflösung von 10 bit nutzt.

Aufbereitung des Signals der Lichtschranke

Zuerst hatte ich die Idee, das von der Lichtschranke gelieferte Signal direkt an den Comperator-Port des ATMega zu schalten. Da das Signal aber doch gewissen Störsignale enthält, lässt sich so keine saubere Frequenzmessung erreichen. Das Signal muss also noch weiter aufbereitet werden, wofür es verschiedene Varianten gibt:

  1. RC-Tiefpass hinter der Empfängerstufe
  2. Tiefpass in Software (hier werden einfach Perioden, die "zu kurz" erscheinen ignoriert)
  3. Einsatz eines Hardware-Schmitt-Triggers (1 OPV + 2 Widerstände)
  4. Software-Schmitt-Trigger

Letztendlich fiel die Wahl auf Variante 4. Nun wird nicht (wie ursprünglich geplant) der Comperator-Port benutzt, sondern der AD-Wandler. Mit ca. 100 Wandlungen pro Sekunde ist der Overhead für die Datenaufbereitung so klein, dass der Prozessor nicht stark damit belastet ist und sich dennoch um seine anderen Tätigkeiten kümmern kann.

Die Nutzung des AD-Wandlers hat noch einen anderen Vorteil: man kann das Ganze komplett selbstjustierend gestalten. Es wird einfach die minimale und maximale Spannung gespeichert und die Schwellwerte für den Schmitt-Trigger anhand dieser Schwellwerte automatisch mittels vorgegebener Schaltpunkte (z.B. 50% und 70%) berechnet. Damit kann die Installation komplett ohne Messgerät erfolgen.

Signal des Drehzahlsensors

Serielle Schnittstelle

Zusätzlich ist eine serielle Schnittstelle vorgesehen. Diese kann einerseits genutzt werden, um die Steuerung einzustellen. In diesem Falle werden keine zusätzlichen Bedienelemente am Gerät benötigt. Weiterhin kann die Schnittstelle genutzt werden, um Daten an einen angeschlossenen Computer auszugeben. So ist es z.B. möglich, Messwerte der Drehzahlmessung auszugeben um am Computer nachträglich den Gleichlauf zu analysieren. Weiterhin bietet sich diese Schnittstelle an, um Software-Updates auf den Mikrocontroller zu spielen. Im Vergleich zu den meisten ISP-Programmiergeräten geht der Update über die serielle Schnittstelle nicht nur rasend schnell (ca. 4 Sekunden für die vollständige Programmierung eines ATMega8), sondern erfordert auch kein zusätzliches Programmierkabel. Für die Erstprogrammierung des Chips mit dem entsprechenden Bootloader ist jedoch immer noch ein ISP-Adapter erforderlich. Eine Alternative ist die Programmierung des Bootloaders in einem externen Programmieradapter (z.B. dem STK500 von Atmel).

Als Schnittstellentreiber kommt die Standardschaltung mit MAX232 zum Einsatz.

Serielle Schnittstelle mittels MAX232

Ähnliche Projekte, weitere Informationen

Werbung
Look-Out
Talking about everything
Crazy audio
DIY audio projects and more
Anmesty International SchweizMenschenrechte für alle

Menschen für MenschenKarlheinz Böhms Äthiopienhilfe