Forum: Mikrocontroller und Digitale Elektronik Erste Versuche mit einem BLDC - garnicht so leicht :-\


von Eberhard (Gast)


Lesenswert?

Guten Abend Freunde der Nacht!

Ich wollte mir mal ein paar Ratschläge von euch holen. Ich mache gerade 
meine ersten Versuche mit BLDC-Motoren (ohne Hall-Sensoren). Ich habe 
mir eine dreifach H-Brücke aufgebaut, erstmal noch mit p- und n-Kanälern 
- angesteuert wird das ganze vorerst durch das LaunchPad, daher sind 
meine Möglichkeiten auch erstmal begrenzt.

Die ganzen AppNotes von Microchip etc. habe ich bereits durchgelesen

Momentan möchte ich den Motor auch erstmal nur gescheit zum Laufen 
bringen, daher erstmal ein paar Fragen.

Kann ich den Motor überhaupt ohne Rotor-Positions-Erkennung halbwegs 
gescheit laufen lassen, indem ich das Drehfeld vorgebe? Ich mache das 
momentan so und er dreht sich auch, jedoch würde ich das ganze nicht als 
gut bezeichnen, denn

- die Geschwindigkeit lässt sich durch das Timing in Software (momentan 
einfach noch delay-Zyklen zwischen den Phasenwechseln) nicht wirklich 
regulieren...entweder geht es, oder nicht - die Umdrehungen sind noch 
leicht mit dem Auge zu verfolgen, also nicht wirklich schnell...

- die Halbbrücken werden extrem heiß, sobald ich den Strom weiter als 
500mA aufdrehe...kann dies evtl. auch daran liegen, dass mit die 
Spannung soweit einbricht, dass die FETs nicht mehr gescheit schalten?

- der Motor ist ein Wald und Wiesen-Motor, den ich mir in der Bucht 
geschossen habe, Nominalstrom ist 15A, das kann mein Netzteil eh nicht, 
da müssten dann Akkus her, aber da habe ich bedenken, dass die Brücken 
direkt abrauchen

Mir ist klar, dass die ganze Geschichte sinnvoll kommutiert werden muss, 
aber es geht mir grad erstmal um das Grundverständnis und vor allem ein 
paar Oszi-Bilder zwecks BEMF usw.

Soweit ich da mittlerweile druchblicke, regel ich mit der PWM ja die 
Drehzahl und die Kommutierung muss dann gemäß der Rotorposition 
erfolgen. Anhand der Phasenwechsel kann ich auf die Drehzahl schließen, 
sofern der Motor synchron läuft.

Mein Ziel ist im Endeffekt, die PWM von einem Controller-Pin auf 
AND-Gates zu führen und mit dem zweiten Eingang dann das Gate und damit 
den FET zu schalten - schlechte Idee (also ist ja nicht meine 
Idee...sagen wir "schlechte Variante")?


So, das erstmal - ich würde mich freuen, wenn ihr mir ein paar Zeilen 
zurückschreiben könntet.


Vielen Dank

von Eberhard (Gast)


Lesenswert?

Eberhard schrieb:
> dreifach H-Brücke

Ich meine natürlich 3x eine Halbbrücke, aber ich denke, das ist klar.

von Dr.Schmock (Gast)


Lesenswert?

Hallo.

Ich habe auch mal eine Feldorientierte Regelung implementiert .. hatte 
auch deine Erfahrungen gemacht.
Ohne Lageerkennung, ob Hallsensoren oder BEMF, bekommt man kein stabiles 
Verhalten hin. Der Motor kommt außer Tritt, wenn er etwas schneller 
läuft, und die Transistoren werden heiß.

Texas Isntruments veröffentlich auch einiges brauchbares material auf 
seienr Homepage, kannst ja mal nach "Motor Control Primer" suchen).

Das mit dem AND-Gatter hab ich nicht verstanden.

von MaWin (Gast)


Lesenswert?

Also wenn dein Netzteil den Strom nicht bringt,
kannst du den Test vergessen.

