Forum: Mikrocontroller und Digitale Elektronik BLDC + Hall-Sensoren


von SBwh (Gast)


Angehängte Dateien:

Lesenswert?

Guten Abend zusammen,

ich habe hier zwei BLDC Motoren welche jeweils mit 3 Hall-Sensoren 
ausgestattet sind. Problematik ist nur, dass die Abstände der 
Hall-Sensoren zueinander sich bei beiden Motoren unterscheiden. Anbei 
habe ich zwei Bilder die die zwei unterschiedlichen Positionen zeigen.

Nun zu meiner Frage: Ist es möglich per Software die Position der 
Hallsensoren zu ermitteln?


Danke

von SBwh (Gast)


Lesenswert?

SBwh schrieb:
> Nun zu meiner Frage: Ist es möglich per Software die Position der
> Hallsensoren zu ermitteln?

Als Anmerkung: Die Software soll für beide Motoren gleiche Ergebnisse 
liefern.

von Lavrans S. (larsu1212123)


Lesenswert?

Guten Abend,
das wird meineserachtens schwer. Warum muss die Position der 
Hall-Sensoren denn bekannt sein? Die sollen doch eigentlich nur einen 
erfolgreichen "Step"(ist mir klar, dass das keine Schrittmotoren sind) 
auswerten und dadurch die Kommutierung auslösen...

von SBwh (Gast)


Lesenswert?

Lavrans S. schrieb:
> Guten Abend,
> das wird meineserachtens schwer. Warum muss die Position der
> Hall-Sensoren denn bekannt sein? Die sollen doch eigentlich nur einen
> erfolgreichen "Step"(ist mir klar, dass das keine Schrittmotoren sind)
> auswerten und dadurch die Kommutierung auslösen...

Danke für die Antwort. Dann ist meine Frage, werden die erzeugten Werte 
der beiden Motoren identisch sein?

Mein Ziel ist es, anhand der Flankenwechsel der Hall-Sensoren auch 
Geschwindigkeit und Lage des Motors zu erfassen.

von Lavrans S. (larsu1212123)


Lesenswert?

Die Werte sollten für die selbe Geschwindigkeit identisch sein, solange 
die Motoren die gleiche Anzahl an Permanentmagneten (den gleichen 
Rotordurchmesser) haben.
Zur Messung der drehgeschwindigkeit muss als Konstante bekannt sein, wie 
weit sich der Motor bei einer Auslösung der Sensoren dreht. Dan kann 
über den Abstand der Auslösungen die Geschwindigkeit berechnet werden.
Was die Lage der Motoren angeht, muss die gleiche Konstante wie eben 
bekannt sein. Jedoch muss jetzt zusätzlich auch eine Ausgangsposition 
vorgegeben sein, denn über die Flankenwechsel kann ja nur bestimmt 
werden wie weit sich der Motor gedreht hat, nicht wie bei einem Servo, 
wo er sich genau befindet.

von Steffen (Gast)


Lesenswert?

Die Hall-Sensoren dienen der Kommutierung. Daher ist die Position der 
Hall-Sensoren durch die Geometrie und den Aufbau des Motors fest 
vorgegeben. Und zwar so, dass alle 60° (elektrisch) eine Hall-Flanke 
kommt.

Um auf die Geschwindigkeit des Rotors zu schließen, braucht man dann nur 
noch die Polpaarzahl des Motors wissen.

Beispiel:
Du misst 6 Hall-Flanken pro Sekunde und der Motor hat eine Polpaarzahl 
von 3.
Dann dreht sich der Motor elektrisch mit 360°/s und mechanisch mit 360/3 
°/s = 120°/s.

von Der Dreckige Dan (Gast)


Lesenswert?

Na das sind mal merkwürdige Motoren. Dort sitzen die Sensoren nicht 
zwischen den Spulen, sondern direkt darin. Beim rechten Modell sogar 
teils, teils.

Vermute daher mal, die Motoren sind für geringe Leistungen gebaut worden 
(Festplatte, Floppy o.ä.)?

von SBwh (Gast)


Lesenswert?

Lavrans S. schrieb:
> Die Werte sollten für die selbe Geschwindigkeit identisch sein, solange
> die Motoren die gleiche Anzahl an Permanentmagneten (den gleichen
> Rotordurchmesser) haben.

Beide Motoren haben eine Polpaarzahl von 9 mit 27 Permanentmagneten. Der 
Motor soll mittels PWM angesteuert werden. Im Endeffekt FOC

Steffen schrieb:
> Du misst 6 Hall-Flanken pro Sekunde und der Motor hat eine Polpaarzahl
> von 3.
> Dann dreht sich der Motor elektrisch mit 360°/s und mechanisch mit 360/3
> °/s = 120°/s.

Danke, dass kann ich auch gebrauchen :)

Anhand dieser Seite: http://embeddedlightning.com/bldc_motor/

Wollte ich meine Regelung aufbauen. Da ich keinerlei Sinus-Source-Quelle 
zur Verfügung habe, war nun die Idee die Lage des Motors, anhand der 
Hall-Sensoren zu ermitteln und demnach die jeweiligen Phasen per PWM 
anzusteuern.
Wie Herr Lavrans beschrieben hat, sind dafür 6 Position vorhanden.

von Steffen (Gast)


Lesenswert?

