mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik BLDC Funktionsprinzip BEMF, etc!?


Autor: hannes L. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich hab mal nen paar grundlegende Fragen zum o.g. Thema.

Ich bin an eine HF-Spindel gekommen, und will die jetzt zum Drehen
bringen. Ein Controller war leider nicht dabei.

Jetzt hab ich mal fleißig Appnotes etc. gewälzt, werd aber dennoch net
so richtig schlau aus der Sache:

1.) Der Motor macht max.50000 upm, er hat ein Polpaar und ist für 36V
konzipiert. Der Wicklungswiderstand beträgt (DC) genau 1 Ohm. Die
Wicklung verträgt anscheinend 7A Dauer.
Nach Adam Riese ergibt sich ja dann eine max Spannung von 7V!

Sehe ich es richtig, dass eine so hohe Spannung verwendet wird, um das
magnetische Feld möglichst schnell aufzubauen? Diese Vorgehensweise ist
mir von Schrittmotor-Steuerungen bereits bekannt.

2.) Ich vermisse in bestehenden Schaltungen überall den
Sense-Widerstand, mit dem man via Chopper den max. Strom begrenzen
kann. Wie wird hier verfahren?

3.) Die Kommutierung: Ich kann, soweit ich das verstanden habe, aus der
BEMF herleiten, wann die nächste Umpolung von statten gehen muss. Sie
weist mir quasi den nächsten Schritt an, ja?

Wie kommt da jetzt die Drehzahlreglung ins Spiel? Einfach entsprechend
nach BEMF-Signal verzögert bestromen? Sonst läuft der Motor ja
irgendwann unendlich schnell (theor.)!?

4.) Was tut die PWM geschichte? Ich hab in einer App von ST einige BEMF
Messmethoden studiert, die eigentlich alle auch einleuchten, aber
nirgendwo steht, was die PWM genau tut, vielmehr, ob sie variabel ist
oder über alle Drehzahlen konstant und was sie direkt beeinflusst.

Vielleicht kann mir jemand helfen, ich wäre äusserst dankbar.

Gruß
Hannes

PS: die Seiten wie BLDC.DE oder die FLEA-Seite hab ich auch schon
durchgekaut

Autor: Profi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gibt einen entscheidenden Unterschied:
Deine Spindel dürfte ein Asynchronmotor sein, ein BLDC ist ein
Synchronmotor.
Du brauchst einen Drehstrom-Frequenzumformer (FU) mit
50000/3000*50=833,33 Hz Ausgangsfrequenz.

Da die Spannung in etwa proportional zur Frequenz ist, glaube ich, dass
der Motor mehr als 36V braucht (wenn er 1 Ohm Gleichstromwiderstand
hat).
Ich habe hier einen Umrichter (TFR600), der kann 400 Hz bei 3x230V
erzeugen.
Hier im Forum wurde schon öfters über dieses Thema diskutiert.
Tippe mal auf
http://www.mikrocontroller.net/forum/list-1-1.html
rechts oben im Feld "Im Betreff suchen:"
drehstrom*
hochfrequenzspindel*
spindel*
frequenzumrichter*
drehstromsteller*
ein, dann wirst Du geholfen.

Bei eb.. gibt es auch öfters Schnäppchen...
Von der Pike auf selbst bauen dürfte etwas schwierig sein.
Oszi und Strommesszange sind das Minimum, was die Ausrüstung angeht.
Und eine Stange FETs / IGBTs.
Auf jeden Fall eine interessante Geschichte. Berichte uns weiter...
Viel Erfolg!

Autor: hannes L. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was spricht eigentlich dagegen, wenn ich ohne BEMF arbeite und einfach
Zwangskommutiere?

Wenn das eine asynchronmaschine ist, ist doch die Drehzahl vom Rotor eh
anders als die Felddrehzahl. dann könnte ich ja eh keine BEMF messen
oder?

Kann man von Aussen feststellen, ob es Synchr./Asynchr. ist und ob die
Windungen Stern oder Dreieck haben?

Gruß

Autor: Profi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eine Synchronmaschine sollte Dauermagneten haben und deshalb als
Generator wirken, wenn Du sie antreibst.
Eine Asynchronmaschine wird nur zum Generator, wenn sie vorher schon
erregt ist.

Stern/Dreick ist schon schwieriger: Wenn Du ein L-Meter
(Induktivitätsmessgerät) hast, könnte es sein, dass sich das L ändert,
wenn man 2 Anschlüsse kurzschließt. Ist nur eine wage Vermutung. Die
Messung könnte auch mit einem Wechselstrommessgerät und einer
Wechselstromquelle (Netztrafo) gehen.

