Die Looptime ist ein Parameter der Flugsteuerung, der starken Einfluss auf das Flugverhalten hat. In diesem Artikel erkläre ich euch die Bedeutung und wie man den passenden Wert findet.
Inhalt
Was ist Looptime?
Eine Flugsteuerung arbeitet in Endlosschleifen. Bei jedem Durchlauf werden die Sensoren und der Empfänger ausgelesen, die PID-Berechnung durchgeführt und die neuen Werte an die ESCs (Motorregler) weitergegeben (und optional noch ein paar weitere Aufgaben, wie Logging oder Serielle Verbindung erledigt).
Die Looptime ist eine definierte Zeitspanne, wie lange der Vorgang vom Auslesen der MPU (der Chip mit den Sensoren) bis zum Updaten der ESCs zu dauern hat. Je kürzer dieser Wert ist, desto mehr Updates erledigt die Flugsteuerung pro Sekunde.
Einfluss auf das Flugverhalten
Je kürzer die Looptime ist, desto schneller kann die Flugsteuerung auf Abweichungen reagieren und die Fluglage korrigieren. Bei besonders kurzen Looptimes können sogar die Oszillation, die man beim Fliegen im eigenen Propellerabwind beobachten kann, ausgeglichen werden.
Grundsätzlich kann man sagen, dass die Flugsterung präziser regelt und der Kopter durch beherrschbarer wird, wenn man die Looptime reduziert.
Meine persönliche Erfahrung ist außerdem, dass das PID-Tuning einfacher wird. Deswegen wünscht man sich, dass die Looptime so kurz wie möglich ist.
Looptime anpassen
Manche Flugsteuerungen, wie z.B. APM:Copter oder LibrePilot, haben eine konstante Looptime, die sich auch über die Groundstation nicht ändern lässt. Bei Cleanflight und Betaflight haben wir eine variable Looptime, die wir beliebig anpassen können.
Die Option befindet sich unter Configuration.
Empfohlene Werte
Abhängig von der verwendeten Hardware hat man verschiedene Werte, bis zu denen man die Looptime reduzieren kann, ohne Einschränkungen in Kauf zu nehmen.
Die SPRacing F3, die unter anderem im Walkera F210 und Rodeo 150 verbaut wird, unterstützt 500µs ohne Einschränkungen (getestet mit LuxFloat unter Betaflight 2.6.1, sowie 2.7.1). Damit hat man viermal so viele Updates pro Sekunde, wie von Walkera voreingestellt (2000µs).
Extreme Einstellungen
Verringern wir die Looptime noch weiter, reicht die Zeit nicht mehr aus, um die MPU komplett auszulesen. Deswegen überspringt Betaflight das Accelerometer. Die Flugmodi Angle und Horizon stehen dann nicht mehr zur Verfügung. Fortgeschrittene (FPV-)Piloten, die darauf verzichten können, reduzieren die Looptime also gerne auf 250µs. Damit wird OneShot125 voll ausgereizt.
Der Schritt zu einer Looptime von 125µs lohnt sich nur, wenn ein schnelleres Protokoll zur Übertragung der Werte zu den ESCs genutzt wird (z.B. OneShot42 oder Multishot). Das liegt daran, dass OneShot125 bis zu 250µs zur Übertragung eines Wertes braucht. Wenn die Flugsteuerung nun doppelt so schnell arbeitet, kommt nur jeder zweite Wert beim Regler an. Der Pilot wird also keinen Unterschied feststellen können.
Wird eine zu kurze Looptime eingestellt, verweigert Cleanflight das Freischalten der Motoren. Das lässt sich überprüfen, indem man im CLI status eingibt. Wenn der Wert bei „CPU” 100% beträgt, ist die Looptime zu kurz. Da die Programmierung kontinuierlich optimiert wird, wird die Berechnung vermutlich in den kommenden Versionen von Cleanflight und Betaflight schneller werden.
Zur Zeit (Betaflight 2.7.1) sind 125µs zu kurz für den Walkera F210. Der niedrigste sinnvolle Wert (250µs aus o.g. Gründen) funktioniert problemlos.
PID Retuning
In älteren Versionen von Cleanflight und Betaflight war es angeblich nötig, die PIDs anzupassen, nachdem man die Looptime geändert hat. Dies ist in aktuellen Versionen nicht mehr der Fall, was ich nach meinen bisherigen Tests bestätigen kann. Die Warnmeldung (Im obigen Screenshot zu sehen) ist also obsolet.
Fazit
Looptime ist mittlerweile eine simple Angelegenheit geworden (zumindest in Betaflight).
Walkerakopter mit SPRacing F3 Flugsteuerung stelle ich einfach auf Looptime 500µs ein und erreiche sofort ein bessere Flugverhalten, ohne dass mir irgendein Feature fehlt.
Denkt daran, dass OneShot aktiviert sein sollte, damit sich eine Looptime unter 2000µs lohnt, denn das klassische 500Hz PWM braucht 2000µs pro Signal.
Hi nVentor.
Hast du das mal mit der Cleanflight 0.1.schlagmichtot ausprobiert, dass man wirklich nicht an die PID-Werte ran muss, wenn mal auf 500mu/OneShot125 runter geht?
Nein. Diese von Walkera verfrickelten Firmwares basieren auf einer uralten Version von Betaflight, bei der LuxFloat noch ungenießbar war. Erst mit aktuellem, echten Betaflight hab ich ein richtig gutes Flugverhalten hinbekommen. Ich habe ehrlichgesagt keine Lust, mit schlechter Firmware zu fliegen.
Kann sein, dass die Walkera Firmware auf einer Version basieren, bei der man noch nachkorrigieren muss.
Sehr sehr gut geschrieben.
Das kann ich verstehen …
Ist vielleicht Off-Topic, doch vielleicht kannst du mir trotzdem sagen, ob denn die Walkera-Modelle auch mit anderen Versionen von Betaflight/Cleanflight als den vom Hersteller mitgelieferten betrieben werden können?
Was hat denn den Hersteller dazu veranlasst sie derart zu „verfrickeln”?
Ja, geht. Je nach Modell sind diverse Dinge zu beachten und zu konfigurieren. Das lässt sich gut im Forum diskutieren.
Walkera wollte ein paar Dinge ändern, die Cleanflight so nicht anbietet. Zum Beispiel das Freischalten mit Gier nach links wie bei Walkera üblich. Außerdem haben die noch irgendwas geändert, damit OSD funktioniert und die Ansteuerung der LEDs.
Das hätte man alles auch durch sinnvolle Konfiguration von Cleanflight anstelle von durchgeknallten Hacks lösen können. Ich hoffe das verstehen die endlich mal.
When flashing SPRacingF3 from CleanFlight/BetaFlight and overriding the stock Walkera F210 FW I lose the OSD and some taillight functionality. You may have addressed this in the forums or even in this thread, but unfortunately I cannot read German, and Google translate isn’t helping as much as I wish it would. Do you guys know of a workaround to regain the latter functionality? Thanks! The Walkerfans site and your contributions have been very helpful to me btw. I really appreciate your contributions.
Yes, we know about the taillight quirk. There does not seem to be a fix for that, yet.
If you have any other technical questions, I’d recommend you to join our forum. There will be way more people answering you than in this comment section. You may simply ask in english there. We don’t mind if it has already been asked in German before.
@steve A and @Nventor, Just for information, Im running my 2D F210 with cleanflight 1.12.0, I made the walkera OSD update together with walkera CF update (the one with march failsafe improvement for after 8th March copter) , then came back to cleanflight and I had at the beginning the OSD only working for the battery. But now, after some days, the OSD is fully working with Cleanflight 1.12.0 so I can enjoy Airmode and OSD… Don´t ask me how I ve done it, no idea, but I can just observe that the CLI dump is now possible without having the Walkera strange streaming disturbing…
riri00
Super Beitrag! Selten so gut gelesen, noch nie auf deutsch! Respekt!
Danke, danke 🙂
hallo,wenn ich looptime auf 500 einstelle speichert cleanflight nicht. geht immer auf 1000 zurück.
ist ein rodeo 11o.
Welche Firmware? Cleanflight oder altes Betaflight sind zu ineffizient für 500µs bei einer F3 CPU.
cleanflight 1.2.4. wo bitte bekomme ich die richtigen versionen für clean bzw. betaflight her?
Well this SUCKS.….
The link to your forums is not working.. Probaly bc its so old…
Anyone Help?