Ich weiß nicht wie hochwertig die Stromregelung sein soll, aber für eine 
richtige FOC reicht die Auflösung der Hall-Sensoren normalerweise nicht. 
Da kann man auch gleich einfach eine Blockkommutierung laufen lassen und 
spart sich die ganze Transformiererei.
Für eine richtige FOC müsste man z. B. noch einen Inkremental-Encoder 
ergänzen, der deutlich mehr Flanken pro Umdrehung liefert als 
Hall-Sensoren.

von Stm M. (stmfresser)


Lesenswert?

Steffen schrieb:
> Ich weiß nicht wie hochwertig die Stromregelung sein soll, aber für eine
> richtige FOC reicht die Auflösung der Hall-Sensoren normalerweise nicht.
> Da kann man auch gleich einfach eine Blockkommutierung laufen lassen und
> spart sich die ganze Transformiererei.
> Für eine richtige FOC müsste man z. B. noch einen Inkremental-Encoder
> ergänzen, der deutlich mehr Flanken pro Umdrehung liefert als
> Hall-Sensoren.
Es sei denn, dass er den Winkel mittels Kalman Filter schätzt anhand der 
Inkremementen

von Klaus (Gast)


Lesenswert?

Steffen schrieb:
> Für eine richtige FOC müsste man z. B. noch einen Inkremental-Encoder
> ergänzen, der deutlich mehr Flanken pro Umdrehung liefert als
> Hall-Sensoren.

Das ist nicht unbedingt erforderlich. Anhand der Zeit, die der Motor für 
die letzte Umdrehung gebraucht hat, kann man aufgrund der mechanischen 
Trägheit die Position recht genau aus der aktuellen Zeit bestimmen. Das 
ist hier beschrieben (AVR447)

www.atmel.com/images/doc8010.pdf

Man muß auch nicht jedes Problem mit dem Kalman erschlagen.

MfG Klaus

von SBwh (Gast)


Lesenswert?

Klaus schrieb:
> Das ist nicht unbedingt erforderlich. Anhand der Zeit, die der Motor für
> die letzte Umdrehung gebraucht hat, kann man aufgrund der mechanischen
> Trägheit die Position recht genau aus der aktuellen Zeit bestimmen. Das
> ist hier beschrieben (AVR447)
>
> www.atmel.com/images/doc8010.pdf
>
> Man muß auch nicht jedes Problem mit dem Kalman erschlagen.
>
> MfG Klaus

Geh ich davon richtig aus, dass ich bei einer 9 poligen Maschine 
beispielsweise jeden 9. Flankenwechsel als eine Umdrehung ansehen kann?

Ebenso habe ich anhand der 27 Permanentmagnete in dem Sinne doch keine 
Auflösung von 60° für Berechnung der Zeiger sondern "6,66°" oder bin ich 
total auf dem Holzweg.

von Klaus (Gast)


Lesenswert?

SBwh schrieb:
> Ebenso habe ich anhand der 27 Permanentmagnete in dem Sinne doch keine
> Auflösung von 60° für Berechnung der Zeiger sondern "6,66°" oder bin ich
> total auf dem Holzweg.

Bei solchen Motoren wird zwischen einer "elektrischen" und einer 
"mechanischen" Umdrehung unterschieden. Am einfachsten kann man das 
erkennen, wenn man den Motor als Generator betreibt und sich die 
erzeugte Spannung auf dem Scope anzeigt. Eine vollständige 
Sinusschwingung ist eine "elektrische" Umdrehung. Auch an den 
Hallsensoren findet man das wieder. Aus elektrischer Sicht wiederholen 
sich alle Signale danach. Je nach Polzahl kommen eine oder mehrere 
elektrische Umdrehungen auf eine mechanische. Winkelangaben bei BLDC 
Motoren beziehen sich typischerweise auf elektrische Umdrehungen. Das 
macht sie unabhängig von der Polzahl des Motors.

MfG Klaus

von SBwh (Gast)


Lesenswert?

Klaus schrieb:
> Bei solchen Motoren wird zwischen einer "elektrischen" und einer
> "mechanischen" Umdrehung unterschieden. Am einfachsten kann man das
> erkennen, wenn man den Motor als Generator betreibt und sich die
> erzeugte Spannung auf dem Scope anzeigt. Eine vollständige
> Sinusschwingung ist eine "elektrische" Umdrehung. Auch an den
> Hallsensoren findet man das wieder. Aus elektrischer Sicht wiederholen
> sich alle Signale danach. Je nach Polzahl kommen eine oder mehrere
> elektrische Umdrehungen auf eine mechanische. Winkelangaben bei BLDC
> Motoren beziehen sich typischerweise auf elektrische Umdrehungen. Das
> macht sie unabhängig von der Polzahl des Motors.
>
> MfG Klaus

Herzlichen Dank, dass ich grob gesagt 9 elektrische Umdrehungen für eine 
mechanische Umdrehung habe war mir bewusst. Dementsprechend fallende 
Flanken für den Hall-Sensor. Anhand der Detektion von x-Flanken kann ich 
eine mechanische Umdrehung detektieren.

Anhand der Detektion der fallenden Flanken der Hall-Sensoren wird meine 
FOC eingeleitet und mit Hilfe von PI nachgeregelt. Soweit der Plan.

Eine Beispiel FOC habe ich hier gefunden.
https://www.mikrocontroller.net/attachment/highlight/152219
Mit Hilfe Ihres Links bezüglich Atmel komm ich der Materie schon um 
einiges näher. Danke Ihnen

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.