Im Prinzip gilt: Ohne Hallsensoren kannst du den Motor
nur langsam anfahren und abbremsen und er muß gegen
eine steigende Kraft arbeiten - Propeller, Gebläse,
Pumpen, Festplatten.

Denn im Prinzip ist der Strom ja die Kraft also das
Drehmoment und wenn nichts da ist, wogegen die
arbeiten kann, dann dreht der Motor nicht in einer
sinnvollen Art, spätestens wenn der Strom so weit
steigt wie es der ohm'sche Drahtwickelwiderstand
bei der Spannung vorgibt, dann hast du ein Problem,
weil der Motor seine überschüssige Kraft irgendwohin
loswerden muß, auch in sinnloses rumzappeln.

Hast du anfahren unter Last, oder soll die Drehzahl
bei unterschiedlichem Drehmoment geregelt werden,
dann brauchst du Sensoren (auch BackEMF wäre ein Sensor).

von Eberhard (Gast)


Angehängte Dateien:

Lesenswert?

Dr.Schmock schrieb:
> Das mit dem AND-Gatter hab ich nicht verstanden.

Siehe Anhang

MaWin schrieb:
> Also wenn dein Netzteil den Strom nicht bringt,
> kannst du den Test vergessen.

Das denke ich auch, da die Gates garnicht die benötigte Spannung am Gate 
bekommen. Ich werde mir nachher mal einen schwächeren Motor 
besorgen...ne alte Festplatte oder so.

MaWin schrieb:
> er muß gegen
> eine steigende Kraft arbeiten - Propeller, Gebläse,
> Pumpen, Festplatten.

Also ohne Last läuft das Ding nicht rund?

MaWin schrieb:
> dann brauchst du Sensoren

OK, dachte vielleicht, ich kann den erstmal irgendwie ohne Sensoren 
durch ein Drehfeld rotieren lassen, aber naja.

von Jörg E. (jackfritt)


Lesenswert?

Ich habe zwar keine Ahnung, aber mein Modellbaumotor dreht auch ohne 
Last prima hoch. Und auch wieder runter. Der hat auch keine Sensoren.
Also scheint das in gewissen Bereichen auch ohne zu klappen oder ?
Ich habe schon Schaltungen im Netz gesehen wo die Strommessung der drei 
Wicklungen erfasst wurde. Eventuell wird darüber etwas geregelt ?

Und wenn dein Netzteil den Strom nicht schafft macht deine Schaltung 
irgendwas aber bestimmt kein vernünftiges Regeln mehr ;)

Gruss,

Jörg

von Düsendieb (Gast)


Lesenswert?

Eberhard schrieb:
> Siehe Anhang

Dass die Dreiecke Gatetreiber sein sollen, hast Du aber beachtet?

von ZS (Gast)


Lesenswert?

Hallo,
schau doch mal bei microkontroller.net unter quadrokopter nach. Da ist 
alles beschrieben mit Bauanleitungen.

Gruß

von Eberhard (Gast)


Lesenswert?

Düsendieb schrieb:
> Dass die Dreiecke Gatetreiber sein sollen, hast Du aber beachtet?

??

Verstehe nicht ganz, was du meinst. Ich habe die Dinger jetzt nur mal 
ersatzweise darein gezeichnet. Das sollen Treiber sein, ja (symbolisch).

von Eberhard (Gast)


Lesenswert?

Mal ne andere Frage: Die Verlustleistung am FET...was geht noch ohne 
Kühlkörper?

Ich habe ja vorerst vor, als High-Side p-Kanäler zu nehmen. Die haben 
einen rdson von 20mOhm - wenn der Motor jetzt 15A zieht, dann habe ich 
über dem FET ja immerhin schon eine Verlustleistung von
Ist ja schon nicht ganz ohne...

Selbst beim n-Kanäler mit 8mOhm ist die Verlustleistung 1,8W.

Wie sind denn dann die 100A-Regler aufgebaut? Groß sind die ja auch 
nicht.

von Zorg (Gast)


Lesenswert?

mehrere N MOSFETs parallel  und natürlich gescheite Gatetreiber...

