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