Forum: Mikrocontroller und Digitale Elektronik Sensorlose Ansteuerung von BLDC-Motor, helft mir mein Scope-Bild zu interpretieren!


von Tobias P. (hubertus)


Angehängte Dateien:

Lesenswert?

Hi Leute,
im Moment befasse ich mich damit, BLDC-Motoren sensorlos anzusteuern.
Um das zu testen, habe ich eine H-Brücke sowie einen Mikrocontroller 
genommen, und eine konventionelle BLDC-Steuerung basierend auf 
Hallsensoren gemacht. Gleichzeitig habe ich aber nun auch die Schaltung 
zur Messung der BEMF aufgebaut, so kann ich gut die einzelnen Signale 
mit den Hallsensor-Signalen vergleichen (später fallen die Hallsensoren 
dann natürlich weg, und es soll eine Schaltung entwickelt werden, die 3 
Eingänge hat zum Messen der BEMF und 3 Ausgänge, welche exakt dieselben 
Signale liefern wie Hallsensoren).

Nun meine Frage. Ihr seht das angehängte Bild.
Rosa ist die Spannung der Phase A gegen Masse. Die "schrägen" Flanken 
sind ja bekanntlich die BEMF-Spannungen.
Blau sehr ihr den Ausgang des zugehörigen Hallsensors. Soweit so gut!
Nun habe ich einen Komparator mittels LM393 aufgebaut, welcher die halbe 
Zwischenkreisspannung (in meinem Fall 6 Volt) mit der Spannung an der 
Phase A vergleicht. Das Ausgangssignal des Komparators seht ihr in Gelb.
Frage: ist die Sache soweit schon mal korrekt? Woher kommen die beiden 
Spikes an der Phase A, welche natürlich auch den Komparator zum 
Umschalten bewegen?

Ist meine folgende Annahme richtig:
Um den Motor korrekt zu kommutieren, muss ich nach dem Ausschalten des 
Highside-FETs der Phase A die Zeit messen, bis der Komparator eine 
negative Flanke liefert (denn dann ist die BEMF = 1/2 der 
Zwischenkreisspannung), und dann nochmals so lange warten, und dann den 
Lowside-FET einschalten. Ist das richtig?

von Tobias P. (hubertus)


Angehängte Dateien:

Lesenswert?

Nun kommt noch die PWM ins Spiel. In meinem Fall lasse ich den 
Highside-FET dauernd an, und takte nur den Lowside-FET, was zu den 
Signalen führt, welche ihr im Anhang seht.
Aufgrund der PWM ist natürlich auch die BEMF-Spannung ver"rauscht", und 
der Komparator liefert kein schönes Signal mehr, sondern schaltet 
ständig um. Ist meine Idee richtig, dass ich den Ausgang des Komparators 
auf ein D-Flipflop führen könnte, dessen Clock mit der PWM verbunden 
ist? dann müsste das Flipflop ja eigentlich immer dann, wenn der 
lowside-FET eingeschaltet ist, das vom Komparator gelieferte Signal 
übernehmen, und ich hätte die PWM zuverlässig ausgeblendet. Funktioniert 
sowas?
Ich habe leider kein D-FF zur Hand, um das jetzt ausprobieren zu können, 
deshalb die Frage.

Gruss Tobias

von Simon K. (simon) Benutzerseite


Lesenswert?

Die Spikes entstehen während der Kommutierungsphase. Es gibt einen 
Zeitpunkt, wo kein MOSFET in der Halbbrücke leitet. Da arbeitet die 
Induktivität des Motors im Freilauf und induziert eine Spannung. Ist 
aber relativ normal.
Man sieht ja auch, dass die Spikes nie größer als VCC oder kleiner als 
GND werden, was den parasitären Dioden in den MOSFETs zu verdanken ist.
Das wird übrigens als "commutation noise" bezeichnet.

Wenn man die Spikes nicht herausfiltert (was ja eine Verzögerung in die 
Regelschleife bringt), dann muss man schauen, dass man erst kurz nach 
den Spikes den Komparator, bzw. dessen Auswertung "scharf" schaltet.

http://atmel.com/dyn/resources/prod_documents/doc8012.pdf

siehe Seite 8.

Tobias Plüss schrieb:
> Ist meine folgende Annahme richtig:
> Um den Motor korrekt zu kommutieren, muss ich nach dem Ausschalten des
> Highside-FETs der Phase A die Zeit messen, bis der Komparator eine
> negative Flanke liefert (denn dann ist die BEMF = 1/2 der
> Zwischenkreisspannung), und dann nochmals so lange warten, und dann den
> Lowside-FET einschalten. Ist das richtig?

Das ist der Algorithmus, den man am häufigsten sieht, ja.
Schau mal die ganzen App Notes durch:
http://atmel.com/dyn/products/app_notes.asp?family_id=607
(Strg+F und dann nach "brushless" suchen).
Da findeste ne Menge dazu, wann, wie, warum und wieso nicht anders 
kommutiert wird.

von Simon K. (simon) Benutzerseite


Lesenswert?

Zu der Sensorless Kommutierung ohne Filter (um die PWM herauszufiltern) 
siehe:

http://scholar.lib.vt.edu/theses/available/etd-09152003-171904/unrestricted/T.pdf

von Tobias P. (hubertus)


Lesenswert?

Hallo Leute,
danke für eure Posts! Also bin ich offenbar doch nicht ganz auf dem 
Holzweg.
Jetzt noch eine Frage: ich habe beim Lesen verschiedener AppNotes 
folgendes gelesen:

