Hallo. Ich baue wieder mal an einer Steuerung für Brushlessmotoren. Die Schaltung dazu findet ihr hier: Beitrag "Re: MOSFETs werden heiß - Brushlesscontroller" Mittlerweile habe ich die neue Schaltung mit den Mosfesttreibern aufgebaut. Vorangegangene Probleme sind damit erstmal gelöst. Jetzt habe ich neue Fragen. Ist es grundsätzlich besser alle 6 Mosfets mit einem PWM-Signal zu steueren. Bisher habe ich immer nur die High-Side Mosfets mit einer PWM versorgt. Welche Vor oder Nachteile ergeben sich? Weiterhin habe ich beim Anfahren des Motors noch Probleme. Das erste hierbei ist das Bestimmen der Lage des Rotors vor dem Start. Bis jetzt gebe ich einen kräftigen Puls auf eine Phase, damit der Rotor in die eine Position springt. Ich gehe davon aus, dass das der Rotor auch macht. Leider ist das nicht immer so. Und der Motor bekommt Schwierigkeiten beim Anlaufen. Ich hab mich nach anderen Methoden umgeschaut. Gefunden habe ich das hier: http://bldc.wikidot.com/p-esc-startup Hier wird ein kurzer Spannungsimpuls auf zwei der Windungen gegeben und danach auf der freien Windung die Spannung (BEMF) gemessen. Daraus soll sich dann die Rotorposition bestimmen lassen. Wie schätzt ihr diese Methode ein? Gibts da vielleicht was besseres? Weiterhin beschäftigt mich noch das Anlaufen des Motors. Momentan verwende ich eine einfache Rampenfunktion die die Zeit zwischen den einzelnen Phasen linear verkleinert. Da ich die Steilheit der Rampe sowie Anfangs und Endpunkte durch Experiment gestimmt habe, stellt sich die Frage ob es auch (einfache) Rechenverfahren gibt, die aus Daten des Motors die Beschleunigungsrampe festlegen? Vielen Dank schonmal Hias
>Bisher habe ich immer nur die High-Side Mosfets mit einer PWM versorgt. >Welche Vor oder Nachteile ergeben sich? Und was machst du mit den lowside Mosfets???
aso... wenn du mit allen 6 arbeitest kannst du einen "saubereren" Sinusstrom und damit ein gleichmäßigeres Drehmoment erzeugen! Für das setzen des drehfeldes kannst du versuchen nach dem Spannungsimpuls langsam (mehr schlecht als recht) in den Nullpuls des Drehgebers zu fahren! Dann hast du ja die exakte Position...
Er wird den Motor im Blockmodus ansteuern, dann geht das mit der 100% Lowsidesteuerung recht gut. Der Motor macht zwar etwas mehr Lärm und läuft bei Motoren niedriger Polzahl nicht so glatt wie in Sinusbetrieb bringt aber mehr Leistung. Der MC33035 arbeitet zb so. Im Sensorlosen Betrieb ist die Anlaufsteuerung und niedrige Drehzahlen immer etwas problematisch. In Lüftersteuerungen wird meist brutal ein Drehfeld auf die Wicklung gelegt und wenn dann eine verwertbare Signale kommen wird geregelt. Alle Teile die ich kenne arbeiten beim Start im Blockmodus und schalten nach dem Anlauf erst in Sinusbetrieb um. Auf der Embedded sah ich einige sensorlose Ansteuerung die das Anlaufen perfekr gelöst hatten (zB bei virtualHall - www.elmos.de). siehe Soweit ich erfahren konnte handelte es sich da um recht aufwendige Vectorsteuerungen, Details liessen sich leider nicht erfahren. Wenn der Motor nicht im niedrigen Drehzahlbereich geregelt werden muss ist das wohl zu Aufwändig. Möglicherweise bringt Dir ja das Teil auf www.my-boardclub.com was.
Hallo, Ich werd dann ersteinmal nur die Highside-Fets mit der PWM versorgen. Wie berechnet sich die "Anfahrtsrampe"? Momentan versuche ich experimentiell Werte zu bestimmen. Leider kommt der Rotor teilweise immer noch nicht nach. Hias
Am Anfang wird ein Drehfeld angelegt, und man hofft, dass der Rotor mitkommt. Also Open-loop-control. Das funktioniert natürlich nicht, wenn der Rotor unter Last ist, und auch nicht mit jedem Motor. Deswegen wird ein Kompromiss gefunden zwischen schnellem und sicherem Hochfahren der Drehzahl. "Empirisches ermitteln der Parameter" aka Trial & Error wäre meine Wahl. Es gibt auch Dinge wie Vectorfelder usw. Das ist komplexer, man braucht einen DSP/FPGA und ich habe überhaupt keine Ahnung davon.
Hallo, Ich habe immer noch Probleme. Am Anfang weiß ich ja nicht wo der Rotor steht. Meiner Meinung nach ist das aber entscheidend. Ist der Motor nämlich am Anfang schon außer "Takt" dann wird er es nie schaffen, dem beschleunigten vorgegebenen Drehfeld zu folgen. Bewege ich den Motor mit der Hand in eine Startposition und starte dann, funktioniert es bei jedem Versuch. Ich benötige die Startposition, was ohne Hallsensoren schwierig ist. Oder ich versuche den Rotor irgendwie in Position zu bringen. Das ist allerdings auch nicht einfach. Ich habe versucht mit kurzen Impulsen den Rotor zu Positionieren, aber auch hier springt er manchmal in die falsche Position. Habt ihr noch bessere Ideen? MfG Hias
Was ich schon häufiger gesehen habe: 2 Anschlüsse an GND, eine an + und dann für eine kurze Zeit ordentlich Strom drauf. Das soll den Motor angeblich in die richtige Position bringen.
Hallo! An was denkst du dabei bei "kurz" und "ordentlich"? Ich habs mit ca 5ms bei einer PWM von 10% versucht. Der Motor springt logischerweise, aber nicht zuverlässig in die gewünschte Position. MfG Hias
5ms kommt mir etwas kurz vor (hängt natürlich stark von der Masse des Rotors ab). Ich habe bisher mit 100ms gearbeitet, das ging relativ gut.
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.