Forum: Mikrocontroller und Digitale Elektronik BLDC Kommutierung


von Peter (Gast)


Lesenswert?

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

von Pepe T. (honkler)


Lesenswert?

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.

: Bearbeitet durch User
von Peter (Gast)


Lesenswert?

Aber ein festes Timing bringt mir ja nichts wenn die Drehzahl unter Last 
sinkt. Etwas tut sie das ja trotzdem.

von Pepe T. (honkler)


Lesenswert?

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.

von Peter (Gast)


Lesenswert?

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?

von Pepe T. (honkler)


Lesenswert?

Willst du eine stabile drehzahl oder nicht?

Peter schrieb:
> Kann mir da jemand helfen um die Drehzahl unter Last
> stabiler zu halten?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Peter schrieb:
> dann flexibel vorauszueilen?
Was bringt dir ein beliebig "flexibles Vorauseilen", wenn das vom 
maximalen Strom erzeugte Moment nicht zum "Nachfolgen" reicht?

von Peter (Gast)


Lesenswert?

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.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

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.

: Bearbeitet durch User
von Peter (Gast)


Lesenswert?

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 vom Autor gelöscht.
von Peter (Gast)


Lesenswert?

Nein, wüsste gerade nicht wie. Dachte, dass ich das teste wenn ich weiss 
wie ich das Geld vorauseilen lasse.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

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.

: Bearbeitet durch User
von Peter (Gast)


Lesenswert?

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

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

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.

: Bearbeitet durch User
von Peter (Gast)


Lesenswert?

Klar stimmt. Bei 100% gibt es nix mehr. Werde mal mit dem Oszi prüfen ob 
die lückenlos ankommen

von Peter (Gast)


Lesenswert?

Wobei selbst bei 100% kann ich eher oder später umschalten

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Peter schrieb:
> Wobei selbst bei 100% kann ich eher oder später umschalten

Klar, aber wie schon gesagt, da kannst du nichts merkbares rausholen. 
Wenn der Motor am Ende ist, ist nun mal nix zu holen, was magisch mehr 
Kraft bringt.

von Thomas (kosmos)


Lesenswert?

vielleicht wäre ein Getriebe (Untersetzung) etwas für dich. Nur so wirst 
du den Strom senken können um diesen als Drehmomentreserve vorhalten zu 
können.

von Peter (Gast)


Lesenswert?

Aber wie machen das Werkzeuge? Die haben scheinbar extreme Reserven. Die 
gleichen Motoren sterben bei mir bei reinem block

von Herbert (Gast)


Lesenswert?

Stimmt die Versorgungspannung mit dem Motor überein? Zu dünne 
Verbindungsdrähte?

von Herbert (Gast)


Lesenswert?

Falls die Hallsensoren von Fabrikseite montiert wurden, sollte die 
Position normalerweise stimmen, da gibts es nicht viel zu optimieren.

von Peter (Gast)


Lesenswert?

Drähte und Leiterbshnen sind eher überdimensional

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Peter schrieb:
> Aber wie machen das Werkzeuge?

Da ist natürlich ein Getriebe drin. Und die Versorgung ist kräftig 
ausgelegt, genauso wie die Endstufen. Alles sehr niederohmig ausgelegt.

von Herbert (Gast)


Lesenswert?

Hat der Motor Dauermagnete oder muss womöglich fremderregt werden?

von Peter (Gast)


Lesenswert?

Was meinst du mit niderohmig?

Es sind dauermagneten

von my2ct (Gast)


Lesenswert?

Peter schrieb:
> ... niderohmig ...

Ja, so kannst du es auch nicht verstehen ;-)
Probier´s mal mit "nieder" (https://www.wortbedeutung.info/nieder/)

von Achim H. (pluto25)


Lesenswert?

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.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Peter schrieb:
> Was meinst du mit niderohmig?

Kräftige Leltungen, niederohmige MOSFet, geringer Innenwiderstand der 
Versorgung usw. Alles auf hohe Ströme ausgelegt. Deswegen kann so ein 
BLDC Akkuschrauber auch mal einen M10 Bolzen abreissen.

von Stephan (Gast)


Lesenswert?

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.

von Pepe T. (honkler)


Lesenswert?

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

Auch meine vermutung.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

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.

von MaWin (Gast)


Lesenswert?

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 ?

von Peter (Gast)


Lesenswert?

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.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Peter schrieb:
> Bei
> 60° klingt das Motor wie eine Drohne

Da bist du schon im nächsten Sektor, wenn deine Gradangaben stimmen. Ich 
habe dir aber vorhergesagt, das der Motor kein bisschen kräftiger wird. 
Vllt. postest du endlich Motortyp und Ansteuerungsplatine.

von Herbert (Gast)


Lesenswert?

Welche Leistung ist beim Motor angegeben? Eine Beobachtung des Motors 
oder des Controllers mit dem Oszi könnte doch etwaige Fehler 
aufdecken...

von Peter (Gast)


Lesenswert?

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.

von Purzel H. (hacky)


Lesenswert?

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..

: Bearbeitet durch User
von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

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.

von Herbert (Gast)


Lesenswert?

MCLV-2 hat Stromüberwachung und Überstromschutz...

von Herbert (Gast)


Lesenswert?

Da nützen auch stärkere Fets nichts.

von Peter (Gast)


Lesenswert?

Shunts sind ausgelötet und die steomüberwachung ausprogrammiert

von Peter (Gast)


Lesenswert?

Aber vielleicht sind es die dünnen leiterbahnen zum Motor die hier 
hindern

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Peter schrieb:
> Shunts sind ausgelötet und die steomüberwachung ausprogrammiert

Ich glaube nicht, das wir hier so weiterkommen. Du hast immer noch 
nichts zum Motor und deiner Stromversorgung gepostet. Mit dem IRFS7430 
hast du dir auch die Chance verbaut, auf 48V Versorgung zu gehen.
Auch Fotos vom Aufbau können nützlich sein.

von Peter (Gast)


Lesenswert?

Wieso ist die Chance verbaut auf 48 Volt zu gehen

von MaWin (Gast)


Lesenswert?

Peter schrieb:
> Shunts sind ausgelötet und die steomüberwachung ausprogrammiert

Dann kann das nicht mehr funktionieren.

Dir fehlen Grundlagen

von Peter (Gast)


Lesenswert?

Hä, warum sollte das nicht mehr funktionieren? Es geht doch nur darum 
sich nicht zu begrenzen.

von Herbert (Gast)


Lesenswert?

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.

von Peter (Gast)


Lesenswert?

Du wirst es nicht glauben. Natürlich habe ich anstelle der Shunts, 2qmm 
Draht gelötet ;)

von Marvin M. (Gast)


Lesenswert?

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.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

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.

: Bearbeitet durch User
von Peter (Gast)


Lesenswert?

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.

von Herbert (Gast)


Lesenswert?

Peter schrieb:
> um die
> dünnen Leiterbahen auszuschliesen.
Glaube kaum, dass es an den Leiterbahnen liegt, ein derart grosser 
Leistungsabfall hätte die Leiterbahnen schon lange abbrennen lassen.

von Peter (Gast)


Lesenswert?

Daran lag es auch nicht...
Keine Änderung unter Last. Ich merke nur, ohne vorauseilen fällt die 
Drehzahl mehr als mit, bei 100% Duty.

von Peter (Gast)


Lesenswert?

Interessant, bei 5 kHz hat der Motor im Leerlauf schon weniger Drehzahl 
als bei 20 kHz

von Peter (Gast)


Lesenswert?

Ist das obige normal?

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.