Brushless Gimbal Controller - SOFTWARE

Status
Nicht offen für weitere Antworten.
Nein, 300nS ist egal, zumindest für den Wirkungsgrad. Den Treiber kannst Du nicht verändern, für eine nach Deinen Vorstellungen bessere Lösung musst Du die Treiber einzeln ansteuern und das geht auf dieser Hardware nicht.
Ich habe angefangen eine Schaltung mit einem ARM-Cortex für einen 3-achs Gimbal zu designen.
Da gibt es diesen fertigen Treiber dann auch nicht mehr, da werden dann die PWM auch anders moduliert...
Aber das ist ein anderes Thema.

Die Schaltung so wie Sie ist, ist völlig ausreichend, wenn man eben den Rest passend dazu auslegt.
Haltemoment kann natürlich ein Problem sein...
Kannst Du aber so einfach auch nicht ändern.
Mach 4 oder 8Khz wenn es dann besser ist.
Wie gesagt, das hat mit Software und Wirkungsgrad wenig zu tun. Und wirklich verbessern kannst Du das auf dieser Schaltung auch nicht.
Muss man aber auch nicht! nimm die "richtigen" Motoren und dann passt das doch ;)
Wenn Du Dir die kommentare von AxelMos zu den PWM Fragen und wieso der Gimbal Pfeift durchliest, wirst Du dort genau die gleichen Antworten finden.
Das ist nämlich auch das Problem, wieso er "stur" bei 8khz bleibt ;)
 

OlliW

Erfahrener Benutzer
Nein, 300nS ist egal, zumindest für den Wirkungsgrad. ... ... ...
schade, du redest am Thema vorbei...
die ursprüngliche Frage war wie es sein kann das beim BruGri der Strom nur 0.4A (mit ensprechend schwächerer "Kraft") ist während es beim AlexMos 0.8 A sind...
tja, dann kommen wir da doch nicht zusammen

mein Einwand zur obigen Erklärung dieser Frage war dass die Totzeit von 300 ns bei einer PWM frequenz von 30kHz nie und nimmer aussreicht um den Strom von 0.8 A auf 0.4 A zu senken, was sich schon aus einer simplen Verhältnissrechnung ergibt, ergo ist die Erklärung dass das an der höheren PWM beim BruGri liegen würde falsch.

:)

noch ein paar Bemerkungen um das abzuschliessen:
- zumindest bei den "üblichen" (billigen?) BLDC-ESCs sind Schaltzeiten der Fets von 100ns und mehr nicht ungewöhnlich
- die Totzeit wird man möglichst klein halten, nämlich so dass die Fets sicher nicht gleichzeitig schalten, aber auch nicht wesentlich länger (alles andere macht auch Null Sinn), ergo weil so die Totzeit mit der Schaltzeit der Fets verknüpft ist, ist die Totzeit in der Praxis auch mit den Schaltverlusten verknüpft
- ich habe an keiner Stelle den Treiber ändern wollen und/oder high und low Fets getrennt ansteuern wollen
- für den vorgesehenen Zweck einer synchronen Ansteuerung (kein Kommutieren!) macht es auch wenig Sinn die Fets getrennt ansteuern zu wollen (jenseits einer Totzeitanpassung)
- auch auf dieser Hardware ist eine bessere Lösung möglich, hatte ich schon erwähnt


dann warten wir einfach mal ab ob smuggler mit 8kHz auf die 0.8A kommt oder nicht :)


nur für meine Neugier: welches andere PWM-Modulationsverfahren, bei der man die Fets getrennt ansteuern muss, willst du den benutzen? (ein Schlagbegriff reicht)
 
Stell mal auf 8khz um, ich wette, das es dann dem AlexMos gleich kommt.
Wie gesagt, was Willst Du dagegen machen, die Treiber kannst Du nicht verändern.
Wir reden aber wirklich wohl aneinander vorbei und meinen doch das gleiche :)

