|
GleistreiberDie beiden Gleistreiber fallen auf der Platine sofort durch die großen Motortreiber-ICs und die dahinterliegenden Leistungswiderstände ins Auge. Vor ihnen befinden sich die beiden Anschlüsse, an denen der Fahrstrom für die Gleise entnommen werden kann. KurzschlußsicherungDie Treiber-ICs müssen jeweils einen Dauerstrom von einem Ampere liefern können. Gleichzeitig sind die Gleise an ihren Ausgängen ständig dem Risiko eines Kurzschlusses durch falsch gestellte Weichen und Fremdkörper auf den Schienen ausgesetzt. Deshalb müssen die Ausgänge durch eine Überlastsicherung vor Schäden bewahrt werden. Diese überwacht den gesamten Strom, der in die beiden Motortreiber und wieder aus ihnen herausfließt, und kann so auch Kurzschlüsse gegen die Versorgungsspannung oder eine Nachbarschaltung erkennen.
Der Strom fließt auf seinem Weg vom Netzteil durch zwei niederohmige Lastwiderstände und verursacht über ihnen einen Spannungsabfall. Bei einem Strom von mehr als 2,7 Ampere erreicht diese Spannung 0,6 Volt und der darüber angebrachte Transistor wird leitend. T2 zieht den Eingangspin RA4 des Mikrocontrollers direkt auf Masse, T1 kann T2 übersteuern und so die selbe Wirkung hervorrufen. Der Mikrocontroller erkennt an einem Low-Pegel an diesem Eingang, daß eine Überlastsituation oder ein Kurzschluß vorliegt. Bei dem Pin handelt es sich um einen Eingang mit Schmitt-Trigger, so daß die analogen Spannungspegel kein Problem darstellen.
Die beschriebene Sicherung kommt mit einem Minimum an Bauteilen aus und reagiert trotzdem sehr schnell und zuverlässig auf Kurzschlüsse. Das Zeitverhalten kann durch Veränderung der Konstanten in der Firmware angepaßt werden, falls dies nötig sein sollte. Erzeugung des FahrstromesDer Fahrstrom wird von fertigen Motortreiber-ICs bereitgestellt, die eine komplette H-Brücke und die nötige Ansteuerung enthalten. Die Brücke kann einen der Ausgänge mit der positiven Versorgungsspannung und den anderen mit Masse verbinden, so daß der Zug vorwärts oder rückwärts fährt. Sind alle Transistoren der Brücke abgeschaltet, ist der Ausgang hochohmig und die Stromzufuhr zum Gleis faktisch unterbrochen. Als letzte Möglichkeit kann die Brücke beide Ausgänge miteinander verbinden, diese Einstellung bremst einen angeschlossenen Zug. Dessen noch drehender Motor arbeitet dann als Generator, der erzeugte Strom wird über die Brücke in Wärme umgewandelt, und der resultierende Energieverlust bremst den Motor.
Der hier eingesetzte Motortreiber L6203 ist kompakt, robust, weit verbreitet und kann einen Dauerstrom bis 4 Ampere liefern. Die Eingänge IN1 und IN2 steuern die H-Brücke, ENABLE erlaubt es, Pulsweitenmodulation sehr einfach mit Frequenzen bis 100 Kilohertz zu realisieren. Diese Pins sind mit dem Mikrocontroller über Widerstände verbunden, die bei Fehlfunktionen ein Latchup verhindern sollen. An den Ausgängen der Motortreiber sind direkt die Stecker für die Gleise und eine Meßschaltung angeschlossen, die im folgenden Abschnitt diskutiert wird. Die Kondensatoren im Umfeld der Treiber entsprechen den Empfehlungen aus dem Datenblatt. Die Fahrgeschwindigkeit wird genau wie die Intensität beim Abbremsen eines Triebwagens über Pulsweitenmodulation gesteuert. Dazu setzt die Firmware den Bresenham-Algorithmus ein.
Dieser Algorithmus erlaubt es, die Geschwindigkeit in 255 Abstufungen einzustellen. Dabei zeigt er bessere Fahreigenschaften als die klassische Pulsweitenmodulation mit fester Fensterbreite, insbesondere bei niedrigen Geschwindigkeiten. Die Anwendungsprogramme können durch eine Einschränkung des Interfaces nur auf die oberen 7 Bit des Tastverhältnisses zugreifen, dies ist aber immer noch vollkommen ausreichend. Messungen an den GleisenDer Mikrocontroller kann über zwei Meßschaltungen die Spannungen messen, die momentan an den Gleisen anliegen. Im einfachsten Fall mißt die Schaltung so die Ausgangsspannung eines aktiven Motortreibers. Interessanter ist jedoch, was beim Abschalten des Treibers für einen kurzen Moment passiert. Fährt ein Zug auf dem angeschlossenen Gleis, dreht der Motor im Triebwagen sich durch die Trägheit noch weiter und funktioniert wie ein Generator. Dabei erzeugt er eine Spannung, die proportional zur Drehzahl und damit zu seiner Geschwindigkeit ist. Auf diese Weise kann die Sensorschaltung die Geschwindigkeit eines fahrenden Zuges messen. Steht in diesem Moment kein Triebwagen auf den Gleisen, wird die Spannung am Ausgang des abgeschalteten Motortreibers von den Kondensatoren aufrecht gehalten und fällt nur langsam ab. An diesem Unterschied läßt sich also erkennen, ob überhaupt ein Triebwagen auf dem Gleis steht, die Funktion wird als Gleisbesetztmelder bezeichnet. Die Meßschaltung besteht aus Operationsverstärkern in Subtrahierschaltung. Der Nullpunkt ist durch den Spannungsteiler aus R3 und R4 etwas angehoben, so daß auch negative Spannungen gemessen werden können. Die übrigen Widerstände skalieren die Ergebnisse auf ein Zehntel. Tiefpaßfilter glätten die gemessenen Spannungen und führen sie über Schutzwiderstände zu ADC-Eingängen des Mikrocontrollers. Die virtuelle Masse kann über einen dritten ADC-Eingang gemessen und so von den anderen Werten wieder subtrahiert werden. Die Firmware untersucht beide Gleise mit variabler Häufigkeit. Besteht keine Verbindung zu einem Steuerrechner, wird gar nicht gemessen. Sonst erfolgt die Messung bei stehenden Zügen einmal pro Sekunde, während der Fahrt dann alle 0,2 Sekunden. Die Ursache hierfür ist, daß die Geräuschkulisse auf ein Minimum reduziert werden soll. Der Gleisbesetztmelder muß für eine Messung die Gleistreiber kurz aktivieren, auch wenn diese eigentlich abgeschaltet sind. Die Impulse sind als Ticken der Motoren hörbar. Um die Nerven der Entwickler zu schonen, erfolgt dies im Ruhezustand so selten wie möglich. Während der Fahrt stört das Ticken hingegen nicht und die Messungen erfolgen entsprechend häufiger.
Eine Meßsequenz läuft in mehreren Schritten ab, die jeweils von Fast Ticks ausgelöst werden. Die volle Sequenz mit allen Schritten dauert 7 Millisekunden, der resultierende Wert entspricht durch die Skalierung relativ genau der Geschwindigkeit des Zuges in Zentimetern pro Sekunde.
Wenn die Firmware nicht mit der Messung eines Gleises beschäftigt ist, bestimmt sie stattdessen das Potential der virtuellen Masse, die den Nullpunkt für die anderen Spannungsmessungen vorgibt. Dazu sind nur wenige Schritte notwendig, die auch in Fast-Ticks ablaufen.
Mit diesen Möglichkeiten kann die Steuersoftware alle Blöcke ermitteln, die momentan von Zügen belegt sind. Genauso wichtig ist die Messung der Geschwindigkeit, die es ermöglicht, das Fahrverhalten der Züge zu regeln. Das PWM-Tastverhältnis kann laufend so angepaßt werden, daß Züge auch in Steigungen und im Gefälle immer gleich schnell fahren. Diese Aufgabe kann ein externes Programm im Steuerrechner übernehmen, die Firmware enthält aber auch eine transparent nutzbare Funktion hierfür. Regelung der GeschwindigkeitEin mit der Leistungselektronik verbundener Rechner kann sich entscheiden, ob er die PWM selber vorgeben will oder die genaue Einstellung der Firmware überläßt. Im zweiten Fall gibt der Rechner nur die Zielgeschwindigkeit vor und die Leistungselektronik versucht, diese möglichst genau zu halten. Als Grundlage dient ein leicht erweiterter PID-Regler, der jedesmal ausgeführt wird, wenn neue Meßdaten von dem jeweiligen Gleis vorliegen.
Dieser Algorithmus weicht etwas von dem klassischen PID-Regler ab, der differentielle Fehler wird anders berechnet und es kommt ein Summand hinzu, der nur von dem Sollwert abhängt. Durch diese Modifikationen erreicht der Regler die Zielgeschwindigkeit wesentlich schneller und schwingt dabei kaum. Bei Tests hat sich gezeigt, daß ein Wert von 1 für alle Konstanten gute Ergebnisse liefert und die Formel dadurch extrem einfach in Assembler zu implementieren ist. Um das Verhalten an den Blockübergängen zu verbessern, wird der Regler in einen übergeordneten Algorithmus eingebettet.
Ganz nahtlos kann der Blockwechsel nie ablaufen, vor allem wenn die angrenzenden Gleise von unterschiedlichen Leistungselektroniken bedient werden. Mit dem genannten Algorithmus ist der Übergang vor allem bei mittleren bis hohen Geschwindigkeiten kaum zu sehen.
Die Ergebnisse des Reglers auf einer ebenen Strecke sind in obigem Diagramm zu sehen. Eine Lok fährt hier auf dem ovalen Testgleis, der Regler soll die Geschwindigkeit auf 30 Einheiten halten. Der Triebwagen erreicht den Zielwert fast sofort und hält das Tempo sehr konstant. Deutlich sind in der Abbildung auch die Blockwechsel zu erkennen. Hier kann die Leistungselektronik keine brauchbaren Meßwerte ermitteln, daher kommt es zu den Spitzen in den Kurven. Wird das Gleisoval stark geneigt, muß der Regler zusätzlich die verschiedenen Steigungen ausgleichen. Das Resultat ist im folgenden Diagramm zu sehen. Das Tempo variiert durch die erschwerten Bedingungen etwas mehr, und in der PWM-Kurve sind deutlich die Steigungen zu erkennen.
|