PWM Motor Controller 80 Ampere 24 Volt Scooter

Page content

PWM Motor Controller 80A

Für die Geschwindigkeitskontrolle meines Elektromofas “Solo Electra” wurde in den 70er Jahren nur ein Ein/Ausschalter spendiert, den man über einen Gasgriff am Lenker bedienen kann. D.h. der Motor ist entweder an oder aus. Man kann somit keine gleichmäßige Geschwindigkeit fahren. Dies wurde so gemacht, weil man damals keine billige elektronische Regelung für die auftretenden hohen Amperezahlen (bis zu 120 Ampere beim Anfahren bei 24V laut Foren) bauen konnte.

Manuelle PWM wie bei der Solo Electra im Original benutzt: Der Gasgriff wird " nach Bedarf" ein- und ausgeschaltet. Der Motor bekommt entweder keinen Strom oder “Vollgas”.

BILD: Ein/Aus Schalter BILD: Lenker Gasgriff

Seit dem Aufkommen von Leistungs-MOSFETs ist dieses Problem aber günstig in den Griff zu bekommen. Es gibt für wenige Euros MOSFETs, die 200 Ampere und mehr schalten können. Durch Parallelschaltung der MOSFETs kann man quasi beliebige Ströme schalten. In Elektroautos werden mit einer ganzen Armada von MOSFETs z.B. 600 Ampere bei 150 Volt geschaltet.

Motor Controller kann man wie immer kaufen oder auch selbst bauen.

Theory of Operation

Ein Standardverfahren für die Geschwindigkeitssteuerung ist das PWM-Verfahren ( Puls Weiten Modulation). Auch bei diesem Prinzip wird der Motor abwechselnd aus- und eingeschaltet. Unterschied ist aber, dass das Umschalten automatisiert mittels eines Controllers durchgeführt wird. Außerdem wird das Umschalten z.B. tausendmal pro Sekunde gemacht, so dass das Ruckeln der “manuellen PWM” wie beim Original der Electra natürlich nicht zu spüren ist.

In einer Zeiteinheit (Beispiel 1 Sekunde) wird der Motor nur anteilig eingeschaltet, den Rest der Zeit ist er abgeschaltet. Beispiel: 0,5s an, 0,5s aus. Dann erhält der Motor pro Sekunde nur 50% der Energie (50% Duty Cycle) und dementsprechend fährt man langsamer. Da die Zeiteinheit “1 Sekunde” noch zu groß ist und man ein Ruckeln spüren würde, verwendet der PWM-Controller wesentlich kleinere Zeiteinheiten. Man spricht dann auch eher von der Frequenz als von der Länge der Zeiteinheit. 1s entspricht 1Hz, und ab etwa 100Hz gehen reale PWM-Steuerungen los. PWM-Steuerungen werden nicht nur für Motorkontrolle, sondern z.B. auch für LED-Dimmen und alle Schaltnetzteile verwendet. Dort gehen die Schaltfrequenzen bis in den Bereich von einigen hundert Khz hinein. Übliche PWM-Controller in PC-Netzteilen laufen z.B. bei 100-300Khz.

Beispielhaft zwei PWM-Zyklen für 50% und 10% Duty Cycle:

PWM 50 und 10%

PWM-Controller werden sehr oft nach folgendem Grundprinzip gebaut:

  • Eine Sägezahnspannung wird mit einer bestimmten Frequenz erzeugt. Dabei wird in jedem Takt ein Spannungsbereich von z.B. 0 Volt bis 5 Volt durchlaufen.
  • Eine (einstellbare) Referenzspannung wird erzeugt
  • Ein Komparator vergleicht die Sägezahnspannung mit der Referenzspannung. Er gibt 0 Volt aus für solange die Sägezahnspannung kleiner ist als die Referenzspannung und z.B. +5Volt solange die Sägezahnspannung größer ist als die Referenzspannung. Damit kann man pro Takt einen Duty Cycle festlegen.
  • Falls die Referenzspannung variabel gestaltet wird, lässt sich der Duty Cycle variieren.
  • Mit dem erzeugten Signal des Komparators wird ein MOSFET angesteuert, der den Motor mit der PWM-Frequenz aus- und einschaltet.

Sägezahnspannung und eingestellter Duty Cycle (50% und 90%) und resultierendes Signal am Komparatorausgang (Ansteuerung MOSFET)

Erster Wurf: Controller mit PWM-Controller TL494, Version 1

Der Motorcontroller besteht aus 2 Platinen, “Controller Platine” und “Power Platine”.

