Hi!
Ich habe ein paar Fragen bzgl. Der Ansteuerung von BLDC Motoren mit/ohne
Hallsensoren. Ich bin kein Profi der Elektrotechnik, es sind nur (evtl.
erweiterte) Grundkenntnisse vorhanden. Studiere etwas, das mit der
Elektrotechnik nicht so viel zu tun hat, ist eher ein Hobby.
Wie genau komme ich auf meine "Stellgrößen", die ich zur Ansteuerung
benötige?
Ich habe ja in meinem Controller u.a. folgende Daten:
- aktuelle Position des Rotors (von den Hallsensoren, bzw. durch "Back
EMF Sensing. Anderes Thema...")
- aktuelle Drehzahl
- "Gasstellung" (externes Signal, etc.)
Woher weiss ich jetzt, welches Feld an welche Spule? Sind folgende
Annahmen korrekt?
Dazu brauche ich ja:
- Lage des "Feldvektors". Kann ich da einfach die aktuelle Position
nehmen und in Drehrichtung 90° draufschlagen? Meine mich zu erinnern,
dass 90° ideal für eine maximale Leistungsentfaltung ist. Macht ja auch
Sinn...
Oder lieber ein bisschen weniger als 90°? Nicht dass der Motor
ausrastet?
- Länge des Feldvektors. Entspricht dieser meiner aktuellen Gasstellung?
So stelle ich mir das zumindest vor.
Nun kann ich ja über die Trigonometrie mit dem Vektor schonmal
bestimmen, ob die jeweilige Phase ein positive oder negatives Signal
braucht, damit kann ich dann entscheiden, welchen Teil der halben
H-Brücke (heisst das so?) ich ansteuern muss.
Woher weiss ich jetzt, welchen PWM DutyCycle ich für die jeweilige Phase
einstellen muss? Dieser hängt ja sowohl von der Länge als auch der Lage
des "zukünftigen" Feldvektors ab.
Kann ich mir das mathematisch einfach als Vektor in einer Ebene
vorstellen, und das dann trigonometrisch errechnen?
Nach oben angedachter Ansteuerung würde ich ja alle drei Phasen
gleichzeitig mit sinusförmigen Spannungen ansteuern. Jetzt habe ich
allerdings in diversen Appnotes gesehen, dass oftmals nur zwei
Wicklungen gleichzeitig mit Rechtecksignalen angesteuert werden. Macht
man das nur bei der Back EMF Sensing Technik so?
Noch eine Frage zu den Hallsensoren:
Mit diesem möchte ich ja die Lage des Rotors bestimmen. Aber messe ich
nicht irgendwie auch neben dem Magnetfeld des Rotors auch das Magnetfeld
durch meine Wicklungen mit?
Noch eine letzte Frage zur Rekuperation:
Wenn ich den Motor drehe kann ich ja die drei Phasen einfach an einen
diodengleichrichter hängen und den Strom z.B. in einen
Kondensator/Akkumulator zurückspeisen.
Wie kann ich den Grad der Rekuperierung steuern? Also quasi die
Bremswirkung bzw. den Ladestrom des Akkumulators begrenzen.
Wie funktioniert das mit der Rekuperierung, wenn an dem Motor noch die
H-brücke von weiter oben hängt? Dann funktioniert die einfache Lösung
mit dem Diodengleichrichter ja nichtmehr?
Der Beitrag ist jetzt etwas länger geworden. Ich hoffe meine Fragen sind
halbwegs verständlich gestellt ;-)
Danke schonmal für eure Antworten!
Ein BLDC ist eine Synchronmaschine. Zum Rekuperieren lässt Du das Feld
etwas nacheilen (Polradwinkel), dadurch wird der Motor zum Generator.
Die Spannungserhöhung erreichst Du, indem Du die Spulen kurze Zeit
kurzschließt. Beim anschließenden Öffnen ergibt sich (auch durch die
parasitäre Induktivität) eine Spannungserhöhung (StepUp-Prinzip,
Boost-Converter).
> Wie kann ich den Grad der Rekuperierung steuern? Also quasi> die Bremswirkung bzw. den Ladestrom des Akkumulators begrenzen.
Durch die Länge des Kurzschließens.
Die 3 H-Brücken sind durch die 3 intrinsic Bodydioden automatisch eine
Gleichrichterbrücke. Geschickterweise nutzt man jedoch aktive
Gleichrichtung (geringere Verluste).
Hi!
Danke für die Antwort!
Okay, das mit dem Nacheilen klingt logisch, ist dann ja so ähnlich wie
bei der Asynchronmaschine.
Zum Kurzschließen der Spulen: eine einzelne Wicklung kann ich ja nicht
kurzschließen. Heisst das dann, dass ich alle Phasen auf GND oder VCC
lege?
Fließt während dieser Zeit nicht ein enormer Strom durch meine MosFets?
Aktive Gleichrichtung und Bodydioden sagen mir erstmal garnichts.
Bodydioden sind wohl die antiparalellen Dioden in den Mosfets? Hast du
noch eine kurze Erklärung zur aktiven Gleichrichtung?
Was jetzt noch an Fragen bleibt wären die obigen Fragen zur Messung des
Feldes mit den Hallsensoren ("Wieso wird das Feld meiner Spulen nicht
mitgemessen?"), sowie die Geschichte mit dem Feldvektor und wie ich
daraus den DutyCycle für die PWM bestimme.
Grüße!
Niemand eine Ahnung?
Die Frage, wieso ich mit den Hallsensoren nur das Feld meiner Magneten
messe, und nicht das Feld, dass durch den Stromfluß meiner Spulen
entsteht, würden mich interessieren.
Habe dazu mit den gängigen Suchmaschinen nix gefunden...
Bzgl. der aktiven Gleichrichtung habe ich mich ein bisschen umgehört,
bin mir aber noch nicht 100% sicher.
Kann ich die 6 MOSFETs der 3 halben H-Brücken für das aktive
Gleichrichten verwenden?
Grüße!
Mit den Hall-Sensoren misst Du die aktuelle Position des Rotors.
> Zum Kurzschließen der Spulen:> eine einzelne Wicklung kann ich ja nicht kurzschließen.
Macht nichts, sobald zwei Phasen auf selben Level sind, ist sie
praktisch kurzgeschlossen.
Es gibt 3^3=27 States:
P1 P2 P3
1 L L L
2 L L H
3 L L Z
4 L H L
5 L H H
6 L H Z
7 L Z L
8 L Z H
9 L Z Z
10 H L L
11 H L H
12 H L Z
13 H H L
14 H H H
15 H H Z
16 H Z L
17 H Z H
18 H Z Z
19 Z L L
20 Z L H
21 Z L Z
22 Z H L
23 Z H H
24 Z H Z
25 Z Z L
26 Z Z H
27 Z Z Z
L L-Fet on
H H-Fet on
Z beide Fets off
> Bodydioden sind wohl die antiparalellen Dioden in den Mosfets?
Ja.
> Kann ich die 6 MOSFETs der 3 halben H-Brücken für das> aktive Gleichrichten verwenden?
Ja, wenn du sicher weißt, dass eine Bodydiode leitend ist, setze das
Gate des FETs auf high.
Du musst das Gate dann auf low setzen, wenn der Strom beginnt, in die
andere Richtung fließen zu wollen.
Da man das manchmal nicht genau weiß, schaltet man den Fet lieber zu
bald aus und läßt den Reststrom durch die BodyDiode decayen.
> Hast du noch eine kurze Erklärung zur aktiven Gleichrichtung?
Kannst Du eine Suchmaschine bedienen, speziell die "unseres" Forums
hier?
http://www.mikrocontroller.net/search
Im Datenblatt des L6208 fand ich es ganz schön beschrieben.
www.st.com/st-web-ui/static/active/en/resource/technical/document/datash
eet/CD00002294.pdf
Danke für deine Antwort!
eProfi schrieb:> Mit den Hall-Sensoren misst Du die aktuelle Position des Rotors.
Das ist das Ziel. Eigentlich messe ich ja nur die Richtung des
Magnetfeldes.
Aber ist das Magnetfeld nicht eigentlich die Summe aus Magneten und
Magnetfeld der Spulen?
Datenblatt des L6208 werde ich mir mal anschauen!
Grüße!
Nein. Die Hallsensoren bringt man natürlich so an, dass sie vom Feld der
Wicklungen nicht beeinflusst werden.
Mit freundlichen Grüßen
Thorsten Ostermann
Student schrieb:> - Lage des "Feldvektors". Kann ich da einfach die aktuelle Position> nehmen und in Drehrichtung 90° draufschlagen? Meine mich zu erinnern,> dass 90° ideal für eine maximale Leistungsentfaltung ist. Macht ja auch> Sinn...>> Oder lieber ein bisschen weniger als 90°? Nicht dass der Motor> ausrastet?>> - Länge des Feldvektors. Entspricht dieser meiner aktuellen Gasstellung?> So stelle ich mir das zumindest vor.>> Nun kann ich ja über die Trigonometrie mit dem Vektor schonmal> bestimmen, ob die jeweilige Phase ein positive oder negatives Signal> braucht, damit kann ich dann entscheiden, welchen Teil der halben> H-Brücke (heisst das so?) ich ansteuern muss.>> Woher weiss ich jetzt, welchen PWM DutyCycle ich für die jeweilige Phase> einstellen muss? Dieser hängt ja sowohl von der Länge als auch der Lage> des "zukünftigen" Feldvektors ab.>> Kann ich mir das mathematisch einfach als Vektor in einer Ebene> vorstellen, und das dann trigonometrisch errechnen?
Um auf die 1.Frage einzugehen:
So in der Art funktioniert eine Raumzeigermodulation,da findest bestimmt
im Internet wo was dazu. Macht aber bei kleinen Motoren relativ wenig
Sinn, weil es doch ein bisschen aufwändiger ist. In der 1.Phase der
Entwicklung ist es sicher besser wenn du das nicht verwendest, da kommen
noch ganz andere Probleme ;) Meistens schaltet man einfach 2 Phasen mit
Pwm und sieht sich an der dritten die Bemf an (sensorless), wie du schon
richtig bemerkt hast.
Die Drehzahl steuerst du über den duty Cycle, die
Kommutierungszeitpunkte ergeben sich von selbst durch messen.
Da gibt es hier auch einen guten Artikel dazu, falls dich diese Art
interessiert:
http://www.mikrocontroller.net/articles/Brushless-Controller_f%C3%BCr_Modellbaumotoren
Außerdem gibt es gute aplication notes zur konkreten Realisierung, z.B.
von Microchip.