-
Die Erfindung betrifft ein Verfahren zur Regelung der Rotorlage eines elektrisch kommutierten Motors, insbesondere eines bürstenlosen Gleichstrommotors, bei welchem die Phasen des Motors nach Bestimmung der Lage des Rotors über eine ereignisgesteuerte Kommutierung angesteuert werden.
-
”Ereignisgesteuert” meint im Zusammenhang mit der vorliegenden Erfindung, dass ein Ereignis (z. B. Hall-Interrupt oder ein bestimmter Winkel) detektiert wird und aufgrund des detektierten Ereignisses eine Umkommutierung (vorzugsweise über die Steuerungssoftware) vorgenommen wird. Ein Beispiel einer ereignisgesteuerten Kommutierung ist die „Blockkommutierung”.
-
Bei elektrisch kommutierten Elektromotoren, die beispielsweise in Kupplungsaktoren zum Einsatz kommen, ist es notwendig die Rotorlage des Motors hoch aufgelöst einzuregeln. Dazu kann eine Vektorregelung durchgeführt werden. Diese Vektorregelung oder auch feldorientierte Regelung kann aus einem Drehzahlregler auf der Basis eines unterlagerten Stromreglers bestehen. Dabei kann in einem hochfrequenten Zeitraster der Phasenstrom von mindestens zwei Phasen des Motors gemessen werden, aus welchen die weitere Bestromung des Rotors bestimmt wird. Eine solche Vektorregelung führt zu einem sehr hohen Rechenaufwand in der Ansteuereinheit.
-
Bei der Anwendung der Blockkommutierung (als einem Beispiel der ereignisgesteuerten Kommutierung), bei welcher immer zwei der drei Drehstromwicklungen des Motors bestromt werden, kann eine Auflösung der Rotorlage nur in Abhängigkeit der Polpaaranzahl des Motors eingestellt werden. Des Weiteren hat die Blockkommutierung den Nachteil, dass sie zu einem unstetigen Momentenverlauf mit starken Amplituden führt.
-
Der Erfindung liegt somit die Aufgabe zugrunde, ein Verfahren zur Regelung einer Rotorlage eines elektrisch kommutierten Motors anzugeben, bei welchem der Rotor des Motors hochgenau auf mindestens 1° genau eingeregelt wird, obwohl die Auslastung der Auswerteeinheit mit der Motor-Ansteuerung zur Vektorregelung wesentlich reduziert wird.
-
Erfindungsgemäß wird die Aufgabe dadurch gelöst, dass zur hochgenauen Einstellung der Lage des Rotors die Ansteuerung der Phasen des Motors von der ereignisgesteuerten Kommutierung auf eine zeitgesteuerte Kommutierung umgeschaltet wird. Hierbei wird immer zu einem bestimmten Zeitpunkt (Zeit-Interrupt), der z. B. abhängig von einer bestimmten Topologie des Motors sein kann, eine Umkommutierung vorgenommen. Dies hat den Vorteil, dass ein Prozessinterrupt zur Auslösung der Kommutierung während der zeitgesteuerten Kommutierung in einem festen oder anpassbaren Zeitraster erfolgt. ”Zeitraster” meint im Zusammenhang mit der vorliegenden Erfindung ein zyklisch wiederkehrender Software-Interrupt mit gleicher Zeitschrittweite. ”Fest” meint hierbei, dass der Software-Interrupt über einen längeren Zeitraum oder auch die gesamte Lebensdauer gleich bleibt. ”Anpassbar” meint, dass nach einer gewissen Zeit und/oder in Abhängigkeit voreingestellter Bedingungen (z. B. Drehzahlgrenzen) eine Veränderung vorgenommen wird. Durch die zeitgesteuerte Kommutierung lässt sich darüber hinaus die Lage des Rotors sehr genau und phasenfein einstellen, was zu einer sehr genaue Regelung der Lage des Rotors führt. Ein Beispiel der zeitgesteruerten Kommutierung ist eine Sinuskommutierung.
-
Vorteilhafterweise erfolgt die zeitgesteuerte Kommutierung in fest vorgegebenen Zeitabständen, wobei in Abhängigkeit der ermittelten Lage des Rotors des Motors Ansteuerwerte für die Phasen des Motors aus einer Tabelle ausgelesen werden. Durch die tabellarische Zuordnung der Ansteuerwerte für die weitere Bestromung der drei Phasen des Motors wird die Regelung der Lage des Rotors sehr genau gestaltet, da jede noch so geringe Änderung der Rotorposition in der Tabelle mit einem exakten Ansteuerwert belegt werden kann. Weiterhin wird die Rechenleistung der Auswerteeinheit reduziert, wodurch die Auslastung der Auswerteeinheit mit Aufgaben der Motor-Ansteuerung stark eingeschränkt wird.
-
In einer Ausgestaltung wird durch Addition oder Subtraktion eines Offsets zu der aktuell bestimmten Lage des Rotors durch die aus der Tabelle ausgelesenen zugehörigen Ansteuerwerte für die einzelnen Phasen des Motors eine Feldschwächung hervorgerufen. Eine Feldschwächung erfolgt immer dann, wenn das Statorfeld nicht in einem Winkel von 90° zum Drehfeld des Rotors steht. Durch die Änderung der Eingangwerte der Tabelle werden veränderte Ansteuerwerte von der Auswerteeinheit ausgelesen, mit welchen der Motor angesteuert wird und wodurch sich die Feldschwächung ergibt. Dadurch wird eine verbesserte Drehzahlausbeute des Motors erreicht. Diese Feldschwächung ist nicht nur bei der zeitgesteuerten Kommutierung, sondern auch bei ereignisgesteuerter Kommutierung, z. B. Blockommutierung, durchführbar.
-
In einer Weiterbildung wird die ereignisgesteuerte Kommutierung, z. B. Blockkommutierung, durch einen Prozessinterrupt ausgelöst, welcher in Abhängigkeit von der Position des Rotors, insbesondere einer vorgegebenen Winkeländerung, ausgelöst wird. Somit wird der Zeitpunkt der Blockkommutierung von der Lage des Rotors bestimmt, während die zeitgesteuerte Kommutierung immer nach Ablauf eines festen Zeitfensters erfolgt.
-
In einer Variante erfasst ein die Lage des Rotors bestimmender Sensor einen Absolutwinkel des Rotors, welcher über eine, mindestens zwei Rechtecksignale erzeugende inkrementelle Schnittstelle an eine Auswerteeinheit weitergeleitet werden, welche die Flanken der von der inkrementellen Schnittstelle erzeugten mindestens zwei Rechtecksignale zählt und daraus die Lage des Rotors des Motors ermittelt, wobei nach einer bestimmten Anzahl von gezählten Flanken der Prozessinterrupt ausgelöst wird. Durch die Verwendung einer hochauflösenden Sensorik, wie es bei der Verwendung eines Absolutwertgebers der Fall ist, lässt sich die Rotorlage des Motors sehr genau bestimmen, was den Ausgangspunkt für eine Grad-genaue Regelung des Rotors darstellt.
-
Vorteilhafterweise erfolgt nach einer vorgegebenen Anzahl von Prozessinterrupts ein Korrekturinterrupt, welcher nach einer geringeren Anzahl von Flanken als der Prozessinterrupt ausgelöst wird. Diese Korrektur ist notwendig, da der Prozessinterrupt nach einem bestimmten elektrischen Winkel des Ansteuersignals erzeugt werden muss. Bei der Umrechnung in mechanische Winkelabstände treten Werte auf, die nicht ganzzahlig sind, weshalb ein Korrekturinterrupt durchgeführt werden muss.
-
In einer Variante erfolgt die Umschaltung zwischen ereignisgesteuerter Kommutierung (z. B. Blockkommutierung) und zeitgesteuerter Kommutierung (z. B. Sinuskommutierung) in Abhängigkeit von einer Drehzahl des Motors. Da die Ansteuerung des Motors bei kleinen Drehzahlen sinusförmig erfolgt, entspricht der eingeprägte Motorstrom annähernd der Form der Generatorspannung des Motors. In diesem Fall ist der Phasenversatz sehr gering, so dass dieser für die hochgenaue Einregelung der Rotorlage vernachlässigt werden kann. Ein konstanter Momentenverlauf unterstützt die genaue Einstellung der Lage des Rotors. Bei höheren Drehzahlen wird auf Blockkommutierung umgeschaltet, da der Motorstrom der Motorspannung auf Grund der Motorinduktivität zunehmend nacheilt. Dadurch wird der Motorstrom nicht mehr zum idealen Zeitpunkt in Abhängigkeit der Rotorlage eingeprägt, so dass nicht mehr das maximal mögliche Motormoment generiert wird. Deshalb werden zur hochgenauen Einstellung der Phasenlage die Vorteile genutzt, welchen bei kleinen Drehzahlen durch die sinusförmige Ansteuerung des Motors vorliegen.
-
In einer Ausgestaltung wird bei einer Unterschreitung einer ersten vorgegebenen Drehzahlschwelle durch die Drehzahl des Motors von der Blockkommutierung auf die zeitgesteuerte Kommutierung umgeschaltet. Da annähernd kein Phasenversatz zwischen Motorstrom und Motorspannung besteht, wird eine zuverlässige 1°-genaue Einstellung der Rotorlage des Motors ermöglicht.
-
In einer weiteren Ausführungsform wird bei Überschreitung einer zweiten vorgegebenen Drehzahlschwelle durch die Drehzahl des Motors, welche größer ist als die erste Drehzahlschwelle, von der zeitgesteuerten Kommutierung auf die Blockkommutierung umgeschaltet. Damit wird sichergestellt, dass die Regelung der Rotorlage solange wie möglich gradgenau durchgeführt werden kann.
-
In einer Weiterbildung erfolgt die Umschaltung von der zeitgesteuerten Kommutierung auf die Blockkommutierung, wenn eine Phase des Motors unbestromt ist. Damit wird berücksichtigt, dass sich das Verhältnis von Motorstrom zum Motormoment bei der Blockkommutierung anders verhält als zuvor bei der zeitgesteuerten Kommutierung.
-
Die Erfindung lässt zahlreiche Ausführungsformen zu. Eine davon soll anhand der in der Zeichnung dargestellten Figuren näher erläutert werden.
-
Es zeigt:
-
1: ein Ersatzschaltbild einer Phase eines elektrisch kommutierten Motors
-
2: ein Blockschaltbild der Hardwareanbindung eines Rotorlagesensors
-
3: eine Darstellung der Realisierung einer zeitabhängigen Kommutierung und einer Blockkommutierung
-
4: eine Darstellung der Erzeugung eines Prozessinterrupts bei einer Blockkommutierung
-
5: eine Darstellung der Klemmenspannungen bei Sinuskommutierung (durchgezogene Linien L1 bis L3 und der Klemmenspannungen bei Blockkommutierung (farbige Linien 1 bis 3), wobei die in Fett gedruckten, gestrichelten senkrechten Linien günstige Umschaltzeitpunkte darstellen (da ein Nulldurchgang einer der Phasen vorliegt).
-
1 zeigt ein Ersatzschaltbild für eine Phase eines elektrisch kommutierten Motors 1, welcher als bürstenloser Gleichstrommotor (BLDC-Motor) ausgebildet ist. Ein solcher Motor kommt beispielsweise zur Ansteuerung von Kupplungen in Kraftfahrzeugen zum Einsatz. Dabei handelt es sich um einen Drehstrommotor, welcher mit einem Drehstrom betrieben wird, der von drei um 120° phasenverschobenen Wechselspannungen hervorgerufen wird und ein Drehfeld erzeugt. Der Motor weist drei Drehstromwicklungen auf, wobei an jeder Wicklung eine der drei Wechselspannungen anliegt. Der Anschluss der Wicklung wird dabei als Phase bezeichnet. Jede Wicklung stellt dabei eine Impedanz dar, die durch die L-Phase (induktiver Blindwiderstand) und eine R-Phase (reeller Widerstand) charakterisiert sind.
-
Bei hohen Drehzahlen eilt der Motorstrom I_Mot der Motorspannung U_Gen auf Grund der Motorinduktivität L_Phase nach. Zur Bestimmung der Lage des Rotors des Motors auf wenigstens ein Grad genau, muss der Motorstrom I_Mot genau zur Rotorlage passen, d. h der Motorstrom I_Mot muss phasengleich zur Motorspannung U_Gen sein. Um dies zu realisieren müsste der Winkel, mit welchem die Spannung U_Vor zur Motorspannung U_Gen vorauseilen muss, über eine Vektoroperation bestimmt werden. Da ein solches Vorgehen sehr zeitaufwendig ist und eine hohe Rechenleistung einer Auswerteeinheit notwendig macht, wird ein Verfahren vorgeschlagen, welches auf die langwierigen Rechenprozesse verzichtet und trotzdem eine Einstellauflösung der Rotorlage des Motors 1 von mindestens 1° aufweist.
-
In 2 ist ein Blockschaltbild für die Anbindung eines Rotorlagesensors 2 an eine Auswerteeinheit 3 dargestellt, welches eine solche hochgenaue Einstellauflösung zulässt. Mit dem Rotorlagesensor 2 wird der Absolutwinkel des Rotors gemessen. Der Rotorlagesensor 2 ist über eine serielle Schnittstelle 4 und eine inkrementelle Schnittstelle 5 mit der Auswerteeinheit 3 verbunden, welche im vorliegenden Fall durch einen Mikrocontroller realisiert ist.
-
Die Kombination des Mikrocontrollers 3 mit dem Rotorlagesensor 2 ermöglicht über die inkrementelle Schnittstelle 5, die für eine Kommutierung 8. 9 benötigten Interrupts zu erzeugen. Die Schnittstelle 5 besteht aus mindestens zwei Leitungen, wobei jede Leitung ein Rechtecksignal liefert und die beiden Rechtecksignale um 90° phasenverschoben sind. Um die Position des Rotors zu bestimmen, muss auf die steigende bzw. fallende Flanke des Signals, die auch als Inkremente bezeichnet werden, geachtet werden. Typisch sind Zählwerte von 2048 Inkrementen pro einer Umdrehung des Rotors. Das bedeutet 1024 steigende und 1024 fallende Flanken je Umdrehung.
-
Die Entscheidung, ob der Motor
1 über eine Blockkommutierung
8 oder eine zeitgesteuerte Kommutierung
9 zur genauen Einstellauflösung von 1 Grad angesteuert werden soll, wird in Abhängigkeit der Motordrehzahl getroffen. So wird beispielsweise bei einer Drehzahl von größer 100 rpm eine Blockkommutierung
8 ausgeführt, während bei einer Drehzahl von kleiner/gleich 100 rpm die zeitgesteuerte Kommutierung
9 eingesetzt wird. Der Grund für das Umschalten zwischen zeitgesteuerter Kommutierung
9 und Blockkommutierung
8 liegt in der drehzahlabhängigen Impedanz des Motors
1. Infolge der Impedanz steigt der induktive Blindwiderstand proportional zur Drehzahl an, was zu dem Phasenversatz α zwischen Motorspannung und Motorstrom führt.
wobei
- N:
- Drehzahl in min –1,
- p:
- Polpaar des Motors
- L:
- Induktivität der Phase
- R:
- Widerstand der Phase
-
In 3 ist dargestellt, dass beide Kommutierungsarten 8, 9 von dem Signal gesteuert werden, welches die inkrementelle Schnittstelle 5 ausgibt. Die zeitgesteuerte Kommutierung 9, bei welcher alle drei Phasen des Elektromotors 1 mittels eines PWM-Signals angesteuert werden, wird in einem festen Zeitraster t aufgerufen. Idealerweise erfolgt dies in Abhängigkeit von der Periodendauer TPWM der PWM-Frequenz. Zu jedem dieser Zeitpunkte t, t + TPWM. T + 2TPWM wird ein Prozessinterrupt 6 durchgeführt, bei welchem zur hochgenauen Lageregelung des Rotors die in dem Zeitraster gezählten Inkremente ausgelesen werden, mit deren Hilfe die genaue Positionsbestimmung des Rotors erfolgt. Die so ermittelte Position des Rotors wird in einer Tabelle aufgesucht und ein entsprechendes Ansteuermuster zur Bestromung aller drei Phasen des Motors 1 von dem Mikrocontroller 3 ausgelesen.
-
Für die Blockkommutierung 8 wird der Prozessinterrupt 6 abhängig von der Position des Rotors erzeugt. Im Mikroprozessor 3 wird mittels eines Positionszählers, welcher die Flanken der Rechtecksignale der inkrementellen Schnittstelle 5 zählt, ein Prozessinterrupt 6 ausgelöst. Der durch Auswertung der Flanken der inkrementellen Schnittstelle 5 bestimmte Prozessinterrupt 6 wird dabei immer an der Position des Rotors ausgelöst, die elektrisch durch 60° charakterisiert ist. Bei einem 7-polpaarigen Motor 1 entsprechen 60° elektrisch, mit welcher die Drehfeldposition charakterisiert wird, 360°/(7·6) = 8,57° mechanisch, was der Rotorposition entspricht. Die 6 im Nenner der Gleichung entspricht den 6 Blockschritten je 360° elektrisch. Die Umrechnung zwischen elektrischer und mechanischer Position ist notwendig, um die Lage des Drehfeldes der des Rotors zuzuordnen.
-
Bei der inkrementellen Schnittstelle 5, welche 2048 Flanken bzw. Inkremente pro Umdrehung erzeugt, muss alle 2048/(7·6) = 48,76 Inkremente ein Prozessinterrupt 6 ausgelöst werden. Das heißt, pro Inkrement verändert sich die Lage des Rotors um durchschnittlich 8,57°. Da hierbei keine geraden Zahlen von Inkrementen erzielt werden, muss eine Korrektur durchgeführt werden, wie in 4 dargestellt ist. So wird immer nach 49 Inkrementen ein Prozessinterrupt 6 ausgelöst, was einer Änderung der Rotorlage pro Inkrement von 8,61° entspricht. Dabei wird jedoch pro Prozessinterupt 6 ein Fehler von annähernd 0,042° gemacht, welcher aufsummiert wird. Um diesen Fehler zu korrigieren wird nach 48 Inkrementen der Korrekturinterrupt 7 ausgelöst.
-
Durch die erfindungsgemäße Lösung lässt sich sowohl die hohe Einstellgenauigkeit der zeitgesteuerten Kommutierung 9 als auch die hohe Effizienz der Blockkommutierung 8 nutzen. Die zeitgesteuerten Kommutierung 9 erfolgt dabei über das Auslesen geeigneter Ansteuermuster anhand der ermittelten Rotorlage aus einer hinterlegten Tabelle. Aufgrund der zunehmenden Phasenverschiebung bei Motorstrom und Motorspannung bei zunehmender Drehzahl muss ab einer bestimmten Drehzahl auf Blockkommutierung 8 umgeschaltet werden, was zulässig ist, da die hohe Einstellgenauigkeit der Rotorlage nur bei niedrigen Drehzahlen benötigt wird.
-
In 5 ist eine mögliche Ausgestaltung der Umschaltung von ereignisgesteuerter Kommutierung (Blockkommutierung) auf zeitgesteuerte Kommutierung (Sinuskommutierung) dargstellt, und zwar bevorzugt an den Stellen, an denen eine der Phasen einen Nulldurchgang aufweist.
-
Die Kommutierung kann nicht nur in Abhängigkeit eines Signalwerts (z. B. Drehzahl) von Block auf Sinus oder andersrum umgeschaltet werden, sondern auch in Abhängigkeit der Phasenlage (x-Achse). Durch die Wahl eines günstigen Umschaltzeitpunkts, wie z. B. in 5 dargestellt, kann ein sanfterer Umschaltvorgang (ohne Momentensprung, bzw. Stromsprung) realisiert werden. Bedingt durch die unterschiedliche Ansteuerung sollte beim Umschalten der Kommutierung zusätzlich ein Faktor auf die Sollspannung aufgeschlagen werden.
-
Bezugszeichenliste
-
- 1
- Elektromotor
- 2
- Rotorlagesensor
- 3
- Auswerteeinheit
- 4
- serielle Schnittstelle
- 5
- inkrementelle Schnittstelle
- 6
- Prozessinterrupt
- 7
- Korrekturinterrupt
- 8
- Blockkommutierung
- 9
- zeitgesteuerte Kommutierung