Pulsweitenmodulation und Lüfter

Was genau passiert, wenn die Leistung eines Lüfters per Pulsweitenmodulation gesteuert wird? Genauer hingeschaut.

Im Teil I hatten wir uns angeschaut, was Pulsweitenmodulation (PWM) ist. Dabei hatten wir uns zunächst auf Heizungen konzentriert, weil sie als einfache Widerstände wirken.

Auch das komplizierere Innenleben der Lüfter hatten wir beleuchtet.

Davon ausgehend können wir uns jetzt um Lüfter am PWM-Anschluss kümmern. Uns interessiert insbesondere der zeitliche Verlauf der Spannung, mit dem der Motor durch das PWM-Signal an- und abgeschaltet wird, und der dabei fließende Strom.

Der Aufbau schematisch

Die Schema-Zeichnung zeigt rechts vereinfacht die wesentlichen Komponenten. Der Prozessor des Druckerboards produziert das PWM-Signal. Weil es nicht stark genug ist, den Motor direkt zu treiben, steuert es eine Mosfet-Schaltung an, die zwischen Prozessor und Lüfterausgang auf dem Druckerboard liegt. Für das Verständnis hier reicht es aus, sich die Mosfet-Schaltung als Relais vorzustellen. Solange das PWM-Signal „ein“ ist, schaltet der Mosfet den „Minuspol“ des Motors durch.

Der PWM-Ausgang des Prozessors variiert die Pulsbreite, die Frequenz ist weitgehend festgelegt. Für das Verständnis wäre es jedoch schön, auch die Frequenz ändern zu können.

Daher ersetzen wir das Druckerboard durch einen Laboraufbau: Den Prozessor ersetzt ein Funktionsgenerator, bei dem wir auch die Frequenz einstellen können. Er steuert die fliegend auf einem Breadboard aufgebaute Mosfet-Schaltung eines Duet_2-Boards.

Genau sieht das dann so aus:Die Motorspannung messen wir mit einem Oszilloskop.

In die Masseleitung des Mosfets ist ein 1 Ohm-Widerstand geschaltet, so dass wir auch den Strom durch den Lüfter messen können. Der Einfluss des Widerstands auf die Lüfterschaltung ist zu vernachlässigen, da bei einem typischen Lüfterstrom von 100mA nur 0,1V über dem Widerstand abfällt, also weniger als 1% der Gesamtspannung.

An dieser Stelle können wir uns auch noch einmal daran erinnern, dass der Motor einen Chip enthält, der den Polwechsel der Motorspulen bewerkstelligt.

Der Aufbau live

Auf dem Breadboard erkennt man die drei Widerstände, der dicke ist der 1 Ohm-Widerstand. Der SMD-Mosfet ist provisorisch auf die kleine grüne Hilfsplatine gelötet. Die Verdrahtung entspricht genau dem Schema oben. Der Lüfter ist ein „OLEARN“, wie wir ihn auch in Lüfter-Latein angeschaut hatten.

Im Gesamtaufbau steht links oben der Funktionsgenerator und unten links das Netzteil für die 12 V. Die Motorspannung zeigt das Oszilloskop in Magenta an.

Der Motorstrom wird als Spannungsabfall über dem 1 Ohm-Widerstand gemessen und als Gelbe Kurve angezeigt.

100 mA entsprechen nach U=R*I einer gemessenen Spannung von 100 mV. Für die Anzeige kann man bei diesem Oszilloskop die Beschriftung von „V“ auf „A“ ändern.

Wofür ist der kleine Kasten oben rechts notwendig?

