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
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!
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ß
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.
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?
Danke für den Wink mit dem Zaunpfahl: http://www.mikrocontroller.net/forum/read-1-374170.html#375348 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, ...).
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
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ß
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
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ß
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
> 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/doc2596.pdf http://www.atmel.com/dyn/resources/prod_documents/doc8012.pdf > Klar, dass diese Zeit einer Beschleunigungsrampe folgen muss. Was meinst du damit?
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ß
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.