Forum: Digitale Signalverarbeitung / DSP / Machine Learning Feldorientierte Regelung mit F28335


von Philipp S. (Gast)



Lesenswert?

Hallo zusammen,

ich versuche derzeit, auf dem F28335 mit dem TMDSDOCK eine 
feldorientierte Regelung zu implementieren. Damit soll ein fremderregter 
Synchronmotor geregelt werden, der für eine DC-Spannung bis 400V 
ausgelegt ist und maximal 60kW leisten kann. Da der dafür gedachte große 
Umrichter noch nicht fertig ist, habe ich einen kleineren, der an einem 
DC-Netzteil an 100V hängt. Die Erregung ist zunächst konstant  auf 25V, 
3,5A eingestellt. Große Lasten werden noch nicht bewegt.

Ich habe mich dabei an Beispielprogrammen von TI orientiert und nutze 
die DMClib. Ich habe jetzt meinen Stromregelkreis geschlossen. Der 
Winkel für die Transformationen kommt aus einem Rampengenerator. System 
siehe erstes Bild.

Über die Vorgabe einer Geschwindigkeit für den Rampengenerator konnte 
ich meinen Motor bis auf die angedachte Maximalgeschwindigkeit von 
6000u/min bringen. Im nächsten Schritt will ich nun den Rampengenerator 
mit meinem berechneten Winkel ersetzen. Dazu habe ich den Verlauf vom 
Rampengenerator und meinen parallel dazu berechneten Winkel 
aufgezeichnet, was soweit sehr gut aussieht (2. Bild).

Ich hatte nun erwartet, dass bei der Vorgabe eines Sollwertes für Iq die 
Drehzahl durch die Decke geht, was aber leider (oder zum Glück?) nicht 
passiert ist. Der Motor beschleunigt gemächlich bis ca 2200u/min und 
bleibt dann auf dem Level. Ein Erhöhen von iq,soll lässt die Drehzahl 
sogar noch etwas zurückgehen. Ich habe dann einige Werte aufgezeichnet, 
um nach Fehlern zu suchen. (3. Bild, die png-Datei war 2MB groß, daher 
jpg)

Auf meinem Oszi habe ich mir dann noch maßstäblich die Ströme der drei 
Stränge zur Maschine aufgenommen. (4. Bild)

Ich kann mir derzeit leider nicht erklären, warum der Motor nicht weiter 
beschleunigt. Die PI-Regler sind mit Kp=1 und Ki=0,0025 parametriert. 
Hat jemand einen Tipp, was mögliche Ursachen sein könnten?

Danke und schönes Wochenende!
Gruß
Philipp

von Funko B. (funkobongrip)


Lesenswert?

Na das klingt ja fast nach Formula Student...

Wenn kein Drehmoment abverlangt wird kann man durchaus in die 
Feldschwächung gehen und kann dadurch bei entsprechend geringem 
Drehmoment beliebig hohe Drehzahlen erreichen.

Regelst du aber nach Feedback vom Motor musst du bewusst in die 
Feldschwächung übergehen (im Prinzip Kommutionstiming verändern), wenn 
du das nicht machst erreichst du die maximale Drehzahl auch erst bei der 
entsprechenden Spannung.

von Philipp S. (Gast)


Lesenswert?

Student ja, Formular nein :)

Ich denke auch, dass es etwas mit dem Betrag der Erregung zu tun hat. 
Ich hatte die Erregung bisher immer fest eingestellt. Ich habe aber auch 
festgestellt, dass wenn man die Erregung dann einzieht, der Motor noch 
etwas beschleunigt.
Da ich mit der Maschine im Leerlauf bin, aber dennoch 20A peak messe, 
denke ich, dass da ein sehr großer Anteil Blindleistung dabei ist, die 
ich in der Maschine im Kreis schicke. Das DC-Netzteil liefert nur etwa 
3A.

Ich habe bei meinem letzten Versuch habe ich dann das simulierte 
Winkelsignal durch mein tatsächlich gemessenes ersetzt, woraufhin ich 
eben nur bis ~2200u/min gekommen bin (bei reduzierter Erregung noch 
etwas mehr). Wie würde man denn in dem Fall das Kommutierungstiming (das 
war es wahrscheinlich was du mit Kommutionstiming meintest?) 
realisieren? Genügt es da schon, der inversen Parktransformation einen 
leicht voreilienden Winkel zu verpassen?

von Funko B. (funkobongrip)


Lesenswert?

Philipp Seckel schrieb:
> Student ja, Formular nein :)
Für was für eine Art von Projekt ists denn?

> Ich denke auch, dass es etwas mit dem Betrag der Erregung zu tun hat.
> Ich hatte die Erregung bisher immer fest eingestellt. Ich habe aber auch
> festgestellt, dass wenn man die Erregung dann einzieht, der Motor noch
> etwas beschleunigt.
> Da ich mit der Maschine im Leerlauf bin, aber dennoch 20A peak messe,
> denke ich, dass da ein sehr großer Anteil Blindleistung dabei ist, die
> ich in der Maschine im Kreis schicke. Das DC-Netzteil liefert nur etwa
> 3A.
Peak Ströme wo? In den Phasen?
In den Phasen kannst du auch kA haben und am Netzteil nur wenige A, 
alles eine Frage der Pulslänge und Pufferung.

> Ich habe bei meinem letzten Versuch habe ich dann das simulierte
> Winkelsignal durch mein tatsächlich gemessenes ersetzt, woraufhin ich
> eben nur bis ~2200u/min gekommen bin (bei reduzierter Erregung noch
> etwas mehr). Wie würde man denn in dem Fall das Kommutierungstiming (das
> war es wahrscheinlich was du mit Kommutionstiming meintest?)
> realisieren? Genügt es da schon, der inversen Parktransformation einen
> leicht voreilienden Winkel zu verpassen?
Hab ehrlich gesagt noch keinen großen Motor in Feldschwächung (ich 
glaube bei 3 phasen BL Motoren nennt man das auch anders) betrieben, 
kenne es nur von <200gr Motoren, da einfach mit dem Timing rumgespielt 
und ausprobiert.
Ein 60kW Motor wird allerdings etwas mehr als 30€ kosten und ist 
dementsprechend vielleicht nicht als Versuchsobjekt geeignet.
Wieso ist das denn nötig?
Wenn die Drehzahl bei der Spannung schon erreicht werden muss ist bei 
der Auslegung ja schon etwas völlig schief gelaufen, wäre das eingeplant 
gewesen wüsstest du wohl wie du die Drehzahl erhöhst.

Gruß

von Philipp S. (Gast)


Lesenswert?

Es geht darum, einen Umrichter für einen Motorenteststand zu bauen. Und 
das eben nicht unter Verwendung von fertigen Baugruppen, sondern, mal 
abgesehen von den IGBTs und deren Treibern, alles in Eigenbauweise. Ich 
bin mit der Ansteuerung betraut worden und hatte mich da für den TI 
Prozessor entschieden, da die ganze Sache mit der DMClib sehr 
vielversprechend klang und im Grunde ja auch ist.
Was eben verwunderlich ist: Wenn ich den Winkel durch einen 
SW-Rampengenerator vorgeben lasse, erreicht die Maschine auch die 
6000rpm bei 100V. Und ohne Last dürfte es sowieso egal sein, wie viel 
Spannung der Zwischenkreis liefert. Die Spannung in der Maschine stellt 
sich ja anhand der Stellgrößen der Regler ein. Und die hätte ich im 
Leerlauf als sehr gering erwartet. Stattdessen bin ich bei 2000rpm bei 
80% Regleraussteuerung, wenn der Rotorlagegeber angekoppelt ist. Dann 
erreichen die Ströme eben schnell den vorgegebenen Sollwert und der 
Regler zieht die Stellgröße ein. Die Rückführung der Ströme in den 
Controller passt von der Skalierung her aber definitiv. Kann mir auf das 
Gesamtproblem noch keinen wirklichen Reim bilden...

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
Noch kein Account? Hier anmelden.