Forum: Mikrocontroller und Digitale Elektronik Paar Fragen bzgl. BLDC Ansteuerung, H-Brücke, Rekuperation, etc.


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Student (Gast)


Lesenswert?

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!

von eProfi (Gast)


Lesenswert?

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

von Student (Gast)


Lesenswert?

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!

von Student (Gast)


Lesenswert?

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!

von eProfi (Gast)


Lesenswert?

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

von Student (Gast)


Lesenswert?

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!

von Thorsten O. (Firma: mechapro GmbH) (ostermann) Benutzerseite


Lesenswert?

Nein. Die Hallsensoren bringt man natürlich so an, dass sie vom Feld der 
Wicklungen nicht beeinflusst werden.

Mit freundlichen Grüßen
Thorsten Ostermann

von Thomas (Gast)


Lesenswert?

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.

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.