Ansteuerung von BLDC Motoren für Nähmaschinen

Alles über Antriebstechnik, Elektroarbeiten, Probleme beim Anschluss eines Motors.
Nachricht
Autor
Flickflak
Edelschrauber
Edelschrauber
Beiträge: 779
Registriert: Donnerstag 18. Februar 2021, 14:04
Wohnort: Dänemark
Kontaktdaten:

Re: Ansteuerung von BLDC Motoren für Nähmaschinen

#61 Beitrag von Flickflak »

Danke für die Antwort.

Ja, hierbei muss man damit rechnen, dass der Motor bremsen kann. Ich stimme zu, dass zu starkes Bremsen auch nicht erfolgen sollte, sondern nur mit einem Drehmoment, auf das man sich sonst normalerweise beschränkt. Wird die Bremsrampe von der Arduino-Software bestimmt oder liegt sie im Motorcontroller?

Beim aktiven Bremsen aus höheren Geschwindigkeiten führt die Rotationsenergie zu einem negativen Strom in einer typischen 24-V-Stromversorgung, was dazu führen kann, dass die Spannung hier stärker als gewünscht ansteigt. In einem solchen Fall können beispielsweise TVS-Dioden das Problem lösen.

Grüß, Viggo
Pfaff 30, Pfaff 11, Köhler VS, Gritzner 1, Vesta ?, Singer 201k, Singer 66k, Singer 48k
Singer 237, Bernina 910, Husqvarna Viking 6010
Youtube channel: https://www.youtube.com/channel/UCtdxan ... /playlists

Benutzeravatar
Achim (js_hsm)
Moderator
Moderator
Beiträge: 8092
Registriert: Montag 27. September 2021, 23:40
Wohnort: Erkrath
Kontaktdaten:

Re: Ansteuerung von BLDC Motoren für Nähmaschinen

#62 Beitrag von Achim (js_hsm) »

Das passiert alles im Motorcontroller.
Gruß, Achim

Der Maschinen(um)bauer
Adler 30,48,67,68,69 Pfaff 142,145,335,1222, Typical GC20606-18, Sailrite 9" Clone und..
https://youtube.com/@Special_Solutions
BLDC-Servos https://www.naehmaschinentechnik-forum. ... 33#p119733

Renntrecker
Nadeleinsetzer
Nadeleinsetzer
Beiträge: 46
Registriert: Montag 17. April 2017, 19:07
Wohnort: 72406 Bisingen

Re: Ansteuerung von BLDC Motoren für Nähmaschinen

#63 Beitrag von Renntrecker »

Hallo Achim,
Darf ich dann hier fragen?
Geht um einen Motor für eine Pfaff 30.
Ich habe mir bei eBay folgenden ACT Motor rausgesucht
Nema23 BLDC Motor 57BL06 3000RPM 24V 138W 106.5mm

Ein Kit mit Servotreiber von ACT.
Nenndrehmoment wäre 0,44Nm.

Lieg ich damit halbwegs passend?
Dann wäre das mein Einstieg.
Danke und viele Grüße
Holger

Benutzeravatar
Achim (js_hsm)
Moderator
Moderator
Beiträge: 8092
Registriert: Montag 27. September 2021, 23:40
Wohnort: Erkrath
Kontaktdaten:

Re: Ansteuerung von BLDC Motoren für Nähmaschinen

#64 Beitrag von Achim (js_hsm) »

Motor und Controller sind ok, als Controller nehme ich "DC 6-60V 400W BLDC Dreiphasen DC BüRstenlos Motor Controller PWM Hall".
Die haben zwar kein Gehäuse aber stellen direkt 5V für den MC zur Verfügung wink

Gruß, Achim
Gruß, Achim

Der Maschinen(um)bauer
Adler 30,48,67,68,69 Pfaff 142,145,335,1222, Typical GC20606-18, Sailrite 9" Clone und..
https://youtube.com/@Special_Solutions
BLDC-Servos https://www.naehmaschinentechnik-forum. ... 33#p119733

R.Staunlich
Neu im Forum
Neu im Forum
Beiträge: 9
Registriert: Freitag 12. Dezember 2025, 14:39

Re: Ansteuerung von BLDC Motoren für Nähmaschinen

#65 Beitrag von R.Staunlich »

Moin,
ich möchte gerne aktiv zum Thema beitragen - ich verfolge geade das Projekt, eine gut erhaltene Pfaff 1199 auf BLDC umzurüsten und bei der Gelegenheit so dies und das nachzurüsten.
- 'Stopmatic' mit wahlweise Nadelstellung oben oder unten (das ist das eigentliche Ziel. Der Rest ist Beiwerk...)
- Ersatz für das antiquierte Pedal (meine Idee wär ein günstiges Gaspedal für PC-Rennsimulatoren. Da sind auch nur Potis drin)
- Anzeige aktuelle Drehzahl und Leistung
- Betriebsstundenzähler oder zurückgelegte km smile (wer's braucht...)
- ESP32 mit Touchscreen (CYD - 'Cheap Yellow Display') als zentrale Steuereinheit und Bedienpanel
- ... mal sehen, was mir noch so einfällt.

Als ersten Schritt und als Grundlage für die Stopmatic-Funktion habe ich eine einfache Positionserkennung mittels Hall-Sensor gebaut.
In dieser Maschine ist hinter dem Kurvenscheibenblock oben noch viel Platz und es gibt zwei ungenutzte Befestigungspunkte M4 rechts und links von der Hauptwelle. Perfekt für mein Vorhaben.
Hier der Entwurf im CAD:
CAD.jpg
Auf die Welle kommt ein Klemmring mit zwei Neodym-Magneten (D 8mm), einer mit Norpol nach außen, der andere umgekehrt. Diese werden so platziert, dass sie jeweils in der Nadelstellung 'oben' bzw. 'unten' direkt unter dem Hall-Sensor stehen. D,h. sie haben einen Winkelversatz von 135°.
Auf folgendem Bild sieht man die Brücke mit dem Sensor im eingebauten Zustand.
Bruecke_eingebaut.jpg
Der Sensor ist zunächst provisorisch auf einem kleinen Stück Lochstreifenplatine verlötet und hat zwischen + und GND einen 100n Blockkondensator gegen hochfrequente Störungen aus dem Motor.
Hall-Platine.jpg
Mit 3.3V am Sensor bekomme ich damit bei laufender Maschine ein wunderschönes Signal zwischen 0 und 3.3V, das nun im nächten Schritt mit dem ESP32 (Arduino-Framework) für die Stopmatic-Funktion ausgewertet wird.
Screenshot_Oszi_2.jpg
Fortsetzung folgt...
Grüße
Nils

PS.: im Anhang die STL-Dateien zum Drucken, wenn es jemand gebrauchen kann.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

R.Staunlich
Neu im Forum
Neu im Forum
Beiträge: 9
Registriert: Freitag 12. Dezember 2025, 14:39

Re: Ansteuerung von BLDC Motoren für Nähmaschinen

#66 Beitrag von R.Staunlich »

Hallo,

das Projekt schreitet voran, hardwareseitig bin ich breits zu 75% im Ziel* - jetzt kommt die Software.
Ungeregelt hat der Motor im unteren Drehzahlbereich zu wenig Drehmoment. D.h. ich brauche eine Drehzalrückführung für eine aktive PID-Regelung (zu dem Thema gibt es z.B. reichlich gut gemachte Videos auf Youtube).
Der "400W BLDC-Controller" von Ali-Express hat einen Ausgang ("S"), der bei jedem Flankenwechsel eines der drei Hall-Sensoren ebenfalls einen Impuls erzeugt. Diese Impulse zähle ich mit einer entsprechenden Hardwarefunktion auf dem Controller-Board mit ESP32 ("PCNT", Pulse-Count).
Alle 50ms frage ich die gezählten Impulse ab und errechne daraus die Drehzahl des Motors. Diese wird mit der eingesetllten Solldrehzahl verglichen und bei Abweichungen gegengesteuert. Das erledigt eine Standard-Library ("AdvancedPID") für Arduino.
Der Controller erhält die PWM-Signale am entsprechenden Eingang "P" mit 1kHz vom ESP32-Board. Dazu muss der Jumper neben/unter dem dicken grünen Elko gebrückt werden.
Mit viel Rumprobieren habe ich dann die passenden P- I- und D-Parameter ermittelt. Eine gute Anleitung hierfür gibt es hier: https://www.youtube.com/watch?v=dZ8lzDi3cXY
Mit dem Ergebnis bin ich aber sehr zufrieden. Versucht man, den Motor mit der Hand zu bremsen (was ohne Regelung problemlos möglich ist) wird zügig nachgeregelt (bis es für die Finger zu heiß wird). Nach dem Loslassen gibt es nur einen kleinen Überschwinger.
Das Video im zip-Anhang zeigt den Prozess mit der Ausgabe von Soll- und Ist-Geschwindigkeit.
Der Arduino-Code ist nun ebenfalls im Anhang. my-pcnt.h stammt von folgender Webseite https://github.com/serena-ramley/ESP32-PCNT/tree/master und wurde nur leicht modifiziert. Der Zähl-Pin wurde geändert und die Funktion pcnt_resume() habe ich hinzugefügt.

*s. Projektbericht Motorumbau hier: https://www.naehmaschinentechnik-forum. ... 95#p167395
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

R.Staunlich
Neu im Forum
Neu im Forum
Beiträge: 9
Registriert: Freitag 12. Dezember 2025, 14:39

Re: Ansteuerung von BLDC Motoren für Nähmaschinen

#67 Beitrag von R.Staunlich »

N'Abend

Es kam an anderer Stelle die Frage auf, ob der externe PID-Regelaufwand nicht vergebens sei, da der Controller (Cheap Red Brushless Controller - ab hier von mir nur noch CRBC genannt) das eigentlich von Haus aus erledigen sollte.
Ursprünglich wollte ich für mein Projekt nur den CRBC anschließen und fertig. Hätte nie gedacht, dass daraus eine eigene Forschungsfrage wird. Aber jetzt möchte ich es doch genau wissen - und aufgrund der Beliebtheit und des unschlagbaren Preises vom CRBC ist es vielleicht auch für andere interessant. Dazu sind solche Foren ja gedacht.
Also betrachten wir die Sache mal gründlich (Vorweg: ich bin nur Maschinenbauer, kein E-Techniker...):
BLDC-Motoren haben, wie "normale" Bürstenmotoren auch, eine ziemlich lineare Kennlinie bzgl. Drehzahl und Drehmoment. Hier ein Beispiel von einem nanotec-Motor mit sehr ähnlichen Werten (https://www.nanotec.com/eu/de/produkte/640-db42l01):
Kennlinie_BLDC.jpg
Legt man die Nennspannung an (beim ACT-Motor 24V) stellt sich ohne Last die Nenndrehzahl ein (ca. 5000 1/Min).
Wird nun bei gleichbleibender Spannung ein steigendes Lastmoment aufgebracht, sinkt die Drehzahl proportional zum Moment, bis der Motor irgendwann nahezu stillsteht. Dann haben wir das maximale Moment, dass der Motor bei Nennspannung aufbringen kann.
Wenn nun die Spannung am Motor reduziert wird (sagen wir mal auf die Hälfte = 12V) verschiebt sich die Kennlinie parallel nach unten. Das Drehmoment-Drehzahl-Verhalten bleibt aber grundsätzlich gleich.
Der CRBC stellt die Drehzahl deshalb über eine variable Spannung an den drei Spulenanschlüssen des Stators ein. Damit er weiß, welche Spulen gerade dran sind, bekommt er entsprechende Signale von den drei Hall-Sensoren hinten am Motor.
So kann man auf das mechanische Umpolen via Bürsten und Schleifringe verzichten. Die "variable" Spannung wird nicht absolut, sondern in Form einer Rechteckspannung mit fester Frequenz und variabler Signalbreite ("Einschaltzeit" pro Periode aka duty-cycle) erzeugt. Die wirksame Gleichspannung ergibt sich als gemittelter Wert der Rechteckspannung.
Wir halten bis hierhin fest (nichts wirklich neues):
Gleiches Lastmoment und höhere Spannung --> höhere Drehzahl
Gleiche Spannung und höheres Lastmoment --> niedrigere Drehzahl.

Die Gretchenfrage ist nun: CRBC, wie hälst du es mit dem geschlossenen Regelkreis? Bist du willens und in der Lage, bei sinkender Drehzahl (durch eine höhere äußere Last) mit einer Spannungserhöhung zu kontern, um somit die Drehzahl wieder auf das geforderte Niveau zu bringen?
Über die Hall-Sensoren bzw. den Speed-Ausgang ist ja schließlich die information über die aktuelle Drehzahl im System vorhanden und kann mit dem Speed-Eingang verglichen werden.

Schauen wir zunächst auf das Datenblatt des verbauten Controlller-IC namens "JY01". Z.B. hier online zu finden: https://www.bldcmotor-driver.com/sale-1 ... ol-ic.html
Dort steht u.a. folgendes:
Current closed loop: Yes
Speed adjustment: linear
JY01 for Hall sensor motor driver, connect Pin 1 to Vss or connect 5V while power on, JY01 will drive as Hall way.
JY01 for Sensorless motor driver, offer 0.1V -4V to Pin 1, JY01 will drive as Sensorless way.

Letzteres ist schon mal interessant - der Chip kann theoretisch also beides: Hall- und Hall-less mode.
Bzgl. des "Current closed loop" gibt es keine weiteren Informationen, was damit genau gemeint ist. Verdächtig ist aber, dass es keine Möglichkeit gibt, das evtl. vorhandene Regelverhalten zu beeinflussen. Für einen stabilen Regler, der schnell Störungen ausregelt, dabei aber nicht schwingt, wäre das jedoch erforderlich.
Je nach Anwendungfall (Elektro-Roller, Drohne oder Nähmaschine) ist das Verhalten der Regelstrecke komplett unterschiedlich. Die Parameter müssen dazu passen (ich spreche da aus eigener Erfahrung).

Hilft also nichts, wir müssen dem Chip bei der Arbeit zuschauen. Im Anhang sind dazu drei Videos:
- Video 1: ohne Last mit dem Signal an einem der drei Spulen-Ausgänge. Man sieht sehr gut die Änderung der Pulsbreite.
- Video 2: mit Last aber ohne externe PID-Regelung. Hier zeigt sich deutlich, dass dem CRBC der Drehzahlabfall ziemlich Schnuppe ist. Er bleibt stoisch bei seinem PWM-Signal, das lediglich vom Timing her an die geringere Drehzahl angepasst wird.
- Video 3: mit Last und mit meiner externen PID-Regelung: So soll es sein! Die Pulsbreite wird dynamisch an die äußere Last angepasst, sodass die Drehzahl halbwegs konstant bleibt.

Mein Fazit:
nach allem, was ich bis jetzt so an Daten und Berobachtungen gesammelt habe, bin ich der Überzeugung: der CRBC kiegt es allein nicht geregelt. Da ist es gut, ihm einen Mikrocontroller zur Seite zu stellen, der ihm ab und zu mal (z.B. alle 50ms) auf die Finger klopft, wenn die Drehzahl nicht mehr zum Gaspedal passt.
Das Board ist weiterhin für seinen Preis unschlagbar gut und macht ansonsten alles, was es soll! Und vor allem ist es schön klein.
Puh..das ist jetzt ziemlich lang geworden. Man kann die Sache auch abkürzen und ohne lange Theorie zu einem Ergebnis kommen:
Ich bau das jetzt so ein und werde dann ja sehen, ob es funktioniert und wie lange es hält smile

Grüße
Nils
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Antworten