Autor: hannes L. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich habs mir mit R schon gedacht, habs nachgerechnet und es lässt sich
nicht feststellen. mit L müsste es dann ja eigentlich auch so sein, da
die parallelschaltung ja gleich funktioniert.

Also es wirkt def. als Generator, schon langsame Drehungen von Hand
geben 300mVpp.

Also ist es ein Synchrongerät!? Dann kann ich es mit einem BLDC
Controller steuern?

Autor: Profi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für den Wink mit dem Zaunpfahl:
http://www.mikrocontroller.net/forum/read-1-374170...

Ich habe Dir in diesem Thread geantwortet, doch bevor ich die Antwort
absendete, fuhr ich den Rechner runter.... grummel!

Prüfe mal mit einer kleinen Lampe oder LED, ob der Motor nicht nur
Spannung, sondern wirklich Strom liefert, so wie ein Schrittmotor.
Wenn ja, ist es ein Synchronmotor und sollte mit einem BLDC-Treiber
laufen.

An Deiner Stelle würde ich es einfach ausprobieren: gehe zu
Modellbaufritzen (Verein...) und bitte sie, den Motor mal kurz an einen
BLDC-Treiber anzuschließen.
Oder kaufe Dir einen billigen (ca.20-30 Euro) bei ibäh.

Wenn Du drei ähnliche Trafos (z.B. Halogen) hast, kannst Du den
NetzDrehstrom runtertransformieren (primär Sternschaltung, sekundär
Stern- oder Dreick) und Deinen Motor damit speisen.
Beim Synchronmotor musst Du evtl. mit der Hand / Schnurzug anwerfen.
Dann sollte er mit 3000 rpm drehen.
Wenn er vom Stand heraus in eine Richtung zieht und von alleine
losläuft, vermute ich eher einen Asynchronmotor.

Ich hätte hier noch einen TFR-600 TFR600 Drehstromrichter, der geht in
beide Richtungen bis 400Hz. Damit könnte man auch testen.
Könnte ich Dir leihen. Gibts bei ibäh auch oft erstaunlich günstig
(Hersteller SEW, Sie..ns, ...).

Autor: Norbert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

Bei einem Brushless-DC Motor ist es latte ob das Stern oder Dreieck
ist. Nach aussen hin verhält sich das gleich wenn die Wicklungen in
entsprechendem Verhältnis sind.

Deine Berechnung mit den 7V ist natürlich Humbug, das ist ja im
blockierten Zustand. Ich tippe eher daß er so für 24-36V ausgelegt
ist.

Das mit der BEMF ist einfach erklärt: Eine elektrische Umdrehung (bei
einem Polpaar = eine mechanische) besteht aus 6 States. Bei einem State
ist eine Phase Plus, eine Minus und eine offen. Während des States läuft
die offene Phase linear von Plus nach Minus oder eben umgekehrt, je nach
State. Nun mittelst Du die drei Phasen und wenn die freie Phase diese
Mitte kreuzt, ist die Mitte des States erreicht und Du weisst, wann Du
wieder umschalten musst.
Dazu misst Du natürlich nicht ständig die Spannung der Phasen sondern
mittelst sie mit einem Spannungsteiler. Dann 3 Comparatoren und je ein
Eingang kommt an diese Mitte. Dann jede Phase an den anderen Eingang
der Comps und Du hast 3 schöne Signale für das Ereignis der BEMF.
Um das mit der PWM unter einen Hut zu kriegen, musst Du die Signale der
Phasen noch vorher glätten.
Dazu beobachtest Du das in einem Zeitfenster in der Mitte des States.
Davor und danach kannst Du andere Sachen machen. Wenn das Ereignis zu
oft vor dem Fenster oder danach passiert, dann ist der Motor aus dem
Tritt und Du schaltest besser ab.
Dabei ergibt sich dann eine fast lineare Drehzahl zur Spannung.
Viel weniger abhängig von der Last als beim Bürstenmotor.

