Bürstenmotorsteller 50A(70A)@36V oder 8A@36V mit Telemetrie

Hallo zusammen,

ich wollte zwar nie mehr einen Bürstensteller entwickeln, aber jetzt habe ich es doch getan
;)
Weil es einfach keine kommerziellen gibt, die auch die Drehzahl des Bürstenmotors messen.
Anders als bei BLDC-Motorstellern ist das hier nicht ein Abfallprodukt des Kommutierungsverfahrens, sondern man muss das extra realisieren. Ist keine Raketentechnik, aber auch nicht ganz trivial.
Im Anhang sieht man die kleine und die große Variante. Sie unterscheiden sich nur in der Belastbarkeit:

- kleine Variante: 5A(8A)@24V
- große Variante 50A(70A)@36V

Die restlichen Features sind identisch:
- Steuerung über SBus(2), IBus, SumD(V3), CRSF oder ppm
- Telemetrie über SBus2, IBus, Hott, CRSF

Als Telemetriewerte werden Motordrehzahl, Motorstrom, Akku-Spannung und ggf. Motortemperatur (dazu ist natürlich ein extra 2-draht-Sensor erforderlich, oder auch nicht: siehe Update 1) transportiert.

Die Firmware funktioniert im Test, bis zur Freigabe wird es aber noch etwas dauern. Wie alle meine Projekte wird die Firmware als OSS zur Verfügung gestellt und die Hardware kann man bei JLCPCB bestellen. Über den weiteren Fortschritt (oder Rückschritt) werde ich hier informieren.

Das Messprinzip ist die Auswertung des momentane Stromverlaufes, da ein Bürstenmotor notwendigerweise beim Kommutierungswechsel Wicklungen parallel schaltet, was zu einem Strompeak führt. Mit etwas Vorverarbeitung, DFT und Auswertung des Amplitudenspektrums hat man dann die elektrische Drehzahl (s.a Update 2).

Update 1:

Ein Temperaturschätzung ohne einen externen Temperatursensor scheint auch möglich: der Innenwiderstand des Motors ist abh. von der Temperatur. In Stillstandsphasen kann die Motoridentifikation wiederholt werden, und dabei kann eine Veränderung des Innenwiderstands gemessen werden (s.a. Update 2).

Update 2:

Es hat sich gezeigt, dass bei manchen Motoren die Messung "nur" bis ca. 80% der Maximaldrehzahl funktionierte. Der Grund scheint mir darin zu liegen, dass die Bürsten irgendwann anfangen zu springen. Dadurch schleichen sich leider niederfrequente Anteile ein: sprich das Maximum im Amplitudenspektrum entspricht nicht mehr der elektrischen Drehzahl.
Deswegen musste ich weiter in die Trickkiste greifen: wie auch bei guten Brushless-Stellern, die mit echter FOC arbeiten, muss erst eine Motoridentifikation gemacht werden, indem Innenwiderstand Rm und Induktivität Lm des Motors geschätzt werden, und daraus wird dann auch die Motorkonstante Kv ermittelt. Wohlgemerkt, ohne das der Motor auf einen Prüfstand muss oder dass man irgendwelche anderen Hilfsmittel benötigt. Damit ist jetzt eine absolut zuverlässige Drehzahlmessung möglich. Die Versuche, über die Uemf des Motors zu gehen, waren wenig erfolgreich, weil gerade bei großen PWM-Duties (>80%), das Zeitfenster zur Messung der Uemf sehr klein wird. Man muss berücksichtigen, dass erst die Induktionsspannung des Schaltvorgangs abgeklungen sein muss, bevor man Uemf messen kann (bei >= 20KHz PWM-Frequenz (50µs) und d>=90% ist man bei einem Fenster von <=2,5µs). Bei d=100% ist die Messung eh nicht möglich.
Man kann die Motorwerte Rm, Lm, Kv im Steller speichern, oder man lässt bei jedem Einschalten die Indentifikation einmal laufen (ca. 3s). Letzteres hat den Vorteil, dass auch die Temperaturschätzung genauer wird, denn die ist ja relativ zur Umgebungstemperatur (also: Ankerwicklung ist 40°K über Umgebungstemperatur).
Ein "etwas" ungeklärtes Phänomen ist, dass der Innenwiderstand Rm bei links bzw. rechts-Lauf um ca. 10-12% bei manchen Motoren unterschiedlich ist. Wohlgemerkt dreht sich der Motor bei der Messung nicht ... Das ist in der Praxis nicht schlimm, weil man ja mit beiden Werten getrennt arbeiten kann.
 
