-
Technischer Bereich
-
Die vorliegende Offenbarung bezieht sich im Allgemeinen auf Elektronik und insbesondere auf die sensorlose Ansteuerung von bürstenlosen Gleichstrommotoren.
-
Hintergrund
-
BLDC-Motoren (bürstenlose Gleichstrommotoren, englisch: brushless DC-motors) ersetzen zunehmend Gleichstrommotoren und Induktionsmotoren auf Grund ihrer Effizienz und Zuverlässigkeit. Im Gegensatz zu Gleichstrommotoren benötigen BLDC-Motoren eine Kommutierung auf Basis ihrer Rotorposition. Hall-Sensoren sind zur Detektion der Rotorposition verwendet worden. Die Befestigung von Hall-Sensoren und die Verarbeitung der Signale von diesen Sensoren verursachen jedoch zusätzliche Kosten. Darüber hinaus kann ein Hall-Sensor und seine Verdrahtung die Zuverlässigkeit eines Motoransteuersystems reduzieren. Auf Grund dieser zusätzlichen Kosten und der Zuverlässigkeitsbedenken besteht ein zunehmendes Interesse in der Entwicklung von BLDC-Motoren ohne Positionssensoren.
-
Ein üblicher Weg zur Abschätzung der Rotorposition ohne Positionssensoren besteht in der Messung der elektromotorischen Gegenkraft (back electromotive force, BEMF). Die BEMF-Spannung eines Motors variiert gemäß seiner Rotorposition. Die Messung der BEMF-Spannung erfordert auch die Verwendung einer Ansteuerung mit einer trapezförmigen Pulsbreitenmodulation (PWM) zum Betreiben des Motors. Mit einer trapezförmigen Ansteuerung kann die BEMF-Spannung am potenzialfreien Phasen-Anschluss in einer nicht-schaltenden Periode gemessen werden. Auf Basis dieser Messung kann der Nulldurchgang der BEMF-Spannung detektiert werden. Der Nulldurchgang kann verwendet werden, um die für den nächsten Kommutationszyklus erforderliche Zeit vorherzusagen.
-
Die während der nicht-schaltenden Periode gemessene Anschlussspannung ist nicht die Phasenspannung des Motors. Die Spannung am neutralen Punkt sollte in Betracht gezogen werden, um den Nulldurchgang der BEMF-Spannung korrekt zu detektieren. Der neutrale Punkt einer dreiphasigen Motorwindung steht in den meisten Anwendungen üblicherweise nicht zur Verfügung.
-
Herkömmlicherweise werden daher drei Widerstände verwendet, um den neutralen Punkt zu simulieren. Zusätzlich zu diesen Widerständen werden RC-Filter verwendet, um Rauschkomponenten der PWM aus der erfassten BEMF-Spannung herauszufiltern. Diese Filterung kann zu einer Messverzögerung führen, die einen negativen Einfluss auf die Hochgeschwindigkeitsmotorleistungsfähigkeit hat. Zusätzlich können die zusätzlichen Filterkomponenten die Kosten und die Zuverlässigkeit beeinträchtigen, und wertvollen Platz auf der gedruckten Leiterplatte (PCB) verbrauchen.
-
Manche herkömmliche Verfahren schlagen die Verwendung einfacherer Hardware durch Messen der Phasenspannung, wenn die Neutralspannung niedrig wird, vor. Diese Verfahren benötigen jedoch eine gewisse Abschaltzeitdauer, was einen Betrieb des Motors bei hoher Geschwindigkeit verhindert. Andere herkömmliche Verfahren schlagen die Messung von Phasenstrominformationen vor. Diese Verfahren erfordern jedoch zusätzliche Hardware und CPU-Ressourcen und sind nicht geeignet für Anwendungen, in denen die Kosten ein kritischer Faktor für den Erfolg des Produkts darstellt.
-
Zusammenfassung
-
Die sensorlose Ansteuerung eines bürstenlosen Gleichstrommotors (BLDC-Motor) beinhaltet die Erfassung einer Kreuzungszeit der elektromotorischen Gegenkraft (BEMF-Spannung) des BLDC-Motors. Eine instantane BEMF-Spannung und eine gemittelte BEMF-Spannung werden miteinander verglichen, um den Kreuzungszeitpunkt zu detektieren, der verwendet werden kann, um die Kommutationsschaltsequenz zu ändern. Da die mittlere BEMF-Spannung sich für gerade und ungerade Schritte der Kommutationsschaltsequenz unterscheidet, werden mittlere BEMF-Spannungen getrennt für gerade und ungerade Sequenzen berechnet und mit instantanen BEMF-Spannungen verglichen, um Kreuzungspunkte für die geraden und ungeraden Sequenzen zu detektieren. Die Zeiten bis zur Kommutation für die geraden und die ungeraden Sequenzen werden gemittelt, um eine mittlere Zeit bis zum nächsten Kommutationszyklus zur Verfügung zu stellen. Die mittlere Zeit kann durch einen Reduktionsfaktor skaliert werden, um die Effekte des Messrauschens zu reduzieren.
-
In manchen Implementierungen umfasst ein System zur Erfassung der BEMF-Spannung zur Steuerung eines bürstenlosen Gleichstrommotors eine Einheit zum Messen der BEMF-Spannung während einer Startperiode eines BLDC-Motors; eine Einheit zur Bestimmung eines mittleren BEMF-Spannungswerts aus den gemessenen BEMF-Spannungen; eine Einheit zur Bestimmung einer instantanen BEMF-Spannung; und eine Einheit zum Vergleichen der mittleren BEMF-Spannung mit der instantanen BEMF-Spannung zur Detektion eines Kreuzungszeitpunkts der BEMF-Spannung.
-
In manchen Implementierungen umfasst ein System eine Schnittstellenschaltung, die dazu eingerichtet ist, an einen BLDC-Motor angeschlossen zu werden, und einen Mikrocontroller, der mit der Schnittstellenschaltung gekoppelt ist. Der Mikrokontroller ist dazu programmiert, die BEMF-Spannungen, die von der Schnittstellenschaltung während einer Startperiode des BLDC-Motors empfangen werden, zu messen; einen mittleren BEMF-Spannungswert aus den gemessenen BEMF-Spannungen zu berechnen; eine instantane BEMF-Spannung zu berechnen; und die mittlere BEMF-Spannung mit der instantanen BEMF-Spannung zu vergleichen, um einen Zeitpunkt eines nächsten Kommutationszyklus zur Ansteuerung des BLDC-Motors zu bestimmen.
-
Konkrete Implementierungen einer sensorlosen BLDC-Motorsteuerung liefern einen oder mehrere der folgenden Vorteile: 1. Gute Eigenschaften bei hoher Geschwindigkeit; 2. einfache Implementierung, die ein Minimum an CPU-Verarbeitungsleistung benötigt; 3. es werden nur drei Widerstandspaare zur Spannungsmessung benötigt; und 4. eine Erfassung von Vdc oder der Pseudoneutralspannung ist nicht erforderlich.
-
Die Details von einer oder mehreren der offenbarten Implementierungen werden in den beigefügten Zeichnungen und der unten stehenden Beschreibung erläutert. Weitere Merkmale, Aspekte und Vorteile ergeben sich aus der Beschreibung, den Zeichnungen und den Ansprüchen.
-
Kurze Beschreibung der Zeichnungen
-
1 illustriert einen Konvergenzprozess eines nicht-schaltenden Intervalls.
-
2 illustriert eine mittlere BEMF-Spannungsdifferenz für gerade und ungerade Schritte einer Kommutationsschaltsequenz.
-
3 illustriert mittlere BEMF-Spannungen und nicht-schaltende Intervalle im Gleichgewichtszustand.
-
4 illustriert einen Mittelwert und einen Kommutationswinkel.
-
5 ist ein vereinfachtes Schaltungsdiagramm einer Hardwareimplementierung eines sensorlosen BLDC-Motoransteuersystems.
-
6 ist ein Flussdiagramm eines beispielhaften Prozesses zur sensorlosen BLDC-Motoransteuerung.
-
Detaillierte Beschreibung
-
Überblick über die sensorlose BLDC-Motoransteuerung
-
Ein dreiphasiger BLDC-Motor wird normalerweise durch einen dreiphasigen Inverter unter Verwendung einer sechs-schrittigen Kommutation angesteuert, wie dies in 5 dargestellt ist. Um ein maximales Drehmoment zu erzeugen, kann der Inverter alle 60 Grad der elektrischen Phase kommutiert werden, so dass der Strom mit der BEMF in Phase ist. Das leitende Intervall für jede Phase beträgt 120 Grad der elektrischen Phase oder zwei Schritte. Die Zeitabstimmung der Kommutation wird durch die Rotorposition bestimmt, die alle 60 Grad der elektrischen Phase bestimmt werden kann, indem erfasst wird, wann die BEMF der potenzialfreien Phase das „Nullpotenzial” oder den „Nulldurchgangspunkt” kreuzt. Da in jedem Schritt nur zwei Phasen leiten, steht stets nur eine Phase zur Messung der BEMF zur Verfügung.
-
Da die BEMF proportional zur Motorgeschwindigkeit ist, kann sie gemessen werden, nachdem der Motor oberhalb einer Mindestgeschwindigkeit läuft, wie z. B. während einer ungeregelten Motor-Startperiode. Ein Prozessor mittelt die BEMF-Spannungen für N-Grad (z. B. 60 Grad) eines schaltfreien Intervalls. Diese Mittelung kann für eine Zeitspanne wiederholt werden, die für die Konvergenz ausreicht.
-
Wenn der Mittelpunkt des schaltfreien Intervalls θn ist, so ist die mittlere BEMF-Spannung gegeben durch: Eaνe = 3 / 2Em 3 / πsin(θn) + 1 / 2Vdc [1]
-
Die mittlere BEMF-Spannung aus Gleichung 1 wird mit einer instantanen BEMF-Spannung an einem Anschluss verglichen, die gegeben ist durch E(θn+1) = 3 / 2Emsin(θn+1) + 1 / 2Vdc [2]
-
In manchen Implementierungen kann der Vergleich der Gleichungen [1] und [2] durch eine Firmware erfolgen, die auf einem Mikrokontroller läuft. Wenn Eaνe = E(θn+1), so wird ein Kreuzungspunkt der BEMF-Spannung durch den Prozessor detektiert. Es gilt daher: Emsin(θn+1) = Em 3 / πsin(θn). [3]
-
-
Im Gleichgewichtszustand gilt somit
-
-
Gemäß Gleichungen 3 bis 5 tritt das schaltfreie Intervall genau um den Nulldurchgangspunkt der BEMF-Spannung herum auf. 1 illustriert einen Konvergenzprozess des schaltfreien Intervalls ausgehend vom Motorstart bis zum Gleichgewichtszustand. Sowie der Motor sich in Richtung des Gleichgewichtszustands bewegt, konvergiert θn gegen Null (Nulldurchgangspunkt).
-
2 illustriert eine mittlere Wertdifferenz für gerade und ungerade Schritte einer Kommutationsschaltsequenz. in einer konkreten Anwendung werden zwei unterschiedliche Mittelwerte auf Basis einer Reihenfolge der Kommutationsschaltsequenz berechnet. Wie in 2 gezeigt, haben die ungeraden Schritte der Kommutationsschaltsequenz eine mittlere BEMF-Spannung, die sich von der mittleren BEMF-Spannung für die geraden Schritte der Kommutationsschaltsequenz unterscheidet.
-
3 illustriert mittlere BEMF-Spannungen und ein schaltfreies Intervall im Gleichgewichtszustand. Nach der Konvergenz zum Gleichgewichtszustand kann das schaltfreie Intervall um den Nulldurchgangspunkt (θn = 0) herum angewendet werden.
-
Das oben beschriebene Verfahren basiert wesentlich auf der Krümmung der Sinuswelle um den Nulldurchgangspunkt herum. Wie in 3 gezeigt, ist die Sinuskurve um den Nulldurchgangspunkt herum nahezu eine gerade Linie. Die Konvergenz ist daher langsam und reagiert empfindlich auf Messrauschen. Ein Reduktionsfaktor r kann verwendet werden, um die Konvergenz zu beschleunigen und die Empfindlichkeit gegenüber Messrauschen zu reduzieren.
-
4 illustriert einen Mittelwert und einen Kommutationswinkel. Idealerweise beträgt α in
4 30 Grad. Mit dem Reduktionsfaktor r ist die Lösung gegeben durch
α∞ = π / 6r – sin–1(α) [6] wobei α
∞ der Kommutationswinkel im Gleichgewichtszustand, r der Reduktionsfaktor und a ein gemittelter Wert ist. Wenn r = 1 in Gleichung [6], dann hat a
n, die Abweichung sin
–1 (a), was fast das Gleiche ist, wenn a in der Nähe des Nulldurchgangspunkts liegt. Wenn r < 1 gewählt wird, kann das schaltfreie Intervall in
4 nach links verschoben werden, um den gemittelten Wert a zu reduzieren. Daher wird sin
–1 (α) im nächsten Kommutationszyklus kleiner. Im Gleichgewichtszustand beträgt die Winkelabweichung
-
Diese Abweichung beeinträchtigt die Leistungsfähigkeit, da Gleichung [7] ein kleiner Wert ist. Wenn z. B. r = 0,9 ist, so beträgt α 3,3 Grad.
-
5 ist ein vereinfachtes Diagramm einer Hardwareimplementierung eines sensorlosen BLDC-Steuersystems 500. In manchen Implementierungen beinhaltet das System 500 einen Leistungsinverter 502 und einen Mikrokontroller 504. Der Leistungsinverter 502 kann sechs Leistungstransistoren 516 (z. B. MOSFET oder IGBT-Bauelemente) beinhalten, deren Gates mit dem Mikrokontroller 504 gekoppelt sind. Die dreiphasigen Motoranschlüsse sind mit den Drain-Anschlüssen der Transistoren 514 verbunden. Messwiderstände 514 messen Phasenspannungen an den dreiphasigen Motoranschlüssen und koppeln diese Spannungen an den Mikrokontroller 504.
-
In manchen Implementierungen beinhaltet der Mikrokontroller 504 eine PWM-Ansteuereinheit 506, einen Analog-Digital-Wandler (ADC) 508, einen Prozessor 510 und einen Speicher 512 (z. B. EEPROM). Andere Hardwaremodule können enthalten sind, wie z. B. ein Stromversorgungs- und Verwaltungsmodul, Schutzschaltungsmodule, Bewegungssteuerungsrückkopplungsmodule und andere Schaltungen, die typischerweise in einer berührungslosen BLDC-Ansteuereinheit verwendet werden.
-
Die im Speicher 512 gespeicherten Firmware-Anweisungen können in Assembler geschrieben sein oder in einer Hochsprache, und können verschiedene Softwaremodule beinhalten, inklusive ein Geschwindigkeitsmodul, eine Geschwindigkeitssteuerung, eine Stromsteuerung, einen PWM-Generator und eine Fehlerüberwachung, um nur einige zu nennen. Die PWM-Ansteuerung 506 erzeugt Schaltsignale, die an die Gateanschlüsse der Transistoren 516 angelegt werden, um eine Kommutationsschaltsequenz zu implementieren, wobei wohl bekannte Kommutationsschalttechniken verwendet werden. Der ADC 508 tastet BEMF-Spannungen an den Motoranschlüssen über die Messwiderstände 514 ab.
-
Während einer Motorstartperiode führt der Prozessor 510 die in dem Speicher 512 gespeicherte Firmware aus, um gerade und ungerade mittlere BEMF-Spannungen auf Basis der an den Motoranschlüssen durch die Messwiderstände 514 gemessenen BEMF-Spannungen zu berechnen. Während des Betriebs im Gleichgewichtszustand vergleicht der Prozessor 510 diese gemittelten BEMF-Spannungen mit instantanen BEMF-Spannungen, die an den Motoranschlüssen gemessen werden, um Kreuzungspunkte für die BEMF-Spannungen zu detektieren.
-
Nachdem die Kreuzungspunkte erfasst wurden, sagt der Prozess 510 auf Basis bekannter Techniken die Zeit voraus, die für den nächsten Kommutationszyklus benötigt wird.
-
6 ist ein Flussdiagramm eines beispielhaften Prozesses 600 für eine sensorlose BLDC-Motorsteuerung. Der Prozess 600 kann in der im Speicher 512 gespeicherten Firmware implementiert sein und durch den Prozessor 510 ausgeführt werden.
-
In manchen Implementierungen kann der Prozess 600 am Beginn einer neuen Kommutationsschaltsequenz beginnen. Während einer Motorstartperiode (z. B. offene Regelschleife) werden analoge BEMF-Spannungen an den Motoranschlüssen erfasst und durch einen ADC in digitale Werte konvertiert (602). Die mittleren BEMF-Spannungswerte werden durch einen Mikrokontroller separat für ungerade Sequenzschritte (604) und gerade Sequenzschritte (606) berechnet und im Speicher abgelegt. Die mittleren BEMF-Spannungen können berechnet werden, indem alle BEMF-Spannungsmessungen über eine Aktualisierungsmethode addiert werden und durch die Gesamtzahl der BEMF-Spannungsmessungen geteilt werden.
-
Während des Betriebs des Motors im Gleichgewichtszustand werden die mittleren Werte der BEMF-Spannungen für gerade und ungerade Sequenzen mit instantanen BEMF-Spannungen für gerade und ungerade Sequenzen verglichen, um gerade und ungerade Kreuzungspunkte zu detektieren (608, 610). Die Zeit bis zur nächsten Kommutation für gerade und ungerade Sequenzen wird berechnet (612, 614). Die Kommutationszeiten für gerade und ungerade Sequenzen werden gemittelt, um eine mittlere Zeit bis zum nächsten Kommutationszyklus zur Verfügung zu stellen (616). Die mittlere Zeit kann berechnet werden, indem die gerade und die ungerade Kommutationszeit addiert wird und durch Zwei geteilt wird. Optional kann die mittlere Zeit mit einem Reduktionsfaktor skaliert werden (618). Z. B. kann Gleichung [7] verwendet werden, um einen geeigneten Reduktionsfaktor (z. B. 0,9375) zu bestimmen. Eine Änderung der Kommutationsschaltsequenz kann unter Verwendung einer skalierten oder unskalierten mittleren Zeit bis zum nächsten Kommutationszyklus erfolgen (618).
-
Der Prozess
600 wird in dem folgenden beispielhaften Pseudocode illustriert, der durch die in dem Speicher
512 gespeicherte und durch den Prozessor
510 des Mikrokontrollers
504 ausgeführte Firmware implementiert werden kann. Beispielhafter Pseudocode
-
In dem oben stehenden beispielhaften Pseudocode berechnet der erste Codeabschnitt mittlere BEMF-Spanungen für gerade und ungerade Sequenzen der Kommutationsschaltsequenz und weist diese mittleren Werte den Variablen zc_odd bzw. zc_even zu. In dem beispielhaften Code kann die Berechnung der mittleren BEMF-Spannungen für gerade und ungerade Sequenzen alle 250 Millisekunden durchgeführt werden, wobei 62,5 Mikrosekunden oder 16 kHz die PWM-Schaltfrequenz ist. Die Aktualisierungszeit ist hier nur beispielhaft und kann wie gewünscht geändert werden.
-
Der nächste Codeabschnitt bestimmt, ob die gegenwärtige Zeit (die durch die Variable „ii” angegeben wird) größer oder gleich ist wie eine Solldauer (target_duration) nach der Nulldurchgangsdetektion, oder ob die Zeit größer ist als 128, wobei 128 ungefähr die Minimalgeschwindigkeit des Motors ist (600 rpm). Wenn eine dieser Bedingungen wahr ist, wird die Kommutationssequenz (commutationStep) auf den nächsten Schritt der Schaltsequenz implementiert und die laufende Zeit und ein Nulldurchgangserfassungsflag (after_zc_detection) werden auf Null zurückgesetzt. Das Setzen von after_zc_detection auf Null bedeutet, dass der Prozessor 510 auf die Nulldurchgangserfassung wartet.
-
Der nächste Codeabschnitt führt die Nulldurchgangsdetektion für die ungeraden Schritte der Kommutationsschaltsequenz (Schritte 1, 3, 5) durch. Wenn der Kommutationsschritt größer oder gleich 6 ist, so gilt commutationStep = 0. In den ungeraden Schritten der Kommutationsschaltsequenz wird eine instantane BEMF-Spannung (NewADC) mit dem mittleren BEMF für ungerade Schritte verglichen. Wenn die instantane BEMF-Spannung kleiner ist als die mittlere BEMF-Spannung für ungerade Schritte (was einen Nulldurchgang anzeigt), dann wird after_zc_detection auf 1 gesetzt und target_duration wird aus der Zeit bis zum Nulldurchgang der geraden Sequenz (old_duration) plus der Zeit bis zum Nulldurchgang der ungeraden Sequenz, d. h. der gegenwärtigen Zeit „ii”, multipliziert mit einem Reduktionsfaktor (phase_adjust), berechnet. In diesem Beispiel ist phase_adjust = 15 Grad (die Hälfte der gewünschten 30 Grad), so dass der Reduktionsfaktor (15) >> 4 = 15/24 = 15/16 = 0,9375 ist und old_duration = ii. Man beachte, dass der für die ungerade Sequenz bestimmte Wert von old_duration verwendet wird, um target_duration für die gerade Sequenz zu bestimmen.
-
Der letzte Codeabschnitt führt die Nulldurchgangsdetektion für die geraden Schritte der Kommutationsschaltsequenz (Schritte 2, 4, 6) ähnlich zu der Nulldurchgangsdetektion für die ungeraden Schritte durch. Für die geraden Schritte tritt jedoch ein Nulldurchgang auf, wenn die instantane BEMF-Spannung größer ist als die mittlere BEMF-Spannung für die geraden Schritte (vgl. 2–3). Die Variable old_duration wird gleich der laufenden Zeit gesetzt und verwendet, um target_duration für die ungerade Sequenz zu bestimmen, wie zuvor beschrieben wurde.
-
Obgleich dieses Dokument zahlreiche spezifische Implementierungseinzelheiten enthält, sollten diese nicht als einschränkend für den beanspruchten Schutzumfang betrachtet werden, sondern als Beschreibung von Merkmalen, die den konkreten Ausführungsformen zueigen sind. Bestimmte Merkmale, die in dieser Beschreibung im Zusammenhang mit getrennten Ausführungsformen beschrieben wurden, können auch in Kombination mit einander in einer Ausführungsform implementiert werden. Umgekehrt können verschiedene Merkmale, die im Zusammenhang mit der einzigen Ausführungsform beschrieben wurden, auch in mehreren Ausführungsformen getrennt voneinander in jeder geeigneten Unterkombination implementiert werden. Darüber hinaus können, obwohl Merkmale als in einer bestimmten Kombination zusammenwirkend beschrieben wurden und anfänglich als solche beansprucht wurden, bestimmte Merkmale aus einer beanspruchten Kombination in manchen Fällen aus dieser Kombination herausgenommen werden und die beanspruchte Kombination kann auf eine Unterkombination oder eine Variation einer derartigen Unterkombination gerichtet werden.