Hallo liebe Forummitglieder, ich erkläre euch erstmal mein Projekt, habe nämlich eine Platine entwickelt, um ein Pedelec anzusteuern. Die Platine läuft soweit ganz gut, das einzige Problem ist jetzt das Programm zu schreiben. Auf meiner Platine habe ich einen STM32 und programmiere es mit uVision 4. Der Motor ist ein 250W 4Pol BLDC mit Hallsensoren von Panasonic mit einem Planetengetrieben und einer Übersetzung von 14. Soweit so gut, nun komme ich zu meinem Problem: Habe in ganz vielen Internetseiten und Büchern nachgeschaut, doch leider kam das Verständnis nicht zu 100%. Also mein uC generiert 6PWM Signale High1, High2, High3 und Low1, Low2 und Low3! High1-High3 und Low1-Low3 sind alle um 120° Phasenverschoben und überschneiden sich nicht. High1 ist das inversum von Low1 und das selbe für 2 und 3! Man nimmt üblicherweise eine Frequenz von 20kHz. Diese Signale kommen an einem 3-Phasen-Gatetreiber, der die Signale für die Leistungstransitoren (die in einer B6-Brücke geschaltet sind) verstärkt, um diese sicher durchschalten zu können. PROBLEM: Wenn ich nun die Drei Phasen (U V W) anschließe, dreht sich zwar der motor, aber nur sehr langsam, nur 2 Umdrehungen und vorallem sehr laut! Es dreht sich auch nur dann, wenn ich die Frequenz auf 8kHz runterstelle. Wenn ihr mehr Daten bzw. mehr Details braucht kann ich gerne dazu schreiben. Ich wäre für jede Antwort von euch sehr dankbar, denn habe noch einpaar Verständnisprobleme... Danke im Voraus Fabian
hast du beachtet das der Strom auch immer wieder zurückfließen muss? Es hilft also nicht wenn du auf U eine Spannung gibst und in diesem Moment V und W nicht geschaltet sind. (also die PWM gerade auf 0 ist )
> 120° Phasenverschoben und überschneiden sich nicht Müssen sie aber ... > Man nimmt üblicherweise eine Frequenz von 20kHz Man nimmt üblicherweise eine Beschleunigunsrampe ... Dir fehlen die Grundlagen und du solltest besser aufhören bevor du was kaputt machst. Erst mal ein paar Tage mit der Theorie beschäftigen.
Uwe schrieb: >> Man nimmt üblicherweise eine Frequenz von 20kHz > Man nimmt üblicherweise eine Beschleunigunsrampe ... Die Grundfrequenz der PWM beschleunigen ? MfG Klaus
Peter II schrieb: > hast du beachtet das der Strom auch immer wieder zurückfließen > muss? Es > hilft also nicht wenn du auf U eine Spannung gibst und in diesem Moment > V und W nicht geschaltet sind. (also die PWM gerade auf 0 ist ) Danke für deine Antwort... Also das Einganssignal sieht so aus (siehe Anhang1-PWM_tabelle),doch am Ausgang sollten sich dann 2 Phasen überschneiden. Wie soll ich es beachten, das der Strom wieder zurückfließen muss???
@ Fabian L. (fabls) >Danke für deine Antwort... Also das Einganssignal sieht so aus (siehe >Anhang1-PWM_tabelle),doch am Ausgang sollten sich dann 2 Phasen >überschneiden. Tun sie auch, nennt sich Trapezansteurung. Um das zum Laufen zu bringen, musst du erstmal das GANZ LANGSAM betreiben, sprich, vielleicht mit 1 Hz dieses Signalspiel erzeugen. Die PWM bleibt natürlich bei 20kHz. Zu beachten ist auch, dass die Hallsensoren richtig angeschlossen sind, sonst verhaspelt sich der Motor, weil er falsch angesteuert wird. Und man darf diese Muster nicht mit starrem Timing erzeugen, sondern muss man Ende jeder Phase darauf warten, dass die HALL-Sensoren anzeigen, dass das Ende der Pahse erreicht wurde.
> Tun sie auch, nennt sich Trapezansteurung. > > Um das zum Laufen zu bringen, musst du erstmal das GANZ LANGSAM > betreiben, sprich, vielleicht mit 1 Hz dieses Signalspiel erzeugen. Die > PWM bleibt natürlich bei 20kHz. Zu beachten ist auch, dass die > Hallsensoren richtig angeschlossen sind, sonst verhaspelt sich der > Motor, weil er falsch angesteuert wird. Und man darf diese Muster nicht > mit starrem Timing erzeugen, sondern muss man Ende jeder Phase darauf > warten, dass die HALL-Sensoren anzeigen, dass das Ende der Pahse > erreicht wurde. Die Ausgangs Signale müssten Stimmen und die Low Phasen werden auch jeweils geschaltet. Wenn die U Phase an ist, dann sind die Low Phasen von V und W jenachdem wo der Hallsensor steht an.
Fabian L. schrieb: > Also mein uC generiert 6PWM Signale > High1, High2, High3 und Low1, Low2 und Low3! High1-High3 und Low1-Low3 > sind alle um 120° Phasenverschoben und überschneiden sich nicht. High1 > ist das inversum von Low1 und das selbe für 2 und 3! Man nimmt > üblicherweise eine Frequenz von 20kHz. Ich werde das Gefühl nicht los daß hier gerade zwei Dinge durcheinander laufen. Falk sagt es zwar schon aber ich würde es noch mal genauer betonen. Falk Brunner schrieb: > Um das zum Laufen zu bringen, musst du erstmal das GANZ LANGSAM > betreiben, sprich, vielleicht mit 1 Hz dieses Signalspiel erzeugen. Die > PWM bleibt natürlich bei 20kHz. Bedeutet: Die Phasenansteuerung kommutiert zu beginn langsam und steigert die Kommutierungsgeschwindigkeit. Das ist aber nicht mit PWM gemeint. Die PWM kommt noch hinzu. Wichtig sind hierbei folgende zwei Sachen. 1. Die Kommutierung muß synchron zur Rotorposition erfolgen, sonst beschleunigst und bremst Du im schnellen Wechsel wenn die Phasen nicht zur Rotorposition passen. Die Kommutierungsgeschwindigkeit ist also Proportional zur Drehzal. Sie ist aber nicht identisch mit der Drehzahl, sondern beträgt ein vielfaches der Drehzahl. Das Verhältnis wird durch den internen Aufbau des Motors bestimmt durch Phasen und Polzahl des Motors. Hier steckt das größte Know-How um das passend synchron zu schalten. Da gibt es mehrere Methoden. Da Du Hall-Sensoren hast, würde ich diese dafür benutzen. Es gibt noch andere Verfahren. 2. Die PWM regelt die Leistungszufuhr und hat erst einmal nichts mit der Kommutierung am Hut. Man kann sich diese PWM als Stufe in der Stromversorgung vorstellen. Man kann es auch so realisieren. Da aber in der Kommutierungseinheit schon passende Mosfets vorhanden sind benutzt man oftmals diese, indem man ein passendes PWM Signal in das Kommutierungssignal untermischt. Das wird aber etwas komplizierter. Da wirst Du noch einiges recherchieren müssen. Dabei werden dann die beiden leitenden Phasen so umgesteuert, daß während der Off-Zeit das leitende Spulenpaar in den Freilauf geschaltet wird. Das erreicht man, indem man während der Off-Zeit der PWM entweder immer die High-side sperrt oder immer low-side sperrt. Der "Freilaufstrom" der läuft dann an der gesperrten Seite über eine Diode oder Rückwärts durch den anderen Mosfet in die Zuleitung zurück. Man hat dann einen Hi-Hi-Kreis bzw. eine Low-Low-Kreis. Das entspricht in die Rotorposition dann einer normalen 2-Quadrantensteuerung. Da der Rotor sich aber dreht, wird es mir etwas komplizierter. Daher mein TIP: Laß für den Einstieg zuerst die PWM aus dem Spiel und regel die Leistung über die Versorgungsspannung. Wenn die Kommutierung klappt kannst Du noch immer die PWM hinzuprogrammieren. Die PWM frequwenz sollte dann aber entweder synchron zur Kommutierungsfrquenz sein oder deutlich höher.
Fabian L. schrieb: > Die Ausgangs Signale müssten Stimmen und die Low Phasen werden auch > jeweils geschaltet. Wenn die U Phase an ist, dann sind die Low Phasen > von V und W jenachdem wo der Hallsensor steht an. Das entspricht nicht Deiner ersten beschreibung. Fabian L. schrieb: > Also mein uC generiert 6PWM Signale > High1, High2,.... >sind alle um 120° Phasenverschoben und überschneiden sich nicht. High1 > ist das inversum von Low1 und das selbe für 2 und 3! Man nimmt > üblicherweise eine Frequenz von 20kHz. > PROBLEM: Wenn ich nun die Drei Phasen (U V W) anschließe, dreht sich > zwar der motor, aber nur sehr langsam, nur 2 Umdrehungen und vorallem > sehr laut! Es dreht sich auch nur dann, wenn ich die Frequenz auf 8kHz > runterstelle. Entweder es wird mit mit der PWM-Frequenz kommutiert (falsch, es sei den man synchronisiert die PWM ständig mit dem Rotor nach), oder die Hall-Sensoren bestimmen die Kommutierung. Zuerst schreibst du a und dann b. Irgendetwas stimm da nicht oder hat sich inzwischen geändert.
Fabian L. schrieb: > Die Ausgangs Signale müssten Stimmen und die Low Phasen werden auch > jeweils geschaltet. Wenn die U Phase an ist, dann sind die Low Phasen > von V und W jenachdem wo der Hallsensor steht an. Werden die High-Pasen auch ebenfalls passend zur Rotorposiion gesteuert? ;-)
> Man nimmt üblicherweise eine Frequenz von 20kHz. Für die um 120 Grad verschobenen Phasen ? Sicher nicht, so schnell dreht kein Motor. > Soweit so gut, nun komme ich zu meinem Problem: So lange du die Hallsensoren nicht beachtest, passiert da gar nichts. Was meinst du, wozu diese Dinger montiert wurden ? Weil sie überflüssig sind ? http://www.dse-faq.elektronik-kompendium.de/dse-faq.htm#F.10.1
@MaWin Das hast Du recht. Aber ich würde das zum besseren Verständnis gerne ein wenig relativieren. Da die Kommutierungsfrequenz ein vielfaches der Drehzahl beträgt, sind 20 KHz je nach internem Aufbau des Motors nicht mehr ganz so krass wie es sich auf den ersten Blick liest. Es stimmt zwar was Du sagst, aber umgekehrt sind die Kommutierungsgeschwindigkeiten bei vermeintlich niedrigen Drehzahlen bauartabhängig manchmal überraschend hoch. Das sollte man ebenfalls mal betonen, weil dies für Einsteiger nicht offensichtlich ist.
Mir dünkt, hier fehlt noch immer das Verständnis für die Funktion der PWM. Die Motorphasen werden in Blöcken angesteuert. Bei eingeschalteter Phase wird das Einschaltsignal (Block) mit der PWM überlagert und damit die Leistung reduziert. Der Kommutierungszeitpunkt wird hier durch die Hallsensoren festgelegt. Bei sensorlosen Konzepten durch die BEMF, der gemessenen Rückwirkung innerhalb der jeweils unbestromten Wicklung. Wenn Du mit der Thematik BLDC startest, solltest du vielleicht erst mal mit einem integrierten Motortreiber beginnen. Später kannst Du ja dessen Funktion mal in deinen µC mit integrieren. Ich kann dir die Treiber von Allegro empfehlen: A3930 für Hallsensor-Motore bzw. A4960 für Sensorlos. Dafür gibt es jeweils recht brauchbare Demoboards, die auch erst mal Stand-alone mit einem Rechteckgenerator und PC funktionieren.
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.