von hubert (Gast)


Lesenswert?

Hi,

schau dir deine 2 ansteuerungssignale an! Es kann sein das deine Low und 
Highfets zeitweise offen bzw geschlossen sind und so ein Kurzschluss 
verursacht wird! (ich geh davon aus das du jetzt keinen Treiber benutzt)

Es kann auch sein (falls du keine Treiner benutzt) das deine Flanken an 
den Mosfets nur langsam steigen -> verlustleistung im Fet steigt (je 
nach frequenz des gatesignals)

Es wäre hilfreich zu wissen wie die gesamtschaltung nun aussieht.

von gaast (Gast)


Lesenswert?

Eberhard schrieb:
> Also ohne Last läuft das Ding nicht rund?

Nicht, wenn du einfach blind ein Drehfeld mit voller Betriebsspannung 
anlegst.

Eberhard schrieb:
> OK, dachte vielleicht, ich kann den erstmal irgendwie ohne Sensoren
> durch ein Drehfeld rotieren lassen, aber naja.

Kannst du auch zu einem gewissen Grad. Allerdings muss die per PWM 
vorgegebene Spannung zumindest zur Drehzahl passen.

Zorg schrieb:
> mehrere N MOSFETs parallel

15A kann nun wirklich jeder dementsprechende einzel-FET schalten.

Eberhard schrieb:
> Ist ja schon nicht ganz ohne...

Entsprechende Kühlung vorausgesetzt kein Problem.

von Eberhard (Gast)


Lesenswert?

Überschneiden tuen sich die Ansteuersignale nicht, das habe ich schon 
geguckt.

Woher weiß ich denn eine "richtige PWM Spannung"? Generell kann ich aber 
doch einen BLDC in 100% Duty-Cycle fahren, oder?

von gaast (Gast)


Lesenswert?

Eberhard schrieb:
> Überschneiden tuen sich die Ansteuersignale nicht, das habe ich schon
> geguckt.

Bedenke, dass das Gate als Kondensator wirkt.

Eberhard schrieb:
> Woher weiß ich denn eine "richtige PWM Spannung"?

Artikelbeschreibung, die RPM im Leerlauf pro Volt werden idR als kV 
angegeben. Für das unbelastete Hochfahren im Blindflug ein guter 
Anhaltspunkt.

Eberhard schrieb:
> Generell kann ich aber
> doch einen BLDC in 100% Duty-Cycle fahren, oder?

Die Spannung hängt von der gewünschten Drehzahl ab.

von Eberhard (Gast)


Lesenswert?

Also es handelt sich um folgenden Motor:

http://www.ebay.de/itm/EMAX-CF2822-BRUSHLESS-MOTOR-1200KV-28-22-Quadrocopter-/310333272090?pt=RC_Modellbau&hash=item48414df01a

Jetzt wollte ich gerade mal einen Motor aus einer Festplatte ausbauen, 
aber die haben alle 4 Anschlüsse - die kann ich ja garnicht anstelle des 
jetzigen Motors benutzen.

gaast schrieb:
> Bedenke, dass das Gate als Kondensator wirkt.

Also die Signale sind alle in Ordnung. Habe ich nochmal nachgeguckt.

gaast schrieb:
> 15A kann nun wirklich jeder dementsprechende einzel-FET schalten.

Das können die schon, aber es fallen halt 4,5W Verlustleistung an, 
zumindest beim p-Kanäler - das ist ja nicht wenig.

hubert schrieb:
> Es kann auch sein (falls du keine Treiner benutzt) das deine Flanken an
> den Mosfets nur langsam steigen -> verlustleistung im Fet steigt (je
> nach frequenz des gatesignals)

Die Ansteuerung der Gates wird durch Transistoren realisiert. Klar, 
nicht die schnellste Variante, da sollen noch Treiber hin. Ich bin mir 
nur noch nicht so schlüssig, was ich nehmen soll.

Besser wären natürlich nur n-Kanäler und dann mit Ladungspumpe - da sind 
hier in der Übersicht ja einige Typen.

