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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.