www.mikrocontroller.net

Forum: Analoge Elektronik und Schaltungstechnik Brushles "Zerocrossing" erkennung


Autor: Sven B. (gortosch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich versuche zurzeit zu verstehen, wie ein sensorloser Brushles-Motor 
funktioniert. Genauer der Moment der Zero crossing Erkennung. 
(commutation)

Theoretisch müssten die Phasen genau dann umgeschaltet werden, wenn die 
unbestromte Phase einen Nulldurchgang hat. Richtig? Andersrum habe ich 
gelesen, dass die Spannung proportional zur Winkelgeschwindigkeit steht. 
Das wiederspricht sich dann doch? Von der Überlegung her wäre die 
unbestromte Phase genau dann null, wenn der Permanentmagnet 90° zur 
unbestromten Spule stehen würde.

Nun finde ich in vielen Schalungen einen Komparator, welcher die 
unbestromte Phase mit der Mitte der drei Phasen vergleicht. Dann ist 
aber die unbestomte Phase nicht im Nulldurchgang oder?

Ich glaub ich hab da irgendwo noch ein prinzipielles Verständnisproblem.

Vielleicht ist jemand so lieb und kann mir etwas auf die Sprünge helfen.


Gruß
Sven

Autor: Sven B. (gortosch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sven B. schrieb:
> Andersrum habe ich
> gelesen, dass die Spannung proportional zur Winkelgeschwindigkeit steht.
> Das wiederspricht sich dann doch?

Das nehm ich zurück... passt so schon. Es wird ja von der 
Spitzenspannung des Sinus-Signales gesprochen und nicht im Moment des 
Zerocrossings.


Gruß
Sven

Autor: Joachim K. (minifloat)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist dein Problem jetzt gelöst?

Sven B. schrieb:
> Komparator, welcher die
> unbestromte Phase mit der Mitte der drei Phasen vergleicht

In Y oder ∆ geschaltet? Wenn Y, muss man sich die "Mitte" ja gar nicht 
selber basteln, da die ja schon so da ist.
Wenn du einen Komparator verwendest. musst du auf Flanken triggern, das 
sollte aber auch klar sein.

mfg mf

Autor: Sven B. (gortosch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
... wenn die Summe des Mittensignales + die Summe der unbestromten Phase 
= 0 ergibt habe ich meinen Zero crossing Point... Man irgendwie fällt 
mir in den letzten Tagen das Denken etwas schwer... liegt vielleicht am 
Wetter...

Autor: Sven B. (gortosch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jo K. schrieb:
> Wenn du einen Komparator verwendest. musst du auf Flanken triggern, das
> sollte aber auch klar sein.
>
> mfg mf

Was meinst du genau mit auf Flanken triggern?

Die commutation muss doch immer auf den steigenden Pegel an dem Punkt 0 
der unbestromten Phase erfolgen. Kann man da von einer Flanke sprechen? 
Oder meinst du etwas anderes, dass ich noch nicht umrissen habe?

Danke.


Gruß
Sven

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Sven B. (gortosch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Klasse Simon, vielen herzlichen Dank. Jetzt hat es auch bei mir gefunkt. 
Speziell dein letzter Absatz hat meine letzten noch offenen Fragen 
geklärt.

Dankeschön.

Werde mich mal an die Hardware machen. Dann sehe ich gleich, ob ich es 
auch wirklich verstanden habe.

Nur noch zu dem Punkt des "intelligenten" Algorithmus über die Zeit. Wo 
genau liegt da eigentlich der Vorteil? Ob ich zwei Nulldurchgänge messe 
oder den zweiten über die zuvor gemessen Zeit berechne, sollte doch 
keinen Unterschied machen oder? Nun, wenn ich es mir recht überlege 
könnte die Berechnung über die Zeit sogar zu Problemen führen. Z.B. wenn 
der Motor gerade beim beschleunigen ist und das Timing immer kürzer 
wird.


Gruß
Sven

Autor: Sven B. (gortosch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sven B. schrieb:
> Nur noch zu dem Punkt des "intelligenten" Algorithmus über die Zeit. Wo
> genau liegt da eigentlich der Vorteil? Ob ich zwei Nulldurchgänge messe
> oder den zweiten über die zuvor gemessen Zeit berechne, sollte doch
> keinen Unterschied machen oder? Nun, wenn ich es mir recht überlege
> könnte die Berechnung über die Zeit sogar zu Problemen führen. Z.B. wenn
> der Motor gerade beim beschleunigen ist und das Timing immer kürzer
> wird.

Ähm okay... hat sich erledigt.


Gruß
Sven

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.