Hallo, Vielleicht habe ihr vor kurzem hier den Thread zur SVPWM-Ansteuerung eines BLDC gesehen. Nun bin ich grade dabei, mich in die Theorie einzuarbeiten - sprich FOC und der ganze zugehörige Kram. Dazu habe ich einige Fragen, bei welchen ihr mir hoffentlich weiterhelfen könnt. Und zwar geht es um folgendes: 1. Man liest in diesem Zusammenhang immer wieder von der Clarke und der Park-Transformation. Was bei diesen Transformationen jeweils gerechnet wird, weiss ich mittlerweile, allerdings verstehe ich nicht so ganz, was der Sinn davon ist. Wieso muss anhand zweier Phasenströme erst die Ströme Alpha und Beta Berechnen und wie kommt man auf diese Formeln: ialpha = ia ibeta = (ia + 2ib) / sqrt(3) besonders der letzte Ausdruck würde mich interessieren. Ich nehme mal an, dass diese Rechnung einfach daher rührt, dass ia und ib als Vektoren angesehen werden, und anhand des Winkels zwischen diesen Vektoren ergibt sich ein bestimmter Umrechnungsfaktor. Richtig? 2. Aus diesen beiden Strömen ia und ib werden ja eben mittels Clark (oder Clarke?) die beiden Komponenten ialpha und ibeta berechnet. Wenn ich dies richtig verstanden habe, dann sind diese beiden Komponenten bezogen auf ein festes Koordinatensystem. Mittels der Park-Transformation werden dann aus ialpha und ibeta die beiden Komponenten d und q, welche im Prinzip dasselbe Aussagen wie ialpha und ibeta, aber auf ein Koordinatensystem bezogen sind, welches sich mit dem Rotor mit dreht. Ist das richtig so? Und grade weil sich dieses Koordinatensystem mit dem Rotor dreht, erscheinen "aus Sicht des Rotors" die Komponenten d und q wie DC-Werte und können so "einfach" geregelt werden. Richtig? Dabei repräsentiert die d-Komponente die Drehzahl des Motors, während q dem Moment entspricht. Ist das auch richtig so? 3. Jetzt kommt der grösste Stolperstein. Und zwar wurde bis jetzt mit dem Strömen gerechnet - aus ia und ib wurden ialpha und ibeta, und daraus wurden dann d und q, welches meiner Meinung nach eigentlich auch Ströme sind (oder besser gesagt: die Einheit dieser Grössen ist Ampere). Wie komme ich denn jetzt auf die Spannungen? Um eine RZ-PWM zu machen, benötige ich ja Spannungen und nicht Ströme. Mal angenommen, ich lasse d und q jetzt durch meinen Regler. "hinten" am Regler kommt dann ja wieder irgend ein Wert raus, und anhand von diesem kann ich die RZ-PWM machen. Hier ist das beschrieben: http://ww1.microchip.com/downloads/en/AppNotes/ACIM%20Vector%20Control%2000908a.pdf Das Problem dabei: Bis Figur 3, Park Transformation, wird mit Strömen gerechnet. Dann wird geregelt, und als Eingangsgrössen für die inverse Park-Transformation tauchen dann plötzlich Spannungen auf! Und zwar vd und vq. Theta ist klar, ich gehe davon aus dass dies der Umlaufwinkel des Rotors ist. Aber woher kommen vd und vq? 4. Weiter. Ausgangsgrössen der inversen Park-Transformation sind die Grössen valpha und vbeta (auch hier: wieso sind aus den Strömen plötzlich Spannungen geworden?). Die werden mittels inverser Clark (oder Clarke) Transformation wieder in die 3 Phasen umgerechnet. Und hier ist, glaube ich, ein Fehler in der AppNote. Man betrachte Figur 5. Dort wird gesagt: va = valpha, vb = (vbeta + sqrt(3) * valpha) / 2. Für vc ist allerdings derselbe Ausdruck angegeben, wie für vb, und das ist meiner Meinung nach nicht richtig. Wie lautet vc in Wirklichkeit? So, ich hoffe ihr könnt mir mit diesen Fragen ein bisschen weiter helfen. Es wäre auch ganz interessant, wenn ihr noch ein bisschen entsprechende Literatur empfehlen könntet, wo das ganze noch etwas mehr beschrieben ist. Gruss Tobias
Hallo, Ialpha und Ibeta sind Raumzeiger - hier werden im Prinzip die drei Strangströme in einen zweidimensionalen (zeitabhängigen) Vektor überführt (geht, da Ia+Ib+Ic bekanntlich Null ist). Hier findest Du eine kurze Erklärung zu RZ (inkl. Formelherleitung): http://www.ruhr-uni-bochum.de/eaee/dokus/raumzeiger.pdf Die Raumzeiger sind nun auf den Stator bezogen (Stator fest, Rotor dreht). Durch die Transformation mit der Drehzahl bekommst Du dann Iq und Id. Diese Größen sind dann auf den Rotor bezogen (Rotor fest, Stator dreht). Ist schon lange her, aber soweit ich mich erinnere wird der Strom in ein Motormodell gespeist aus dem hinterher die notwendigen Spannungen raus kommen. Nach der Regelung mußt du diese Größen natürlich wieder zurücktransformieren. Also wieder auf den festen Stator beziehen und in die Strangspannungen zurückführen.
Hi bjojon, danke erstmal für den Link. Von den Raumzeigern habe ich schon ein bisschen Ahnung, ich habe eine lauffähige Raumzeigermodulation bereits implementiert, und die funktioniert auch. Damals hatte ich allerdings "Constant Volts per Hertz", also eine Steuerung und keine Regelung. Ausserdem war das eher für DAMs, ich möchte es aber mit einem BLDC ausprobieren. Anwendung habe ich dazu zwar grade keine, aber es wäre sicher lehrreich sowas mal gemacht zu haben ;-) Geht denn diese FOC auch ohne Motormodell? In den wenigen Dokumenten, die ich dazu bereits gefunden habe, wird von diesem Modell nichts erwähnt. Ich könnte mir vorstellen, dass man auch die Ströme zur Berechnung der Raumzeiger benutzen könnte, denn m.E. ist der Motor ja in erster Linie induktiv, sprich Strom und PWM sind zueinander proportional. Nicht? Und anhand der Regelung pendelt sich das dann automatisch auf den "richtigen" Wert ein, so stelle ich mir das jedenfalls vor. Gruss
Hi, 1. nicht ganz richtig, aber für die Übersicht reichts. 2. falsch Id = Idirekt, d. h. das resultierende magnetische Feld fließt in Richtung des Stators. Iq = I quadratur (oder so) d.h. das Feld steht 90° zum Stator. Nur durch Iq wird ein Drehmoment erzeugt. Id macht nur Verluste. Also: bei der permanent-erregten Synchronmaschine regle auf Id=0. Bei der Asynchronmaschine wirds etwas komplizierter (Schlupf und Vormagnetisierung) 3 und 4 kommt noch... Alex
Hi Alex, hmm, in den gängigen AppNotes wird immer gesagt Id ~ flux und Iq ~ torque. Was sagt denn dieser flux aus bzw. wozu brauchts den? Wenn es also so ist, dass Id nur Verluste erzeugt und daher 0 sein sollte - sehe ich das richtig, dass ich dann gar nicht die Drehzahl regeln kann, sondern nur das Moment? Und die Drehzahl ergibt sich dann automatisch aus dem Moment und der Last. Korrekt? Was, wenn ich jetzt aber eine konstante Drehzahl will? Kann ich dann FOC nicht benutzen? Noch was zum Punkt 1. Ich habe mir dazu mal eine Zeichnung gemacht mit diesen 3 Vektoren Ia, Ib, Ic. Ich nehme mal an, dass dieser Ausdruck 2/sqrt(3) daher kommt, dass sin 120° = 2/sqrt(3) ist? Da wird also eigentlich mit Winkelfunktionen herumgerechnet, sodass man die richtigen Beträgt bekommt, wenn man ia und ib auf die beiden Achsen alpha und beta projiziert. Ist meine Annahme richtig? Hui, ich sehe schon: bei diesem Steuerverfahren wird ganz schön viel gerechnet. Das braucht wohl ordentlich Dampf, ich beginne langsam zu zweifeln dass das ohne DSP machbar ist.... Hast du da Erfahrung? Ich würde es auf einem ARM7 versuche, @ ca. 60 MHz. Du sagst, dass nur Iq das Drehmoment bestimmt. Dann sind die Transformationen wohl einfach dazu da, das Feld immer so zu drehen, dass es in einem möglichst grossen Winkel < 90° zum Rotor steht, oder? Ideal wäre es dann wohl, wenn man den Winkel immer auf 90° halten könnte, dann wird, wenn meine Vorstellung korrekt ist, das Moment immer maximal sein. Gruss
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.