Fotos vergessen
 

Anhänge

  • IMG_20240202_064908_396.jpg
    IMG_20240202_064908_396.jpg
    331,5 KB · Aufrufe: 73
  • IMG_20240202_064927_232 (1).jpg
    IMG_20240202_064927_232 (1).jpg
    452,4 KB · Aufrufe: 74
  • IMG_20240220_150447_111 (2).jpg
    IMG_20240220_150447_111 (2).jpg
    363,1 KB · Aufrufe: 78
  • IMG_20240220_150452_669 (2).jpg
    IMG_20240220_150452_669 (2).jpg
    348,2 KB · Aufrufe: 72
  • IMG_20240220_150541_258 (1).jpg
    IMG_20240220_150541_258 (1).jpg
    137,4 KB · Aufrufe: 76
  • IMG_20240220_221855_468 (1).jpg
    IMG_20240220_221855_468 (1).jpg
    338,4 KB · Aufrufe: 74
  • IMG_20240228_165618_897 (1).jpg
    IMG_20240228_165618_897 (1).jpg
    343,4 KB · Aufrufe: 83
  • IMG_20240228_165606_759 (1).jpg
    IMG_20240228_165606_759 (1).jpg
    305,9 KB · Aufrufe: 84
Frage von einem komplett vom Bootsbau Unbeleckten:
gibt es einen Grund statt auf Brushless Umbau direkt einen kompletten Regler zu erfinden?
Außer natürlich dem besten aller Gründe, "weil's geht und ich es kann" 🙂

Also haben Bürstenmotoren in Booten Vorteile? Bei crawlern werden die ja noch oft wegen dem fein dosierbaren Gas bei wenig RPM verwendet.
 
gibt es einen Grund statt auf Brushless Umbau direkt einen kompletten Regler zu erfinden?

Es gibt eigentlich kaum Gründe dafür ;-)

Aber es gibt ein paar bedenkenswerte Aspekte:

Selbst mit FOC/HFI (wie z.B. bei V/ESC) bekommt man bei BLDC kaum einen fast geräuschlosen Langsamlauf hin (abgesehen vom Drehmoment bei Upm==0/s).

Die meisten BLDC sind für die Blockkommutierung gebaut.
Damit ist ein Langsamlauf ohne Drehmomentschwankungen praktisch nicht möglich. Es sei denn, man macht eine Sinuskommutierung mit Stromüberhöhung (entweder blind oder auch mit FOC), doch dann hat man natürlich einen ganz üblen Wirkungsgrad und der Motor kann sehr heiß werden. Auch bei schnellerem Lauf bleibt das Problem und äußert sich im Geräusch (ich meine nicht das durch eine zu niedrige PWM ausgelöste Geräusch).

Das Argument mit fein dosierbarem Gas bei schlupffreien Antrieben (Crawler, ...) ist eigentlich keins, weil FOC-Steller das ja können. Nur eben nicht die simplen Steller, die nur mit BEMF-Auswertung für die Kommutierung arbeiten, nicht. Da muss man einfach nur einen vernünftigen Steller wählen, und nicht die, mit dem China-Standard-Design.

Wie ich in dem Video gesagt habe: der einzige Grund für mich war, einen Steller mit Telemetrie zu haben, der auch die Drehzahl des Motors sensorlos bestimmen kann, was beim BLDC ja trivial ist. Und der zweite Grund ist die sensorlose Temperaturmessung. Muss man nicht haben, kann man aber ;-)
 
