Motorsteuerung mit einem Fuzzy Controller - All

Werbung
BAUELEMENTE
Motorsteuerung mit einem
Fuzzy Controller
FRANK WOLINSKI
Bürstenlose Gleichstrommotoren werden immer häufig eingesetzt, wenn
es darum geht kleine Leistungen zu kontrollieren. Diese Motoren werden
hauptsächlich bei Computerperipherie, Robotern oder Antrieben verwendet,
bei denen die Geschwindigkeit des Motors eingestellt werden kann. Der
Artikel soll einen Ansatz aufzeigen, wie diese komplexe Ansteuerung
wesentlich vereinfacht werden kann, indem man zur Ansteuerung den
Fuzzy-Controller ST52x301 verwendet.
Bild 1: Bürstenloser 3-Phasen-Motor
Zu den Anwendungen von bürstenlosen
Gleichstrommotoren gehören zum Beispiel
lastabhängige, Kapazitäts-modulierte Heizungspumpen, große Ventilatoren und Kompressoren. Einer der großen Vorteile eines bürstenlosen Gleichstrommotors (BLDC-Motor)
ist das Fehlen von Funkenflug. Die Bürsten
eines Gleichstrommotors unterliegen aber
einigen Problemen in Bezug auf die Lebensdauer, Staubeinwirkungen, maximaler Geschwindigkeit und elektrischen Störeinflüssen. BLDC-Motoren sind zumeist sauberer,
36
http://e-industrie.huethig.de
schneller, effizienter, leiser und wesentlich
zuverlässiger in ihrer Anwendung. Allerdings
erfordert ein BLDC-Motor eine wesentlich
komplexere elektronische Ansteuerung.
Ein BLDC-Motor stellt sich als synchroner
3-Phasen-Permanentmagnet-Motor dar. Die
Bürsten und der Kommutator sind dabei nicht
vorhanden und die Motorwindungen sind
direkt mit der Ansteuerelektronik verbunden.
Diese Elektronik ersetzt dabei die Funktion
des Kommutators und erregt direkt die
eigentliche Wicklung. Die angeregte Statorwicklung führt den Rotormagneten und
schaltet, sobald der Rotor sich nach dem Stator ausgerichtet hat.
Ein Nachteil des BLDC-Motors liegt in der Tatsache, daß Sensoren notwendig sind um die
exakte Rotorposition des Motors ermitteln zu
können. Bild 1 zeigt einen Querschnitt eines
typischen bürstenlosen 3-Phasen Motors. In
dieser Abbildung sind auch die drei Positionssensoren (Hall-Sensoren) zu erkennen, die um
den Rotor herum angeordnet sind, um die
exakte Position des Rotors zu erkennen.
In Bild 2 kann man die im Datenblatt des
Motors angegebenen Kennlinien in diesem
Zusammenhang entnehmen. In diesem vom
Motorhersteller erstellten Diagramm kann
man den Zusammenhang zwischen der Stel-
lung des Rotors, der Reaktion der Hallsensoren und den notwendigen Versorgungsspannungsverläufen erkennen. Diese Art, die Phasen des Stators zu erzeugen, ist ziemlich komplex, da es notwendig ist, ein Sinussignal mit
der in Bezug auf die Information der Hallsensoren korrekten Periode und der richtigen
Verzögerung zu erzeugen. Um dies zu erreichen gibt es einen Lösungsansatz, auf den
später noch eingegangen wird.
Der Stator eines bürstenlosen Gleichstrommotors wird im allgemeinen von einem Inverter gespeist, der eine Gleichspannung in eine
Bild 2: Datenblattauszug des Motors
elektronik industrie 2 – 1999
BAUELEMENTE
einen digitalen Eingang eingelesen. Die
Berechnung des Errors übernimmt die Software:
Error = VREF - Speed
Error bildet gleichzeitig den Fuzzy-Eingang
des Fuzzy-Controller-Blocks. Der Fuzzy-Algorithmus verwendet nur drei Regeln, um den
Fuzzy-Ausgang zu berechnen und den Inverter im Echtzeitmodus zu steuern. Diese
Methode ermöglicht es die Motorgeschwindigkeit in einer Steuerung einer geschlossenen Echtzeitschleife zu erledigen, während
die Zeit für die Abarbeitung der Software nur
sehr kurze Zeit in Anspruch nimmt.
Bild 3: Ansteuerung mit einem „Six-Step-Inverter“, bei dem jede Phase durch ein
Die erste Regel des Fuzzy-Logik-Systems in
Transistorenpaar gesteuert wird
diesem Fall gilt, wenn der Error-Wert negativ
ist, d.h. wenn VREF sehr viel kleiner als die gewünschte Geschwindig3-Phasen-Wechselspannung umwandelt, dekeit ist. Dies bedeutet,
ren Frequenz direkt proportional zur Gedaß die aktuelle Geschwindigkeit des Rotors ist. Eine Geschwinschwindigkeit der Modigkeitskontrolle wird dabei durch eine Pulstorwelle höher ist als
Weiten-Modulation (PWM) der Phasenspandie Referenz. Wenn dienung erreicht, die durch ein periodisches
se Bedingung erfüllt
Schalten der Phasenspannung auf Null
ist, muß der Phasenerreicht wird. Um diese Vorgehensweise zu
strom 1 reduziert wererreichen wird als Ansteuerung zumeist ein
den. Um dies zu errei„Six-Step-Inverter“ verwendet, bei dem jede
chen ist es notwendig,
Phase durch ein Transistorenpaar gesteuert
den PWM Duty-Cycle
wird. Bild 3 zeigt das Schaltbild. Der Name
zu reduzieren. Der in
Bild 4: Der Fuzzy-Controller erhöht den Wicklungsstrom, um das
„Six-Step-Inverter“ kommt von der Zahl der
Bild 5 gewählte Wert
Lastdrehmoment auszugleichen. So wird die gewünschte
Zeitschritte in denen die gesamte Periode des
von -10 ist ein KomproGeschwindigkeit aufrecht erhalten
Signals aufgeteilt werden kann. Während
mis zwischen Systemjedes Zeitschritts verändert sich die Stromrichstabilität auf der einen
tung nicht, während die Amplitude des
und Ausführungszeit
digkeit des Motors. Dies bedeutet gleichzeitig
Stroms in der Wicklung des Motors zuneheines Schrittes auf der anderen Seite.
eine Zunahme der Wellenperiode des Hallmen oder abfallen kann.
Dieser Wert wurde durch einige Versuche
Sensorsignals und dann eine Verringerung
manueller Regelung gefunden. Sobald der
der Sinusfrequenz der Phasen, die aus den
Duty-Cycle zum Beispiel um den Wert -20 verAnsteuerung mit
Informationen der Sensoren folgt.
ändert wird, wird das System zwar den Refeeinem Fuzzy Controller
In diesem Fall ist die einzige Möglichkeit den
renzwert der Geschwindigkeit schneller erreiRotor in der vorherigen Geschwindigkeit zu
chen, aber der Überschwinger in der StepDas Ziel der Ansteuerung ist es, die gebelassen, die Erhöhung des Wicklungsstroms,
Ausführung könnte zu einer Instabilität des
wünschte Geschwindigkeit aufrecht zu erhalum das Lastdrehmoment auszugleichen. Der
Systems führen. Die oben angeführte Erkläten, unabhängig von der an die Welle des
Fuzzy-Controller in Bild 4 erledigt diese Aufrung für Regel 1 gilt entsprechend für die
Motors angeschlossenen Last. Sobald ein
gabe. Der ST52x301 liest den Speed_Refbeiden anderen Regeln.
Widerstandsdrehmoment an die Motorwelle
Wert über den AD-Wandler ein und die dazuDer mit diesen drei Regeln erstellte Fuzzygekoppelt ist, verringert sich die Geschwingehörige Hall-Signal-Periode wird durch
Algorithmus ist der einfachste Weg die 䊳
elektronik industrie 2 – 1999
http://e-industrie.huethig.de
37
BAUELEMENTE
Dieser digitale Eingang muß so konfiguriert
werden, daß er sowohl auf fallende als auch
auf steigende Flanken reagiert, um einen
interenen Software-Interrupt zu erzeugen.
Bild 7 zeigt das Hauptprogramm, um diese
Aufgabe zu realisieren. Diese Darstellung
zeigt die Programmierung in einer graphischen Darstellung, die mit dem Fuzzy-Studio,
einer
Programmiersoftware
für
den
ST52x301, erstellt wurde.
Fuzzy-Studio
Bild 5: Der gewählte Wert von -10 für den PWM-Dutycycle ist ein Kompromis zwischen
Systemstabilität auf der einen und Ausführungszeit eines Schrittes auf der anderen Seite
Geschwindigkeit des Motors zu regeln.
Eine mögliche Realisierung einer Schaltung
unter Verwendung des Fuzzy-Controllers
ST52x301 zeigt Bild 6. Der ST52x301, ein
integrierter Vollbrückentreiber (L298) und
drei UND-Gatter reichen aus, um einen bürstenlosen Gleichstrommotor anzusteuern.
Die grundlegende Idee dieser Schaltung ist
die direkte Verwendung der Hallsensoren. Die
Signale der Hallsensoren sind über ein UNDGatter direkt mit einem PWM-Signal verbunden, das der ST52x301 erzeugt, um die richtige Windung des Motors zu speisen. Tatsächlich erzeugt ein hochfrequentes PWM-Signal
in einer Wicklung eine Spannung, deren
Amplitude den Hauptwert eines RechteckSignals darstellt.
Das Datenblatt des Motors aus Bild 2 zeigt
deutlich, daß die Phase U-W positiv versorgt
werden muß, wenn das Signal von Sensor H1
high ist, W-V wenn Sensor H2 high ist und so
weiter. Dies gilt, da eine Anordnung der
Wicklungen in einem Dreieck verwendet
wurde. Der Ausgang des UND-Gatters ist
dann eine Impulsfolge dessen Dauer mit dem
Signal des Hallsensors übereinstimmt. Diese
Impulsfolge wird verwendet um die Motorbrücke L298 anzusteuern.
Der L298 ist ein dualer Vollbrückentreiber, der
als Eingang Standard TTL-Pegel akzeptiert und
induktive Lasten wie Relais, Zylinderspulen,
Gleichstrom- oder Schrittmotoren ansteuern
kann. Der ST52x301 erzeugt unter Verwendung einer integrierten Peripherieeinheit ein
PWM-Signal, das per Software verändert werden kann. Die PWM-Frequenz des ST52x301
wird als Kompromis zwischen störender
Geräuschentwicklung im Motor und Verlusten
in der Powerstufe der Motorbrücke ausgewählt. In der in Bild.6 gezeigten Schaltung
wird eine Frequenz von 19 kHz verwendet.
38
http://e-industrie.huethig.de
Die beiden ersten Blöcke „Int_AD_on“ und
„init“ im grafischen Programmablaufplan
dienen zur Initialisierung globaler Variablen
und zur Maskierung der möglichen Interruptquellen (nur der Interrupt des AD-Wandlers ist
aktiv). Die beiden folgenden Blöcke starten
den AD-Wandler und warten auf das Ergebnis
der Wandlung. Sobald die Ergebnisse der
Wandlung vorliegen, werden sie in einer
Variable mit der Bezeichnung „speed“, „tor-
Bild 6: Mögliche Realisierung einer Schaltung unter Verwendung des Fuzzy-Controllers
Software-Beschreibung
Bevor man die Software für den ST52x301
betrachten kann, muß man noch einige Hardware-Verbindungen aus Bild 6 näher beleuchten. Bit „0“ (PIN 9) des Paralell-Ports wird verwendet um die Leistungsstufe nur nach
einem Power-On-Reset einzuschalten. Deshalb muß der Parallel-Port im OUT-Modus
konfiguriert sein. Der analoge Eingang AIN0
(PIN 43) dient zum Lesen der Spannungsreferenz. Eine Spannung im Bereich von 0 – 2,5 V,
die an diesem Pin anliegt, wird in einen
Bereich zwischen 0 und 255 gewandelt. Der
Pin für den externen Interrupt (PIN 27) wird
verwendet, um eine Periode eines HallsensorSignals zu messen, um damit die entsprechende Motorgeschwindigkeit zu errechnen.
que“, „current“ abgespeichert und eine neue
Interrupt-Maske wird generiert (nur der
externe Interrupt ist aktiv). Der Block
„V200_duty“ lädt den Triac-Counter mit
einem vorgegebenen Wert und der Block
„PWM_start“ startet die Triac-Peripherie.
Bereits zu diesem Zeitpunkt gibt der
ST52x301 an PIN 24 ein PWM-Signal aus.
Sobald an Pin 27 ein Signal für eine bestimmte Zeit anliegt, die abhängig von der
Geschwindigkeit des Motors ist, ist es notwendig, eine mathematische Umrechnung
zur Berechnung der Frequenz vorzunehmen.
Dazu wird das Komplement des PeriodenBytes gebildet. Dadurch wird ein Fehler in die
Berechnung der Umlauffrequenz mit eingerechnet. Der folgende Block „L298_EN_on“
aktiviert den Brückentreiberbaustein. Der 䊳
elektronik industrie 2 – 1999
BAUELEMENTE
während eines Wellenumlaufs auftritt. Diese
Schleife wird solange
ausgeführt bis die Bedingung „tmp>=2“
falsch ist. Die Variable
tmp wird dazu verwendet, um innerhalb der
Fuzzyregelung einen
Zeitversatz zu generieren. Der Wert „Tmp“
wird bei jeder Ausführung der externen
Interruptroutine erhöht
(nach jeder Drittelumdrehung der MotorBild 7: Hauptprogramm - Programmierung in einer graphischen
welle). Dies bedeutet eiDarstellung, die mit dem Fuzzy-Studio, einer Programmiersoftne Echtzeitregelung inware für den ST52x301, erstellt wurde
nerhalb einer vollen
Wellenumdrehung.
Der Block „calc_err“
Block „complement“ führt die oben beschrieberechnet den Fehler nach der Formel
bene Berechnung aus. Der Schleife in Bild 7
„error=speed-ref - speed)“. Das Ergebnis diefolgend wird ein neuer Wert der Referenzgeser Berechnung wird an den Fuzzy-Eingang
schwindigkeit „torque_ref“ und „current“
gegeben und der Fuzzy-Block „fuzzy controleingelesen. Der Block „max_research“ ermitler“
berechnet
den
Zuwachswert
telt und speichert den maximalen Strom, der
„delta_DC“.
40
http://e-industrie.huethig.de
Zusammenfassung und Ergebnis
Durch die Verwendung des Fuzzy-Controllers
ST52x301 ist es möglich, eine Echtzeitregelung für einen bürstenlosen Gleichstrommotor mit nur wenigen elektronischen Komponenten aufzubauen. Dabei stellt der in diesem
Artikel vorgeschlagene Lösungsansatz eine
guten Kompromis zwischen Systemkosten
und erzielter Motorleistung dar. Die in dieser
Lösung verwendete grafische Programmieroberfläche reduziert die Entwicklungszeit
auch für nicht so erfahrene Programmierer
beträchtlich.
(oe)
Weitere Informationen zu der hier beschriebenen Motorregelung erhalten Sie über die
Kennziffer.
623
Dipl.-Ing. Frank Wolinski arbeitet im Product
Marketing Microcontroller bei STMicroelectronics
in Grasbrunn.
elektronik industrie 2 – 1999
Herunterladen