Die Motorspannung kann nicht direkt an das Oszilloskop angeschlossen werden. Die „Minuspole“ der Oszilloskop-Eingänge sind aus Sicherheitsgründen bei Oszilloskopen immer alle mit der Netz-Erde verbunden, also zusammengeschaltet. Mit der Strommessung verbinden wir den „Minuspol“ des gelben Oszilloskop-Eingangs mit GND der Schaltung auf dem Breadboard. Würden wir jetzt auch den „Minuspol“ des magentanen Oszilloskop-Eingangs mit dem Minuspol des Motors verbinden, wären Mosfet und 1 Ohm-Widerstand überbrückt oder kurzgeschlossen. Aus diesem Grund läuft der Magenta-Eingang über einen Differenz-Tastkopf, dessen Elektronik in der kleinen Zusatzkiste für die notwenige Entkopplung sorgt. Die Elektronik wird über USB aus dem Oszilloskop mit Strom versorgt, womit jetzt wirklich alle Kabel erklärt sind.

Messungen

Schauen wir uns das Oszilloskop-Bild zum Aufbau oben genau an.

100% Duty Cycle

Das Steuersignal aus dem Funktionsgenerator steht auf 100%, also sehen wir in Magenta eine Gleichspannung von etwa 12 V, die nur von kleinen Rucklern unterbrochen wird, jedesmal wenn die Spulen des Motors umgeschaltet werden und dadurch eine  Induktionsspannung entsteht.

Gelb sehen wir den Motorstrom. Jeder „Schwung“ ist dabei der Stromverlauf der vier Statorspulen während einer Viertelumdrehung. Im Moment, wo die Polung der Spulen umgeschaltet wird, bricht der Strom kurz auf Null ein. Vier Schwünge ensprechen also einer Umdrehung, die per Cursor ausgemessen ist. Wir können direkt ablesen: Der Motor benötigt 11,12 ms für eine Umdrehung, das sind 89,9 Umdrehungen pro Sekunde oder 5395 U/min bei einem PWM-Cycle von 100% oder 12V Gleichspannung.

50% Duty Cycle, 10 Hz PWM-Frequenz

Jetzt läuft der Lüfter auf 50% bei einer PWM-Frequenz von 10 Hz, d.h. der Lüfter wird 10 mal pro Sekunde ein- und ausgeschaltet, ist also jeweils für eine 20stel Sekunde eingeschaltet.

Im folgenden Bild ist die Zeitachse um einen Faktor 10 gegenüber oben zusammengedrückt. Das seht ihr unten rechts unter Timebase. Oben sind es 2ms/div, also pro Teilstrich, unten sind es 20ms/div. Das Bild oben zeigt insgesamt 20 ms über die volle Breite, das Bild unten 200ms.

Schauen wir uns die Cursor-Werte an, so läuft der Lüfter jetzt mit 56,18 U/s oder 3370 U/min. in der 20stel Sekunde schafft er 56,18/20=2,8 Umdrehungen, bevor die PWM-Schaltung ihn wieder abschaltet. Gegenprobe: 2,8 Umdrehungen entsprechen 4*2,8=11,3 Spulendurchläufen. Dies kann man oben im Bild leicht nachzählen.

10 Hz ist eine sehr niedrige PWM-Frequenz, die wir nur zur Veranschaulichung gewählt haben. Der Motor läuft damit nicht ganz rund, sondern „tuckert“ leicht vor sich hin.

50% Duty Cycle, 50 Hz PWM-Frequenz

Erhöhen wir die PWM-Frequenz auf 50 Hz, schafft der Motor keine volle Umdrehung mehr, bevor er wieder abgeschaltet wird.

Die Zeitachse ist jetzt auf 5ms/div skaliert. Eine Viertelumdrehung benötigt jetzt 4,5 ms, eine Umdrehung also 18 ms. Das ist etwas mehr als die 17,8 ms oben.

Der Chip im Lüfter erkennt offenbar nach dem Einschalten die Situation und schaltet die Versorgungsspannung sofort mit der richtigen Polarität auf die Spulen. Genau hingeschaut verläuft der Stromanstieg beim Einschalten nicht ganz so steil wie nach dem Umschalten auf die nächste Spule. Der Motor bekommt dadurch etwas weniger Energie, was erklärt, dass er minimal langsamer läuft, als wenn er weniger oft aus- und wieder eingeschaltet wird.