Die meisten Funktionen sind nun eingebaut:
 

Anhänge

  • screen-2000-01-01-000236.png
    screen-2000-01-01-000236.png
    2,2 KB · Aufrufe: 16
  • screen-2000-01-01-000233.png
    screen-2000-01-01-000233.png
    2 KB · Aufrufe: 16
  • screen-2000-01-01-000230.png
    screen-2000-01-01-000230.png
    1,9 KB · Aufrufe: 13
  • screen-2000-01-01-000223.png
    screen-2000-01-01-000223.png
    1,9 KB · Aufrufe: 15
  • screen-2000-01-01-000153.png
    screen-2000-01-01-000153.png
    3,5 KB · Aufrufe: 15
  • screen-2000-01-01-000129.png
    screen-2000-01-01-000129.png
    5,1 KB · Aufrufe: 13
  • screen-2000-01-01-000123.png
    screen-2000-01-01-000123.png
    6,3 KB · Aufrufe: 13
  • screen-2000-01-01-000111.png
    screen-2000-01-01-000111.png
    6,8 KB · Aufrufe: 13
  • screen-2000-01-01-000252.png
    screen-2000-01-01-000252.png
    2,2 KB · Aufrufe: 11
  • screen-2000-01-01-000333.png
    screen-2000-01-01-000333.png
    3,3 KB · Aufrufe: 16
Der Wahnsinn was alles möglich ist, du willst sowas ähnliches nicht zufällig auch in AM32 einbauen? 😁
Ich habe doch keine Bürstenmotoren...
 
Bei BLDC ist es doch trivial, die (elektrische) Drehzahl zu bestimmen. Ich kenne AM32 nicht, doch das sollte das doch eingebaut sein. Bei ESCape32 ist es jedenfalls drin, wie CRSF und SBus2 support.
 
Der ESCape32 hat ein Textmenu im CLI-Modus. Da mir das auch zu blöd war, den ESC abzustöpseln, um etwas zu verändern, habe ich einen PassThru-Mode in meinen CruiseController eingebaut. Damit kann man das entweder über CRSF (elrsv3.lua) oder per BT und SmartPhone machen.

Man muss sich allerdings der Tatsache bewusst sein, das CRSF ein P2P-Protokoll ist, d.h. der Empfänger ist normalerweise der Master und der FC - oder wie hier der ESC - ist der Slave. Mehrere ESCs (Slaves) lassen sich nicht so einfach parallel schalten wie etwa bei Hott oder S.Port. Aber auch dafür habe ich eine Lösung in Arbeit: der CRSF-Router.
 
Du hast ein "noch" vergessen.

Die eine Lösung für alles wird es nicht geben, aber für ein simples Empfänger+ESC Setup wäre ein per LUA konfigurierbarer ESC schon was sehr feines. Wenn ich eh schon einen FC drin habe kann ich da ja per USB oder Bluetooth ran ohne was auseinander bauen zu müssen.
Und mit der steigenden Beliebtheit von AM32 und hoffentlich auch ESCape32 gäbe es denke ich eine nicht unwesentliche Schnittmenge mit den ELRS Nutzern.

Aber das nur am Rande, hier geht es ja explizit nicht um AM32 etc. sondern um deinen Regler :)
 
Du hast ein "noch" vergessen.

Ja, da hast Du Recht ;-)

Die eine Lösung für alles wird es nicht geben, aber für ein simples Empfänger+ESC Setup wäre ein per LUA konfigurierbarer ESC schon was sehr feines. Wenn ich eh schon einen FC drin habe kann ich da ja per USB oder Bluetooth ran ohne was auseinander bauen zu müssen.
Und mit der steigenden Beliebtheit von AM32 und hoffentlich auch ESCape32 gäbe es denke ich eine nicht unwesentliche Schnittmenge mit den ELRS Nutzern.

Bislang konnte ich Arseny nicht davon überzeugen ...
 
Ansicht hell / dunkel umschalten
Oben Unten