Als Thorsten Laux mit JESC erstmals DShot Telemetrie zu BLHeli_S ESCs brachte konnte man plötzlich auf Whoops RPM Filter betreiben und diese deutlich effizienter tunen. Kurz danach schob er 48 kHz und später 96 kHz PWM Frequency Firmwares hinterher was bei Whoops die Flugzeit um bis zu 40% steigerte. Zuletzt wurde durch die Einführung von BLHeli_32 ESCs mit 128 kHz PWM Frequenz das Thema gehyped, leider jedoch ohne die Hintergründe zu beleuchten, und auch wurden Informationen nicht ganz fehlerfrei übermittelt wodurch erhebliche Verwirrung bestand.
Was macht die PWM Frequenz? #
Die Ansteuerung des bürstenlosen Motors eines Quadcopters erfolgt über öffnen und schließen des elektronischen Kontaktes zweier großer Transistoren (MOSFETs oder kurz FETs) auf der jeder Phase des ESC. Je länger die Phase offen bleibt, desto mehr Strom fließt in den Motor und desto mehr Schubkraft entwickelt er. Um die Schubkraft zu drosseln wird die Öffnungszeit verkürzt. Dies wird über die Pulsweitenmodulation gesteuert. Je nachdem wie viele Pulse pro Sekunde ankommen ergibt sich eine andere Zahl, bei 24.000 Pulsen pro Sekunde = 24kHz. Die Weite der Pulse gibt die Stromlieferung an den Motor frei (abhängig von unter anderem der Gashebelstellung und der PIDs), die Anzahl der Pulse die Auslösung wie feinfühlig der Motor gesteuert werden kann. Niedrige PWM Frequenz eher grob, hohe PWM Frequenz eher fein.
Wahl der richtigen PWM Frequenz #
Eine optimale PWM-Frequenz gibt es nicht. Sowohl hohe als auch niedrige Frequenzen haben ihre Vor- und Nachteile und eine pauschale Empfehlung ist nicht möglich. Grundsätzlich gilt:
Je kleiner die Motoren sind, desto niedriger ist deren Induktivität. Hier ist der Effizienzvorteil von höheren PWM-Frequenzen und damit längere Batterielaufzeit viel deutlicher zu spüren. Dies beruht auf der Senkung der Rippelströme und Eigenverluste durch die verminderten Wirbelströme im Motor.
Vorteil höherer PWM-Frequenzen:
- ruhigerer Motorlauf bei höherer Drehzahl
- Effizientere Nutzung des Stromes, verlängerte Akkulaufzeit
- minimal erhöhtes Drehmoment im sehr hohen Throttle-Bereich (ab 90% Gashebelstellung)
- hilfreich gegen 0-Throttle Instabilität (herumwackeln bei Gaswegnahme auf 0% Gashebelstellung)
Nachteil höherer PWM-Frequenzen:
- weniger Bremskraft (braking power) beim Entschleunigen der Propeller
- etwas weniger Drehmoment niedrigerer Throttle Stellung (bis 30% Gashebelstellung)
Um das beste aus beiden Welten zu nutzen wurde die dynamische PWM-Frequenz eingeführt. Diese passt die PWM Frequenz dynamisch an:
Die rote Linie beschreibt die Motordrehzahl eines typischen Quadcoptermotors (4s 2500kV). Alle üblcherweise verwendeten Quadcoptermotoren liegen in diesem Bereich (+/- 15%). Dunkelrot beschreibt die Fundamentale, also tatsächliche Kommutationsfrequenz. Die 2. Harmonische liegt um das doppelte höher, ist aber nur noch halb so stark. Ab der dritten Harmonischen spielt praktisch keine Rolle mehr. Die steile grüne Linie zeigt die PWM Frequenz von 16-96 kHz, die flache grüne Linie von 24-48 kHz. Blau zeigt 24 kHz – „by rpm“ (32.8.3 Testcode) an. Ziel ist es die PWM-Frequenz niedrig zu halten und dabei die 2. Harmonische nicht zu kreuzen. „by rpm“ regelt bis ca 42 kHz. Demzufolge sollte hier die PWM Frequency Low nicht über 42 kHz eingestellt werden.
Quelle: GitHub
5 Zoll Racer wollen die maximale Kontrolle. Dazu benötigen wird maximal schnell hoch- und runterdrehende Motoren. Da Quadcoptermotoren über mehr als ausreichend Schubkraft verfügen ist es das Ziel möglichst schnell diese Schubkraft auch zu erreichen und auch abzubauen. Eine hohe Braking-Power ist essentiell für geringe Set-Point to Gyro Latenz und gute Propwash-Kontrolle. Hier sind niedrige PWM-Frequenzen von Vorteil. Der Gashebelbereich von über 80% wird selten genutzt. Die Einstellung von 16 kHz bis „by rpm“ ist hier ideal (blaue Linie) und lässt die PWM-Frequenz im Bereich von 16-48 kHz (genau genommen etwas unter 42 kHz) arbeiten.
Whoop-Piloten fliegen meist BlHeli_S ESCs, wo eine dynamische PWM-Frequenz nicht verfügbar ist. Hier ist oft das Problem mit möglichst kleinen und leichten Batterien ein Rennen überhaupt zu Ende zu fliegen. Viel bewegt man sich in höheren Gashebelbereichen und der Verlust an braking-power ist zu verschmerzen. Die meisten Piloten nutzen hier Bluejay mit 48 kHz PWM Frequenz.
Cinecopter benötigen nicht maximale Performance. Hier ist ruhiger Motorlauf wichtiger höhere Frequenzen ab 48 kHz und aufwärts sind empfohlen. Eine genaue Empfehlung hat sich hier nicht durchgesetzt, daher bis dato der konservative Rat 48 kHz starr einzusetzen, oder eine dynamische Frequenz von 48-96 oder 128 kHz zu wählen. Wählt nicht „by rpm“ da diese Einstellung nicht über 48 kHz regelt.
Tuning und PWM Frequenz #
Die Wahl der PWM-Frequenz beeinflusst das Ansprechen der PIDs erheblich. Daher ist dringend zu empfehlen die PWM-Frequenz einzustellen bevor ihr den PID-Kontroller einstellt. Ändert ihr die PWM-Frequenz bei einem fertig getunten Quadcopter ist nachtunen nötig. Nutzt dabei aber nicht nur den Basis-PID-Kontroller sondern denkt auch an die erweiterten Funktionen.
Kombiniert man Thrust Linearization zu höheren PWM-Frequenzen ab 48 kHz PWM Frequenz und passt die PIDs entsprechend an kann man die Nachteile gut kompensieren. Habt Ihr euren Tune schon mit 24 kHz im Kasten, dann aktiviert zur Umstellung auf 48 kHz PWM Frequenz Thrust linearization mit 25%:
set thrust_linear = 25
Trotzdem müssen oft die PIDs noch etwas angepasst werden.
Hintergrundwissen #
Die verfügbare PWM-Frequenz ist nicht von der Prozessorleistung (MCU) abhängig, sondern von den weiteren verwendeten Bauteilen auf dem ESC wie den Gates und den FETs. Bei BlHeli_32 wird die verfügbare PWM Frequenz vom Hersteller im Bootloader abgelegt und ist durch den Konfigurator nur in dem verfügbaren Rahmen einstellbar. Auch ein Firmwareupdate kann hier keine Abhilfe schaffen. Leider sind die verfügbaren Frequenzen nicht immer auf der Herstellerseite oder im Datenblatt aufgeführt und schon so mancher wurde enttäuscht, dass der tolle neue high-end ESC sich gar nicht unter 48 kHz einstellen lässt. (Holybro, WTF?!) Für einige wenige ESCs gibt es hier spezielle Firmware die die PWM-Frequenz halbiert: Half PWM Low Freq Testcode. Hier wird die Low PWM Frequenz auf Firmwareebene halbiert – der Konfigurator zeigt 48 kHz bis „by rpm“ an, aber 24 kHz bis „by rpm“ wird tatsächlich rausgegeben.
ESCs mit 96 kHz oder 128 kHz PWM Frequenz machen nur in speziellen Einzelfällen Sinn. Wichtiger ist die Einstellbarkeit niedriger PWM-Frequenzen von 16-48 kHz. Achtet hier auf das Datenblatt des ESCs oder lest vorher in Foren nach welche Einstellmöglichkeiten es gibt! ESCs die nur von 48Khz aufwärts einstellbar sind sollte man meiden.
Bisher bringen F4 Prozessoren auf ESCs keine bewiesenen Vorteile. Drone Mesh zeigte auf seinem Youtube-Kanal an einigen Stellen die geringen aber messbaren Vorteile von F3 ESCs gegenüber F0 ESC bei der Signalqualität. F3 ESCs erzeugen in der Regel weniger elektrische Störungen in den Signalleitungen und am Gyroskop als F0 ESCs, ein ausreichend dimensionierter Kondensator natürlich vorausgesetzt. Hier sollten neue Erkenntnisse noch abgewartet werden.
AM32 war eine zeitlang als alternative zu BlHeli_32 im Gespräch, aber hier sind bisher keine Vorteile zu vermelden gewesen:
1. AM32 48kHz
2. BlHeli_32 48kHz
3. AM32 24kHz
4. BlHeli_32 24kHz
Quelle: Mar Lin @ Facebook BBL Review Group
Übrigens, Asyncronous PWM (BLHeli_M) ist etwas anderes.