BLDC Kommutierung

Gast #7084030
Hallo,
ich arbeite aktuell daran einen BLDC mit Hallsensoren und PIC32 zu 
kommutieren. Im Leerlauf klappt auch alles super nur unter Last bricht 
die Drehzahl rapide ein. Nun habe ich etwas von Advanced kommutierung 
gelesen. Bedeutet das, man kommutiert bereits vor dem Hall Signal oder 
eher verzögert? Kann mir da jemand helfen um die Drehzahl unter Last 
stabiler zu halten?

Gruß Peter
Schau dir mal die Konze BLDC ESC software an (falls du avr asm 
verstehst).

Eigentlich kannst du nach dem hochfahren auf eine fixe timerbasierte 
kommutierung umstellen. Der hall sensor sagt dir dann ob der rotor 
hinterherhinkt oder vorauseilt. Je nachdem jagst du dann mehr oder 
weinger strom durch die windungen.

Du hast dann noch ein gewisses phasenrauschen, aber die drehzahl ist 
quartzgenau stabil.
Peter schrieb:
> Aber ein festes Timing bringt mir ja nichts wenn die Drehzahl unter Last
> sinkt. Etwas tut sie das ja trotzdem.

Wenn du merkst dass der rotor zu stark hiterherhinkt dann gibst du mehr 
strom. Erst wenn das trotz maximalstrom nicht bessert ist der motor zu 
schwach, dann musst du drehzahl senken.
Gast
Trotzdem finde ich das zu unflexibel. Sobald die Drehzahl fällt, rennt 
der Timer davon.

Wäre es besser die Zeiten zwischen den Hall-Signalen zu nehmen und dann 
flexibel vorauszueilen?
Gast
Klar will ich eine konstante Drehzahl. Ich weis aber auch, dass diese 
unter Last nicht Konstant bleiben kann weil der Motor vielleicht zu 
knapp bemessen ist. Aber er darf nicht ganz so in die Knie gehen. Nehmen 
wir ein Akkuschrauber. Der wird unter Last auch langsamer aber bringt 
volles Moment. Mein Motor bei Hall Kommutierung stirbt da voll ab.
(Firma: matzetronics)
Entweder ist der Motor einfach zu schwach (oder deine 
Versorgung/Endstufe) oder du musst einen Regler einstricken. Dazu gibts 
ja genug Rechenpower im PIC32. Ist-Grösse ist praktischerweise die Zeit 
zwischen 2 Hallevents.
Machst du Block oder Sinuskommutierung?
Vor allem bei Sinus kann man die Hallevents zeitlich etwas verschieben. 
Aber weniger fürs Drehmoment, sondern eher für die Geräuschentwicklung.
Gast
Ich mache das mit Block.
Also nehme ich bei konstanter Drehzahl die Zeit zwischen zwei Hall 
Signalen, verschiebe das dann um x us nach vorne und behalte dann die 
Abstände wieder gleich?
Beitrag #7084192 wurde von einem Moderator gelöscht.
(Firma: matzetronics)
Peter schrieb:
> Also nehme ich bei konstanter Drehzahl die Zeit zwischen zwei Hall
> Signalen, verschiebe das dann um x us nach vorne und behalte dann die
> Abstände wieder gleich?

Wie gesagt, das hat wenig Einfluss aufs Drehmoment, wenn die Sensoren 
richtig montiert sind. Man kann da ein wenig hin- und hershiften, aber 
ändern tut sich da eher was am Laufgeräusch.
Nein, wenn dein Motor zu schwach ist, musst du mit dem PIC nachregeln 
und zwar z.B. mit einem PID Regler. Die Sollgrösse bestimmst du und die 
Ist-Grösse ist der zeitliche Abstand von 2 Hallevents als Meßgröße für 
die Geschwindigkeit des Motors. Das fütterst du in den Regler und 
steuerst mit seinem Ausgang die Motor-PWM.

Ich habe an meinen Motoreelektroniken eine serielle Konsole und kann so 
im Betrieb die P,I und D Parameter ändern.
Gast
Aber mehr als 100% Duty geht ja nicht. Trotzdem bricht die Drehzahl ein…

Wenn ich Phase Advanced google finden sich Diagramme dass das Drehmoment 
und Drehzahl größer werden
(Firma: matzetronics)
Peter schrieb:
> Aber mehr als 100% Duty geht ja nicht. Trotzdem bricht die
> Drehzahl ein…
>
> Wenn ich Phase Advanced google finden sich Diagramme dass das Drehmoment
> und Drehzahl größer werden
Das ist aber sehr abhängig von der Drehzahl - du müsstest diese auf 
jeden Fall in die Schieberei des Umschaltpunktes mit einbringen. Sonst 
gibts nämlich Punkte, an denen der Motor gar nicht mehr anläuft oder 
Drehmoment verliert.
Aber wenn du schon auf 100% bist, ist eh alles vorbei. Dann ist der 
Motor einfach zu schwach für den vorgesehenen Zweck. Da hilft Zeitpunkte 
shiften auch nicht mehr.
Wenn bei jedem Impuls geschaltet wird ist der Motor schon bei 100%. Da 
kann nur noch über die Versorgungsspannung geregelt werden. Halbiere die 
Drehzahl dann ist die Einschaltdauer im Leerlauf vielleicht 5% damit 
sind nuch 95% Reserve übrig die Drehzal zu halten.
Gast
Vielleicht mal die Abgabeleistung mit den Nenndaten des Motors 
abgleichen.
Oder das ganze mit nem gekauften Regler vergleichen.

