Forum: Mikrocontroller und Digitale Elektronik BLDC Motor mit Sinuskommutierung langsame Drehzahlen


von Mach F. (machfax)


Lesenswert?

Guten Tag

Ich muss einen BLDC Motor mit 3 Wicklungen ansteuern. Die Ansteuerung 
ist eine Sinuskommutierung, das heisst der Strom durch die Phasen ist 
Sinusförmig. Bei ganz langsamen Drehzahlen ist die Genauigkeit aber sehr 
schlecht, bzw. die Drehzahl nicht stabil. Ist dies allgemein so oder was 
kann ich dagegen machen? Der PID Regler zur Drehzahlregelung hat zu 
wenig Einfluss darauf.
Wie kann ich rechnen, wo die minimale Drehzahl liegt, bei der ich noch 
stabil fahren kann? Gibt es da eine Angabe vom Motorenhersteller? 
(Maxon)

Vielen Dank

von Steel (Gast)


Lesenswert?

Das liegt alleine daran woher du deinen Kummutierungswinkel bekommst. 
Wenn der nur geschätzt wird, dann ist das logisch, dass es bei kleinen 
Drehzahlen nicht mehr funktioniert.

von Mach F. (machfax)


Lesenswert?

Und wenn der Winkel genau stimmt, stimmen auch die Drehzahlen?

Danke

von Steel (Gast)


Lesenswert?

Ja.

von Mach F. (machfax)


Lesenswert?

Steel schrieb:
> Ja.

Aber bei sehr niedrigen Drehzahlen wird rein physikalisch ein Ruckeln 
entstehen, wenn von der einen Spule im Motor auf die nächste gewechselt 
wird, oder liege ich da falsch?

Danke.

von Steel (Gast)


Lesenswert?

Do mi schrieb:
> oder liege ich da falsch?

Ja. Bei Sinuskommutierung sind immer alle Wicklungen im Motor beteiligt 
und es wird eben nicht hart von Wicklung zu Wicklung umgeschaltet.

von Mach F. (machfax)


Lesenswert?

Das heisst es gibt keine minimale Drehzahl die physikaisch nicht 
unterschritten werden darf?

von Falk B. (falk)


Lesenswert?

@ Do mi (machfax)

>Das heisst es gibt keine minimale Drehzahl die physikaisch nicht
>unterschritten werden darf?

AFAIK doch, wenn man keine Rückführung der Rotorposition hat und nur den 
Strom der drei Wicklungen regelt. Bin mir aber nicht sicher.

von MaWin (Gast)


Lesenswert?

> Wie kann ich rechnen, wo die minimale Drehzahl liegt, bei der ich noch
> stabil fahren kann?

Mit Hallsensoren? 0.

Ohne Hallsensor: Ab der Drehzahl, aber der die Gegen-EMK gross genug 
wird, damit deine Elektronik die Ankerposition erkennen kannst.

von Mido (Gast)


Lesenswert?

Das ist nicht ganz richtig. Sinuskommutierung geht ab 0rpm. Es wird dann 
aber nicht geregelt, sondern Zwangskommutiert. Am Motor liegt aber ein 
Sinus an. Die Gegen-EMK (BEMF) spielt dabei keine Rolle, da die 
Phasenstroeme gemessen werden. Allerdings sind da noch einige PI bzw 
PID-Regler, die richtig eingestellt werden müssen damit es funktioniert. 
Aber funktionieren tut es. Mein System geht mit 1rpm.

von Mach F. (machfax)


Lesenswert?

Ich habe Hallsensren plus Encoder für die genau Winkelbestimmung, das 
sollte also kein Poblem sein.

von Mach F. (machfax)


Lesenswert?

Mido schrieb:
> Das ist nicht ganz richtig. Sinuskommutierung geht ab 0rpm. Es wird dann
> aber nicht geregelt, sondern Zwangskommutiert. Am Motor liegt aber ein
> Sinus an. Die Gegen-EMK (BEMF) spielt dabei keine Rolle, da die
> Phasenstroeme gemessen werden. Allerdings sind da noch einige PI bzw
> PID-Regler, die richtig eingestellt werden müssen damit es funktioniert.
> Aber funktionieren tut es. Mein System geht mit 1rpm.

