Forum: Mikrocontroller und Digitale Elektronik Gimbal Motor mit L6234


von Josua J. (josuaj)


Angehängte Dateien:

Lesenswert?

Hallo,

ich möchte mir einen Gimbal selbst bauen. Dazu möchte ich drei BLDCs vom
Typ GB54-1 von der Firma T-Motors verwenden. Die Ansteuerung soll über
drei, an einen Arduino angeschlossenen, L6234 Treiber erfolgen.

Ich habe es bis jetzt geschafft, ein Programm zu schreiben, das es mir
ermöglicht den Motor in Schritten (von theoretisch 0,0386°) zu drehen.
Die Ansteuerung erfolgt dabei wie sie im Diagramm im Anhang zu sehen
ist.

Zur Erklärung muss man vllt. erwähnen, dass der L6234 jeweils drei EN
pins und drei IN pins hat. Die EN pins schalten die jeweilige Phase ganz
aus, die IN pins wählen zwischen dem oberen und dem unteren DMOS (d.h.
logic level 1, -1). Um die linearen Steigungen aus dem Diagramm zu
erreichen, wird ein PWM Signal auf den entsprechenden EN pin gegeben,
das am Anfang den maximalen Wert hat (255) und dann auf 0 sinkt. Bei 0
wird der zugehörige IN pin umgeschaltet und das PWM Signal steigt wieder
auf 255.

Das Problem dabei ist, dass nur die PWM Werte von 160-255(wenn IN = 0)
bzw. die Werte von 130-255 (wenn IN = 1) den Motor bewegen. Das führt
dazu, dass sich der Motor dreht, anhält, dreht... Ich habe mir darauf
hin eine Tabelle erstellt, die nur diese Werte enthält. Das hat das
Verhalten des Motors wesentlich verbessert. Gerade wenn ich den Motor
sehr langsam drehe, kann man mit dem Auge keine
Geschwindigkeitsunterschiede mehr erkennen. Wenn ich den Motor aber
schneller drehen lasse, treten starke Vibrationen auf.

Ursprünglich habe ich überlegt, eine Art von Feedback zur Kommutation zu
verwenden (z.B. Hallsensoren, back-emf, shaft-encoder), allerdings
scheinen alle Projekte die es in diesen Bereich gibt (AlexMos,
BruGi,...) auf Feedback zu verzichten. De facto scheint nur der DJI
Ronin Feedback zu verwenden (nämlich shaft-encoder).

Leider findet sich im Internet nicht sonderlich viel zur Ansteuerung von
Gimbal Motoren. Die wenigen Artikel die sich mit der Ansteuerung von
BLDCs beschäftigen, erklären die Ansteuerung von schnelldrehenden (RC)
BLDCs bzw. sensorbasierten BLDCs. Gimbal BLDCs unterscheiden sich aber
von diesen, da sie viele dünne Wicklungen haben, anstelle von wenigen
dicken Wicklungen.

Ich hoffe, jemand kann mir erklären, was ich falsch mache (bzw. ob mein
Konzept grundsätzlich funktionieren kann). Außerdem, die Art der
Ansteuerung die ich verwende ist FOC (field oriented controll), oder?

Mit freundlichen Grüßen
Josua

PS: Ich brauche den Gimbal im Rahmen eines Schulprojekts. Meine Aufgabe
wäre es eigentlich nur, die Routinen zur Lageorientierung zu
programmieren (Eulerwinkel usw.), aber einer muss ja die Arbeit
machen... Daraus ergibt sich leider auch, dass ich nicht einfach einen
AlexMos controller als Grundlage verwenden kann.

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.