Bzgl. PWM ist es aber wieder wie beim Bürstenmotor. 50% PWM sieht für
den Motor aus wie halbe Spannung. Dazu schaltest Du den jeweils unteren
Mosfet aus. Bei dieser Leistung ist auch wichtig, daß Du dann den oberen
Mosfet einschaltest. Der Strom fliesst weiter und wenn das über die
Diode im oberen Fet passiert, verballert das ordentlich
Verlustleistung.
Ich habe das so gelöst, daß ich 6 Ausgänge vom AVR für die 6 Teile der
3-Fach-H-Brücke habe und die mit ein paar Gattern mit einem PWM-Ausgang
verknüpfe. Das geht natürlich auch in einer PWM-ISR aber Du wirst sehen,
die Zeit ist knapp.
So habe ich nur die Ausgänge zu schalten und die PWM läuft ohne jeden
Interrupt nach dem Motto "set it and forget it" im Hintergrund.

Das schwierigste bei so einem Ding ist der Start.
Eine Einfache und recht gut funktionierende Methode ist, wie ein
Schrittmotor mit einer sehr langsamen und langsam steigenden Drehzahl
zu starten. Dann hofft man, daß der Motor irgendwann mitkommt und fängt
bei einer bestimmten Drehzahl mit der BEMF-Erkennung an.
Am Anfang musst Du auch mit der PWM vorsichtig anfangen (so 5-20%) und
mit einem Shunt den maximalen Strom begrenzen, also den Anstieg der PWM
zähmen wenn der Strom zu hoch wird.
Der Strom ist aber der Primärstrom, der Motorstrom ist der PWM
entsprechend höher. PWM-Endstufe und Motorspulen verhalten sich wie ein
DC-DC-Wandler, nur daß Du die Sekundärseite nicht siehst.

Das wird aber alles eine heikle Sache. Bei 50000RPM ist ein State
gerade mal 200µs lang. Dazu muss die PWM erheblich schneller sein,
mindestens eine Größenordnung sonst geht das mit der BEMF wie oben
beschrieben nicht.

Wenn Du unbedingt basteln willst und einigermassen Erfahrung mit µC und
solchen Leistungsendstufen hast, dann viel Spaß. Mit Code oder
Schaltplänen kann ich nicht dienen, Betriebsgeheimnis. Aber helfen
werde ich ansonsten gerne. Aber alleine schon die Endstufe mit > 50kHz
ist nicht ohne. Ohne gutes Speicher-Oszi brauchst Du gar nicht
anfangen.

Wenn es nur darum geht, den Motor zum Laufen zu bringen: Den Daten nach
müsste er mit einem Brushlessregler aus dem Modellbau laufen.

Gruß,
Norbert

Autor: Hannes L. (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

danke Norbert, so langsam check ich da mal nen bissle durch.

Du schreibst, dass beim Kippen der EMK die Mitte des States erreicht
ist.

verstehe ich die Grafik auf BLDC.DE falsch oder nicht? Da scheint das
alles um einen halben Slot verschoben zu sein.
Ich habs mal so und so gezeichnet.

Hab ich das mit der PWM richtig gezeichnet? Was tut die PWM denn jetzt
eigentlich genau? D.h. welche Größe wird durch sie direkt beeinflusst?

Kann man eigentlich nicht einfach mit nem EPROM und drei DACs drei
Sinusse (Sinii!?) erzeugen und die mit nem Integrierten Audio-Amp auf
die Phasen geben? Dann wäre die Sache mit der Drehzahl doch ganz
einfach... wahrschewinlich aber nicht...

Gruß

Autor: Norbert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

Du hast mich richtig verstanden und das Bild von BLDC ist falsch.
Guckst Du: http://www.aerodesign.de/peter/2001/LRK350/SPEEDY-BL.html

Die PWM ist richtig gezeichnet. Allerdings muß gleichzeitig der Hi-Fet
eingeschaltet werden, wenn der untere ausgeschaltet wird.

Die PWM funktionier genau wie bei einem Bürstenmotor oder ein
DC-DC-Steller davor. Bei 50% PWM läuft der Motor mit halber Drehzahl
bzw eine Softstart per PWM begrenzt den Anlaufstrom (der gerade bei
BL-DC gewaltig grösser sein kann).

Deine Idee mit dem Sinus und so ist leider Unsinn. Dann würdest Du den
Motor wie einen Stepper betreiben und kommst nicht mal in die Nähe der
eigentlichen Leistung. Also elektrisch schon aber nicht mechanisch ;-)

Gruß,
Norbert

Autor: hannes L. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
sorry war weg...

Ich glaube, ich bin etwas weiter gekommen, was das Verständnis
angeht...


Sehe ich es richtig, dass die PWM eigentlich nur dazu dient, die
Stromaufnahme in Grenzen zu halten?

