Intelligente Antriebselektronik Feldorientierte Regelung mit 8-Bit-Mikrocontroller

Autor / Redakteur: Arno Rabenstein* / Holger Heller

Energieeffizienz, Laufruhe, ein über den gesamten Drehzahlbereich konstantes Drehmoment und niedrige Systemkosten sind Forderungen für Motoren in kleinen industriellen Antrieben sowie in Consumer-Anwendungen wie Lüfter, Pumpen, Waschmaschinen etc. Feldorientierte Regelung (Field Oriented Control, FOC) kann diese technischen Anforderungen erfüllen.

Firmen zum Thema

( Archiv: Vogel Business Media )

Das Ziel niedriger Systemkosten für kostensenisitve Anwendungen kann mit Infineons hochintegrierten 8-Bit-Mikrocontrollern XC886 und XC888 erreicht werden: Diese erlauben nicht nur die Implementierung des FOC-Algorithmus auf einem 8-Bit-Mikrocontroller anstelle einer teureren 16-Bit-Variante oder eines DSPs, sondern reduzieren auch die externen Komponenten im Vergleich zu bisher vorhanden Lösungen. Kernelement dieser 8-Bit-FOC-Lösung ist die gleichzeitige Nutzung des 8051-Prozessorkerns und des integrierten Vektor-Rechners, ein Coprozessor für 16-Bit-Berechnungen und Winkeloperationen.

Dieser besteht aus zwei parallel arbeitenden Einheiten: der MDU, einer 16-Bit-Multiplizier- und Dividiereinheit, und dem CORDIC, einem 16-Bit-Coprozessor speziell für Vektorrotationen und Winkelberechnungen. Externe Komponenten können aufgrund der für die Motorsteuerung optimierten On-Chip-Peripherie eingespart werden: z.B. erlaubt der autonom arbeitende A/D-Wandler und die Einheit zur Pulsweitenmodulation (PWM) die Strommessung mit einem einzigen Shunt-Widerstand und Operationsverstärker.

Bildergalerie

Darüber hinaus ist die XC886/8-basierte Lösung im Gegensatz zu bisher vorhandenen FOC-Implementierungen, die meist komplett in Hardware implementiert sind, wiederprogrammierbar und erlaubt den Entwicklern damit eine Anpassung einer vorhandenen Plattformlösung auf vielfältige Anwendungsmöglichkeiten mit vergleichbar geringem Aufwand.

Sensorlose feldorientierte Regelung

Die verwendete sensorlose FOC bietet die Vorteile einer sinusförmigen Kommutierung bei minimalen Systemkosten. Dabei ist nur ein Shunt (serieller Messwiderstand) im Zwischenkreis zur Erfassung der drei Phasenströme notwendig. Bild 1 zeigt das Blockdiagramm der sensorlosen FOC mit Drehzahlregler für einen synchronen permanenterregten Motor (PMSM). Aus Sicht der Regelung ist die FOC vergleichbar mit der Regelung eines Gleichstrommotors. Das Grundkonzept entspricht der Kaskaden-Regelung, mit dem Unterschied, dass die elektrischen Variablen (Vd, Id, Vq und Iq) nicht raumfest sind, sondern sich mit dem Rotor drehen.

Damit müssen die am Stator gemessen Ströme (Ia und Ib) in die Rotor-Koordinaten (Id and Iq) transformiert werden. Der Stromregler im rotierenden System wird als PI-Regler realisiert. Dabei werden die feldbildende d-Komponente und die drehmomentbildende q-Komponente separat geregelt. Der Drehzahlregler beeinflusst – wie bei Gleichstrommotoren – den Sollwert für den drehmomentbildenden Strom Iq. Aufgrund der Permanentmagnete am Rotor wird der Sollwert für den feldbildenden Strom Id auf Null gesetzt.

Das Blockschaltbild der 8-Bit-MCUs XC886 und XC888 ist in Bild 2 zu sehen. Eine sensorlose FOC auf diesen Standard-Bausteinen (z.B. bei 15 kHz PWM-Frequenz und einer Regelzeit von 133 µs für die Stromregelung) benötigt nur 58% der zur Verfügung stehenden CPU-Leistung. Die Programmierung des FOC-Algorithmus mit 16-Bit-Arithmetik wird nur über eine kombinierte und verschachtelte Nutzung des Vektor-Rechners und der 8051-CPU erreicht.

Vektor-Rechner für mehr Leitungsfähigkeit

CORDIC ist ein Akronym für COrdinate Rotation DIgital Computer. Er besteht aus einer Gruppe von Schiebe- und Additionsoperationen für Vektorrotation in der Ebene. Er führt eine Reihe von speziellen Drehwinkelschritten derartig durch, dass jeder Schritt mit einer Schiebe- und Additionsoperation durchgeführt wird. Der CORDIC bietet sechs Betriebsarten, von denen zwei im FOC-Algorithmus Verwendung finden. Alle Betriebsarten berechnen zwei Ergebnisse parallel.

Der Circular-Vectoring-Modus berechnet den Betrag und Winkel eines Vektors in kartesischen Koordinaten. Der Linear-Rotation-Modus berechnet X/MPS und (Y+Z*X)/MPS, wobei der Skalierungsfaktor MPS die Werte 1, 2 und 4 annehmen darf. Die Ausführungszeit für eine Berechnung liegt bei weniger als 42 Taktzyklen, was 1,75 µs bei 24 MHz entspricht. Die tatsächliche Ausführungszeit hängt von der Anzahl der Iterationen des CORDICs ab. Die MDU ist eine Multiplikations- und Divisionseinheit, die eine schnelle 16-Bit-Multiplikation, 16- und 32-Bit-Division sowie Schiebe- und Normierungsfunkionen zur Verfügung stellt. Die Ausführungszeit hängt von der ausgewählten Funktion ab und variiert von 2 bis 32 Taktzyklen.

Beide Coprozessoren bieten zugehörige Busy-Flags, die den Ausführungszustand anzeigen. Die Eingangswerte des Vektor-Computers werden direkt beim Start der Berechnungen von den Eingangsregistern übernommen. Daher können diese Register für die nächste Berechnung vorbelegt werden, während die Berechnungen ausgeführt werden.

Um die Rotor-Position durch Messung an einem Shunt schätzen zu können, muss die Erzeugung der PWM-Muster und das Triggern des A/D-Wandlers für die Strommessung sehr schnell und präzise erfolgen. Jeder Jitter am Triggerpunkt beeinflusst die Bestimmung des aktuellen Rotorwinkels und die gesamte harmonische Verzerrung des sinusförmigen Stromsignals nimmt zu. Die erforderliche Funktionalität für eine präzise Strommessung wurde in die MCUs XC886C(L)M und XC888C(L)M implementiert, indem ein ereignisgesteuerter Hardware-Trigger der PWM-Einheit CapCom6E eine Messung des A/D-Wandlers auslöst. Dieser ereignisgesteuerte Trigger eliminiert jegliche Interrupt-Latenzzeiten und ermöglich eine schnelle und genaue Strommessung.

CAPCOM6E und ADC

Die PWM-Einheit CAPCOM6E, die in zahlreiche Infineon-MCUs implementiert ist, ist zur Ansteuerung vieler Motortypen entwickelt worden. Beim Betrieb von Drehstrommotoren wird sie zur Erzeugung der sechs PWM-Signale verwendet, die einen Dreiphasenwechselrichter direkt ansteuern können. Daher wurde eine Totzeitsteuerung integriert, um Querströme in jeder Phase auszuschließen.

Diese Capture-Compare-Einheit (Zeiterfassung und Vergleich) bietet zwei 16-Bit-Zeitgeber (Timer T12 und T13). Diese PWM-Einheit ist am Systemtakt angebunden. Das führt zu einer hohen Genauigkeit bei hohen PWM-Frequenzen. Für die Erzeugung der PWM-Signale wird sogar nur die Vergleichsfunktion der CAPCOM6E-Einheit verwendet. Die Vergleichswerte des Zeitgebers T12 im Dreieckbetrieb steuern den Leistungswechselrichter. Beim Nulldurchgang des Zeitgebers T12 wird T13 einmalig gestartet und wird dazu verwendet die Hardware-Trigger für die ereignisgesteuerte Strommessung zu erzeugen.

Alle Vergleichswerte werden über Schattenregister übergeben, um die Hardware von der Software zu entkoppeln, was eine störungsfreie PWM-Mustererzeugung und ADC-Messung sicherstellt. Die Polarität eines jeden der sechs Ausgangspins wird ebenso individuell eingestellt wie der Zustand der Ausgangssignale nach einem Not-Aus, welcher durch einen fest zugeordneten Pin namens CTRAP ausgelöst wird.

