Hallo, Bin zur Zeit dabei einen Brushless Motor anzusteuern. Zur Zeit läuft der Motor auf einem starren Feld. Das wollte ich machen um mir die BEMF anzuschauen. Mir ist allerdings dabei aufgefallen, dass diese genau entgegengesetzt zu der BEMF, wie sie zum Beispiel auf der Seite eingezeichnet ist: http://www.aerodesign.de/peter/2001/LRK350/Warum_dreht_er_so.html Ich kann mir da gerade keinen Reim drauf machen, woran das liegen sollte. Ist die Glocke nicht synchron zum Feld, sondern 'rutscht' weil sie nicht mitkommt? Welchen Grund kann das haben? Über eine Mittelpunktrekonstruktion per Spannungsteiler mit kleinem Tiefpass vergleiche ich die BEMF mit dem Mittelpunkt. Mir ist hierbei aufgefallen, dass da auch etwas nicht stimmen kann, da die BEMF sich nie mit dem Mittelpunkt kreuzt. Aber eins nach dem anderen :-)
Es könnte sein, dass der Motor noch nicht schnell genug läuft, um eine saubere BEMF zu liefern. Was ist es denn für ein Motor und wie schnell ist das Feld in deinem Versuch? Peter
Hallo Peter, Danke erst mal für deine Antwort :-) Der Motor ist ein Außenläufer. 12 Bewickelte Zähne am Stator und 7 Polpaare an der Glocke. Das Dingen liegt irgendwo bei 900 U/min/V Das Feld müsste mit etwa 8000min^-1 drehen. also etwa 133Hz, bzw. 7,5ms pro Umdrehung oder 1,25ms pro Kommutierung. Die BEMF ist absolut gesehen relativ niedrig. Nach dem Spannungsteiler nur ein paar 100mV. Sollte aber reichen. Der Motor lief auch schon mal schneller mit starrem Drehfeld. Da sah die BEMF aber auch so "invertiert" aus. Soweit ich weiß soll die BEMF Spannung aber idealerweise keine großen Sprünge machen, sondern quasi die Lücke zwischen den beiden umgebenden "States" füllen (als fallende oder steigende Rampe/Halbsinuskurve). Allerdings, Wenn da etwas an der Kommutierungssequenz nicht stimmen sollte, dann dürfte der Motor sich ja gar nicht drehen, sondern nur zucken. Bin gerade irgendwie ratlos.
So, habe jetzt auch noch mal einen anderen Motor ausprobiert. Außerdem den Tiefpass noch etwas verändert, das Problem besteht aber weiterhin. Ich habe das Gefühl, dass das Back-EMF Signal irgendwie nach VCC ge-pull-upt wird. Also auf dem Oszilloskop genau VCC minus U_BEMF zu sehen ist. Kann es sein, dass es Probleme gibt, wenn man einen sensorlosen Brushless Motor mit einer Endstufe ansteuert, die einen Bootstrap Kondensator verwendet? Ich meine Nein, weil, wenn die U_BEMF auftaucht, der Bootstrap-Kondensator sehr wahrscheinlich sehr gut geladen ist und somit einfach nur das untere Potential dieses Kondensators durch die U_BEMF angehoben wird. Da auf der anderen Seite des Kondensators aber eine Diode liegt, wird hier kein Strom fließen. Aber vielleicht irre ich mich ja. Einen Softwarefehler vermute ich nicht. Ich habe mit dem Oszilloskop auch noch mal die Ansteuerung der Treiberbrücke nachgeschaut. Der ShutDown-Pin (low active) geht immer nur dann auf Low (HI-Z an der Phase), wenn die BEMF gelesen werden soll. Die FETs sind auch wirklich HI-Z das habe ich schon mit einer externen Spannungsquelle (Stromquelle) getestet. Komisch komisch.
Hallo, ich hab mir damals eine Trigger in der SW erstellt der mir genau die Mitte der Perioden gezeigt hat! Danach habe ich mit der Motorspannung solange gedreht bis der Übergang sauber in der mitte war. So konnte ich mich wenigstens ein wenig orientieren! Wo misst Du denn das Signal? Zudem bin ich mir nicht sicher ob die Kondensatoren C26-C28 hier richtig sind! Die werden hier nicht viel filtern können. Besser wären diese hinter den Widerständen. Zudem werden die auch nicht benötigt, die verzögern Dir nur das Signal. Wenn Du nun ein anderes Timing einstellen willst wird es so schwer.
Hallo Jürgen, Jürgen H. wrote: > Wo misst Du denn das Signal? Direkt an der (einer) Phase. > Zudem bin ich mir nicht sicher ob die Kondensatoren C26-C28 hier richtig > sind! Die werden hier nicht viel filtern können. Der Schaltungsteil ist von dem BrushlessCtrl abgekupfert von http://www.mikrokopter.de. In den AppNotes von Atmel ist es aber auch so. Die sind da schon ganz gut. Zusammen mit R2, R7, R13 bilden diese einen Tiefpass. > Besser wären diese > hinter den Widerständen. Zudem werden die auch nicht benötigt, die > verzögern Dir nur das Signal. Wenn Du nun ein anderes Timing einstellen > willst wird es so schwer. Ja, ich weiß. Wenn sich die Verzögerung aber in Grenzen hält, ist das in Ordnung und lässt sich ja auch per Konstante im Programm wieder beim Berechnen des Kommutierungszeitpunktes subtrahieren. Ohne geht es aber eigentlich nicht, möchte ich behaupten. Dann würde ja die ganze Zeit der Analog-Komparator triggern, der die Mittelspannung mit der Phase vergleicht (wegen dem PWM Noise).
Habe noch mal etwas herumprobiert und meine Vermutung geht im Moment in die Richtung, dass die 1N4006 viel (Dass sie zu langsam sind, weiß ich ja.) zu langsam sind für die Zwecke und deswegen der Kondensator (außer nach der großen GND-Pause an den Phasen) so gut wie leer ist. (Deswegen sieht man auch nach der GND-Pause ganz schwach eine kleine, "echte" Back-EMF Spannung auf dem Oszillogramm). Ich werde die Dioden erst mal durch BAS32L ersetzen, sobald ich an welche drankomme. Bis dahin schon mal Danke an euch beiden :-)
Okay, Mit MBR0540 sieht es auch nicht viel glücklicher aus. Siehe Anhang. Irgendwas stimmt da noch nicht. Ich tippe auf Softwarefehler, was anderes kommt gar nicht mehr in Frage. Die Endstufe besteht jetzt nur noch aus den drei Transistoren samt Treiber (mit Dioden und Kondensatoren). Auf dem Bild ist unten die Spannung direkt an einer Phase zu sehen, oben der Gesamtstrom an einem Stück Leiterbahn gemessen. Irgendwo steckt da noch der Teufel. Auch komisch ist der kleine StromPeak, der nur jede zweite Kommutierung kommt. Die Wellenform der BEMF zwischen den PWM und GND Phasen sieht jetzt auch mehr als merkwürdig aus. Hat jemand einen Tipp, was ich mal ausprobieren könnte? Bin gerade etwas ratlos, wo ich anfangen soll zu suchen.
Noch was zum gucken: Unten Phase A, oben Phase B. Mehr Kanäle gibt mein Oszi nicht her. Dabei habe ich den Motor abgeklemmt und die Phasen jeweils mit einem Widerstand gegen eine externe Spannung von 7 Volt (ca. VCC/2) geklemmt. Ich habe quasi über drei Widerstände die ohmschen Anteile des Motors simuliert und die Sternpunktspannung extern vorgegeben. Interessant: Die Ansteuerung ist 1A supergut. Man erkennt genau die Folge 2 Slots PWM, 1 Slot Hi-Z (es ist nur VCC/2 zu messen) und 2 Slots GND gefolgt von einem Slot Hi-Z. Gutgut. Meine Vermutung des Fehlers liegt gerade bei: Wer viel misst, misst Mist! Weshalb ich mal denke, dass mein vorletztes Oszillogramm Mist gemessen ist. Ich werde den Trigger mal extern machen und im Programm nach jeder Umdrehung einen Pin Togglen.
Bin mal wieder ein wenig zum Herumprobieren gekommen. Hier mal die Ansteuerung ganz ohne PWM. Da kann doch irgendwas einfach nicht stimmen. Die BEMF Spannung kommt noch nicht mal über VCC/2 hinaus (was sie ja eigentlich soll). Ich begreifs nicht.
Hi, also ich hatte das Problem auch mal. Bei mir sah die BEMF genauso aus. trotz langem rumprobieren hab ichs nicht geschafft. Ich weiß, dieser Beitrag bringt dir jetzt nix, aber zumindest bist du nicht allein. Und ich wäre auch an ner Lösung interessiert. Meine Vermutung ist, dass der Motor nicht synchron zum Feld läuft. Bei mir war es so, dass wenn ich denn Motor ohne Ansteuerung (per Hand) drehe, die BEMF absolut in Ordnung ist. Nur mit Ansteurung der FETS gings dann nicht mehr.
Bernhard Mayer wrote: > Hi, > > also ich hatte das Problem auch mal. Bei mir sah die BEMF genauso aus. > trotz langem rumprobieren hab ichs nicht geschafft. Ich weiß, dieser > Beitrag bringt dir jetzt nix, aber zumindest bist du nicht allein. Und > ich wäre auch an ner Lösung interessiert. Wie sah deine Ansteuerung aus? Auch aktiver Freilauf (also Highside/Lowside alternierend bei PWM)? (Wobei das Problem ja auch ohne PWM auftritt). > Meine Vermutung ist, dass der Motor nicht synchron zum Feld läuft. Bei > mir war es so, dass wenn ich denn Motor ohne Ansteuerung (per Hand) > drehe, die BEMF absolut in Ordnung ist. Nur mit Ansteurung der FETS > gings dann nicht mehr. Die Vermutung habe ich auch, aber der Motor macht keine merkwürdigen Geräusche und dreht wirklich von ganz langsamer Drehzahl hoch. Hm.
Hi! Ich hab die Ansteuerung mit einem Renesas SH7125 gemacht und dann jeweils P-channel und N-channel FET. Der Renesas ist relativ freizügig programmierbar was PWM angeht. Da kann man nur Low-Side, nur High-Side oder beide machen. Hab ich alles ausprobiert und auch ohne PWM. Das Bild war aber immer das gleiche. Bei mir ist der Motor auch gut hochgelaufen, teilweise etwas ruckelig wegen der vorgebenenen Frequenz. Ich hab allerdings nur einen Motor ausprobieren können, da ich nur einen habe. Bernhard
Hallo Simon, ich bin auch am Ansteuern eines Brushless Motors, bin glaube zwar schon ein kleines Stück weiter inzwischen, aber wir könnten uns sicherlich mal austauschen. Würde mich freuen wenn du dich mal meldest, entweder über ICQ: 214158902 oder per Mail: m a i l [at] c h r i s t o p h b e c h t e l [dot] d e Per ICQ wäre am besten, einfach weil man da schnell mal hin und her schreiben kann. Wenn wir eine Lösung gefunden haben können wir diese ja hier reinschreiben. Lieben gruß, Christoph
Bernhard Mayer wrote: > Meine Vermutung ist, dass der Motor nicht synchron zum Feld läuft. Bei > mir war es so, dass wenn ich denn Motor ohne Ansteuerung (per Hand) > drehe, die BEMF absolut in Ordnung ist. Nur mit Ansteurung der FETS > gings dann nicht mehr. Das muss es wohl gewesen sein. Ich habe vorher den Motor hochgedreht, wobei er beim Hochdrehen wohl irgendwo ausgestiegen ist und nur noch auf einem Teiler der Feldfrequenz läuft. Auf einen Tipp von Christoph läuft er jetzt bei 5ms Kommutierungszeit (ohne Hochlaufen) konstant und erzeugt angehängte BEMF. Danke an alle Beteiligten, das Problem sieht gelöst aus.
Zu früh gefreut würde ich sagen. Ich nehme an, dass es nicht richtig ist, dass die BEMF "falsch herum" geht. Ich meine, müsste die BEMF Linie nicht die beiden umgebenden Zustände "verbinden"? In der Mitte ist aber der PWM Zustand dargestellt, was bedeutet, dass von links die BEMF größer werden sollte und rechts davon wieder abnehmen sollte. Ein Vertauschen der Phasen in der Software hat zwar die Umdrehungsrichtung geändert, aber nicht die Polarität der BEMF Spannung. Ist denn meine Art der Motoransteuerung richtig? Zust. | A | B | C 1 PWM GND HI-Z 2 PWM HI-Z GND 3 HI-Z PWM GND 4 GND PWM HI-Z 5 GND HI-Z PWM 6 HI-Z GND PWM -PWM bedeutet, während dieses Zustandes wird im Dutycycle der PWM der obere FET und der untere abwechselnd eingeschaltet. Wobei der obere FET in Phase zum PWM Signal ist und der untere invertiert. Davon sind auf dem Bild oben zwei Stück von drauf (in der Mitte). -GND bedeutet, dass die Phase komplett den ganzen Zustand auf Masse geschaltet ist (Davon sind keine auf dem Bild zu sehen). -HI-Z bedeutet, dass die Phase hochohmig geschaltet ist, also kein FET ist an. (Das sind die beiden am Rand des Bildes mit der BEMF) Nicht, dass hier mein Fehler liegt.
Hi! Deine Phasenansteuerung scheint soweit richtig. Aber die BEMF schaut falsch aus. meiner meinung nach müssten die schrägen Linien genau anders rum geneigt sein. Mit welcher frequenz hast du gestartet und wie hoch ist deine andfrequenz? und was hast du genau verändert? Danke Bernhard
Bernhard Mayer wrote: > Hi! > > Deine Phasenansteuerung scheint soweit richtig. > > Aber die BEMF schaut falsch aus. meiner meinung nach müssten die > schrägen Linien genau anders rum geneigt sein. > > Mit welcher frequenz hast du gestartet und wie hoch ist deine > andfrequenz? und was hast du genau verändert? > > Danke > Bernhard Hallo Bernhard. Wegen der BEMF: Ja, genau so sehe ich das auch. In dem letzten Oszillogramm müssten es 200Hz Kommutierungsfrequenz gewesen sein. Der Motor läuft (ggf. nach kurzem Anstubsen) dann von alleine. Ich habe eigentlich nur PWM und Frequenz verändert. Ich habe auch noch einen Tipp bekommen vom Autor der Seite: http://rmmx.gmxhome.de/bldchv/Grundlagen.html Bei der dritten Animation (runterscrollen) sieht man, dass der Motor bei zu viel Strom "einrastet", weil eben Strom und Frequenz nicht zueinander passen. Der Autor meinte, dass das eventuell das "Problem" sein könnte, warum man keine BEMF sieht.
Ding Ding. Und der gute Mann hatte anscheinend tatsächlich Recht. Habe den Motor mal beschleunigen lassen. Auf Kommutierungsfrequenz ~1,6kHz (620us Zeit pro State). Kein Erfolg. Dann mal den Rotor leicht abgebremst (so ein bisschen in die Knie gezwungen: War also immer noch mehr Strom als nötig auf der Windung) aber plötzlich machte der Motor ein anderes Geräusch und schlagartig veränderte sich die BEMF. Bei niedrigen Drehfrequenzen habe ich das auch schon versucht, aber da blieb der Motor eher stehen als dass sich die entsprechend richtige BEMF bilden konnte. Nachdem ich den Rotor ein wenig abgebremst hatte, hat er seinen absoluten Drehwinkel so verändert, dass er nicht mehr zu der Position gelangt, wo keine Drehbeschleunigung mehr ausgeübt wird (Also die Position, in der der (virtuelle) Stabmagnetrotor senkrecht auf der Wicklung steht). Bevor er dort nämlich ankommt, wird weiterkommutiert. Jetzt kann ich mir endlich mal die Sternpunktbildung und die Phasenspannung nach dem Spannungsteiler anschauen. Der nette Herr von der Seite meinte aber auch noch, dass es eigentlich problemlos ist, wenn man den motor im stepperbetrieb beschleunigt und dann umschaltet. er müsste dann von alleine richtig zu drehen anfangen.
Hallo, seit einigen Tagen beschäftige ich mich jetzt auch mit der Ansteuerung eines Brushlessmotors (Robbe Roxxy 4949 Außenläufer). Bin jedoch noch nicht so weit wie ihr. Die Schaltung hab ich ähnlich der von Mikrokopter.de entworfen und sie scheint zu funktionieren. http://gallery.mikrokopter.de/main.php?g2_view=core.DownloadItem&g2_itemId=39359&g2_serialNumber=5 Den Motor habe ich zuerst nach der folgenden Tabelle angesteuert, dies funktioniert auch recht gut jedoch fehlen ca. 100g Schub und die FETs werden nach einigen Minuten sehr warm. Ansteurung 1:(3 Zustände) A B C 1 VCC GND Hochohmig 2 Hochohmig VCC GND 3 GND Hochohmig VCC Die oben von Simon K. geposteten 6 Zustände leuchten mir durch die sich ergebende sinusförmige Spannung ein, wenn ich denn Motor jedoch so ansteuere bekomm ich nur noch ca 70% des Schubs von der Ansteuerung mit 3 Zuständen. Zust. | A | B | C 1 PWM GND HI-Z 2 PWM HI-Z GND 3 HI-Z PWM GND 4 GND PWM HI-Z 5 GND HI-Z PWM 6 HI-Z GND PWM Den Zeitpunkt der Kommutierung bestimm ich dadurch, dass ich mit dem Analog Comparator des Atmega die Spannung der nicht beschalteten Phase mit der des Sternpunktes bzw. des arithmetischen Mittels der drei Phasen vergleiche und bei jeder steigenden Flanke kommutiere. Bei der Ansteuerung mit 6 Zuständen wird bei jedem logischen Wechsel kommutiert. Mach ich denn einen Grundlegenden Fehler?? Bzw Was ist mein Fehler? :-) Vielen Dank für eventuelle antworten Grüße Cornelius
Ich weiß, dass der Thread alt ist, aber wenn man dennoch darauf stößt und es sich durchliest, weil man auf eine Lösung hofft, sollte man nicht enttäuscht werden. Ich finde es daher sinnvoll hiermit auf eine "Application Note" von Atmel zu verweisen, in der die sensorlose Ansteuerung von Brushlessmotoren sehr detailiert und verständlich beschrieben wird: "AVR928 - Scalar sensorless methods to drive BLDC motors" http://www.atmel.com/Images/doc8305.pdf Es gibt auch noch andere "Application Notes" zum Thema "Brushless"-Motorsteuerung, aber diese habe ich mir noch nicht angeschaut. In obigem Dokument wird aber z.B. erwähnt, dass eine einseitige PWM zu Problemen bei sensorlosem Betrieb führt. Deshalb sollte man normalerweise PWM für High- und Low-Side verwenden. Alles weitere kann jeder selber dem Dokument entnehmen! Es werden einige unterschiedliche Ansätze beschrieben.
Hallo, vielen Dank für dieses Skript. Das hat mir den wichtigen Hinweis gegeben, dass es wichtig ist bei Hochlauf die Drehzahl und das Tastverhältnis zu erhöhen! Dann sieht die BackEMF besser aus und kann entsprechend ausgewertet werden. Grüße
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.