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.
Die PWM hat aber nichts mit der Drehzahl zu tun, sondern steuert die Leistung. Die Drehzahl steckt in der Frequenz der Sinuswellen.
Ja und diese Frequenz verändere ich in dem ich nur jeden xten Schritt zähle Oder? Also zumindest wird der Motor langsamer je höher mein x ist.
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
:
Bearbeitet durch User
Bist Du Dir Sicher, was die 14 Pole betrifft?
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
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.
:
Bearbeitet durch User
Joe F. schrieb: > Wenn es ein Faktor von 2 oder so ist, ist da u.U ein > Denkfehler in der Anzahl der Poles drin. Der Faktor beträgt ca. 1,8. Aber ich glaube es liegt auch an meiner Nutzung der HAL Library und dem PulseFinishedCallBack. Zwischen den einzelnen PWM Signalen sind nämlich unterschiedlich lange Abstände.
:
Bearbeitet durch User
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.
:
Bearbeitet durch User
Meine PWM hat eine Frequenz von 30 kHz. Dabei habe ich einen Prescaler von 5 und eine Auflösung von 427 Schritte. Ich hab die PWM Frequenz extra so hoch gewählt damit man den Motor nicht hört.
:
Bearbeitet durch User
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.
:
Bearbeitet durch User
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
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.
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.
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.
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.
:
Bearbeitet durch User
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.
Thomas E. schrieb: > Da wäre vermutlich ein Motor mit niedrigerem KV besser geeignet. Suche > evtl. mal nach "Gimbal Motor" Ja das ist mir bewusst. Den Motor den ich zurzeit verwende, habe ich auch nur weil er von ST in einem Set angeboten wird und ich damit erstmal die Grundlagen erlernen will.
Stefan K. schrieb: > Wie kann ich denn die elektrischen Pole bestimmen Eine Möglichkeit wäre, den Motor mit einer gewissen Drehzahl zu drehen (z.B. per Akkuschrauber) und die Frequenz der erzeugten Spannung bzw. die Perioden pro Umdrehung mit dem Oszi zu messen.
Thomas E. schrieb: > Eine Möglichkeit wäre, den Motor mit einer gewissen Drehzahl zu drehen > (z.B. per Akkuschrauber) und die Frequenz der erzeugten Spannung bzw. > die Perioden pro Umdrehung mit dem Oszi zu messen. Ah ok danke. Auch an alle anderen die mir geholfen haben. War echt eine Kombination aus zu hoher Frequenz und der falschen Polpaarzahl.
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.