Variable Abtastzeit

Der 10-Bit-A/D-Wandler bietet insgesamt vier Ergebnisregister und kann über Hardwareereignisse getriggert werden. Dies erlaubt einen höchst präzisen Messzeitpunkt und entlastet die CPU. Die A/D-Wandlung lässt sich in zwei Phasen aufteilen, eine Abtastphase und eine Wandlungsphase. Je nach Impedanz des zu messenden Signals, kann die Abtastzeit bis auf 150 ns eingestellt werden, was zu einer Wandlungszeit von 1,67 µs führt.

Bei der Implementierung der sensorlosen FOC werden zwei Ergebnisregister verwendet, um die entsprechenden Zwischenkreisströme IDClink zu messen. Sie werden selbstständig beim Vergleichswert und Endwert des Zeitgeber T13 vom ADC-Kanal 3 und 4 gemessen. Die Berechnungen der FOC werden in der Interrupt-Service-Routine des Zeitgebers T12 durchgeführt, die beim Endwert (period match) von T12 aufgerufen wird. Zu diesem Zeitpunkt im Zeitdiagramm (Bild 3) ist sichergestellt, dass beide Strommessungen abgeschlossen sind und die Stromwerte im Ergebnisregister zur Verfügung stehen. Die Übergabe der neuesten Vergleichswerte aus den Schattenregistern zu den aktiven Registern der Hardware passiert gleichzeitig mit dem Aufruf der Interrupt-Service-Routine.

Sicherheitsanforderungen für motorbetriebene Systeme in Haushaltsgeräten erfordern Systemüberwachungsfunktionen. Die MCUs XC886 und XC888 bieten Überwachungsfunktionen wie einen Watchdog-Timer, einen Versorgungsspannungs-Watchdog und eine Systemtakt-PLL mit integriertem freischwingenden Oszillator, der wie ein unabhängiger Notlauftakt wirkt. Der Programmspeicher ist mit einem Fehlerkorrekturverfahren (Error Correction Code, ECC) ausgestattet und die PWM-Einheit CAPCOM6E bietet einen fest zugeordneten Pin, um den Wechselrichter in einen sicheren Not-Aus-Zustand zu bringen.

Infineons 8-Bit-MCU-Familie ermöglicht also die Realisierung von leistungsfähigen Motorregelungssytemen für kostensensitive Industrie- und Consumer-Anwendungen. Erreicht wird dies durch die Integration von Motorsteuerungsperipherie und eines Vektor-Rechners als mathematischen Coprozessor auf dem 8051-kompatiblen 8-Bit-Mikrocontroller. Dies ist ein Beispiel, wie die Integration von anwendungsspezifischer Peripherie ermöglicht, dass 8-Bit-MCUs auch in Zukunft weiter in die Domäne von 16- oder sogar 32-Bit-MCUs eindringen, um die aggressiven Kostenziele der jeweiligen Anwendung zu treffen.

FOC Drive Application Kit

Das FOC Drive Application Kit bietet eine kostengünstige Möglichkeit zur Evaluierung und Entwicklung von PMSM-Anwendungen mit feldorientierter Regelung. Das Kit beinhaltet die CANmotion-Plattform mit XC886CM und einem Drehstromwechselrichter zur Ansteuerung des bürstenlosen 24-V-PMSM-Motors. Der komplette FOC-Quellcode zusammen mit einer kostenlosen Entwicklungsumgebung bietet dem Entwickler eine sofort betriebsbereite Lösung als Starthilfe zur FOC-Entwicklung.

Eine CAN USB Bridge auf Basis des XC886CM ist zum Hexcode herunter und für den Parameterabgleich verfügbar. Eine CAN-basierte Bedienoberfläche ermöglicht es dem Anwender, alle Regelparameter für Motordrehzahl und Stromregelung zu setzen und zu modifizieren. Vorgefertigte Beispiele bieten eine Plattform zur einfachen Evaluierung und Ermittlung der Leistungsfähigkeit des FOC-Algorithmus. Das Kit kann über Distribution oder direkt auf der Infineon-Homepage bestellt werden (siehe Link-Kasten).

*Arno Rabenstein ist Senior Staff Engineer, Application Engineering, bei Infineon Technologies in München.

(ID:213974)