Die Power MOSFETs, Power-Dioden und Anschlüsse für Batterie und Motor sind sehr hohen Strömen ausgesetzt. Außerdem muss Platz für Kühlkörper und Anschlußschrauben vorgesehen werden. Für diesen Schaltungsteil wurde daher eine getrennte Platine entworfen.

Controller Teil

Es wird der schon sehr lange am Markt verfügbare PWM-Controller TL494 verwendet. Aus der Batteriespannung wird via LM340 Spannungsregler eine stabile12V Betriebsspannung erzeugt. Via R7 wird die Batteriespannung “gemessen” und bei der Ansteuerung des Controllers berücksichtigt. Damit ist ein Unterspannungsschutz realisiert. Eine Strommessung ist in diesem Entwurf nicht vorgesehen.

Die Schaltung ist im Kern nicht von mir und eine vereinfachte bzw. abgewandelte Variante der bei www.elektronica.mk vorgestellten Schaltung (siehe " Weiterführende Infos").

Controller Schaltplan, Version 1

An X1 ist das steuernde Potentiometer anzuschließen (10KOhm).

An X2 ist an Pin1 +24Volt anzuschließen, an Pin 3 0V (Minuspol Batterie). An Pin 2 kann auf Wunsch 12V geregelt abgegriffen werden.

R6 dient der Justierung der “Nullstellung”, d.h. er ist so einzustellen, dass der Motor keinen Strom bekommt, wenn das Steuerpoti auf Null steht.

R8 steuert die Schaltfrequenz.

Mit R5 kann der Unterspannungsschutz eingestellt werden. Damit kann verhindert werden, dass die Batterien unter eine bestimmte Spannung leergefahren werden.

Die Ausgänge TP1-4 können MOSFETs ansteuern. Falls die weiter unten dargestellte Leistungsplatine verwendet wird, sind die Widerstände R13-R16 hier nicht einzulöten (sie sind auf der Leistungsplatine schon vorhanden).

Controller Platine, Version 1

Power Teil

Als MOSFETs habe ich 2x IRFP2907 verwendet. Diese haben einen Einschaltwiderstand von 5 Milliohm und können dauerhaft 209 Ampere schalten. Als Dioden wurden 2xMBR4045 verwendet, diese enthalten jeweils 2 Dioden, die jede für sich 20 Ampere verkraften. Damit sollten 80 Ampere im Dauerbetrieb und rund 100 Ampere beim Anfahren verkraftbar sein.

Bauteil max. Dauerstrom [A] Typ
IRFP2907 209 MOSFET
MBR4045PT 2x20=40 Doppeldiode
FMB39 2x15=30 Doppeldiode
STPS2045CT 2x5=10 Doppeldiode

Die Platine ist ein Modell mit möglichst dicker Kupferbeschichtung und beidseitig mit Kupfer versehen.

Platinen mit großer Schichtdicke sind z.B. via ebay erhältlich.

Die Anschlußdrähte sind mittels dicker Schrauben und ausreichender Schraubösen anzubringen.

Für die Kühlung ist es wichtig zu wissen, welcher Pin der Bauteile am Bauteilgehäuse anliegt. Hier für die verwendeten Bauteile.

Bauteil Pin Gehäuse
IRFP2907 Drain
MBR4045 Kathoden
LM340, 7812 GND

Controller Power PCB Schaltplan, Version 1 Die Bezeichnung der MOSFETs und der Dioden im Schaltplan sind falsch. Zu nehmen sind IRFP2907 und MBR4045PT ( 2x2x20Ampere Dioden) R1 und R2 sind entweder auf dieser Platine einzulöten oder auf der Controller-Platine! D4 und D3 sind 15V Zenerdioden 1Watt.

Controller Power PCB Platine, Version 1 Das Layout ist für hohe Ströme auf beiden Seiten der doppelseitig beschichteten Platine zu verwenden. Achtung, die MOSFETs sind gegeneinander gedreht einzulöten (Gate ist außen)!

An LSP1 liegt der Controllerausgang an.

An LSP5 ist der Batterieminuspol anzuschließen. An LSP2 der Batteriepluspol und an LSP3 der Motor+ Anschluss. An LSP4 schließlich der Motor- Anschluss.

LSP2-5 sind mit ausreichend dicken Schrauben (z.B. M6) und passenden Schraubösen zu versehen. Durch diese Anschlüsse geht der volle Strom durch.

Erste Resultate

Ein experimenteller Aufbau mit den beiden Platinen wurde erstellt. Für die Power Platine wurde für Tests nur ein einseitiges Modell verwendet.

Erste Version beim “Trockentest”