Aber dann geht nicht 100% Duty-Cycle, oder? Wie oft/lange muss denn der 
High-Side dann mindestens immer mal auf 'low'?

von Eberhard (Gast)


Angehängte Dateien:

Lesenswert?

Das ist momentan meine Ansteuerung.

von mschoeldgen (Gast)


Lesenswert?

Eberhard schrieb:
> Jetzt wollte ich gerade mal einen Motor aus einer Festplatte ausbauen,
> aber die haben alle 4 Anschlüsse - die kann ich ja garnicht anstelle des
> jetzigen Motors benutzen.

Doch, du musst nur die 'Mitte' der Sternschaltung freilassen, dann sind 
die Anschlüsse kompatibel.( U,V,W)

Eberhard schrieb:
> Das können die schon, aber es fallen halt 4,5W Verlustleistung an,
> zumindest beim p-Kanäler - das ist ja nicht wenig.
Ich glaube , dein Problem ist eher die (nicht vorhandene) Totzeit. Die 
Highside muss abschalten, dann kommt die Totzeit, und dann schaltet die 
Lowside. Niemals dürfen High- und Lowside gleichzeitig an sein, und 
grade beim Abschalten sind die MOSFets immer ein bisschen träge. Leg mal 
einen Shunt in die Betriebsspannung und ein Oszi um die Spannung zu 
messen. Siehst du da Spitzen, ist deine Totzeit zu klein.

'Sensorless' BLDC Motoren werden in einer AVR Appnote beschrieben, und 
ausserdem behauptet Freescale gerade, das sie jeden Motor mit ihrer 
neuen Software anlaufen lassen können , ohne Ruckeln und so. Finde die 
Email leider grade nicht, bräuchtest aber wahrscheinlich einen Freescale 
MCU dafür.

Die meisten Sensorless BLDC werden per ADC an den UVW Anschlüssen 
rückgekoppelt , ist aber beim Anlaufen trotzdem ein Ratespiel. Schau mal 
unter 'Variable Frequency Drive' im Netz.

von Walter S. (avatar)


Lesenswert?

gaast schrieb:
> Zorg schrieb:
>> mehrere N MOSFETs parallel
>
> 15A kann nun wirklich jeder dementsprechende einzel-FET schalten.

das war aber die Antwort auf die Frage im Post vorher:
Eberhard schrieb:
> Wie sind denn dann die 100A-Regler aufgebaut? Groß sind die ja auch
> nicht.

von hubert (Gast)


Lesenswert?

Mit Bootstrap-schaltungen hab ich eher schlechte Erfahrungen gemacht, da 
ich bei mir probleme mit dem schaltverhalten(delay im lowfetzweig) der 
Mosfets hatte !
Ansonsten hat die anstiegszeit deiner schaltflanken weniger mit dem 
transistor, als mit der Größe des Kollektorwiderstands zutun.

Über diesen wird dein gate dementsprechend schnell aufgeladen und der 
Mosfet durchgeschaltet.

Was steht denn im Datenblatt bezüglich des Max.-Stroms / bzw. P_max?

von Carsten M. (ccp1con)



Lesenswert?

Hallo Eberhard,

Ich mache auch gerade meine ersten Gehversuche mit sensorless BLDC motor 
driver. Ich habe soweit alles im Griff (glaube ich), bis auf hohe 
Drehzahlen unter Last (Motor mit Propeller so über 4000 U/min).

Meine Erfahrungen:

Wenn die FETs heiß werden kann es an der Überschneidung (wenn auch nur 
kurzzeitig) zwischen high und low liegen.
Dead times lautet dafür das Zauberwort.
Oder es kann sein, für den Fall, dass du kein komplementäres PWM 
(aktiver Freilauf) benutzt, die Freilaufdioden in den FETs heiß werden.

Welche Firmware benutz du denn? Selbstgestrickt? Welchen Chip?

Anbei ein paar Oszi Bilder von meinem Motortreiber bei 12V ca 1400 U/min 
mit Prop.

Gruß
Carsten

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.