Wenn die Kommutierung grob falsch programmiert ist kanns natürlich sein, 
dass da kein Drehmoment rauskommt.
(Firma: matzetronics)
Stephan schrieb:
> Wenn die Kommutierung grob falsch programmiert ist kanns natürlich sein,
> dass da kein Drehmoment rauskommt.

Das ist ja leicht zu prüfen. Der Motor muss einfach in jeder Lage von 
alleine anlaufen und durchziehen. Mehr kann da nicht schief gehen. Wenn 
das kein selbstgebauter Motor ist, wird die Lage der Sensoren auch 
richtig sein.
Gast
Peter schrieb:
> unter Last bricht die Drehzahl rapide ein.

Hast du mal auf einem Ostilloskop betrachtet, ob die Hallsensorsignale 
unter Last immer noch synchron zur Motorachse erfolgen  oder ob die 
Spulenströme des Motors die Kommutierungspunkte beeinflussen ?
Gast
Ich habe heute mal das vorauseilende Schalten Probiert. Egal ob bei 10° 
oder 60° im Unterschiedzu 0° wird die Drehzahl im Leerlauf höher. Bei 
60° klingt das Motor wie eine Drohne, was bei 0° Teilweise ein holpern 
ist. Unter Last fällt die Drehzahl dann aber bei jeer Eisntellung genau 
so weit ab wie ohne vorauseilendes Schalten.
Gast
Getestet habe ich jetzt bei 18 Volt und 60 Ampere, da fällt es stark 
auf. Geteste wird mit dem MCVL-2 von Microchip. Diese Paltine ist aber 
nur für 10 Ampere ausgelegt. Eventuell ist das Layout zu schwach? Die 
Mosfet habe ich zu IRFS7430 getauscht.
Wenn der Motor ja Permanentmagneten drin hat, kannst du das Drehmoment 
abschaetzen. Nimm einen Akkuschrauber und drehe am Motor. Der Strom der 
rauskommt, ist proprtional zum Drehmoment, die Spannung proportional zur 
Drehzahl.
Also einfach mal den Motor mit Widerstaenden belasten und den Strom 
messen.


Die 100% dutycycle gehoeren natuerlich zu einer Spannung. Allenfalls 
kann man die spannung erhoehen..
(Firma: matzetronics)
Peter schrieb:
> Geteste wird mit dem MCVL-2 von Microchip.

Das mag ja ein nettes kleines Board sein, aber schon die verbauten 
Shunts limitieren den möglichen Strom auf wenige Ampere. Da es ein 
Entwicklungstool ist, mussten die Microchip Jungs auch mit Fug und Recht 
keine dicken Endstufen verbauen, da 48V/10A für die vorgesehenen Motoren 
wirklich ausreichen.
Gast
Falls du wirklich die shunts ausgelötet hast, ist die Stromzufuhr zu den 
Fets und somit zum Motor unterbrochen. Den Abgriff Richtung MC würde ich 
an deiner Stelle nicht manipulieren, weil sonst möglicherweise der 
Stromfluss nicht mehr kontrollierbar ist, oder dein Controller Schaden 
nimmt.
Gast
Moin,
So ein Verhalten hatte ich auch mal. Motor wenig Kraft, lief nicht ohne 
weiteres an (man musste ihn anwerfen).
Das Problem saß wie immer vor dem Monitor. Das Timing stimmte 
schlichtweg nicht, bemerkt hatte ich es, als ich den Motor rückwärts 
laufen lassen wollte.
Ich hatte zum Schluss eine extrem simple SW, die je nach Zustand der 
Sensoren die passenden Spulen ansteuert - d.h. man holt aus den 
Sensordaten 6 Zustände raus und weist die den 6 möglichen Zuständen für 
die Spulen zu. Kein nach- oder vorauseilen, keine Berechnung 
irgendwelcher UPM oder sonstwas. Der BL-Motor verhält sich - wenn alles 
passt - wie ein normaler DC, d.h. die Drehzahl sinkt mit Belastung und 
der Strom steigt. Wenn diesen Stand erreicht hat, kann man eine 
Drehzahlregelung oben drauf packen.
(Firma: matzetronics)
Peter schrieb:
> Wieso ist die Chance verbaut auf 48 Volt zu gehen

Datenblatt des IRFS7430: VDS max. 40V

Marvin M. schrieb:
> Motor wenig Kraft, lief nicht ohne
> weiteres an (man musste ihn anwerfen).

Über dieses Stadium sollte der TE aber hoffentlich hinaus sein. Ich 
schrieb oben schon mal

Matthias S. schrieb:
> Der Motor muss einfach in jeder Lage von
> alleine anlaufen und durchziehen. Mehr kann da nicht schief gehen.

Ja, das kann man mit einem einfachen Array lösen, oder bei fertigen 
Kontrollern die richtigen Anschlüsse der Sensoren und Phasen 
ausprobieren. Das ist besonders lustig, wenn du, wie ich, einen 6kW 
Motor an einen Kelly Controller anpassen musst, ohne das der Lieferant 
die blasseste Ahnung hat und du in einer kalten Halle voller Schiffe 
sitzt.
Gast
Motoranlauf und Drehrichtungsänderung, das passt alles. Ich löte jetzt 
den Motor sowie Spannungsanschluss direkt an die Halbbrücken um die 
dünnen Leiterbahen auszuschliesen.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 4 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.