Forum: Mikrocontroller und Digitale Elektronik BLDC Halteregelung?


von PB (Gast)


Lesenswert?

Hallo,

ich habe mal eine Frage an das Forum bez. eines Algorithmus für eine 
Drehmoment Halteregelung bei Drehzahl 0 mit BLCD Motor & Hall Sensoren. 
Der zum Betrieb des Motors laufenden FOC Algorithmus ist dazu nicht 
direkt in der Lage den Motor bei Stillstand genau in der aktuellen 
Position festzuhalten. Es gibt zwar einen übergeordneten Lageregler für 
die Positionierung, der ist aber zu ungenau um einzelne Hall 
Sensorschritte des Motors zu erkennen. Dh. wenn ein Drehmoment auf den 
Motor von außen wirkt kann der sich leicht verdrehen. Welche 
Vorgehensweise kann man anwenden den Motor an einer genauen Position 
festzuhalten?

Gruss PB

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


Lesenswert?

Die Sensoren dienen bei FOC meist nur zur Resynchronisierung eines 
Sektorbeginns. Um den Motor genau an einer bestimmten Stelle zu halten, 
musst du entweder den errechneten Drehwinkel zwischenspeichern oder den 
Schritt in deiner Sinustabelle, je nach verwendetem Algorithmus.

Die Routine, die aus dem Drehwinkel die drei Spannungen der Endstufe 
berechnet, wird dann mit dem gespeicherten Drehwinkel gefüttert.
Allerdings gilt das nur innerhalb der meist 6 Sektoren eines Zyklus. Es 
gibt als alle 6 Sektoren eine Mehrdeutigkeit. Um die zu vermeiden, 
müsstest du einen absoluten Drehgeber mit der Maschine koppeln.

: Bearbeitet durch User
von georg (Gast)


Lesenswert?

PB schrieb:
> Es gibt zwar einen übergeordneten Lageregler für
> die Positionierung, der ist aber zu ungenau

Das ist das Problem, das es zu lösen gilt.

Georg

von STK500-Besityer (Gast)


Lesenswert?

Klingt nach einer Gimbal-Ansteuerung.
Da werden auch BLDC zum (schnellen) Positionieren verwendet.
Man müsste doch eigentlich "nur" die drei Phasen so mit Strom versorgen, 
dass eine entsprechende Position eingenommen wird.
Bei drei Phasen sind die Positionen auf einem Kreis eindeutig.

von PB (Gast)


Lesenswert?

Es reicht innerhalb der 6 Stufen , in dem Fall 90° mechanisch am Motor 
die Position zu halten. Den Ansatz dafür den Winkelbereich und dazu 
einen ansteigenden Strom je nach Abweichung einzuprägen habe ich auch in 
Betracht gezogen. Wird wohl immer auf diese Vorgehensweise rauslaufen.

@ georg (Gast) , das wird bei einem hoch übersetzen Getriebe schwierig 
bis zum Motor spielfrei zu bleiben, man hat immer etwas Zahnspiel, so 
dass der Lagesensor am Getriebeausgang keine Änderung misst obwohl sich 
der Motor leicht verdreht.. das ist so wie bei der 
Unendlichkeitsmaschine ;-)

von georg (Gast)


Lesenswert?

PB schrieb:
> man hat immer etwas Zahnspiel

Das mag ja sein, aber wenn man die Position sowieso nicht genau kennt, 
dann ist es doch auch egal, wenn sie sich innerhalb des gegebenen 
Spielraums verstellt. Oder geht es nur um Stillstand egal wo?

Georg

von Erwin D. (Gast)


Lesenswert?

georg schrieb:
> Oder geht es nur um Stillstand egal wo?

Ja.

PB schrieb:
> Halteregelung bei Drehzahl 0

von PB (Gast)


Lesenswert?

@ georg (Gast) ja der Motor muss die Position halten auch wenn er unter 
Drehmoment von aussen stoppt.

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


Lesenswert?

STK500-Besityer schrieb:
> Bei drei Phasen sind die Positionen auf einem Kreis eindeutig.

Wenn der Motor mehr Pole hat, dann nicht mehr. Deswegen haben Gimbals 
Potis oder andere Absolutgeber zur Lagemessung.

von STK500-Besitzer (Gast)


Lesenswert?

Matthias S. schrieb:
> Wenn der Motor mehr Pole hat, dann nicht mehr. Deswegen haben Gimbals
> Potis oder andere Absolutgeber zur Lagemessung.

Meins nicht.
Das war aber auch eher "billig".
Die Lage wird durch ein Gyroskop (Beschleunigung- und Drehratensensor) 
"geregelt".
Warum den Spaß unnötig kompliziert machen?

Beitrag #6417065 wurde von einem Moderator gelöscht.
von PB (Gast)


Lesenswert?

die aktuelle Anwendung ist kein Gimbal, sondern ein Motor mit Getriebe.

von Pieter (Gast)


Lesenswert?

moin,

der Lageregler arbeitet nicht richtig.
Habe hier einen Motor mit 3 Wicklungen und 8 Polpaaren, also 48 
Positionen pro Umdrehung.
Wenn die Motordrehzahl 0 ist und der Motor von aussen verdreht werden 
soll, steuert der Lageregle gegen. Je stärker die Verdrehung um so 
stärker das Gegensteuern.
Mit der Steuerung kann der BLDC im Prinzip wie ein Schrittmotor 
betrieben werden.

VG
Pieter

von Rainer V. (a_zip)


Lesenswert?

PB schrieb:
> das wird bei einem hoch übersetzen Getriebe schwierig
> bis zum Motor spielfrei zu bleiben, man hat immer etwas Zahnspiel, so
> dass der Lagesensor am Getriebeausgang keine Änderung misst obwohl sich
> der Motor leicht verdreht..

...dann bau den Geber doch an die Motorwelle. Da kannst kannst du je 
nach Übersetzungsverhältnis auch noch "richtig großzügig" regeln.
Gruß Rainer

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


Lesenswert?

STK500-Besitzer schrieb:
> Die Lage wird durch ein Gyroskop (Beschleunigung- und Drehratensensor)
> "geregelt".

Normalerweise wird für grosse Drehwinkel der Gyro als eine Grösse (Soll) 
dem Regler zugeführt und die andere Grösse (Ist) ist der derzeitige 
Winkel der z.B. Kamera. Beide Grössen werden im Regler verrechnet und 
der stellt am Motor.
Sind die Winkel so klein, das der Bereich der 6 Sektoren des Motors 
ausreicht, kann man auf die Ist Grösse verzichten und verlässt sich 
drauf, das der Motor schon so stehen wird, wie es ihm die Bestromung 
vorschreibt.

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


Lesenswert?

Aus aktuellem Anlass habe ich heute mal am Gimbal meiner DJI Phantom 2 
Drohne rumschrauben müssen. Alle 3 Achsen werden hier mit BLDC Motoren 
bewegt und haben eine Rückmeldung in Form von 360° Potentiometern.

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.