Also, ich habe das schon hinter mir und kann dir ein paar Erklärungen
liefern:
Stell dir vor, der Motor ist im Stern geschaltet. Du hast dann 3 Spulen
und einen Mittelpunkt. Der Mittelpunkt ist "in Wirklichkeit" aber nicht
herausgeführt, ist aber hier für die Erklärung zweckmäßig.
(Die Erklärung für den Stern-Motor gilt auch für den Dreieck-Motor.
Beides kann ineinander umgewandelt werden).
Der Läufer wird hier als einfacher Stabmagnet angenommen.
Was man beim Sensorless BLDC versucht zu erkennen ist der Nulldurchgang
einer Spule.
Stell dir vor, man würde den Motor von Hand drehen und dabei die
Spannung an einer Spule beobachten (Also zwischen Sternpunkt und Phase A
zum Beispiel). Dann würdest du hier einen Sinus erkennen. Der
Nulldurchgang des Sinus ist immer dann gegeben, wenn der Nord- oder
Süd-Pol des Innenläufers direkt vor der Spule steht (Also 90°, bzw.
senkrecht).
Bei weiteren Überlegungen stellt man fest, dass so ein Motor in 6 Phasen
angesteuert werden kann. Das heißt: Man hat 3 Halbbrücken, jede kann
High oder Low ausgeben. Außerdem sind zur gleichen Zeit immer nur 2
Brücken an. Daraus berechnet sich 6 Phasen. Da die 6 Phasen für eine
Umdrehung benötigt werden, kann man pro Phase mit 360°/6 = 60° rechnen.
Wenn man nun genau hinschaut, wird man sehen, dass bei einem
Nulldurchgang der Spule (Magnet steht senkrecht) Der Motor gerade erst
30° nach der letzten Kommutierung hinter sich hat, demzufolge "wartet"
man erneute 30° und kommutiert dann den Motor. Der Rotor befindet sich
dann genau mit der Spitze zwischen zwei Spulen. Das macht ja auch Sinn,
denn zwischen den Spulen macht man sozusagen die "Magnetfeld-Übergabe",
wo die nächste Spule dafür sorgt, dass der Rotor weiterdreht.
Würde man die Übergabe schon bei einem Nulldurchgang machen und die
nächste Spule das Feld übernehmen, dann würde der Rotor Quer zu der
jetzt bestromten Spule stehen. Ergo wird der Rotor kein Drehmoment
erfahren und der Motor bleibt stehen.
Gängige Algorithmen machen das ganze jetzt ganz geschickt, indem man die
Zeit von der letzten Kommutierung bis zum Nulldurchgang "misst" (Zum
Beispiel über einen hochauflösenden Timer) und diese Zeit anschließend
wartet (zum Beispiel über den gleichen Timer) und danach die
Kommutierung ausführt (zum Beispiel im Timer Interrupt).
Zu der Erkennung des Zero Crossings:
Wie oben schon erwähnt, wollen wir in der Lage sein, den Nulldurchgang
jeder der drei Spulen (in unserem vereinfachten Stern-Modell) zu
ermitteln. Und dabei ist der Spannungsnulldurchgang gefragt. Für eine
Spannung benötigt man immer zwei Potenziale, also die Spannung an der
Phase-A-Spule ist festgelegt durch die Spannung an der Klemme A minus
dem Sternmittelpunkt.
Da wir aber nur erkennen wollen, wann die Spannung an der Spule-A 0
wird, kannst du das im Prinzip wieder vergessen. Wenn nämlich die
Spannung an der Spule-A 0 wird, dann hat die Klemme A des Motors genau
das gleiche Potenzial wie der Sternpunkt.
Das lustige ist: Genau zu diesem Zeitpunkt (also wo man Phase A misst,
wie hier in dem Beispiel) sind ja Phase B und C bestromt. Und zwar liegt
zum Beispiel Phase B auf VCC und Phase C auf GND. Da alle Spulen in
einem Motor in der Regel identisch sind, ist der Sternpunkt des Motors
nichts anderes als VCC/2 (!). Das heißt, wenn man nun sich extern einen
Sternpunkt "baut", indem man Einen Spannungsteiler von Phase B nach
Phase C baut und die Mitte abgreift, braucht man den internen Sternpunkt
nicht.
Da dies nur zum "Messen" (Komparator) gebraucht wird, kann der auch
relativ hochohmig sein.
Nun muss man nur noch mit einem Komparator den Spannungsteiler-Abgriff
(Unser Sternpunkt) mit der Klemme A vergleichen. Ist beides auf der
gleichen Spannung, hatte Spule A einen Nulldurchgang.
In der Regel sieht man statt einem Spannungsteiler direkt 3 (statt 2)
Widerstände. Das ist gemacht um Widerstände zu sparen. Es geht ja nur
darum den Sternmittelpunkt nachzubilden.
Der dritte Widerstand würde in diesem Beispiel von Phase A zum
Mittelabgriff des Spannungsteilers gehen. Da aber der Komparator genau
dann auslöst, wenn die Spannung zwischen A und Mittelabgriff 0 ist,
fließt überhaupt kein Strom durch diesen dritten Widerstand. Er sorgt
somit für keine "Verschiebung" der Nulldurchgangs-Erkennung.
Der dritte Widerstand kommt dann zum Einsatz, wenn der Nulldurchgang von
Phase B oder C ermittelt wird. In beiden Fällen ist aber dann ein
anderer der drei Widerstände "nutzlos" ;-)
Fazit: Es reicht, den Sternpunkt extern nachzubauen und mit der immer
offenen Phase zu vergleichen.