50% Duty Cycle, 490 Hz PWM-Frequenz

Die meitsen PWM-Ausgänge der ATmega-Prozessoren auf Standard-Boards laufen mit 490 Hz PWM-Frequenz. Das sieht dann so aus:

Der Motor kann grade noch den Strom komplett hochfahren, bevor er wieder abgeschaltet wird. Im Bild erkennt man drei Einschaltzyklen, in denen die Spulenpolung umgeschaltet wird. Sie liegen jetzt auf 6,06 ms Abstand. Eine Umdrehung benötigt jetzt also 24 ms. Prinzipiell könnte noch ein Polwechsel in einer Ausschaltphase dazwischen liegen, dann wären es aber 3ms pro Viertelumdrehung. Der Motor wird aber nicht schneller drehen, als bei den niedrigeren PWM-Frequenzen, da wir ja erwarten, dass aufgrund der vielen Einschaltvorgänge eher noch weniger Energie in den Motor übertragen wird.

Hätten wir uns dieses „normale“ Betriebsbild beim Einsatz in 3D-Druckern direkt als erstes angeschaut, wäre es sehr schwer zu verstehen gewesen, was da passiert. Daher der Einstieg über die langsamen PWM-Frequenzen.

23% Duty Cycle, 490 Hz PWM-Frequenz

Dieser OLEARN-Lüfter läuft ab einem Duty Cycle von 23% an. Das sieht dann so aus:

Der Lüfter wird dabei schon im Hochlaufen des Stroms wieder abgeschaltet.

Mit den Überlegungen zur PWM entsprechen 23% Duty Cycle auch 23% der Maximalleistung, die ja bei 100% Duty Cycle erbracht wird.

Hängt man den OLEARN-Lüfter direkt an das „echte“ Gleichspannungsnetzteil, läuft derselbe Lüfter bei 2,5 V* an. Ebenfalls mit den Überlegungen zur PWM sind dies 2,5²/12² = 4,3% der Maximalleistung.

*)Im Olearn ist ein OCS477H Chip verbaut. Zum mindestens ähnlichen AH477 lässt sich ein Datenblatt finden, wonach die zulässige Betriebsspannung zwischen 3,5 und 20V liegt.

Mit dem XINHUIDA-Lüfter aus Lüfter-Latein liegen die Werte bei 16% bzw. 2,6V, also 16% bzw. 4,7% Maximalleistung.

Die häufig gehörte Meinung, dass Lüfter an PWM „früher anlaufen“ als an Gleichspannung, ist so allgemeingültig also nicht richtig.

Wohin denken die Profis?

Offenbar betreiben wir die Lüfter mit bürstenlosen Gleichstrommotoren und Steuerchip in 3D-Druckern nicht ideal. Sie sind für diese Betriebsart nicht gedacht. Diese Meinung vertritt auch der HW-Entwickler der Duet-Boards. Eine PWM Frequenz von ca. 500 Hz sei ggf. noch der beste Kompromiss. Auf den Boards echte Gleichspannung für Lüfter zu erzeugen, würde zu viel Raum auf den Platinen einnehmen.

Eine saubere Lösung wären 4-Pin-Lüfter, wie sie z.B. für CPU-Kühler üblich sind. Sie werden an die permanente Versorgungsspannung angeschlossen, bekommen einen Sollwert über ein PWM-Signal am 4. Pin mitgeteilt und steuern den Motor dann lüfterintern. Der 3. Pin gibt – wie bei 3-Pin-Lüftern – eine Drehzahlinformation aus.

Leider gibt es kaum passende Bauformen für den Einsatz in 3D-Druckern. Viele 4-Pin-Lüfter lassen sich auch nicht auf 0% herunterregeln.

