Es gibt eine ganze Menge Literatur zur Implementierung der bürstenlosen Motorsteuerung, aber hier ist eine Übersicht.
Um die Unterschiede zwischen den Kommutierungswellenformen zu verstehen, ist es wichtig zu verstehen, wie bürstenlose Motoren arbeiten.
Ein dreiphasiger (zweipoliger) Motor hat drei Spulen um einen einzelnen Magneten in der Mitte. Das Ziel besteht darin, die Spulen der Reihe nach zu erregen, sodass sich die Welle des Motors (und sein Magnet) dreht.
Hierbei sind zwei Magnetfelder wichtig, das Feld des Rotors (rotierender Magnet) und das Feld des Stators (statische Spulen):
Wir bezeichnen die Richtung des Magnetfeldes als "Flussvektor", weil es super cool klingt. Das Wichtigste, was Sie aus diesem Bild lernen können, ist, dass die beiden Magnetfelder im rechten Winkel zueinander stehen sollen. Dies maximiert den Wirkungsgrad und das Drehmoment.
Das dümmste Kommutierungsschema ist trapezförmig. Mit Hilfe von Hallsensoren oder Gegen-EMK vom Motor kann festgestellt werden, ob sich der Motor in einer diskreten Anzahl von Positionen befindet, und eine Ein / Aus-Steuerung an einer oder zwei Spulen durchgeführt werden, um das Magnetfeld um den Motor herum zu leiten:
Da es möglicherweise nur sechs verschiedene Ausrichtungen für das Statorfeld gibt, kann der Flussvektor des Motors zwischen 60 und 120 Grad liegen (anstelle der gewünschten 90 Grad), und Sie erhalten daher eine Drehmomentwelligkeit und einen schlechten Wirkungsgrad.
Eine naheliegende Lösung besteht darin, auf Sinuskommutierung umzuschalten und die Wellenform einfach zu glätten:
Wenn Sie die genaue Ausrichtung des Rotors kennen, können Sie einfach den genauen PWM-Arbeitszyklus für jede Spule berechnen, um den Flussvektor bei 90 Grad zu halten, und Sie haben einen schönen 90-Grad-Flussvektor. (Die Rotorausrichtung kann über einen Encoder, eine Interpolation oder eine erweiterte Schätzung wie ein Kalman-Filter bestimmt werden.)
Sie fragen sich jetzt vielleicht, wie Sie das besser können als sinusförmige Kommutierung. Der Hauptfehler der Sinuskommutierung besteht darin, dass die Ausgänge direkt an PWM gesendet werden. Aufgrund der Spuleninduktivität bleibt der Strom (und damit der Flussvektor) hinter den Sollwerten zurück, und wenn sich der Motor seiner Höchstgeschwindigkeit nähert, liegt der Flussvektor bei 80 oder 70 Grad anstelle von 90 Grad.
Dies ist der Grund, warum die sinusförmige Kommutierung eine schlechte Hochgeschwindigkeitsleistung aufweist.
Dies bringt uns schließlich zur Flussvektorsteuerung, die (oft proprietären) Steuerungsalgorithmen genannt wird, die sicherstellen sollen, dass der magnetische Fluss auch bei hohen Geschwindigkeiten auf 90 Grad bleibt. Der einfachste Weg, dies zu tun, besteht darin, das Feld um beispielsweise 90-120 Grad zu führen, je nachdem, wie schnell Sie fahren, und zu wissen, dass der tatsächliche Magnetfluss nacheilen wird.
Robuster Lösungen beinhalten PID / Feedforward, um den Strom, der durch jede Phase fließt, genau zu steuern. Jeder Servo-Hersteller hat seinen eigenen Algorithmus. Ich bin mir also sicher, dass es ein paar ziemlich komplizierte Dinge gibt, die auf dem neuesten Stand sind.
Vereinfacht ausgedrückt ist die Flussvektorsteuerung eine sinusförmige Steuerung des Stroms, der zu jeder Phase fließt (anstelle nur des PWM-Tastverhältnisses).
Die Grenze zwischen Sinus- / Flussvektor ist ziemlich vage, da einige Unternehmen eine erweiterte Steuerung ihrer "Sinus" -Antriebe durchführen (was sie im Wesentlichen zum Flussvektor macht). Außerdem kann die Qualität der Implementierungen variieren, da Sie technisch fast alles als Flussvektorsteuerung bezeichnen können.