Tips für PICs 17: FCS-Drehzahlregler

Es geht hier um den Einbau einer Regelung in ein Faller-Car-System-Fahrzeug.
Der Motor wird mit 1,2 oder 2,4 Volt betrieben und dreht sich nur in eine Richtung (Fahrt vorwärts).

Im Originalzustand fahren diese Autos nur "volle Pulle" oder sie stehen. Man kann versuchen, die Motoren mit einer PWM langsam fahren zu lassen. Dies funktioniert auch, aber nur in Grenzen. Je langsamer das Auto fährt, desto unsicherer wird das Verhalten. Im Extremfall bleibt es an jedem "Staubkörnchen" hängen, das es überfahren muß.

Also muß eine echte Drehzahl-Regelung her: sie mißt die Drehzahl und reagiert sofort (und für den Betrachter unmerklich), wenn sich etwas ändert.
Der Erfolg ist faszinierend: Das Fahrzeug kriecht mit langsamsten Rad-Drehungen vor sich hin. Stößt es auf ein Hindernis und wird aufgehalten, so drehen sich die Räder mit gleichbleibender Geschwindigkeit weiter.

Aus energietechnischen Gründen (kleiner Akku) ist es sinnvoll, den Motor mit einer PWM anzusteuern. In den Tast-Pausen bleibt Zeit, die Motor-EMK und damit die Drehzahl zu messen. Für derartige Aufgaben ist ein Mikrocontroller wie geschaffen: er erledigt prinzipiell seine Aufgaben nacheinander.

Ausführung:
Wir geben den PWM-Takt mit einem Timer vor, z.B. 2 ms. Das bedeutet, daß die Frequenz der PWM 500 Hz beträgt, ein guter Mittelwert für alle möglichen Motor-Typen..
Zu Beginn dieses Taktes wird zunächst die EMK des Motors gemessen. Dies dauert immer die gleiche Zeit. Danach wird der Meßwert mit einem Sollwert verglichen und daraus die Dauer des nächsten PWM-Pulses berechnet. Woher dieser Sollwert kommt, ist erst einmal uninteressant. Dann wird der PWM-Puls gestartet und mit der Dauer ein weiterer Timer aufgezogen. Ist dieser abgelaufen, wird der PWM-Puls beendet.
Danach wird auf den nächsten Takt gewartet.

elektrische Schaltung:
Schaltung Die nebenstehende Schaltung enthält eine minimale Anzahl von Bauelementen. Genau so aufgebaut ist unsere Test-Schaltung. Da ein PIC nicht mit 2,4 Volt läuft (und erst recht nicht mit 1,2 Volt), ist ein geregelter Spannungswandler vorgesehen. Dieser beinhaltet auch den Sender der Fahrzeugerkennung. Wir haben ihn an anderer Stelle beschrieben. Am Ausgang steht dort eine Spannung von ca. 3 Volt zur Verfügung, mit der ein normaler PIC gut leben kann. Der Test-Eingang ist für Dinge vorgesehen, die nicht direkt mit der Regelung zu tun haben.
Was wir hier zeigen wollen, ist eine Schaltung, die neben dem PIC nur noch den Transistor (IRLML6402, p-leitend) enthält. Auch der Widerstand zum Anschluß AN2 ist nicht notwendig. Er dient nur zur Sicherheit des PIC, falls "draußen" etwas Unvorhergesehenes auftritt.
Der Motor muß mit einem Bein an Masse liegen; ansonsten kann die EMK nur unter sehr hohem Aufwand gemessen werden.

Programm:
Es ist sicherzustellen, daß die Pulsbreite nicht 100% erreicht. Es muß etwas Zeit bleiben für die EMK-Messung. Wir haben dem Regler ein I-Verhalten (integrierend) verpaßt: wenn die EMK des Motors kleiner ist als der Sollwert, wird die Pulsdauer um 1 erhöht. Das ist programmtechnisch am einfachsten zu bewerkstelligen. Da dies, wie oben schon beschrieben, im Extremfall 500-mal je Sekunde passiert, ist eine ungewollte Trägheit der Regelung nicht zu befürchten. Zudem sollte sich der Sollwert für die Regelung nur langsam ändern, um das Fahrverhalten der Autos modellgerecht nachzubilden.
Daß das alles kein Hexenwerk ist, dokumentiert das folgende Flußdiagramm:
Grobstruktur
Der A/D-Wandler braucht für das Umrechnen eine Referenzspannung. Der 12F675 besitzt keine solche. Statt dessen wird dazu seine Versorgungsspannung herangezogen. Sie ist ausreichend stabil, so daß dabei keine Probleme auftreten. Der Motor ist mit Absicht an die Batteriespannung angeschlossen, um die 3-V-Schiene (durch seine Impulse) nicht zu stören.
Einige Motoren neigten zu Drehzahl-Schwankungen. Aus irgendwelchen Gründen stellte sich keine stabile Drehzahl ein. Es schien so, daß bei zu hoher Drehzahl der Motor nicht schnell genug abgeregelt werden konnte. Wir haben in dem Fall, daß die Drehzahl zu hoch war, versuchsweise den Puls nicht um 1 Bit verkürzt (also entsprechend dem Verhalten beim Hochregeln), sondern ihn ganz brutal halbiert (was programmtechnisch wieder sehr einfach ist). Dies sieht man sehr gut, wenn man die Pulsbreite auf dem Oszilloskop betrachtet, aber am Drehzahlverhalten in der Praxis ist dies nicht zu bemerken. Das klappte so gut, daß wir nicht weiter geforscht haben. Jeder der infrage kommenden Motoren ließ sich gut und vor allem stabil regeln.
Wir haben versuchsweise der Regelung den Sollwert "1" vorgegeben. Der Antrieb mit dem Motor M700L befindet sich in unserem "kleinen Bus". Er fuhr mit umgerechnet 1km/h.

Für die Eisenbahn ist diese Schaltung nicht so ohne weiteres verwendbar. Erstens sind dort die Spannungen viel höher, so daß der PIC davor geschützt werden muß. Und zweitens muß die Schaltung auch "rückwärts" funktionieren, was überhaupt nicht geht. Drittens ist die Spannungsversorgung des PIC nicht sichergestellt: Für's Anhalten wird die Fahrspannung auf 0 gestellt. Und damit kann der PIC nicht funktionieren. Schade.

Für weitere Fragen stehen gern zur Verfügung:
- der MEC; Besichtigung und Fachsimpelei z.B. an unseren "Club-Abenden"
- der Autor: Hans Peter Kastner

Version vom 25.10.2022; erstellt am: 11.10.2022
Copyright © 2022 by Modelleisenbahnclub Castrop-Rauxel 1987 e.V.

Valid HTML 4.01!