Hallo miteinander Also ich lese mich seit ein paar Tagen in die Ansteuerung der BLDC Motoren ein, da ich selber einen Regler bauen würde. Habe bis jetzt nur immer gekaufte verwendet. Für mein aktuelles Projekt, würde ich diese gerne selber entwickeln. Das ganze ist ja an und für sich auch nicht ein Ding der Unmöglichkeit, doch ich habe nach wie vor einige Fragezeichen. Als erstes bei der Ansteuerung der 3 Phasen. Mir ist klar, dass ich mittels PWM Wert über FET-Treiber und Halbbrücke so die Umdrehungszahl steuern kann. Je nach dem wie hoch das Duty Cycle ist, erhöhe ich die Drehzahl oder reduziere diese wegen der KV. In welchem Frequenzbereich muss dieses PWM sein? Wichtig ist ja einfach, dass die Spule dieses PWM "nicht sieht" (hohe Frequenz). Kann ich denn zum erhöhen der Drehzahl nicht auch die Zeit der 6 Zyklen wie auf dem Bild angezeigt verkleinern? Ich nehme an, dass dies das Drehmoment schwächt, würde jedoch auch gehen oder? Wie sieht denn der Frequenzbereich hier aus, also bis sich die 6 Zyklen wiederholen? Ich frage mich eben, wie ich denn den BLDC hochfahren kann. Ich muss ja dort einerseits eine Frequenz für die 6 Zyklen festlegen und hochfahren?! und andererseits das PWM mit der Duty-Cycle erhöhen oder? Geschieht das den gleichzeitig oder was verstehe ich hierbei nicht ganz? Bin euch dankbar wenn ihr mir weiterhelfen könnt :) Liebe Grüsse Claudio
Du hast da was verwechselt. Die Duty Cycle haben mit der Drehzahl nicht direkt etwas zu tun, die bestimmen in erster Linie das Drehmoment des Motors (mehr Strom -> mehr Kraft). Indirekt braucht es natürlich eine gewisse Kraft um höhere Drehzahlen fahren zu können, die Drehzahl bestimmen aber nicht das Tastverhältnis deiner PWMs. Die Drehzahl wird durch die Frequenz deines Drehfeldes (die Wiederholung der 6 Zyklen) bestimmt, da es sich bei einem BLDC um einen Synchron-Motor handelt, dass heißt er dreht sich gleichschnell wie das eMagnetfeld (außer die Kraft reicht nicht, dann dreht er gar nicht)
Claudio Gall schrieb: > In welchem Frequenzbereich > muss dieses PWM sein? Die Frequenz sollte schon mehrere kHz haben. Wegen dem Geräusch würde ich empfehlen auf 20kHz zu gehen, da das in der Regel nicht mehr hörbar ist. Claudio Gall schrieb: > Kann ich denn zum erhöhen der Drehzahl > nicht auch die Zeit der 6 Zyklen wie auf dem Bild angezeigt verkleinern? > Ich nehme an, dass dies das Drehmoment schwächt, würde jedoch auch > gehen oder? Nach dem Bild in deinem Anhang nehme ich an, dass du den Artikel zu BLDC hier auf der Seite gelesen hast. diese Ansteuerung verändert lediglich den Duty Cycle der PWM. Dadurch dreht sich der Motor langsamer. Eine Verkürzung bzw Verlängerung der Periode (der 6 Zyklen) tritt automatisch durch die erkennung mittels BEMF (heißt das so?!?) ein. Das hat den vorteil, dass du nur über den duy Cycle die Geschwindigkeit vorgibst, und die ansteuerung der Spulen immer zur LAge des Motors passt. Eine aufgezwungene Frequenz kann zu erheblichem Drehmomentsverlust und zu unrundem Lauf führen.
Claudio Gall schrieb: > Ich frage mich eben, wie ich denn den BLDC hochfahren kann. Ich muss ja > dort einerseits eine Frequenz für die 6 Zyklen festlegen und > hochfahren?! und andererseits das PWM mit der Duty-Cycle erhöhen oder? > Geschieht das den gleichzeitig oder was verstehe ich hierbei nicht ganz? Schau dir das mal an(falls noch nicht geschehen) http://www.mikrocontroller.net/articles/Brushless-Controller_f%C3%BCr_Modellbaumotoren Hier wird erklärt, wie die Ansteuerung funktioniert. Zum Anlaufen des Motors kann man ihm eine feste Drehfrequenz aufzwingen, bis er sich dreht. Nicht die optimale, aber eine einfache Lösung. Sobald sich der Motor dreht, wird die weiterschaltung der Zyklen durch die Rückkopplung mittels Analogkomparator gemacht.
M. H. schrieb: > Nach dem Bild in deinem Anhang nehme ich an, dass du den Artikel zu BLDC > hier auf der Seite gelesen hast. > > diese Ansteuerung verändert lediglich den Duty Cycle der PWM. Dadurch > dreht sich der Motor langsamer. Eine Verkürzung bzw Verlängerung der > Periode (der 6 Zyklen) tritt automatisch durch die erkennung mittels > BEMF (heißt das so?!?) ein. Das hat den vorteil, dass du nur über den > duy Cycle die Geschwindigkeit vorgibst, und die ansteuerung der Spulen > immer zur LAge des Motors passt. Eine aufgezwungene Frequenz kann zu > erheblichem Drehmomentsverlust und zu unrundem Lauf führen. ja genau das bild ist von dieser Seite Okey ich verstehe. Ich habe auch gelesen dass das Anfahren mit einer aufgezwungener Frequenz gemacht werden kann, was nicht wirklich schön ist aber funktioniert. Am Anfang ist das anfahren sowieso noch egal, da kann ich mit einer kleine Drehbewegung meinerseits das Ding starten. Aber wenn ich jetzt die Drehzahl runterfahren möchte, muss ich jetzt einfach an dem duty cycle der 20khz schrauben. Jetzt ich würde gerne das ganze mit einem IR2104 oder ähnlichem lösen. Im Text habe ich nicht ganz verstanden was er meint mit Eingängen zusammenhängen, er schreibt: Der Widerstand R20 ist dazu da, dass auf dem Treiber das PWM-Signal liegt, sobald die Leitung „IN_A“ in der Luft hängt (uC Pin als Eingang definiert). So wird nur ein einziger PWM-Ausgang vom Mikrocontroller benötigt für alle drei Phasen, erfordert also kein Soft-PWM oder sonst irgend ein Murks. Diese Schaltung habe ich übrigens beim Mikrokopter-Projekt abgeschaut. Ich habe schon das Datenblatt angeschaut, aber wie steuere ich denn das ganze jetzt mit diesem IR2104. Wie verändert sich denn der Ausgang des IR2104 wenn ich das PWM ändere? Denn laut Datenblatt bleibt das 50/50 ?!
Claudio Gall schrieb: > Aber wenn ich jetzt die Drehzahl runterfahren möchte, muss ich jetzt > einfach an dem duty cycle der 20khz schrauben. nein, diese kann fest bleiben. Wenn du eine kleiner Drehzahl brauchst dann musst du die erzeugte Frequenz senken aber nicht die PWM für die Spulen.
Peter II schrieb: >> Aber wenn ich jetzt die Drehzahl runterfahren möchte, muss ich jetzt >> einfach an dem duty cycle der 20khz schrauben. > > nein, diese kann fest bleiben. Wenn du eine kleiner Drehzahl brauchst > dann musst du die erzeugte Frequenz senken aber nicht die PWM für die > Spulen. Doch! Man senkt den Duty Cycle! Dadurch wird der Motor langsamer. Die Drehfrequenz der Spulen passt sich der Drehung dank Rückkopplung an. Und die 20kHz bleiben 20kHz... Claudio Gall schrieb: > Der Widerstand R20 ist dazu da, dass auf dem Treiber das PWM-Signal > liegt, sobald die Leitung „IN_A“ in der Luft hängt (uC Pin als Eingang > definiert). So wird nur ein einziger PWM-Ausgang vom Mikrocontroller > benötigt für alle drei Phasen, erfordert also kein Soft-PWM oder sonst > irgend ein Murks. Diese Schaltung habe ich übrigens beim > Mikrokopter-Projekt abgeschaut. Ach das :) Das funktioniert so: Es wird nur eine PWM benötigt, die auch immer nur an einer Spule hängt. Dazu wird sie über Widerstände an die treiber angeschlossen. Bei dem treiber, bei dem die PWM ankommen soll, schaltet man den Mikrocontroller-Pin auf Eingang => hochohmig => PWM liegt an Treiber Bei den treibern, die keine PWM bekommen sollen, schaltet man den Mikrocontroller-Pin auf 0. somit liegt am Treiber keine PWM an. Hoffe so ist es klar
M. H. schrieb: > Doch! Man senkt den Duty Cycle! Dadurch wird der Motor langsamer. Die > Drehfrequenz der Spulen passt sich der Drehung dank Rückkopplung an. Und > die 20kHz bleiben 20kHz... Ah okey alles klar. Da sich die Geschwindigkeit durch das herabsetzten des Duty Cycle verringt, verringert sich auch die Frequenz des Drehfeldes. Sehr gut. M. H. schrieb: > Ach das :) > Das funktioniert so: > Es wird nur eine PWM benötigt, die auch immer nur an einer Spule hängt. > Dazu wird sie über Widerstände an die treiber angeschlossen. Bei dem > treiber, bei dem die PWM ankommen soll, schaltet man den > Mikrocontroller-Pin auf Eingang => hochohmig => PWM liegt an Treiber > > Bei den treibern, die keine PWM bekommen sollen, schaltet man den > Mikrocontroller-Pin auf 0. somit liegt am Treiber keine PWM an. Okey wenn ich das richtig verstehe, ist das einzige was ich mache nur die Pins die ganze Zeit umkonfigurieren soweit so gut oder? Also der Pin der umkonfiguriert wird ist der IN_A laut dem Bild des Artikels oder? Das heisst über den 1k fliesst dann so um die 5V im 20khz takt über den uc nach gnd ab. Ich glaub jetzt hab ichs langsam. Das einzige was nicht aufgeht. Wenn ein PWM für alle halbbrücken aussreicht und ich einfach den Pin umkonfiguriere, habe ich doch nie eine 120° Verschiebung? den intern taktet der doch einfach weiter und wenn es nach kommutierung stimmt schalte ich den pin aber dann ist ja das pwm signal "parallel" weitergeführt oder was sehe ich da falsch? Vielen Dank für eure tollen Antworten :)
Claudio Gall schrieb: > Das einzige was nicht aufgeht. Wenn ein PWM für alle halbbrücken > aussreicht und ich einfach den Pin umkonfiguriere, habe ich doch nie > eine 120° Verschiebung? den intern taktet der doch einfach weiter und > wenn es nach kommutierung stimmt schalte ich den pin aber dann ist ja > das pwm signal "parallel" weitergeführt oder was sehe ich da falsch? Hier möchte ich dich auf dein gepostetes Bild verweisen. Die PWM ist das, was da in den An-Phasen immer hoch und runter geht. Die Phase des PWM Signals ist egal. Die PWM muss nur immer im Kreis an die Spulen angelegt werden.
M. H. schrieb: > Hier möchte ich dich auf dein gepostetes Bild verweisen. Die PWM ist > das, was da in den An-Phasen immer hoch und runter geht. Die Phase des > PWM Signals ist egal. Die PWM muss nur immer im Kreis an die Spulen > angelegt werden. Die Phase des PWM Signals ist aber nur deswegen egal, da die PWM Frequenz viel größer als die Kreisfrequenz ist. Wenn dein Motor ungefähr 1000kV hat, hast du bei 12V 12000U/min, was 200U/min entspricht. Das entspricht einer Periode von 5ms. Bei der Einschaltdauer von 1/3 (120°/360°) hast du noch 1,66ms pro Phase. Wenn du jetzt eine PWM Frequenz in der Nähe von den 1/1,66ms=600Hz sagen wir Testweise 1kHz (50%DC) nimmst, bekommt eine Phase nur ca. 1/3 Einschaltdauer, nie nächste Phase bekommt 2/3. Somit würde dein Motor unrund laufen. Wenn du die PWM Frequenz allerdings >> der "Motorfrequenz" nimmst hast du keine Probleme da der Fehler, die Differenz der Einschaltdauer, gegen 0 geht. 1 2 3 1 2 Zeitbereich /-\______/-\___ Ph1 ___/-\______/-\ Ph2 ______/-\______ Ph3 _-_-_-_-_-_-_-_- PWM Voller Umlauf: 9 Ascii Div :) Einschaltdauer pro Phase 3 Div, PWM Periodendauer 2 Div, müsste den Beispiel im Text entsprechen, Fpwm=1,33*Fmot Reale Einschaltdauer Zeitbereich 1: 1/3 Reale Einschaltdauer Zeitbereich 2: 2/3 Reale Einschaltdauer Zeitbereich 3: 1/3 Das Bild ist kein Kunstwerk, aber doch ganz aussagekräftig :)
Ah okey alles klar, das heisst meine Überlegung war eigentlich richtig, aufgrund des Aufwandes und des Fehlers der nahezu gegen 0 geht, schaut man einfach weg, da das Verhältnis von Aufwand und Nutzen in keiner Relation stehen. Vielen Dank an alle, jetzt habe ich es Verstanden. :)
Peter II schrieb: > Claudio Gall schrieb: > Aber wenn ich jetzt die Drehzahl runterfahren möchte, muss ich jetzt > einfach an dem duty cycle der 20khz schrauben. > > nein, diese kann fest bleiben. Wenn du eine kleiner Drehzahl brauchst > dann musst du die erzeugte Frequenz senken aber nicht die PWM für die > Spulen. Das ist Unsinn. http://www.dse-faq.elektronik-kompendium.de/dse-faq.htm#F.10.1
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.