Sinuskommutierung BLDC Drehzahlmessung

Gast #2590023
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
#2590212
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.
Gast #2590474
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.
Gast #2592105
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?
#2663867
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

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.