Bei Trockentests mit 24V/850Watt-Motor wurden Dauerleistungen von 10-13 Ampere gezogen. Der Motor kann sauber von Stillstand über ganz langsam drehend bis auf Vollgas gezogen werden. Dabei werden weder MOSFETs noch Dioden warm.

Allerdings wird der LM340 heiß und muss gekühlt werden (im Experiment sogar durchgeglüht, erst nach Kühlung ohne Probleme).

Lessons learned vom experimentellen Aufbau (“Version 1”)

Controller Platine:

  • LM340 muss gekühlt werden, stehender Aufbau wäre wünschenswert und Platz für Kühlkörper notwendig
  • Trimmpoti Footprint zu klein
  • R12 zu nah an TL494
  • C3 Footprint zu klein
  • Platz für R13-R16 ist überflüssig, diese Widerstände weglassen
  • X1, X2 Buchsen Footprint ist zu groß gewählt

Power Platine:

  • Footprint für D3-4 zu groß
  • Footprint für R1-2 zu klein
  • Ausreichend Platz für LSP4 vorsehen

Diese Erkenntnisse sollen in einem verbesserten Aufbau berücksichtigt werden. Außerdem ist auch darauf zu achten, dass alle Bauteile rüttelgesichert auf der Platine sitzen, wegen starker Vibrationen beim Fahren.

Erster Wurf: Controller mit PWM-Controller TL494, Version 2

Basierend auf den Erfahrungen der Version 1 wurde ein verbesserter Controller entworfen und gebaut. Erweiterung der Version 1 um:

  • Strombegrenzung
  • Steuerung mittels Handgasgriff eines eBikes
  • Strommessung/Spannungsmessung mittels AVR Mikrocontrollers

Strommessung / Strombegrenzung

Zur Strommessung habe ich einen Widerstand vorgesehen, der in Serie zum Motor liegt. Wegen der sehr hohen Ströme braucht es einen Widerstand mit einem sehr kleinen Ohmwert bei gleichzeitig höherer Belastbarkeit. Ich habe einen Widerstand 5mOhm (0,005 Ohm) gefunden mit 5 Watt Belastbarkeit. bei 1% Genauigkeit. Aus den Formeln P=U*I und U=I*R folgt P=I^2*R und damit I=sqrt( P/R). Für den genannten Widerstand bedeutet dies, dass er maximal 31 Ampere im Dauerbetrieb verträgt, dann fallen an ihm nach U=I*R 155mV ab. Da ich meine Schaltung für 80 Ampere auslegen will, benötige ich drei solcher Widerstände, die parallel geschaltet werden. Daraus resultieren eine maximale Belastbarkeit von 91 Ampere und ein Widerstand von 5/3 Milliohm. Die abfallende Spannung ist in der folgenden Tabelle beispielhaft dargestellt.

Der Strom soll auch auf einem Display dargestellt werden. Dazu soll er auf einen bereich von ca. 0..2,5V verstärkt werden. Im ersten Ansatz wird dazu ein OpAmp mit 10-facher Verstärkung angenommen.

Abfallende Spannung an Shunt 1,67mOhm

I [A] U [mV] 10xU [mV]
1 1,6 16
5 8,3 83
10 16,6 166
100 166,6 1666

Im Ergebnis ergibt sich folgendes Schaltbilddetail für die Strommessung.

Der Spannungsabfall wird mittels OpAmp 10-fach verstärkt und geht an den nichtinvertierenden Eingang eines Error-Amplifiers des TL494. Der Kondensator 1µF glättet das sehr sprunghafte Signal am Motor.

Gasgriff Ansteuerung - “E-Bike speed throttle”

Zur Geschwindigkeitsreglung soll der vorhandene mechanische Drehgriff, der den Motor ein und ausschaltet ersetzt werden. Der Neue Gasgriff soll dann stufenlos den Controller ansteuern.

Dazu habe ich einen chinesischen eBike Gasgriff erstanden. Dieser ist von der Firma “Wuxing Bicycle” und hat die Typenbezeichnung “LT-25 XR”. Der Gasgriff hat 5 Anschlüsse. Irgendwelche Infos zur Elektrik wurden vom Lieferanten des Griffs nicht bereitgestellt.

Gasdrehgriff Wuxing Bicycle LT-25 XR. Zum Gasdrehgriff (rechts) gehört noch ein passender (Griff links). Dieser Gasdrehgriff ist nicht durchgehend, besteht also aus einem drehbaren Teil und einem festen Teil. Die Batterieanzeige ist vorne erkennbar.

