Guten Tag zusammen, ich möchte diesen Thread nutzen, um diverse Fragen zu meinem Projekt elektrisch unterstützter Fahrradanhänger zu stellen. Ich hoffe das ist in Ordnung in der Rubik Projekte. Dann brauche ich nicht unnötig viele Threads aufmachen. Ich weiß, dass es schon Threads über BLDC in diesem Forum gibt. Dort haben mich aber widersprüchliche Aussagen und Streitgespräche immer wieder verwirrt. Stand der Dinge: Ich habe einen BLDC-Controller gebaut und einen Fahrradanhänger mit einem Motor und Zahnriemengetriebe ausgerüstet. Es funktioniert prinzipiell und ich mache gerade Messungen für ein Kennfeld Strom=f(Geschwindigkeit,PWM). Dabei ist mir aufgefallen, dass ich das Thema PWM nicht so umgesetzt habe, wie es eigentlich üblich ist. Leider gibt es zu unipolarer und bipolarer PWM viele unvollständige oder widersprüchliche Darstellungen. Deshalb möchte ich hier als erstes kurz zusammenfassen, was ich jetzt unter bipolarer PWM für BLDC-Motoren verstehe. Dazu habe ich eine Zustandstabelle zusammengetragen (siehe Bild): Links die 6 Schritte der Kommutierung, rechts alle 12 Kombinationen Kommutierungsschritt+PWM-Zustand X,Y,Z - Signal der Hallsensoren A,B,C - Zustand der Motorphasen - PWM -> in der HIGH-Phase der PWM ist der High-Side Transistor leitend, in der LOW-Phase ist der Low-Side-Transistor leitend - ~PWM -> umgekehrt - - -> beide Transistoren sind nicht leitend EnaA,B,C - Enable-Signal der Halbbrückentreiber DirA,B,C - Direction-Signal der Halbbrückentreiber - PWM -> PWM-Signal - ~PWM -> invertiertes PWM-Signal - - -> egal, weil Ena nicht aktiv (rechts gelb markiert) A,B,C-High,-Low - Zustand der 6 Transistoren Zusammenfassung: Zu jedem Zeitpunkt ist eine Motorphase offen, eine ist mit Batterie+ verbunden und eine mit Batterie-. In der Low-Phase der PWM wird die Polarität umgekehrt. Das heißt, bei 50% PWM ist die über die PWM-Phasen gemittelte Spannung an den beiden aktiven Motorphasen gleich 50% Batteriespannung und es fließt bei stehendem Motor kein Strom aus der Batterie. Bei 100% PWM läuft der Motor mit maximaler Drehzahl (wenn keine mechanische Last anliegt) bzw. mit maximaler Leistung (wenn Last anliegt). Jedes PWM-Verhältnis zwischen 50% und 100% ist einer Leerlaufdrehzahl zugeordnet. Ist die tatsächliche Drehzahl niedriger, wird angetrieben, wenn sie höher ist, wird gebremst. --------------------------------------------------------- So. Jetzt wie ich das bisher umgesetzt habe, weil ich es nicht besser wusste: Ich lege das PWM-Signal auf die Enable-Eingänge der aktiven Halbbrücken-Treiber und eine 0 oder 1 auf die Direction-Eingänge (siehe Tabelle). In der aktiven PWM-Phase entspricht das dem oben beschriebenen. In der inaktiven PWM-Phase wird aber nicht umgepolt, sondern alle Transistoren sind offen (nicht leitend). Das hat zur Folge, dass der Aus-Zustand (kein Strom bei stehendem Motor) bei 0% PWM erreicht wird. 100% PWM entsprechen der oben beschriebenen Lösung. Die Abhängigkeit Strom=f(PWM) ist stark nicht-linear (erst flach, dann steil) und von der Geschwindigkeit abhängig (niedrige Geschwindigkeit verschiebt die Kurve nach links: mehr Strom bei gleichem PWM). --------------------------------------------------------- Ich möchte nochmal mindestes eine neue Revision meiner Platine erstellen. Jetzt frage ich mich, ob ich direkt auf die "richtige" Lösung umstelle. Dann muss ich die HW und die SW ändern und die Messungen wiederholen. Deshalb sollte das konkrete Vorteile für mich haben. Deshalb meine Fragen: Frage 1: Hat meine aktuelle Lösung außer der geänderten Kennlinie prinzipiell Probleme wie z.B. dass irgendwo sinnlos Energie verbraten wird, dass manche Bauteile unnötig belastet werden etc. ? Frage 2: Die oben beschriebene bipolare PWM kann im Gegensatz zu meiner Lösung bremsen. Wenn ich damit bremse indem ich das PWM-Verhältnis absenke, wird dann automatisch Energie in die Batterie zurückgespeist oder muss dazu der Winkel der Kommutierung verändert werden ? In anderen Threads gibt es leider widersprüchliche Aussagen dazu. Frage 3: Welche Wirkung haben PWM-Verhältnisse zwischen 0% und 50% ? Dreht der Motor dann rückwärts oder müsste man dazu auch den Kommutierungswinkel ändern ? Frage 4: Verständnisfrage: Die beiden aktiven Motorphasen werden bei der bipolaren PWM regelmäßig umgepolt. Dabei wird aber nicht zwischendurch gebremst oder Energie unnötig in Wärme umgewandelt, richtig ? Ich stelle mir das so vor, dass ein Teil der Energie zwischen der Motorwicklung und dem Kondensator hin- und her-pendelt und (Wirkungsgrad <1 mal ignoriert) nur der Teil, der in mechanische Energie umgewandelt wird, wird kontinuierlich aus der Batterie entnommen. Ist diese Vorstellung richtig ? Frage 5: Falls mein bisheriges Verständnis richtig ist, muss man für einen Leerlauf wo weder angetrieben noch gebremst werden soll, das PWM-Verhältnis auf den korrekten Wert f(Drehzahl) stellen oder regeln, sodass der Strom Null wird. Ist es für solche Zwecke üblich, einen speziellen Leerlaufmodus (z.B. alle Transistoren offen) zu verwenden ?
:
Verschoben durch Moderator
Sven G. schrieb: > Bei 100% PWM läuft der Motor mit maximaler Drehzahl (wenn keine > mechanische Last anliegt) bzw. mit maximaler Leistung (wenn Last > anliegt). Jedes PWM-Verhältnis zwischen 50% und 100% ist einer > Leerlaufdrehzahl zugeordnet. Ist die tatsächliche Drehzahl niedriger, > wird angetrieben, wenn sie höher ist, wird gebremst Hmm, bevor wir zur PWM kommen: Drehzahl und ob bremsen oder antreiben hängt beim BLDC nicht von der Spannung oder dem Unterschied zwischen Ansteuerdrehzahl und Antriebsdrehzahl ab, sondern deine Hallsensoren geben vor, wie kommutiert werden muss. Und willst du vorwärts, muss deine Kommutierung etwas (manche sagen 30 Grad) vorher erfolgen, willst du rückwärts (oder bremsen) muss sie etwas später erfolgen Und WIE dieser Phasenversatz erreicht wird, mit dem die Hallsensoren deine Kommutierung steuern, ob durch relativ zu den Magnetpolen verdrehten Hallsensoren oder zeitliche Interpolation der Steuerung, ist (uns) unbekannt.
Wenn man vernünftige Antworten will, dann hilft wohl nur eins: Aufbauen, Ausprobieren, Messen. Für den Fall, das hier künftige Bastler mit ähnlichen Ambitionen vorbei kommen, veröffentliche ich meine Ergebnisse. Die konkreten Zahlen sind vielleicht nicht sonderlich hilfreich. Aber die Diagramme zeigen prinzipielle Zusammenhänge, die man evtl. wissen möchte. Außerdem hilft mir die Aufbereitung für die Veröffentlichung selbst, es vernünftig zu dokumentieren. Versuchsaufbau: - eine BLDC-Controller-Schaltung, die das oben als "bipolare PWM" beschriebene Kommutierungsschema realisiert - brushless sensored motor, wie er für Skateboards etc. angeboten wird: KV=270 prm/V, 42 Komm.schritte/Umdrehung, 0,064 Ohm, P-Max.1820W - 4s-LiPo-Akku (16,8V Leerlaufspannung wenn voll) - Zahnriemengetriebe und 20''-Rad an einem Fahrradanhänger - Leerlaufmessungen mit Getriebe und Rad ohne Bodenkontakt mit 2 Ladezuständen der Batterie Die Geschwindigkeit in km/h mag für einen Elektromotor eine seltsame Einheit sein, aber für meine Zwecke passt das so. Steckt halt Getriebeübersetzung und Raddurchmesser schon drin. Bild1: Strom, Spannung, Geschwindigkeit, Leistung über PWM duty cycle bei voller Batterie Bild2: das gleiche bei fast leerer Batterie Bild3: Wenn der Wirkungsgrad bei voller und leerer Batterie gleich ist, sollte die Kurve Leistung über Geschwindigkeit für beide Ladezustände ungefähr gleich sein. Passt für mittlere und höhere Geschwindigkeiten ganz gut. Bild4: Für den realen Einsatz am Fahrrad möchte ich als Basis-PWM-Wert den Leerlaufwert passend zur aktuellen Geschwindigkeit nehmen und einen Offset je nach gewünschter Unterstützung addieren. Der Basiswert ergibt sich aus der folgenden Darstellung und ist erfreulich linear von der Geschwindigkeit abhängig. Für den Offset will ich im Realbetrieb ein Kennfeld I=f(PWM,v) (U erstmal konstant) vermessen. Das wird eine Weile dauern. Wenn alles gut geht, melde ich mich mit den Ergebnissen. Überlegung zur Auslegung: Die max. Geschwindigkeit mag sehr hoch erscheinen. Man muss allerdings berücksichtigen, dass der Motor bei der max. Leerlaufdrehzahl kein praktisch nutzbares Drehmoment mehr abgibt. Trotzdem überlege ich, für die endgültige Version einen Motor mit kV=170rpm/V statt 270 zu kaufen. Eine kürzere Getriebeauslegung mit einer Stufe ist aus Platzgründen nicht möglich und eine 2.Stufe möchte ich nicht benutzen. Ist schon so alles komplex genug. Aber vor dem Neukauf erstmal weiter Testen....
Wie gesagt, gibt es ja unterschiedliche Darstellungen über die Details bei der Kommutierung im Netz. Nenne meinen ersten Ansatz hier "naiv", bin mir nicht ganz sicher, ob das einer unipolaren PWM entspricht. Bei den Messungen mit der bipolaren PWM ist mir aufgefallen, dass der Motor deutlich lauter war als mit der "naiven" Kommutierung. Die bipolare polt ja die Phasen synchron zum PWM um, während die naive K. die Transistoren bei PWM=low komplett öffnet. Damit bremst die bipolare, wenn die Geschwindigkeit zu hoch ist, während die naive einfach laufen lässt. Daher nehme ich an, dass Geschwindigkeitsschwingungen von der pipolaren agressiver beantwortet werden, während die naive entspannter ist. Daher die das laute Surren. Ich habe also das Board mit der naiven K. nochmal vermessen (siehe Bild). Man sieht, es dreht sich ab ca. 1/3 PWM duty cycle und die Geschwindigkeit steigt dann auch wieder gut linear. Der Punkt 100% duty cycle muss identisch zur bipolaren PWM sein, da sich da beide gleich verhalten und er ist es in den Messungen auch. Jetzt ein Wirkungsgradvergleich: Ich kann den Wirkungsgrad nicht direkt messen, aber gleicher Wirkungsgrad heißt gleiche Leistung bei gleicher Geschwindigkeit. Es zeigt sich, dass bei der bipolaren PWM schon am Stand ein Strom fließt, während er bei der naiven vernachlässigbar ist. Bei höchsten Drehzahlen überholt die naive. Das Board mit der naiven Kommutierung hat keine Hardwarefilter für Strom- und Spannungsmessung, daher ist die Kurve zappelig. Im oberen Bereich gab es Fehler beim Auswerten der Hall-Sensoren, daher die großen Zacken oben. Fazit: Die naive K. ist wirkungsgradtechnisch nicht schlechter als die Bipolare. Zudem stellt die bipolare einen Stromregler vor ein Problem: Die Abhängigkeit Strom=f(PWM) ist nicht linear, sondern hat ein Miminum, wenn das PWM duty cycle zur aktuellen Drehzahl passt, darunter bremst der Motor und der Strom steigt wieder. Also möchte ich aktuell Ansatz 1 weiter verfolgen. PS: Mir ist gerade aufgefallen, die rechte Achse ist ungünstig skaliert, beginnt bei -2.
:
Bearbeitet durch User
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.