Forum: Mikrocontroller und Digitale Elektronik Brushlessmotor


von andy (Gast)


Lesenswert?

Hallo zusammen,
ich wollte Fragen was die maximale Schaltfrequenz bei den 
Brushlessmotoren ist.

Ich hab schon ein Programm für den Atmega geschrieben.

Im Programm hab ich Timer usw. eingearbeitet.

Die 3 Phasen des Brushlessmotoren müßen ja immer anderst geschaltet 
werden.

Zur Umdrehungseinstellung des Brushlessmotoren sende ich über die 
serielle Schnittstelle einen neuen Variabelenwert.

Muß man noch etwas beim Brushlessmotoren beachten?

Achso...welche Fets könnte man hier verwenden?

von Michi (Gast)


Lesenswert?

Bauartbedingt. Maximale ummagnetisierungsfrequenz von Eisen beachten, es 
gibt aber auch "Eisenlose" Motoren.

von Hansi-Bansi (Gast)


Lesenswert?

> Muß man noch etwas beim Brushlessmotoren beachten?

Du musst die unbestromte Phase auf rückinduzierte Spannungen untersuchen 
und somit den Kommutationszeitpunkt bestimmen. Die 
Umdrehungsgeschwindigkeit wird durch die Phasenspannung bestimmt! Danach 
muss sich die Kommutationsgeschwindigkeit richten!

http://www.mikrokopter.de/ucwiki/BrushlessCtrl

von andy (Gast)


Lesenswert?

Hm...die Ansichten zur Ansteuerung der Brushlessmotoren ist echt extrem 
unterschiedlich.


Jedenfalls hat ein Brushlessmotor 3 Phasen.

Diese 3 Phasen werden unterschiedlich geschaltet um eine Drehung des 
Rotors zu bewirken, da immer andere Spulen ein Magnetfeld beim Stator 
aufbauen.

Ein Brushlessmotor hat etliche Spulen beim Stator verbaut.
Sagen wir mal das der Brushlessmotor 12 Spulen besitzt.

12 Spulen / 3 Phasen = 4 Spulen

Erklärung der 3 Phasen:
1 = high
2 = gnd
3 = hängt in der Luft

Wiegesagt werden diese 3 Phasen immer anderst geschaltet, um die anderen 
Spulen mit Strom zu versorgen um damit ein Magnetfeld auf zu bauen.

Die normale Theorie würde nun aber sagen, das durch eine höhere 
Schaltfrequenz eine höhere Umdrehung des Rotors entsteht.

Dies aber auch nur, wenn der FET schnell schalten kann.

Eine niedrigere Schaltfrequenz dürfte demzufolge den Rotor langsamer 
drehen lassen.

Wie du gemeint hast muß man die unbestromte Phase auf rückinduzierte 
Spannung prüfen.

Ok...hier könnte man die Spannung an den integrierten A/D Wandler 
weitergeben.

Beim Atmega lege ich eine Referenzspannung für den A/D Wandler an.
Ich nehm hier mal die Versorgungsspannung des Atmega...also 5 V.

Da jedoch der Motor mit 12 V laufen kann, muß ich noch einen Widerstand 
einbauen, um die Spannung bei der rückinduzierten Phase herab zu 
setzen....sonst geht der Atmega kaputt.

Nun hab ich die Eingangsspannung bei Phase 1 auf high...Phase 2 geht 
nach gnd, so dass Strom durch die Spulen des Motors fließt.

Nun müßte ich bei Phase 3 denke ich mal die Spannung einlesen oder?

Bsp.: Der Motor läuft mit 12 V und zieht dabei 20 A.
Eingangsspannung = 12 V
Phasenspannung bei Phase = x

Differenz = Eingangsspanung - Phasenspannung bei Phase

Aber wie berechnet man nun hieraus die Umdrehung?
Ist es linear?

Klar macht es Sinn die angelegte Spannung mit der rückinduzierten 
Spannung zu vergleichen.....
Wenn sich jetzt z.b Kraft auf die Welle des Brushlessmotors einwirkt, 
kann der Rotor sich langsamer drehen, obwohl man selbst eine höhere 
Umdrehung eingestellt hat.

von andy (Gast)


Lesenswert?

Achso...und wenn eine Phase geschaltet wird reicht eine Rechteckspannug 
aus...es wird laut wiki auch keine sinusförmige Spannung benötigt.

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


Lesenswert?