Für alle Fälle hat das relativ neue Duet_3-Board schon einmal drei Anschlüsse für 4-Pin-Lüfter. Eventuell wird dies ja ein Trend.

9 Kommentare

    • Hast du die Flyback-Diode auf der anderen Seite der Platine versteckt? Die Duet-Platine hat sie vielleicht an Bord, aber viele andere haben sie nicht. Die Diode ist der Schlüssel zum Funktionsprinzip des Wandlers, denn wenn der MOSFET abschaltet, kehrt sich der Strom in der Spule um und braucht einen Weg, um den Kondensator zu laden. Die richtige Schaltung hat einen viel besseren Wirkungsgrad als die einfache Widerstand-Kondensator-Schaltung und funktioniert in der Tat sehr gut, wie ich in meinem Kühlschrank Beispiel unten erwähnt habe. Bei den kleinen Strömen der Lüfter sollte der Strombegrenzungswiderstand mit einem Kondensator ebenfalls zufriedenstellend funktionieren.

      • Ohh. Klar das hatte ich vergessen zu erwähnen. Mein Board ist für die Duets ausgelegt… Leider besteht nicht soviel Interesse an so einem Board. Irgendwie ist das Thema den meisten „egal“:(((((

        • Keine Sorge, es gibt genug Interessierte, um eine Diskussion zu führen, und einige wollen sogar, dass ihre Teilkühlungslüftersteuerung effektiv ist.
          Ich werde ein kurzes Update im Trigorilla-Thema, das ich bereits erwähnt habe, über meine bisherigen Erkenntnisse schreiben.

    • Ich finde das ganz interessant.
      🙂

  • Moin jorkki, Danke Dir für die Ergänzung!

    Eine solche Schaltung für jeden Lüfter ist den Boardherstellern offenbar zu aufwändig. Und die heute verfügbaren 4-Pol-Lüfter scheinen auch hohe PWM-Frequenzen zu erwarten.
    Für günstige Boards bleibt es also schwierig, wenn man sich nicht gleich ein Zusatzplatine entwerfen möchte.

  • Ich habe die Erfahrung gemacht, dass die meisten Sunon-Lüfter eine niedrige PWM-Frequenz überhaupt nicht mögen. Bei etwa 30 kHz PWM arbeiten sie wirklich gut. Das 5015 Gebläse scheint laut den Forumsbeiträgen eine Ausnahme zu sein. Das Problem ist, dass bei vielen Hardware/Firmware-Kombinationen die hohe PWM-Frequenz nicht ohne weiteres verfügbar ist.

    Wenn man eine Hochfrequenz-PWM zur Verfügung hat, ist es auch einfach, einen Open-Loop-Wandler zu bauen, der das PWM-Signal in Gleichstrom umwandelt, um eine möglichst reibungslose Steuerung eines beliebigen DC-Lüfters zu ermöglichen. Ich habe zwei solcher Wandler in die Steuerung des gasbetriebenen Kühlschranks in meinem Wohnwagen eingebaut. Die Steuerung regelt die Lüfter an der Außenseite des Kühlschranks, um die Kühlleistung zu optimieren, und es gibt auch einen einstellbaren Lüfter im Inneren, um die kühle Luft umzuwälzen. Die Schaltung des Open-Loop-Wandlers ist wie im folgenden Link dargestellt:

    https://drucktipps3d.de/forum/topic/24v-radialluefter-empfehlung/?part=2#postid-112836

    • Wenn Du mal einen Sunon 4010 suchst der auch ohne Hardware PWM gut regelvar ist:

      Der EE40101S21000U999 sitzt auf meinem Druckkopf und lässt sich problemlos mindestens bis 50% runterregeln. Tiefer habe ich mir nicht getraut um Clogging zu vermeiden, da läuft er noch völlig gleichmäßig. 12V, aber immer mehr Boards beherrschen das. Klipper mit Software PWM 🙂

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert