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