Recherche im Intranet brachte das Ergebnis, dass ein Hallsensor zur Erfassung des Drehwinkels verwendet wird. Dieser liefert eine zum Drehwinkel lineare Ausgangsspannung zwischen GND und VCC. Die (für mich eher uninteressante) Batterieanzeige besteht aus drei LEDs (Rot,Gelb,Grün) die den Ladezustand der Batterie anzeigen können. Ein Test zeigte, dass die erste LED (Rot) bei etwa 20 Volt anging, die gelbe LED schaltete sich bei 30 Volt noch nicht ein.

Farbe Gruppe Pin
Grün Batterie-Anzeige + Batterie
Gelb Batterie-Anzeige GND
Rot Hallsensor VCC Sensor
Schwarz Hallsensor -/GND
Weiß Hallsensor Ausgang Sensor

Der Typ des Hallsensors ist mir nicht bekannt. Hallsensoren können mit unterschiedlichen Spannungen betrieben werden. Ich plane, den Hallsensor mit der VREF des TL494 (5V) zu betreiben. Diese Spannung wird von üblichen Hallsensoren sicher vertragen.

Der Gasgriff soll nun anstelle des Potis den TL494 des PWM-Controllers ansteuern. Dazu muss ermittelt werden, in welchem Bereich das Poti (an Buchse X1 im Schaltbild ganz oben) Spannung abgibt. Grundsätzlich beschränkt ist dieser Bereich durch GND und VREF(=5,0V).

Nachmessen ergibt folgendes Bild:

Speed Spannung am Poti [V]
0 4,54
Max 0

Der Hallsensor gibt seine maximale Spannung bei maximalem Drehwinkel (“Vollgas”) ab.

Nachmessen ergibt folgendes Bild: (Ub am Hallsensor = 5V)

Speed Spannung Hallsensor Output [V]
0 1,8
Max 3,7

Wenn man den Hallsensor also direkt anstelle des Potentiometers anschließen würde, hätte man den Effekt, das der Motor in Nullstellung dreht (maximale Geschwindigkeit) und in Vollgasstellung würde der Motor gar nicht drehen. Dieser gegenläufige Spannungsverlauf muss angepasst werden. Lösung hier ist, einen zusätzlichen OpAmp zu verwenden.

Evtl. wäre das auch durch eine andere Beschaltung des Fehler-OpAmps des TL494 möglich (nicht-invertierend beschaltet). Es ist aber so, dass ich das Hallsignal auch evtl. etwas verstärken möchte, um den notwendigen Spannungsbereich zur Ansteuerung des Controllers sicher abzudecken (Später wurde tatsächlich ein Verstärkungsfaktor von 1,2 gewählt, um sicher Vollgas zu erreichen).

In der Betriebsart “Differenzverstärker” des OpAmps ist es möglich, genau den gewünschten “inversen” Verlauf der Spannung zu erreichen.

Allgemeines Bild Differenzverstärker

Als Spannung Ue2 wird VREF hergenommen. Indem R1=R2 gesetzt wird, ist die Verstärkung des OpAmps 1. Damit kann in etwa folgender Spannungsverlauf erreicht werden

Ua = VREF - Ue = VREF - Uhallsensor

Diese Ausgangsspannung kann als Eingangsspannung an den invertierenden ErrorAmp Eingang des TL494 genommen werden. Zur Feinabstimmung wird VREF über einen Trimmer 10K angelegt.

Der dimensionierte Differenzverstärker. Als R2 wurde nach Experimenten 12K genommen.

Als OpAmp wurde der LM358 genommen, ein Dual OpAmp der ansonsten mit dem LM324 ( Quad OpAmp) identisch ist. Man kann hier aber so ziemlich jeden OpAmp nehmen, geschickterweise einen Typ mit asymmetrischer Betriebsspannung.

Somit ergibt sich folgendes Gesamtschaltbild.

Controller Schaltplan, Version 2 OpAmps für Strombegrenzung und für Anschluss des Gasdrehgriffs. ATmega8 zur A/D Wandlung zur Anzeige von Motorstrom und Batteriespannung. Zusätzlich 5V Regler für OpAmps und AVR.

Controller Platine, Version 2

Controller Power PCB Schaltplan, Version 2

Neu sind nur die drei parallel geschalteten Hochlastwiderstände 5mOhm 5 Watt 1%.

Controller Power PCB Platine, Version 2 An LSP6 wird der Stromsensoreingang des Controllers angeschlossen.

Allgemeine Infos zum TL494 Wenn einer der beiden Error Amps nicht genutzt werden soll, sind dessen Eingänge wie folgt zu belegen: +-Eingang an GND, –Eingang an VREF.

Weiterführende Infos