Ich finde in der Eingangspost des TO keinerlei Informationen, die bei 
der Beantwortung einer Frage helfen können.

andy schrieb:
> Muß man noch etwas beim Brushlessmotoren beachten?
Ja - gib uns Informationen über den Motor - hat er Sensoren, hat er ein 
Datenblatt, hat er vllt. sogar eine Nenndrehzahl oder Angaben über 
Betriebsspannung und Ströme?
>
> Achso...welche Fets könnte man hier verwenden?

Siehe oben. Es gibt Motoren, die du mit BF245 ansteuern könntest. Und es 
gibt solche, wo du mit 500 Ampere IGBTs nicht mal anfangen solltest.

von andy (Gast)


Lesenswert?

Klar macht es Sinn die angelegte Spannung mit der rückinduzierten
Spannung zu vergleichen.....
Wenn sich jetzt z.b Kraft auf die Welle des Brushlessmotors einwirkt,
kann der Rotor sich langsamer drehen, obwohl man selbst eine höhere
Umdrehung eingestellt hat.

Und natürlich auch anderst rum.

Wenn jetzt z.b ein Propeller an der Welle ist und der Wind von hinten 
auf den Propeller drückt, dann wird natürlich die Umdrehung auch 
schneller u. demzufolge die Spannung bei der Phase 3 höher.

von Hansi-Bansi (Gast)


Lesenswert?

> Wiegesagt werden diese 3 Phasen immer anderst geschaltet, um die anderen
> Spulen mit Strom zu versorgen um damit ein Magnetfeld auf zu bauen.

Es gibt insgesamt 6 verschiedene Schaltzustände.

> Die normale Theorie würde nun aber sagen, das durch eine höhere
> Schaltfrequenz eine höhere Umdrehung des Rotors entsteht.

Die Phasenspannung gibt aber vor wie hoch die Schaltfrequenz letztlich 
sein wird. Letztere muss sich nämlich danach richten. Du musst die 
Phasenspannung aber gar nicht kennen damit es klappt.
Es gibt nämlich eine einfache Methode den Kommutationszeitpunkt zu 
bestimmen.

> Da jedoch der Motor mit 12 V laufen kann, muß ich noch einen Widerstand
> einbauen, um die Spannung bei der rückinduzierten Phase herab zu
> setzen....sonst geht der Atmega kaputt.

Ich weiß nicht wo ich anfangen soll, weil da einfach zu wenig Vorwissen 
besteht. Du musst die Signale nicht nur herabsetzen, sondern auch 
filtern, weil die PWM herausgefiltert werden muss. Ferner brauchst du 
einen virtuellen Sternpunkt. Mit diesem Sternpunkt werden die 
rückinduzierten, gefilterten Spannungen verglichen. Das macht man mit 
einem Komparator, der schon im ADC des Atmega verfügbar ist...

die Liste der zu beachtenden Faktoren ist lang. Ich kann das aus eigener 
Erfahrung sagen. Hab selbst mal so ein Teil gebaut. Es ist nicht 
unbedingt trivial! Mein Tip: Mach dich erstmal schlau wie das Prinzip 
funktioniert. Die Seite habe ich dir genannt, wo das gut erklärt wird.

von Alexander Völker (Gast)


Lesenswert?

Ich finde folgende Animationen zum Thema sehr schön:

http://de.nanotec.com/schrittmotor_animation.html

von andy (Gast)


Lesenswert?

Motortyp:  EMAX CF 2822 - 1200
Brushlessmotor mit 1200 KV
Welle 3mm, gehärtet
L x D : 28mm x 30mm
Belastung: 15A / 60sek
Gewicht ca. 39g

RPM = 7700
RPM/V = 1200
hm....1200 Umdrehung in der Minute pro Volt?

Aber wie hoch ist die Betriebsspannung...k.A

von Hansi-Bansi (Gast)


Lesenswert?

Alexander Völker schrieb:
> Ich finde folgende Animationen zum Thema sehr schön:
>
> http://de.nanotec.com/schrittmotor_animation.html

Es geht hier aber nicht um einen klassischen Schrittmotor, bei dem die 
Schrittgeschwindigkeit durch den Takt vorgegeben wird, sondern um einen 
BLCD-Motor, der ganz anders angesteuert werden muss!

von Michi (Gast)


Lesenswert?

andy schrieb:
> Aber wie hoch ist die Betriebsspannung...k.A

So hoch wie du die Drehzahl brauchst. Aber unter 50V (12s Lipo) bleiben 
da nicht mehr Schutzkleinspannung.

von andy (Gast)


Lesenswert?

@Hansi-Bansi....was hatte ich vorhin gesagt?

Es gibt etliche unterschiedliche Auffassungen zur Beschaltung der 
Brushlessmotoren.

Kaufen ohne nach zu vollziehen wie solch eine Treiberstufe funktioniert 
kann wohl jeder oder?

Für was bitte schön einen hardwareseitgen Filter?

Wenn ich die Spannungen in den Atmega per A/D Wandler einlese, dann 
brauch man nur die Spannungen größer 0 Volt in die arrays einlesen.
Ist die Spannung = 0, dann öffnet man eine Schleife und prüft das Array 
auf den höchsten Spannungswert.

Da jedoch der Atmega wenig Speicher hat, muß man bei jedem neu 
eingelesen Wert die Prüfung auf den höchsten Wert durchführen.

Entweder man öffnet ein Unterprogramm oder springt zu eine andere Stelle 
und kehrt dann wieder in das Hauptprogramm zurück.

Man verlagert dann den höchsten Wert in das erste Array und löscht die 
andere Array-Werte.


Meine Frage war wiegesagt nur, wie sich die rückinduzierte Spannung auf 
die angelegte Spannung auswirkt....

Ich muß ja dann den Timer immer selbst neu einstellen lassen.
Mit dem Timer werden ja dann die PWM Signale erzeugt u. die Ausgänge des 
Atmega geschaltet.

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


Lesenswert?

Die Application Note AVR444 beschreibt recht gut, wie ein sensorenloser 
BLDC Motor mittels eines AVR angesteuert werden kann. Am besten lädt man 
sich dazu auch die Schaltpläne des MC100 MotorControl Kits. Da du das 
Dings vermutlich für irgendein Fluggerät benutzen willst, solltest du 
dich dann nach komplementären MOSFet Pärchen umschauen, die so ca.30 
Ampere aushalten können, da dir ein echter Halbbrückentreiber vermutlich 
zu aufwendig wird.

So wie ich die Daten lese, ist bei knapp über 6 Volt Betriebsspannung 
Feierabend, 100% PWM Pakete vorrausgesetzt. Bei Vollast darf man diesen 
Motor nicht länger als eine Minute laufen lassen.
Die Geschwindigkeit wird über die PWM Breite geregelt, die 
Umschaltpunkte über die Auswertung der BEMF, das steht aber alles in 
AVR444.

von Michi (Gast)


Lesenswert?


von Hansi-Bansi (Gast)


Lesenswert?

> Für was bitte schön einen hardwareseitgen Filter?

Die altbewärte Schaltung mit dem Atmega läuft über dessen Komparator. 
Und da wird die PWM rausgefiltert. Der wirtuelle Sternpunkt ergibt sich 
durch eine entsprechende Schaltung mit Widerständen.
Man kann es sicherlich auch ohne Filter machen, aber ich würde dir nicht 
dazu raten. Auch in der von Matthias genannten Appnote (hier 
http://www.gaw.ru/pdf/Atmel/app/avr/AVR444.pdf) wird gefiltert

Wie gesagt: Schau dir doch mal die Seite an die ich dir genannt habe + 
die Appnote vom Matthias. Da gibt es sogar Schaltpläne + Open Source 
Code. :-)

> Ich muß ja dann den Timer immer selbst neu einstellen lassen.
> Mit dem Timer werden ja dann die PWM Signale erzeugt u. die Ausgänge des
> Atmega geschaltet.

Richtig. Die PWM gibt die Phasenspannung letztlich vor und danach 
richtet sich dann auch die nötige Kommutationsgeschwindigkeit.

von MaWin (Gast)


Lesenswert?

> ich wollte Fragen was die maximale Schaltfrequenz bei den
> Brushlessmotoren ist.

So eine Motorspule hat eine Induktivität,
und in ihr muss der Strom ansteigen,
möglichst auf Nennstrom (sogar doppelter Nennstrom,
denn es ist ja eine Dreieckrampe) innerhalb der Zeit.

Also hängt die maximale Schaltfrequenz und damit Drehzahl
von der Spannung ab, die du an die Spule anlegen kannst,
und diese wiederum von der maximalen Isolationsspannung
der Spule und was deine Elektronik so aushält.

Darüberhinaus musst du ja wissen, wann du den Spulenstrom
umschalten sollst, also brauchst du eine Erkennung der
Position des Motorankers, entweder per Hallsensor oder per
Gegen-EMK-Erkennung, und da spielt es eine Rolle wie schnell
diese Sensoren arbeiten.

von andy (Gast)


Lesenswert?

Richtig. Die PWM gibt die Phasenspannung letztlich vor und danach
richtet sich dann auch die nötige Kommutationsgeschwindigkeit.

Und warum?
Da wenn man Spannung über den Fet schaltet, sich der Strom erst einmal 
in den Spulen aufbauen muß.


Ist die PWM sehr hoch, ist der Schaltzeitpunkt sehr hoch und demzufolge 
ist die Spannung niedriger die geschaltet wird.

Ist die PWN niedriger, ist der Schaltzeitpunkt ja niedriger und 
demzufolge ist die Spannung höher die geschaltet wird.

Beides hat ja mit dem Spannungsaufbau zu tun.

Erst bei der Zeit x, hat er dann die tatsächliche Spannung erreicht, die 
vom x beliebigen Energieträger zur Verfügung gestellt wird.


Lieg ich hiermit richtig?


Aber könnte mir bitte jemand erklären, wie sich die Phasenspannung auf 
die rückinduzierte Spannung auswirkt?

Gibt es hier denn keine Formel für?

Achso....ich muß ja nicht nur die rückinduzierte Spannung einlesen, 
sondern auch die Spannung nach dem Fet einlesen.

von andy (Gast)


Lesenswert?

@ MaWin daran hatte ich eben  nicht gedacht

von andy (Gast)


Lesenswert?

Theorie:
Schnelle Schaltfrequenz = niedrigere rückinduzierte Spannung, da ja auch 
weniger Spannung durchgeschaltet wird.

Langsame Schaltfrequenz = höhere rückinduzierte Spannung, da ja mehr 
Spannung durchgeschaltet wird.

Des dürfte ja linear sein.....

Wie steht aber die durchgeschaltete mit der rückinduzierten Spannung im 
Verhältnis?

Um die Umdrehung zu steigern, wird bei beiden die Spannung linear 
kleiner.

Wenn  sich also Kraft auf die Welle auswirkt, müßte die rückinduzierte 
Spannung höher werden.
Wenn sich Kraft auf den Propellor von hinten auswirkt und die Umdrehung 
schneller wird, müßte die rückinduzierte Spannung niedriger werden.

von Norbert S. (norberts)


Lesenswert?

Hi,

sorry aber mit Deinem Kenntnisstand macht das hier wenig Sinn, Du hast 
da noch etwas falsche Vorstellungen. Lies Dir die Dokus nochmal durch, 
es wurden ja genug links gepostet.

Vergiss die Idee, die Spannung der floatenden Phase zu messen, Du musst 
sie mit den anderen vergleichen. bei xkHz PWM wandeln, in Arrays 
herumsortieren - vergiss es.
Wenn die offene Phase durch den virtuellen Sternpunkt saust (das Mittel 
aller Phasen), ist die Mitte des aktuellen States erreicht, 30° seit dem 
letzten State sind vergangen und 30° später ist das nächste State dran.

Die Schaltfrequenz wird nicht durch den Motor bestimmt sondern es muß 
ein bester Kompromiss für die Mosfets und deren Ansteuerung gefunden 
werden. Mit wenigen kHz liegt man normalerweise richtig aber für die 
Kommutierung ist das ziemlich unerheblich. Das Glätten der PWM für die 
Mittelung muß man anpassen, bei höheren Frequenzen ist das einfacher. Ab 
10-20kHz steigen aber die Schaltverluste der Mosfets, man braucht gute 
Treiber, bekommt steile Schaltflanken und damit eklige EMV-Probleme.

Und tu Dir einen Gefallen und nehme einen Treiber für die Endstufe wie 
z.B. IR2130 oder drei einzelne Hi-Lo Treiber wie z.B IR2110.

Gruß,
Norbert

von MaWin (Gast)


Lesenswert?

> Theorie:
> Schnelle Schaltfrequenz = niedrigere rückinduzierte Spannung, da ja auch
> weniger Spannung durchgeschaltet wird.
> Langsame Schaltfrequenz = höhere rückinduzierte Spannung, da ja mehr
> Spannung durchgeschaltet wird.
> Des dürfte ja linear sein.....

Vielleicht solltest du vorher mal gucken, wie andere das praktisch 
machen.

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.