es geht um die Stromregelung einer Synchronmaschine. Normalerweise werden diese Motoren mittels FOC (Clarke/Park -> PI-Regelung von Id und Iq -> Inverse Park -> Raumzeigermodulation) angesteuert. Da dieses eine gewisse Prozessorleistung ben=F6tigt, habe ich bisher folgende Strategie verfolgt:
Die Rotorposition wird mittels Encoder gemessen. Auf diese Position wird ein Winkel addiert und entsprechend das Drehfeld gesetzt. Bei dem Strom wird die Summe der in die Str=E4nge hineinflie=DFenden Str=F6me addiert, also nur die Werte, die gr=F6=DFer 0 sind. Dieses entspricht dem zu diesem Zeitpunkt in die Maschine flie=DFenden Strom, der nat=FCrlich auch dem herausflie=DFenden entspricht. Dieser positive Strombetrag von einem Geschwindigkeitsregler gesetzt.
Das Problem: Wenn ich bei der Raumzeigermodulation den Betrag 0 eingebe, dann liegen alle drei Motorphasen die ganze Zeit niederohmig auf dem gleichen Potential. Die Folge ist, da=DF der Motor abgebremst wird, weil er die ganze Zeit kurzgeschlossen ist. Die Folge von dem Verhalten ist, da=DF die Stromregelung bei kleinen Leistungswerten (wo also die Motorphasen die meiste Zeit auf dem gleichen Potential liegen) funktioniert. Wenn der Motor sich in diesem Zustand dreht (hat noch schwung), dan flie=DFen gro=DFe Kurzschlu=DFstr=F6me die abbremsen. De= r Stromregler regelt bei zu gro=DFen Istwerten die Raumzeigermodulation herunter, aber die "Bremsstr=F6me" flie=DFen trotzdem weiter.
Werden gr=F6=DFere Geschwindigkeiten abverlagt, dann funktioniert die Stromregelung, weil etwas weniger Betrag bei der Raumzeigermodulation auch weniger Strom nach sich zieht und mehr Betrag bei der Raumzeigermodulation auch mehr Strom zur Folge hat.
Ich h=E4tte gerne von Euch erfahren, ob Ihr auch schon diesen Ansatz verfolgt habt, ihn erfolgreich implementiert, oder verworfen habt.
Gru=DF
Wolfgang
Didn't find your answer? Ask the community — no account required.
P
Philip Herzog
Wieviel hast Du denn zur Verf=FCgung? Man kann gegen=FCber den bei TI et.= al. verf=FCgbaren Bibliotheken durchaus einen Faktor 4 schneller werden, wenn=
man auf einem 32-Bit-Prozessor ohne FPU mit Fixed Point und 16 Bit pr=E4zision rechnet und die Sinustabelle etwas optimiert.
Ohne das nachgerechnet zu haben klingt mir Dein Ansatz n=E4mlich nicht so=
als w=E4re er wesentlich weniger Aufw=E4ndig...
- Philip
--=20 Jesus k=FCndete das Reich Gottes an und gekommen ist die Kirche. (Alfred Loisy)
V
Volker Bosch
Hallo Wolfgang,
ah, endliche e> Die Rotorposition wird mittels Encoder gemessen. Auf diese Position
Wie? Ermittelst Du für jede Phase den Soll-Strom? Das hört sich aber nicht weniger aufwändig an, als die d-q-Transformation.
Dabei geht aber die Phaseninformation des Stroms verloren. Du kennst also die Phasenlage des aktuellen Maschinenstroms nicht?
Das hört sich für mich eigentlich so an, als ob der Regler macht, was er soll ;-). Ich befürchte, die Synchronmaschine lässt sich so nicht führen, da Du bei Deiner Stromregelung keinen Freilauf, also Klemmenspannung der Maschine == Polradspannung (in Betrag und Phase) einstellen kannst.
Mich überzeugt die direkte Stromregelung an den Maschinenklemmen nicht, da Du vermutlich für eine vernünftige Dynamik eine hohe Spannungsstellreserve vorhalten musst. Ich glaube aber nicht, dass man diese Dynamik im Strom wirklich benötigt, da ja lediglich der Stromverktor "verdreht" werden muss (bzw. geringfügig im Betrag verändert werden muss). Wenn Du den aktuellen Stromvektor kennen würdest, dann könntest Du Dir über ein einfaches Maschinenenmodell den erforderlichen Spannungsvektor ermitteln, den Du benötigst, um den Stromvektor bis zum nächsten Abtastintervall in die neue Position zu drehen und ggf. den Betrag anzupassen. Einen solchen Ansatz würde ich favorisieren, da der Vektor der Klemmenspannung direkt über die PWM der Umrichterhalbbrücken einstellbar ist.
****----*-------*-------*-------*-------*-------*-------*-------*----****
*\ Viele -- Volker Bosch \***
**\ Gruesse aus -- E-Mail: vsbosch@t-online.de \**
***\ Stuttgart -- http://www.s-line.de/homepages/bosch \*
W
Wolfgang Weinmann
Hallo Volker,
nicht
Also, ich hole etwas weiter aus: Was bisher Problemlos funktioniert: Der PMSM-Motor hat Hallsensoren und in manchen Ausf=FChrungen auch einen Encoder. Die Lage des Rotors ist also bekannt. Von au=DFen erfolgt eine Sollwertvorgabe der Geschwindigkeit, ein PI- Regler gibt die Stellgr=F6=DFe aus. Diese Stellgr=F6=DFe ist der Betrag des SVM-Vektors (SVM: Space-Vector-Modulation). Auf den Winkel des Rotors wird ein Lastwinkel addiert und dieser Winkel ist der Winkelparameter der SVM. Dieser Winkel kann je nach Bedarf positiv, oder negativ sein, so da=DF Motor- und Generatorbetrieb m=F6glich ist.
Das funktioniert auch im dynamischen Betrieb alles wunderbar. Reversieren, Hochdrehen, Geschwindigkeit halten, alles funktioniert wunderbar.
Da die spannungsm=E4=DFige Ansteuerung des Motores gewisse Nachteile hat (keine Strombegrenzung ...), wollte ich auf die Stromregelung umstellen. Ich dachte, da=DF ein einfaches Prinzip eventuell ausreichen w=FCrde: Die Rotorlage ist ja bekannt. Ich wollte jetzt den Winkel der SVM wie bisher setzen, also Rotor- position plus Lastwinkel =3D Winkel der SVM. Den Strom wollte ich =FCber den Betrag des SVM-Vektors regeln. Als Regelgr=F6=DFe f=FCr den Strom wird die Summe der zu einem Zeitpunkt positiven Str=F6me addiert, die negativen werden verworfen. So bekomme ich den Strom der zum aktuellen Zeitpunkt in den Motor hineinflie=DFt. Der Ausgang des Geschwindigkeit-PI-Reglers ist die Sollgr=F6=DFe des Stromes. Das Verhalten des PMSM l=E4=DFt aber diesen einfachen Ansatz nicht richtig funktionieren. Um die Problematik zu untersuchen habe ich folgenden Test gemacht:
Der PMSM wird durch die SVM ohne eine Regelung angesteuert. Der Motor wird als Motor betrieben, der SVM-Zeiger eilt dem Rotor um ca. 100 el. Grad vor. Der SVM-Zeiger hat den Betrag von 4000 (Die Skalierung ist unwichtig). Der Motor dreht mit diesem SVM-Betrag und dem konstant gehaltenen Winkel bei konstanter Drehzahl. Jetzt wird der SVM-Betrag von
4000 auf 2000 reduziert (Die Motorphasen liegen jetzt also l=E4ngere Zeit auf gleichem Potential). In diesem Moment steigen die Strangstr=F6me um den Faktor 5 an und die Maschine verz=F6gert schnell auf eine niedrigere Geschwindigkeit und die Str=F6me nehmen dann einen niedrigeren Wert wie vorhin an. Obwohl laut SVM-Winkel der SVM-Vektor dem Rotor noch voreilt (gew=FCnschter Motorbetrieb) mu=DF er sich in diesem Moment im Generatorbetrieb befinden. Das rasche Abbremsen mit den f=FCnffachen Str=F6me lassen nur diese Interpretation zu.
In dem Moment, wo ich also die Leistung reduzieren will und den SVM- Betrag reduziere, steigt der Strom massiv an. Da macht mein Stromregler nat=FCrlich die SVM noch weiter zu und das Ganze bei=DFt sich in den Schwanz. So funktioniert der einfache Stromregelansatz nicht.
An dieser Stelle verstehe ich das Verhalten des Motors nicht ganz, n=E4mlich da=DF in dem Moment, wo der SVM-Betrag reduziert wird, Generatorbetrieb auftritt, obwohl der SVM-Zeiger dem Rotor voreilt.
Die Schlu=DFfolgerung ist f=FCr mich, da=DF die Regelung den aktuellen Stromvektor im Motor ber=FCcksichtigen mu=DF. Ich sehe derzeit zwei M=F6glichkeiten der Stromregelung:
Messen der Strangstr=F6me, Clake/Park, PI-Regelung von Id und Iq und Park-invers und damit die SVM-Ansteuerung durchf=FChren.
Messen und Regeln der drei Strang-Wechselstr=F6me. Die Sollwerte der Strangstr=F6me ergeben sich aus der Rotorposition und dem gew=FCnschten Strombetrag.
Der aktuelle Ansatz ber=FCcksichtigt die Phasenlage des Maschinenstromes nicht. Ich dachte, da=DF der einfache Ansatz gen=FCgt. Aber dem scheint nicht so zu sein.
er
Das sehe ich nicht so. Ich komme kurz auf mein oben beschriebenes Experiment zur=FCck: Wenn der Motor mit dem SVM-Betrag 4000 ein rechtsdrehendes Antriebsmoment erf=E4hrt und gleichf=F6rmig "rechts" dreht und ich reduziere den SVM-Betrag von 4000 auf 2000, dann will ich nur die Reduzierung des rechtswirksamen Antriebsmomentes auf einen niedrigeren Wert, aber kein linkswirksames Moment, was die rasche Verz=F6gerung mit dem hohen Strom darstellt.
Das glaube ich auch
da
serve
Das verstehe ich nicht.
uss
llen
den kann ich ja =FCber Clarke bestimmen
neue
die
Hm - das ist doch der FOC-Ansatz =FCber Clarke, Park, Id, Iq, Park- invers, SVM, oder etwa nicht?
Und zuwas das Maschinenmodell? Bei den bisherigen FOC-Ans=E4tzen habe ich das nicht gesehen?
Viele Gr=FC=DFe
Wolfgang
--
=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 \***
=A0 =A0 =A0 =A0 =A0 \**
epages/bosch\*
J
Joerg
Das nennt sich bei den Motorsteuerleuten "Coasting". D.h. Du muss die Regelschleife sanft auskuppeln, aber wieder "kommen lassen" kurz bevor der Motor am neuen Betriebspunkt angekommen ist.
D.h. der Motor laeuft eine Zeit lang bewusst ungeregelt.
[...]
Gruesse, Joerg
http://www.analogconsultants.com/
"gmail" domain blocked because of excessive spam.
Use another domain or send PM.
W
Wolfgang Weinmann
Das scheint mir in meinem Fall weniger geeignet zu sein. Wenn man ein System hat, das nicht oft Lastwechsel ausf=FChrt, kann man mit dem Ansatz vielleicht was hintrimmen. Aber ein System, das hochdynamisch in allen m=F6glichen Situationen "gut" reagieren soll, scheint mir so nicht machbar zu sein. Da mu=DF man wohl immer "Herr der Lage" sprich Str=F6me sein.
Gru=DF Wolfgang
S
Stephan Urban
Wolfgang Weinmann schrieb:
Dann wirst du um eine FOC wohl nicht herumkommen.
Gruesse, Stephan
J
Joerg
Sehe ich auch so, hier ist das kurz erlaeutert auch wenn es ein etwas anderer Motor ist:
formatting link
Wolfgang, mit dem Auskuppeln ist das nicht so wild. Das haben wir bei Kunden mit anderen Dingen schon gemacht. Den Leuten war anfangs immer unwohl dabei, selbst als ich denen erklaerte dass man es bei PLLs im Prinzip auch tut. "Herr der Lage" ist ja weiterhin die Regelung, da sie die Kupplung bedient. Und man muss sie auch nicht nach 200000km auswechseln :-)
Gruesse, Joerg
http://www.analogconsultants.com/
"gmail" domain blocked because of excessive spam.
Use another domain or send PM.
V
Volker Bosch
Warum keine unterlagerte Stromregelung im Zwischenkreis? Das hätte den Vorteil, dass Du wirklich einen Gleichstrom regelst und die Synchronmaschine mitsamt der Kommutierungsmimik als Gleichstrommaschine behandeln kannst. Ob Du nun den Durchflutungswinkel der Maschine um 180° drehst oder das Vorzeichen des Stromes umkehrst, läuft übrigens auf das selbe hinaus.
Wie oben bereits erwähnt: Wenn der Statorstrom sein Vorzeichen umdreht, bedeutet das auch, dass sich der Druchflutungswinkel um 180° (el) gedreht hat.
Das verstehe ich jetzt nicht! Du gibst dem Regler Strom == 0 vor und er schließt die Maschinenstränge kurz, also macht er doch was Du willst?
Dein Ansatz geht davon aus, dass der Regler der Maschine jederzeit und unabhängig von der aktuellen Bestromung einen beliebigen Stromvektor in vernachlässigbar kurzer Zeit aufzwingen kann. Aufgrund der Maschineninduktivitäten benötigts Du für den Auf- und Abbau des Stromes eine verhältnismäßig hohe Spannung, die sog. Stellreseve. Die brauchst Du aber nur für die Stromänderung und nicht für den stationären Betrieb. Der Ansatz erscheint mir somit unwirtschaftlich.
Keine Ahnung. Ich habe eine Buzzword- und Akronym-Allergie...
Um zu wissen, welche Spannung Du an die Maschine anlegen must, um innerhalb einer definierten Zeit dT einen gewissen Stromvektor zu erhalten, musst Du von der Maschine Haupt- und Streuinduktivität, den ohmschen Wicklungswiderstand und die Rotordurchflutung kennen. Das meine ich mit Maschinenmodell. Mit Hilfe des Zeigerdiagramms kannst Du Dir dann die erforderliche Spannung bestimmen.
Das steckt in den ganzen tollen Matrizen mit denen dort immer herumjongliert wird. Leider bleibt dabei meist die Physik auf der Strecke, z.B. die Sättigung...
****----*-------*-------*-------*-------*-------*-------*-------*----****
*\ Viele -- Volker Bosch \***
**\ Gruesse aus -- E-Mail: vsbosch@t-online.de \**
***\ Stuttgart -- http://www.s-line.de/homepages/bosch \*
Join the Discussion
Have something to add? Share your thoughts — no account required.
Didn't find your answer?
Ask the community — no account required
Report Content
You are reporting this content to the moderators. They will look at it
ASAP.