Diese Totzeit, braucht man eigentlich nur wenn der Phasensprung ist, nicht jedoch für PWM.
Phasensprung hats sehr sehr wenige in der Sekunde, der Motor dreht ja eigentlich kaum ;)
Genau das macht aber der Treiber ständig, weil hier ein Treiber getriggert wird, der eigentlich für 100% Voll-Ansteurung ausgelegt wurde ;

Schau Dir mal die gute alte Quax Firmware genau an, da werden die FET genau so geschaltet.
eine Seite Voll (natürlich die an den anderen Phasen ;) ), die andere mit PWM, selbiges kannst Du auch an den Gates der FET mit dem Oszi messen, machen alle BLDC Regler so, die ich kenne. Ist also nichts ungewöhnliches.
 
Zuletzt bearbeitet:

OlliW

Erfahrener Benutzer
wir reden hier aber nicht von BLDC Regler (=Kommutierung), sondern von einer Synchronansteuerung...
welche, wie du es nanntest, 100% Voll-Ansteuerung benutzt...
für die die Treiber genau gemacht sind...

(übrigens, auch in der SimonK software (die sich ja aus Quax ableitet) sind "Totzeiten" eingebaut...)
 
wir reden hier aber nicht von BLDC Regler (=Kommutierung), sondern von einer Synchronansteuerung...
welche, wie du es nanntest, 100% Voll-Ansteuerung benutzt...
für die die Treiber genau gemacht sind...

(übrigens, auch in der SimonK software (die sich ja aus Quax ableitet) sind "Totzeiten" eingebaut...)
Das hat doch mit der Kommutierung nichts zu tun.
Aber genau das ist es, der ist für Voll Ansteurung gemacht, bekommt aber keine 100%... häng mal ein oszi dran ;)
Man kann aber auch Zwangskommutieren und trotzdem die low side voll und die high side pwm moduliert schalten. Wie die BLDC Firmwares das auch in den ersten Millisekunden machen, solange bis sich die Drehzahl ausreichend erhöht hat das das BEMF Signal sauber detektierbar ist.
Man braucht in der Zeit, wo die Phase bestromt ist bis zum nächsten Phasensprung normalerweise kein gap, weil man ja überhaut nicht schaltet, sondern nur auf der high-side die Leistung moduliert.
Das kann dieser Treiber aber nicht, für den ist es jedesmal von Null anfangen wenn er das ein Signal bekommt... und somit verpennt er jedesmal 300nS ;) und das 32000 mal in der Sekunde.

Aber, ich sehe da noch eine Software Lösung: Die PWW in der Software völlig deaktivieren, die macht ja wahrscheinlich selbst bei 255 (wie hoch ist voll an?) noch ein minimales PWM anstatt voll offen zu lassen!?
Dann müssen natürlich die Motoren passend sein oder man muss überschüssige Leistung in Lastwiderständen verbraten.
Pfeifen täte es dann aber nicht ;)
 
Zuletzt bearbeitet:

Lonestar78

Erfahrener Benutzer
Kann bitte jemand mal nen Oszi an einen Alexmos-Controller hängen für alle drei Phasen?
Mir fallen auch diverse Ansteuerungen ein....
 

OlliW

Erfahrener Benutzer
Die drehen doch gar nicht beim Brugi
haha... ich hatte mir ernsthaft überlegt ob ich nicht Drehen/Bewegen schreiben soll, aber hatte mir gedacht, ne, den Scherz wird doch keiner bringen... LOL :) :) (das Forum müsste dringend mal an seinen Smileys arbeiten, ich vermisse das sich Bier-zu-prosten Smiley)
Erklär doch mal bitte die Unterschiede
umfassend erklären werde ich das hier nicht können (und ich bin ja auch nur Web-Stöberer), weil es zuviele Aspekte sind, und eine gute Literatur/Seite habe ich dazu auch nicht, für mehr müsste man also selber stöbern, aber ein paar Hinweise/Stichworte kann ich gerne geben, ich überschreibe sie mal mit BLDC und PMSM:

BLDC motor - brushless DC motor
Hier wird das Drehfeld erzeugt, in dem (elektronisch) kommutiert wird, d.h. der Regler schaut wann er auf die nächste Phase weiterschalten muss, und wenn er den richtigen Zeitpunkt gekommen sieht, schaltet er weiter. Typisch daran ist dass eine Phase nicht bestromt wird, also ein Schaltzustand z.B. so aussieht +V OFF -V (es gibt 6 Schaltzustände). Die nichtbestromte Phase kann man z.B. dazu nutzen um die back-EMF daran zu messen, um z.B. den Zeitpunkt zum Kommutieren zu finden, worauf die ganzen sensor-less BLDC Regler basieren. Da der Strom nur zwischen zwei Phasen fliesst, kann die PWM dadurch realisiert werden, dass nur eine der aktiven Phasen geschaltet wird (also z.B. phase A im Beispielzustand +V OFF -V), man muss das aber nicht so machen, und ausgereiftere Verfahren machen das auch komplizierter. Weitere Schlagworte die hier dazu gehören: DC, trapezoidal back EMF, square wave drive, six-step square wave commutation, ... ... ...

PMSM - permanent magnet synchrounous motor
Hier wird das Drehfeld direkt vom Regler erzeugt, in dem er durch alle drei Phasen einen phasenrichtigen Strom schickt, z.B. drei um jeweils 120° verschobene Sinuskurven. Typisch daran ist dass alle drei Phasen bestromt sind, und die H-Brücken daher nur die zwei Zustände +V oder -V kennen; ein Schaltzustand sieht z.B. so aus +V +V -V (mir zumindest ist für den PMSM keine Ansteuerung bekannt bei der ein OFF Zustand vorkommt). Zur PWM wird schnell zwischen den möglichen Schaltzuständen gewechselt (es gibt 8 davon!). Das ganze ist sehr sehr ähnlich zu dem was bei Schrittmotoren (insb. mit Mikroschritten) gemacht wird. Weitere Schlagworte die hier dazu gehören: AC, PMAC motor, sinusoidal back EMF, sine wave drive, ... ... ...

Unsere "üblichen" Regler fallen unter Fall 1, die brushless Gimbal Steuerungen unter Fall 2!


Mir fallen auch diverse Ansteuerungen ein....
erzähl! ERZÄHL!
 

OlliW

Erfahrener Benutzer
hm... jetzt habe ich mir soviel Mühe gegeben... noch ein letzter Versuch

du hast einen Motor mit 3 Phasen, A, B, C, und drei zugehörigen Halbbrücken, mit jeweils zwei Fets oben und unten (high-side, low-side). Für jede dieser Phasen können die Fets der zugehörigen H-Brücke in vier Zuständen sein, welche ich jetzt zur Vereinfachung +V, -V, OFF und KILL nenne
Code:
       high-side Fet    low-side Fet
+V     leitend          nicht-leitend
-V     nicht-leitend    leitend
OFF    nicht-leitend    nicht-leitend
KILL   leitend          leitend
Bei +V ist die Phase mit dem Pluspol der Batterie verbunden, bei -V mit dem Minuspol, bei OFF ist die Phase völlig stromlos, und bei KILL fliesst ein Kurzschlusstrom und die Fets zerstören sich selber (dieser Zustand ist also zu vermeiden LOL).

Nun haben wir drei Phasen A, B, C, und wir können einen Zustand angeben als z.B. +V OFF -V, was meint das die H-Brücke für Phase A entsprechend +V geschaltet ist (Phase A also am Pluspol der Batterie liegt), die H-Brücke für Phase B ist OFF, und die H-Brücke für Phase C ist -V.

BLDC:
Hier werden zum Drehen/Bewegen des Motors die folgenden Zustände der Reihe nach durchlaufen (die Durchlaufrichtung bestimmt die Drehrichtung):
+V -V OFF
+V OFF -V
OFF +V -V
-V +V OFF
-V OFF +V
OFF -V +V
Zum PWM-Modulieren werden einfach die jeweilig aktiven H-Brücken im Takt an und aus geschaltet (beide aktiven Fets, oder nur einer, oder wie man möchte), es wird also z.B. schnell zwischen +V und OFF gewechselt.
Der Zeitpunkt wann zum nächsten Zustand weiter geschaltet wird, wird anhand der Stellung des Motors bestimmt (= Kommutierung).

PMSM
Hier werden zum Drehen/Bewegen des Motors der Reihe diese Zustände durchlaufen:
+V -V -V
+V +V -V
-V +V -V
-V +V +V
-V -V +V
+V -V +V
Zum PWM-Modulieren werden die Zustände +V +V +V und/oder -V -V -V im passenden Takt dazwischen geschaltet. Zwischenstufen lassen sich erreichen, indem man auch noch im PWM Takt zwischen zwei benachbarten Zuständen hin-und-herwechselt (so kann man ein sich in feineren Schritten sinusförmig drehendes Feld erzeugen).
Der Zeitpunkt wann zum nächsten Zustand weiter geschaltet wird, wird vom Controller einfach festgelegt, z.B. als Reaktion auf ein Clock-Signal an seinem Eingang.

Frage: warum beim PMSM nicht auch OFF Zustände benutzen?
Antwort: weil dann das Drehmoment viel kleiner ist (und wenn es nichts kostet warum es verschenken)

Frage: warum beim BLDC nicht auch auf die OFF Zustände verzichten, um mehr Drehmoment/Leistung aus dem Motor zu kitzeln?
Antwort: Geht, aber braucht "teure" Regler, da viel mehr Rechenzeit bzw. sehr schnelle Controller benötigt werden (die Atmega bzw Silbas die in den üblichen Regler benutzt werden sind bereits beim einfacheren Kommutieren am Anschlag)(wäre interesant zu wissen was beim UltraESC benutzt wird)

besser?
:)

PS: es lassen sich anscheinend "beliebige" Mischformen realisieren, d.h. die Unterscheidung in die zwei Fälle muss nicht immer so klar sein, für uns taugt das aber

PPS: sorry, lonestar, fürs highjacken des Threads, passt nicht so wikrlich hierher... aber wo sonst... => TO
 
Sorry, das was Du ständig schreibst ist mir selbst klar, Du brauchst mir wirklich keine Motorsteller zu erklären ;) ... Aber wir reden immer noch aneinander vorbei...
Du Redest von "Drehfeld" Ich rede von PWM
Du Redest von H-Brücke, Ich rede von einem fertigen Treiber, den wir nicht beeinflussen können und der hier mit dem PWM ein klein wenig für unsere Zwecke misshandelt wird ;)

Und PWM haben wir immer, zum einen wird die Leistung darüber moduliert, zum anderen wird darüber auch die Sinus Ansteuerung gemacht, damit der Motor überhaupt so langsam drehen kann.
... 32000 mal in der Sekunde... und bei jedem on pennt der Treiber 300nS, darum geht es... und um sonst nichts ;)

Lass gut sein, ich geb´s auf wie gesagt, die Diskussion bringt hier nichts, sowas sollte nicht öffentlich sondern face2face unter Entwicklern am gleichen Tisch geschehen ;)

Die Hardware ist gut so und der Brugi funktioniert ja auch super, wenn man sich in den Rahmenbedingungen bewegt, es gibt also auch keinen Handlungsbedarf.
 
Zuletzt bearbeitet:

rc-action_de

Erfahrener Benutzer
Hallo zusammen,

wenn ich zum momentan Stand der Software bedenke das ich noch weniger Drehmoment verschwenden soll, dann weiß ich gar nicht wie klein die Motoren werden sollen die ich wickle bzw. wie dünn der Draht ...
Momentan ist bei mir ein 40g Motor fast perfekt dafür ausgelegt die Rollachse inkl. Kamera und Gehäuse in hoher Auflösung zu bewegen.

Wenn ich jetzt plane das ich 15g Motoren mit 0.05mm Draht wickeln soll, dann bluten mir beim Gedanken daran schon die Finger.

schaun wir mal ...

Ich für meinen Teile finde nicht dass die Motoren zu wenig Drehmoment haben - eher noch zu viel ;-)

Viele Grüße
Henry
 

OlliW

Erfahrener Benutzer
das was Du ständig schreibst ist mir selbst klar
wenn dir das alles klar ist, dann ist dir ja auch klar das wir beim BruGri eine 100%-Vollansteuerung gerade genau benutzen wollen und den fertige Treiber gar nicht beeinflussen wollen weil der von der Funktion schon super passt und nicht misshandelt werden muss, die Totzeit möglichst klein sein sollte damit sie uns die PWM-Modulation nicht begrenzt, und die Totzeit von 300ns im Vergleich zur PWM-Taktperiode von 32us viel zu klein ist um eine Verkleinerung des maximalen Stroms um einen Faktor zwei im Vergleich zum 4/8kHz PWM zu erklären... na, dann ist ja alles geklärt :)

Für mich hat es in Post #895 und ff so gewirkt als ob du das nicht so siehst, aber schön das dem nicht so ist und sorry das ich dich falsch verstanden habe.
 
Super, dann sind wir uns ja wieder einig :)
Aber, 100% werden die "Spulen" "leider" zu keinem Zeitpunkt bestromt ;)
Soll doch mal einer von 32khz auf 8khz ändern und schauen in wieweit sich die Strohmaufnahme ändert...
Oszi an die Ausgänge und die gap´s ausmessen wäre auch nicht schlecht...

Das ganze aber ist aber noch komplizierter... als das man es auf alle hier Verwendung findenden Kombinationen pauschalisieren könnte.
Die Leistung die mit PWM Moduliert wird hat ja keine ohmsche Last sondern eine Spule, wie bei "Schaltreglern" üblich ;)
Diese Kombinationen wirken im Zusammenspiel und beeinflussen sowohl die effektive Leistung als auch das damit in Zusammenhang stehende Dreh- bzw. Haltemoment der Motoren.
Die gleichen Problematik hast Du aber auch bei Schrittmotoren, wenn dort die Endstufe nicht zum Motor passt, verliert der eine Menge an Performance...
Und so seltsam es nun klingen mag... gerade eine "schlechte Performance" kommt auf dem Brugi am besten :)

Nachtrag zur Erklärung "schlechte Performance"
Im Gegensatz zu den üblichen Antrieben haben sich Motoren mit
100% Magnetabdeckung, dünnen gekrümmten minderwertigen Magneten, zu dünne oder aus falschen Legierungen bestehenden Rückschluss Ringen, Statoren mit zu breiten Köpfen in Verbindung mit zu Großem Spalt zu den Magneten, Zu viele Windungen, schlechte und zu dicke Statorbleche usw. usw. als gerade besonders geeignet heraus kristallisiert :)
Zumal das meiste Statorblech Material fast aller Modellbau Motoren für 32khz völlig ungeeignet ist und Mehr Wärme (Verlust) als Magnetfluss hervor bringt :)
Ich glaube ich lasse mir mal paar Statoren Sintern LOL
 
Zuletzt bearbeitet:
Super, dann sind wir uns ja wieder einig :)
Aber, 100% werden die "Spulen" "leider" zu keinem Zeitpunkt bestromt ;)
Soll doch mal einer von 32khz auf 8khz ändern und schauen in wieweit sich die Strohmaufnahme ändert...
Oszi an die Ausgänge und die gap´s ausmessen wäre auch nicht schlecht...
Ich habe leider keinen Oszi habe aber gerade mit einem normalen Multimeter die Gesamtstromaufnahme meines Brugi mit meinem Gimbal mit 4 mal 4404 Motoren (je 2 pro Achse) gemessen. Dabei habe ich eher kleine Unterschiede zwischen den PWM Frequenzen gefunden:

4 kHz: ca. 1,55 Ampere
8 kHz: ca. 1,50 Ampere
32 khz: ca. 1,43 Ampere
 
Status
Nicht offen für weitere Antworten.
FPV1

Banggood

Oben Unten