Forum: Mikrocontroller und Digitale Elektronik Sinuskommutierung BLDC Drehzahlmessung


von BLDC1203 (Gast)


Lesenswert?

Hi,

ich möchte einen sensorlosen BLDC Motor an einem µC betreiben. Als 
Kommutierung möchte ich eine Sinuskommutierung umsetzen. Ich verwende 6 
PWM Signale um den Sinus der 3 Phasen zu erzeugen. Der Motor dreht sich 
auch schon, allerdings habe ich bisher eine feste Kommutierung 
vorgegeben.

Ich möchte nun eine Drehzahlregelung implementieren, da Stoße ich aber 
auf einige Probleme, da ich nicht weiß wie ich die BEMF am besten bei 
einer Sinuskommutierung messen kann. Ich finde leider auch nur jede 
Menge Artikel zu Blockkommutierung, nichts aber für eine 
Sinuskommutierung.

Ich suche also eine Lösung, die BEMF bei einer Sinuskommutierung 
vernünftig messen zu können. Vielleicht kennt ja auch jemand noch eine 
Appnote zu diesem Thema, die ich noch nicht gefunden habe. Vielen Dank 
schonmal.

Grüße BLDC1203

von Alex E. (tecnologic) Benutzerseite


Lesenswert?

Moin

such mal Feldorientierter Regelung (FOC) Microchip hat da was für den 
dsPic, bzw such mal im Forum, Stichworte FOC, SVPWM, 
Raumzeigermodulation.

MfG

Tec

von Johannes E. (cpt_nemo)


Lesenswert?

Bei Sinus-Kommutierung kannst du die EMK nicht direkt messen, da ständig 
ein Strom fließt. Du musst also erst mal die Klemmenspanung und den 
Motorstrom messen und die PWM-Frequwnz herausfiltern, so dass ein Sinus 
übrig bleibt.

Über ein Motormodell kannst du aus dem gemessenen Strom den induktiven 
und ohmschen Anteil der Motorspannung berechnen und von der gemessenen 
Klemmenspannung subtrahieren. Übrig bleibt dann die EMK-Spannung.

Das hört sich relativ einfach an, ist in der Praxis aber schon ziemlich 
komplex. Es gibt da zahlreiche Patente und Veröffentlichungen dazu, 
einfach mal nach "sensorless foc" googeln.

von BLDC1203 (Gast)


Lesenswert?

Für FOC weiß ich nicht ob die Rechenleistung meines µC dafür reicht. 
Wenn es ohne FOC realisierbar ist, würde ich das erstmal versuchen.

Ich habe auch schon einmal etwas über ein Einfügen eines kleines 
Messfensters gelesen, in der der Sinus kurzzeitig ausgesetzt wird und 
somit die BEMF gemessen werden kann. Allerdings habe ich dazu noch keine 
weiteren Informationen gefunden.

von BLDC1203 (Gast)


Lesenswert?

wenn ich mir das motormodell anschaue, also

Vs = R*Is + L d/dt * Is + Vemk

ist ja Vs = Vemk wenn der Strom 0 ist.


Wenn ich also die Spannung an der Phase messe wenn der Strom 0 ist, dann 
sollte das ja die EMK sein. Allerdings ist das halt nur ein einzelner 
Wert.


Nochmal zur Ansteuerung des BLDC Motors. Die Gegen EMK sollte ja eine 
Sinusspannung sein, genauso die Spannung an der Phase. Wenn der Motor im 
Leerlauf läuft, sollte der Phasenversatz dieser beiden Sinusspannungen 
gegen 0 gehen. Sobald ich den Motor belaste würde der Phasenversatz 
immer größer werden bis zu einem maximalen Versatz bei dem der Motor 
dann stehen bleibt. Ist diese Überlegung korrekt?

von Florian S. (flocki)


Lesenswert?

Serwus,

falls das Thema noch aktuell ist: Ich habe das Verfahren von Microchip 
(AN1078) in etwas abgeänderter Form auf einem dsPIC implementiert. 
Funktioniert sehr gut, Rechenleistungsmäßig kein Problem.

Falls es dazu Fragen gibt, einfach melden.

Mfg Flo

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.