Stimmt es, dass die Drehzahl nur über das Timing bestimmt wird?
Ich habe die Sache jetzt so verstanden, dass, da ja die Kommutierung
aus sechs Zyklen besteht und die jeweilige BEMF immer im Mittelpunkt
des Floatings durch null geht, ich die Drehzahl mit dem Zeitparameter
"Bemf kipp + (solldrehfrequenz/12)" bis zur nächsten
Kommutierungsstufe vorgebe?
Klar, dass diese Zeit einer Beschleunigungsrampe folgen muss.

Ich hab jetzt mal ne Schaltung im Eagle zusammengebastelt, aber noch
nicht geätzt.
Von daher wäre ich mal wieder für ein paar Tips dankbar.


Eine weitere wichtige Frage tut sich mir auf, wenn ich eine AppNote von
ST lese. Die sagen, dass es prinzipiell mehrere Möglichkeiten gibt, die
BEMF zu sampeln. Soweit ist das Dokument auch schlüssig, aber ich
verstehe nicht, warum bei "BEMF sampling while PWM off" ein Filter
nötig ist!? Die Bestromung ist doch zu diesem Zeitpunkt "aus" wieso
dann filtern? Die PWM frequenz ist dann doch gar nicht aktiv?!


Gruß

Autor: Wolfgang (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
"Stimmt es, dass die Drehzahl nur über das Timing bestimmt wird?
"
nein - die Drehzahl wird über den duty cycle der PWM bestimmt. Prinzip:
kurz an, lange aus: wenig Leistung, lange an, kurz aus: mehr Leistung.

Ein Motorindividuelles Timing wird benötigt, weil es starke
Unterschiede der Motorinduktivitäten und Widerstände gibt. Ein Motor
mit hoher Induktivität hat einen langsameren Stromanstieg, als einer
mit einer geringeren.

Hätte ganz "uneigennützig" unter www.ibweinmann.de was dazu
anzubieten ...

Gruß

Wolfgang

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Sehe ich es richtig, dass die PWM eigentlich nur dazu dient, die
> Stromaufnahme in Grenzen zu halten?

Nein. Sie dient dazu, die Leistung des Motors einzustellen.

> Stimmt es, dass die Drehzahl nur über das Timing bestimmt wird?

Im Prinzip ja. Schießlich handelt es sich um einen Synchronmotor, d.h.
die Drehzahll ist immer synchron zum elektrischen Signal. Aber beim
BLCD-Motor regelt man die Kommutierungszeiten automatisch nach, so daß
sich die Drehzahl des Motors abhängig von der Leistung (per PWM
eingestellt) und der Last ergibt, so wie das auch bei einem
Gleichstrommotor der Fall wäre.

> Ich habe die Sache jetzt so verstanden, dass, da ja die
> Kommutierung aus sechs Zyklen besteht und die jeweilige BEMF immer
> im Mittelpunkt des Floatings durch null geht, ich die Drehzahl mit
> dem Zeitparameter "Bemf kipp + (solldrehfrequenz/12)" bis zur
 nächsten Kommutierungsstufe vorgebe?

Im Prinzip funktioniert es beim sensorlosen BLDC-Motor so: Man wartet
bis zum Nulldurchgang und merkt sich dabei die Zeit, die es dauert.
Dann wartet man nochmal genauso lange und kommutiert dann.
Eine Regelung auf eine bestimme Drehzahl macht man dann so, daß man die
PWM so versellt, daß sich die Drehzahl von selbst auf den gewünschten
Wert einstellt.
Ein Problem ist der Start, denn bei sehr niedrigen Drehzahlen ist die
Spannung an der freien Spule sehr gering, die PWM an den anderen Spulen
stört und im Bereich um den Nulldurchgang ist die Spannung natürlich
sowieso schon relativ niedrig. Deshalb fährt man den Motor meist mit
einer fest vorgegebenen Kommutierung soweit hoch, daß die
Nullpunkterkennung zuverlässig funktioniert.


Es gibt auch noch ein paar Appnots von Atmel zu dem Thema:

http://www.atmel.com/dyn/resources/prod_documents/...
http://www.atmel.com/dyn/resources/prod_documents/...

> Klar, dass diese Zeit einer Beschleunigungsrampe folgen muss.

Was meinst du damit?

Autor: hannes L. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aha,
vielen Dank für die zwei Links, besonders den zweiten. Jetzt wird mir
das (mal wieder) etwas klarer hier.

Also nur über PWM die ganze Sache regeln...

Die Frage ist halt, mit welchen Spannungen man am besten anfängt...
dies gilt es wohl experimentell zu ermitteln.

Danke &
Gruß

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.