Normalerweise wird für die PWM eine Phase fest nach + geschaltet, und 
der lowside-FET der anderen Phase wird getaktet.
Man kann aber einen sogenannten "aktiven Freilauf" machen, indem man 
abwechslungsweise den lowside- und den Highside-FET einschaltet. Als 
Beispiel:

Phase A liegt zuerst auf Masse, Phase B auf +
Anschliessend wird (natürlich PWM-mässig) Phase A auf + und Phase B auf 
- gelegt. Dadurch soll die BEMF angeblich besser messbar sein. Beim 
"normalen" Verfahren, wo nur der lowside-FET getaktet wird, springt die 
Spannung an der nicht bestromten Phase (wo ja die BEMF gemessen werden 
soll) zwischen U_BEMF und VCC hin- und her, da ja beim Ausschalten des 
lowside-FETs eine Selbstinduktionsspannung in der Wicklung induziert 
wird, welche über die Bodydiode des oberen FET abfliessen kann.
Bei der "verbesserten" Methode, wo beide FETs getaktet werden, und beide 
Phasen immer entweder mit + oder Masse verbunden sind, kann die 
BEMF-Spannung aber nicht irgendwo hin- und her springen, sondern sie ist 
mehr oder weniger glatt.

Was ist nun das bessere Verfahren? takten von beiden FETs, oder nur von 
einem?

Des weiteren würde ich gerne ein D-Flipflop zum Synchronisieren der 
Komparator-Ausgangsspannung mit der PWM verwenden. Jedoch gibt es ja den 
Commutation Noise (also die beiden recht hohen Spikes, welche jeweils 
beim Ausschalten einer Phase entstehen und immer da sind), und dieser 
bringt den Komparator ja wie ihr auch auf dem ersten Bild sehen könnt 
jeweils auch kurz zum Umschalten. Würde zufälligerweise genau zu diesem 
Zeitpunkt eine PWM-Flanke auftreten, dann würde das Flipflop den 
(falschen) Zustand des Komparators übernehmen, und es würde (wenn auch 
nur kurzzeitig) ein falsches Kommutierungssignal geliefert. Wie könnte 
man das elegant umgehen?

von MaWin (Gast)


Lesenswert?

> Woher kommen die beiden Spikes an der Phase A,

Deine H-Brücke schaltet erst den leitenden Transistor aus,
und dann den neuen ein.

Dabei entsteht der Effekt, daß der Strom, der durch die Motorspule floss 
(auch und vor allem durch die wohl etwas lange Zuleitung) gerne 
weiterfliessen will, was sich in einem Spannungsanstieg aka "Zündfunke" 
äussert, bis die Paralleldiode des jeweils anderen Transistors leitet.

Diese Spikes versauen dir deine ganze Messung.

Du solltest H-Brücken mit weniger dead time nehmen, und viel kürzere 
Leitungen zum Motor.

> Aufgrund der PWM ist natürlich auch die BEMF-Spannung ver"rauscht",

Nein, die ist nicht auf Grund der PWM verrauscht, das müsste nämlich mit 
der Motorinduktivität ein sauberes dreieckiges Signal kleiner Amplitude 
ergeben, sondern sie ist durch deine Spikes verrauscht, bis zur 
Unbrauchbarkeit verrauscht, man sieht nur SPikes und gar keinen 
Spulenstrom.

Führe dein Signal zum Komparator (der eine kleine Hysterese haben 
sollte) durch ein RC-Glied.

von Tobias P. (hubertus)


Lesenswert?

Hi MaWin,

> Deine H-Brücke schaltet erst den leitenden Transistor aus,
> und dann den neuen ein.

Das ist absolut richtig, und auch gewollt so. Ich habe da eine 
hardwaremässige Verriegelung drin, sodass niemals zwei Transistoren im 
gleichen Zweig eingeschaltet sein können (dead-time).

> > Aufgrund der PWM ist natürlich auch die BEMF-Spannung ver"rauscht",

> Nein, die ist nicht auf Grund der PWM verrauscht, das müsste nämlich mit
> der Motorinduktivität ein sauberes dreieckiges Signal kleiner Amplitude
> ergeben, sondern sie ist durch deine Spikes verrauscht, bis zur
> Unbrauchbarkeit verrauscht, man sieht nur SPikes und gar keinen
> Spulenstrom.

Mag sein, aber ich behaupte mal, dass niemals ein sauberes Signal 
rauskommen wird. Die BEMF-Spannung addiert sich ja zu der Spannung am 
Sternpunkt, und der Sternpunkt "wackelt" immer hin- und her, wenn der 
highside-FET eingeschaltet bleibt, und der lowside-FET taktet.
Ist der lowside-FET eingeschaltet, dann ist der Sternpunkt schön in der 
Mitte, und die Spannung am nicht bestromten Motoranschluss ist 1/2 VCC + 
U_BEMF. Sobald der lowside-FET ausschaltet, ist der Sternpunkt doch 
nicht mehr in der Mitte der Versorgungsspannung - er hängt ja dann quasi 
über eine einzelne Wicklung an VCC, während die beiden anderen 
Anschlüsse in der Luft hängen. Die gemessene Spannung an der freien 
Phase wäre dann VCC + U_BEMF; die im FET integrierte Diode begrenzt 
diese Spannung aber auf max. VCC.
Ich behaupte, dass dies der Grund ist, warum man die PWM in der 
Ausgangsspannung sieht. Das lässt sich auch nicht vermeiden.

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
Noch kein Account? Hier anmelden.