Berechnung der Geschwindigkeit eines BLDCs ohne Hall-Sensoren

#5515824
Lesenswert?

Hallo miteinander,

ich arbeite zurzeit an meinem ersten Projekt in der Kombination 
microController und Motor und habe bis zu diesem Punkt eigentlich das 
Gefühl gehabt alles recht gut verstanden zu haben (mit Hilfe dieses 
Forums).
Jedoch stimmt meine Berechnung zur Bestimmung der Geschwindigkeit nicht 
mit dem über den Oszi ermittelten Wert überein und daher wollte ich hier 
mal nachfragen ob ich denn wirklich alles richtig verstanden habe und ob 
mir jemand sagen kann was nicht. Es handelt sich dabei um einen BLDC, 
mit 14 Polen, welchen ich über 3 Sinuse kommutiere. Die Geschwindigkeit 
bestimme ich dabei durch das übergeben jedes x-ten PWM Werts an die 
Channel.

Rechnung:
Zuerst berechne ich über die Frequenz der Timer Peripherie(hier 64MHz) 
geteilt durch den Prescaler die Frequenz des Timers. Daraus dann den 
Kehrwert für die Zeit pro Tick. Danach erhalte ich über das 
Multiplizieren mit der Periode die Zeit für eine PWM. Eine mechanische 
Umdrehung wären ja dann Zeit pro PWM* die counts für jedes x-te PWM*die 
Auflösung des Sinus*die Anzahl der elektrischen Umdrehungen(14/2=7).

Ich hoffe dabei ist jetzt nicht zu viel falsch und vielen Dank für eure 
Hilfe.
(Firma: matzetronics) #5516007
Lesenswert?

Stefan K. schrieb:
> Es handelt sich dabei um einen BLDC,
> mit 14 Polen, welchen ich über 3 Sinuse kommutiere.

Dann ergibt sich die Frequenz des Drehfeldes doch aus dem Abstand 
zwischen den Nulldurchgängen des Sinus.
Ich klappere im Frequenzumrichter Sinustabellen durch und kann deswegen 
den Wert für die Frequenz aus dem Pointer in die Tabelle errechnen. Bei 
mir wird nach jedem n-ten Mal der Pointer in die Tabelle inkrementiert 
und n ist dann mit der Tabellenlänge zusammen die Frequenz.
Genaueres findet sich im Artikel:
https://www.mikrocontroller.net/articles/3-Phasen_Frequenzumrichter_mit_AVR#Sinuserzeugung
#5516031
Lesenswert?

Matthias S. schrieb:
> Bei mir wird nach jedem n-ten Mal der Pointer in die Tabelle inkrementiert
> und n ist dann mit der Tabellenlänge zusammen die Frequenz.

Mh ok so rum könnte ich es auch mal probieren. Aber geht meine Methode 
mit den Nulldurchgängen im Sinus nicht auch?

Amateur schrieb:
> Bist Du Dir Sicher, was die 14 Pole betrifft?

Ja, das ist der Motor.
3-phasiger Motor
Bull-Running-Modell BR2804-1700 kV
Nennspannung 11,1 V dc (Akku bis zu 3 S)
Maximaler Gleichstrom: 5 A
Sieben Polpaare
#5516103
Lesenswert?

Um wieviel weicht die errechnete Drehzahl denn von der tatsächlichen 
Drehzahl ab? Wenn es ein Faktor von 2 oder so ist, ist da u.U ein 
Denkfehler in der Anzahl der Poles drin.
Du kannst ja mal den Motor um genau 1 Sinus-Periode drehen lassen, und 
misst den dadurch zurückgelegten Drehwinkel. Er müsste dann ja 360°/14 
sein.

Generell ist allerdings eine Kommutierung eines so starken Motors im 
open-loop Betrieb (ohne Positionssensor und Regler) recht unsinnig... 
Das wird eine recht "wackelige" Angelegenheit.
#5516188
Lesenswert?

Stefan K. schrieb:
> Zwischen den
> einzelnen PWM Signalen sind nämlich unterschiedlich lange Abstände.

Das kling so, als ob es eigentlich der Faktor 2 ist, deine PWM aber 
nicht "hinterherkommt".
Mit welcher Frequenz/Auflösung willst du die PWM Werte denn 
rausschieben?
In der Regel reicht eine PWM von ein paar KHz gut aus.
Mal angenommen du hast eine Auflösung von 6 Bit (64 steps) und willst 
die PWM(s) mit 5 KHz betreiben, bräuchtest du 320 KHz.
#5516252
Lesenswert?

D.h. du müsstest deine Ausgänge mit 12.8 MHz updaten...
Versuche doch mal die Auflösung auf die Hälfte, oder 256 Steps (128 
reichen i.d.R. eigentlich auch...) zu reduzieren.
Dann kommst du immer noch auf eine PWM mit 30 KHz, hast die PWM Ausgänge 
aber "nur" mit 6.4-7.7 MHz zu bedienen.
#5516793
Lesenswert?

Moin,

Der Motor hat 14 magnetische Pole aber vermutlich nur 12 elektrische.
Das ist das klassische LRK-Design.
Davon abgesehen geht es immer um Polpaare. Also 6 statt 7.
Wie sollte das mit 3 Phasen und 14 Polen auch gehen?

Du hast die Frequenz des Drehfeldes? Dann sollte das jetzt einfach sein.
Im Leerlauf dreht das Ding 20400RPM bei 12V.

Du wertest aber schon die BEMF aus oder befeuerst Du das Ding etwa 
einfach mit dem Sinus?

Gruß,
Norbert
#5517021
Lesenswert?

Genau genommen ist eine sinusförmige Ansteuerung für einen BLDC Motor 
gar nicht optimal. Es gibt nämlich tatsächlich einen Unterschied 
zwischen BLDC (= elektronisch kommutierter DC-Motor) und einer 
Synchronmaschine (= 3-Phasen Wechselstrommaschine). In der Praxis wird 
der Unterschied bei diesem Motor wahrscheinlich nicht sooo groß sein, 
aber auf der anderen Seite kann man sich natürlich fragen, wozu man den 
Aufwand für sinusförmige Ansteuerung treibt, wenn eine einfachere 
Signalform eigentlich besser zur Maschine passt.
Gast #5517292
Lesenswert?

Thomas E. schrieb:
> Es gibt nämlich tatsächlich einen Unterschied
> zwischen BLDC (= elektronisch kommutierter DC-Motor) und einer
> Synchronmaschine (= 3-Phasen Wechselstrommaschine).

Ein BLDC IST eine Synchronmaschine. Manchmal ist mit "BLDC" ein Motor 
mit trapezförmiger Gegen-EMK gemeint. Aber das ist erstens keine 
allgemeingültige Definition und zweites handelt es sich dann immer noch 
um eine Synchronmaschine.
#5517341
Lesenswert?

Natürlich ist ein BLDC dieser Bauart immer auch eine Synchronmaschine, 
das dürfte schon durch die Funktionsweise klar sein, aber eben ein 
"DC"-Motor. Wegen den evtl. unklaren Begriffen hatte ich die 
Erläuterung, was gemeint ist, in Klammern dahinter geschrieben. Ich weiß 
nicht, wer die Begriffe "offiziell" definiert und wo man sie finden 
kann, aber was ich bislang an fachlichen  Veröffentlichungen gefunden 
habe deutet eher darauf hin, daß mit "BLDC" üblicherweise der Motor mit 
trapezförmiger Gegen-EMK bezeicnet ist, im Gegensatz zu "PMSM" 
(Permanent Magnet Synchron Motor) ähnlicher Bauart, welcher für 
sinusförmige Wechselspannungen konstruiert ist.

Im Modellbaubereich (wo der hier genannte Motor verwendet wird) sind 
ESCs mit sinusförmigen Ausgangsspannungen eher die Ausnahme, daher sind 
die Motoren sicher auch eher als BLDCs, denn als PMSMs konstruiert.
#5522469
Lesenswert?

Joe F. schrieb:
> Versuche doch mal die Auflösung auf die Hälfte, oder 256 Steps (128
> reichen i.d.R. eigentlich auch...) zu reduzieren.

ok hab ich gemacht

Norbert S. schrieb:
> Der Motor hat 14 magnetische Pole aber vermutlich nur 12 elektrische.
> Das ist das klassische LRK-Design.

Ah ok danke das war dann wohl auch ein Denkfehler meinerseits.
Wie kann ich denn die elektrischen Pole bestimmen oder sind das 
Erfahrungswerte von dir?

Norbert S. schrieb:
> Du wertest aber schon die BEMF aus oder befeuerst Du das Ding etwa
> einfach mit dem Sinus?

Da ich den Motor bei sehr geringen Drehzahlen bedienen muss kann ich 
leider nicht die BEMF benutzen und befeuer den Motor nur mit Sinus, ist 
zwar die Holzhammermethode aber ohne Hall-Sensoren geht es leider nicht 
anders.
#5522563
Lesenswert?

Stefan K. schrieb:
> Da ich den Motor bei sehr geringen Drehzahlen bedienen muss kann ich
> leider nicht die BEMF benutzen und befeuer den Motor nur mit Sinus, ist
> zwar die Holzhammermethode aber ohne Hall-Sensoren geht es leider nicht
> anders.

Da wäre vermutlich ein Motor mit niedrigerem KV besser geeignet. Suche 
evtl. mal nach "Gimbal Motor" - die sind für sehr kleine Drehzahlen 
ausgelegt (<100 KV) und werden auch mit Sinus und Drehzahl 0 
angesteuert. Weiß aber jetzt nicht, ob/wo es da etwas passendes in 
Deiner Motorgröße gibt. Da die aber auch an kleinen Drohnen zur 
Kamera-Stabilisierung verwendet werden, müsste es da schon etwas geben.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren