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?
> 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
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.
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.
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.
> 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.
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
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!
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.
@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.
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.
> 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.
> 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.
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.
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.
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
> 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.