Ich möchte einen BLDC-Controller mit einer MCU herstellen und habe die atmel-Anleitung AVR444 gelesen, in der ein Design und eine Software beschrieben werden, die für einen sensorlosen Back-EMK-Treiber mit Zeitsteuerung erforderlich sind.
Ich erweitere mein Verständnis des Themas. Die Anwendung, die ich mir anschaue, ist für einen RC-Quadcopter, daher ist die Geschwindigkeitsgenauigkeit nicht kritisch, solange der Gesamtschub mit einer ziemlich schnellen Reaktion variieren kann. Die Last wird auch nicht stark variieren. Der Motor wird dreiphasig (Y-Wicklungen) sein, ungefähr 5-10 V, <10 A, wie ich mir vorstellen kann.
Ich verstehe das Konzept der Gegen-EMK in den schwimmenden Wicklungen, um die Drehung des elektrischen Feldes zu synchronisieren. Mein Verständnis ist jedoch auch, dass das am Rotor erlebte Drehmoment proportional zur Rotationsdifferenz zwischen dem elektrischen Feld und dem permanenten Rotorfeld ist. Daher bleibt der Rotor normalerweise leicht zurück, wodurch das Drehmoment ihn zwingt, aufzuholen.
Der AVR444-App-Hinweis entwirft die Software, um den Motor blind zu fahren (unter Verwendung eines festen Timings), und beschleunigt ihn bis zu einem Punkt, dann lässt er die Software zur Steuerung der Gegen-EMK übernehmen. Das macht für mich vollkommen Sinn, aber was mich neugierig macht, ist die Einschränkung, den Motor blind zu fahren?
Solange es keinen großen Unterschied zwischen der Rotordrehzahl und der Drehzahl des elektrischen Feldes gibt, beschleunigt das Drehmoment den Rotor und zwingt ihn, sich an das elektrische Feld anzupassen. Da das elektrische Feld von der Software gesteuert wird, was wäre das Problem, wenn das elektrische Feld blind angesteuert wird und angenommen wird, dass der Rotor Schritt hält? Es ist wahrscheinlich, dass es ab und zu zu Rotationen kommt, aber bei einigermaßen hohen Geschwindigkeiten (1000 bis 5000 U / min) und mit einem gewissen Grad an Trägheit wird sich dies sicherlich herausrechnen? Wenn die Geschwindigkeit beispielsweise um 100 U / min variiert, bin ich nicht zu aufgeregt.
Bei Verwendung einer festen Spannung für den Motorantrieb und einer festen Drehfrequenz erwarte ich, dass der Strom in den Wicklungen mit dem Drehmoment variiert, das der Rotor benötigt, um das Tempo an die elektrische Drehung anzupassen. Ein Strombegrenzer am Netzteil könnte alles zu Verrückte stoppen.
Gedanken? Mir ist klar, dass die bevorzugte Methode die Verwendung von Gegen-EMK in einem Regelkreis ist, aber ich suche nach einer Idee, welche Einschränkungen es hätte, keinen Regelkreis zu verwenden und einen BLDC-Motor blind anzutreiben.
EDIT: Es ist nicht nur ein interessanter Forschungspunkt, sondern hat auch praktischen Nutzen. Das blinde Antreiben von BLDC-Motoren ist eine ziemlich triviale Aufgabe, die eine einzelne Steuer-MCU ausführen könnte. Das aktuelle Design, das ich betrachte, erfordert kleine, separate MCUs, um enge Regelkreise pro Motor zu betreiben. Bei einem Design mit 4 Motoren (möglicherweise mehr) ist dies der Unterschied zwischen 1 und 5 MCUs auf der Platine.
quelle
Antworten:
Das Fahren eines Motorrollos ist aus mehreren Gründen eine schlechte Idee:
Mit der Positionsrückmeldung kann das Magnetfeld nahe am optimalen Winkel gehalten werden, was bedeutet, dass der Strom den Motor tatsächlich drückt, anstatt ihn an Ort und Stelle zu halten. Anders ausgedrückt, die Amplitude ist genau das, was sie benötigt, um den Motor in der Konfiguration mit maximalem Drehmoment auf der gewünschten Drehzahl zu halten. Wenn Sie nicht wissen, wo sich der Rotor befindet, wird der Motor übersteuert.
Eine andere Sichtweise ist, dass das Fahrfeld eine Sinus- und Cosinuskomponente aufweist. Angenommen, der Cosinus ist der Teil, der 90 ° vor dem Rotor liegt, und der Sinusteil befindet sich dort, wo sich der Rotor derzeit befindet. Jeder Phasenwinkel kann nur als eine andere Mischung der Sinus- und Cosinuskomponenten betrachtet werden. Nur die Kosinuskomponente bewegt jedoch den Motor. Die Sinuskomponente verursacht nur Erwärmung und steht für Energieverschwendung.
Zu diesem Zeitpunkt befindet es sich jedoch direkt am Rand und jede Änderung führt zu einem geringeren Drehmoment. Wenn die Belastung des Motors zunimmt, wird der Rotor mehr als 90 ° nach hinten kommen, was weniger Drehmoment verursacht, was dazu führt, dass er noch mehr nach hinten kommt. Während der nächsten 1/4 Umdrehung des Schlupfes nimmt das Vorwärtsdrehmoment auf Null ab. Für die nächste halbe Umdrehung danach drückt das Antriebsmoment den Rotor tatsächlich nach hinten.
An diesem Punkt bist du total fertig. Denken Sie daran, dass Sie in erster Linie in diese Situation geraten sind, weil das Antriebsmoment nicht mit der Last mithalten konnte und Sie in der letzten 3/4-Kurve gerade einen negativen Nettoantrieb erlebt haben. Wenn die Last plötzlich entfernt wird und Sie sehr viel Glück haben, kann der Rotor möglicherweise beschleunigen, um im nächsten 1/4 Zyklus mit dem Antrieb zu synchronisieren, aber sicherlich nicht, wenn die Bedingung das Problem überhaupt verursacht hat noch vorhanden.
Sobald der Rotor nicht mehr synchron ist, beträgt das Nettodrehmoment über eine Umdrehung 0. Das Produkt aus zwei Sinuswellen unterschiedlicher Frequenz wird unabhängig vom Phasenwinkel zwischen ihnen immer auf 0 gemittelt.
quelle
nicht wirklich, wie es funktioniert, googeln Sie einfach, wie neue Escs für Quadcopter aus Gründen der Geschwindigkeit und Präzision über das Standard-Servo-PWM hinausgehen.
Zweitens hat der "Blindstart" den einzigen Zweck, den Rotor zufällig, aber in Bewegung zu bringen, so dass seine Ausgangsposition durch die von ihm induzierte Gegen-EMK bestimmt werden kann
Denken Sie auch daran, dass BLDC Synchronmotoren sind, "Slip" hat hier keinen großen Platz. Große Ressourcen, um die "mathematische", aber grundlegende Theorie auf "menschliche" Weise zu lernen, finden Sie in den "Endloskugel" -Foren :-)
quelle