Hallo
Wäre es eventuell möglich den Code für die Feldorientierte Regelung zu 
veröffentlichen? Ich bin schon seit 3 Monaten am suchen, aber habe noch 
nichts gefunden, das bei mir funktioniert. Ich habe den SinusStrom auf 
dem KO, aber die Phasenlage stimmt nicht korrekt, und auch mit der 
Clarke und Park und anschliessenden ParkInvers Transformation stimmt die 
Phasenlage nicht korrekt. Ich weiss wirklich im Moment nicht woran es 
liegt... :-(

Danke für Inputs

von Mido (Gast)


Lesenswert?

Do mi schrieb:
> den Code für die Feldorientierte Regelung zu
> veröffentlichen?

Hallo,

nun, ja und nein. Ich hab das mit dem Toshiba TMPM374 gemacht. Der 
rechnet die Park/Clark u.s.w. in einer speziellen Hardwareeinheit. 
Entsprechend schnell, aber für's lernen ist das dann eher nicht 
geeignet, weil bereits eben in Hardware implementiert. Die Software, 
also Source von der Firmware, und die grafische Oberfläche gibt's bei 
denen auf der Webseite und im Forum wird Dir auch geholfen. Ich hab 
damals das Sigmaboard über Elektor gekauft.

Auf einer Messe haben Sie diese langsame Kommutierung mit einem Aufzug 
gezeigt. Irgendwo muß es da auch noch ein Video geben.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Ich drehe hier mit der Software aus AVR447 einen Pioneer 
Plattenspielermotor für Direktantrieb auch ab ca. 6 U/min und höher und 
sehr wenig Flutter/Jitter. Zugegeben, der Motor ist dafür gedacht und 
hat Hallsensoren... Langsamer solte auch gehen - nach ein wenig 
Rumfummeln am Code.

von Mach F. (machfax)


Lesenswert?

Hallo

Ich habe jetzt einen sehr schönen Sinus auf allen 3 Phasen, nur die 
Phasenlage zum Hallsensor bzw. der Rotorlage stimmt noch nicht. Wenn ich 
den Sinus jetzt so schgiebe, damit die Lage genau mit dem Rotor 
übereinstimmt, wird der Strom durch den Motor kleiner, was aber auch 
logsich ist, denn wenn die Lage nicht stimmt bremse ich den Motor ja 
künstlich ab.
Das Problem ist jetzt aber, dass ich nicht mehr einen schönen Sinusstrom 
habe, sondern ein etwas verhackter Sinus. Warum ist das so, bzw. was 
mache ich falsch? Die PWM Ansteuerung funktioniert noch richtig, bzw. 
die Werte im PWM Register geloggt ergeben einen schönen Sinus, nur die 
Hradware leider nicht und somit läuft mein Motor auch nicht rund...
Ist es eventuell der Rückstrom vom Motor der reinstört? Oder woran liegt 
das?

Danke & Gruss

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Do mi schrieb:
> nur die
> Phasenlage zum Hallsensor bzw. der Rotorlage stimmt noch nicht.

Wir wissen noch viel zu wenig über deine Hardware und Software, als das 
man da etwas bestimmtes sagen könnte, aber wenn bei deinem Motor nicht 
ganz klar ist, auf welchem Anschluss welche Phase liegt oder welcher 
Hallsensor welche Wertigkeit hat, hast du halt 6 Sektoren und 6 
Hallzustände, die du unter einen Hut bringen, bzw. logisch anordnen 
musst. Wenn also z.B. die Phasenlage um ein Vielfaches von 60° abweicht 
hast du die Hallsensoren falsch angeschlossen, usw.

Bei einem tabellengestützten Ansatz wie bei AVR447 würde ich mir jetzt 
aufzeichnen, welcher Sektor zu welchem Hallzustand gehört und die 
Sektorstarts entsprechend anpassen. Mein o.a. Plattenspielermotor und 
ein 4kW E-Bike Motor haben in meinem Projekt auch verschiedene Tabellen.
Denke auch dran, das die optimale Ansteuerung von 3-Phasen BLDC nicht 
mit genauen Sinuskurven gemacht wird, sondern mit den sogen. 
'Popo'kurven, die einen leichten Modulationsrückgang im Maximum des 
Sinus haben.

von Mach F. (machfax)


Angehängte Dateien:

Lesenswert?

Hallo
Ich habe folgende Hardware:
http://www.ti.com/tool/rdk-bldc

Den Code zur FOC SVPWM (Feldorientierte Sinusregelung) habe ich zum Teil 
von ST, zum Teil von hier:
Beitrag "SVPWM mit LPC1769"

Auf jeden Fall habe ich diese PoPo Kurven. Das passt alles und der Sinus 
ist auch ganz schön
(siehe Anhang 709)

Mit der Phasenschiebung, damit der Hallsensor mit dem Sinus 
übereinstimmt (720) ist der Strom viel kleiner, der Motor läuft sogar 
ruhiger als bei 709 aber der Sinus ist eine Katastrophe.

Dazu zu sagen ist eben, dass der Motor fast lastfrei läuft und dadurch 
eventuell Probleme entstehen könnten?

Oder Wie stelle ich die PI Regler nach der Clarke und Park 
Transformation richtig ein, ohgne einfach ein bischen zu cshrauben, denn 
das bringt mich nicht weiter...

Danke erstmal für die Mühe!

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Do mi schrieb:
> Dazu zu sagen ist eben, dass der Motor fast lastfrei läuft und dadurch
> eventuell Probleme entstehen könnten?

Nö, sollte eigentlich nicht. Die Drehzahl unter Last später konstant zu 
halten ist Sache des PI(D) Reglers, den du für die ersten Versuche 
deaktivieren solltest, da er durch seine evtl. falschen Parameter 
anfängt zu 'tanzen'.
Der Motor sollte sich auch ohne Last sauber drehen.

Do mi schrieb:
> aber der Sinus ist eine Katastrophe

Mit XLS kann ich hier nicht viel anfangen, das sind wohl Xcel Tabellen? 
Ein Screenie von einem Oszilloskop würde mir persönlich mehr sagen. Wenn 
du die Phasenlage verschiebst und dann der Sinus verbogen wird, ist das 
vermutlich ein Zeichen dafür, das etwas mit der Interpolation innerhalb 
eines Sektors was nicht stimmt.
Die meisten FOC Algorithmen benutzen die Hallsensorwechsel zur 
Resynchonisation mit den Sektoren und müssen dann innerhalb des Sektors 
interpolieren. Wenn du eine serielle Schnittstelle o.ä. dran hast, lass 
dir mal die Sin/Cos Werte ausgeben, währen der Motor langsam läuft und 
verfolge, was da passiert.

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.