Grundlagen der PID-Regelung
PID-Regler sind dafür konzipiert, in Situationen eingesetzt zu werden, in denen man von Trägheit und Oszillation geplagt wird. Diese Effekte bekommt man leicht in den Griff, wenn man versteht, wie P, I und D funktionieren.
Komponenten
Die Regelung der Fluglage erfolgt im Wesentlichen innerhalb der Flugsteuerungsplatine. Eine MPU (Motion Processing Unit) misst die diversen Lagen und Beschleunigungen, eine CPU verrechnet diese Daten und die Signalausgänge leiten das Ergebnis an die ESCs weiter.
Fluglage per Software korrigieren
Der Begriff „PID-Regler“ bezieht sich auf ein Verfahren, dass von Softwares wie Betaflight auf der CPU der Flugsteuerung durchgerechnet wird. Es gibt zwar verschiedenste Varianten, aber im Endeffekt arbeiten sie alle auf die gleiche Art. Mit einer definierten Frequenz (bzw. Looptime) werden die Lagedaten der Sensoren ausgewertet, die benötigten Korrekturen berechnet, per Mixer auf die passenden Motoren abgebildet und letztendlich das passende Signal in das eingestellte ESC-Protokoll (z.B. MultiShot oder DShot) umgerechnet und an die Ausgänge angelegt.
Freiheitsgrade
Je nachdem welche Flugsteuerung man sich angeschafft hat, stehen einem eine unterschiedliche Anzahl an Sensoren zur Verfügung. Hier ist oft von „DoF“ die Rede. Gemeint ist damit, wie viele Achsen von der MPU gemessen werden. Die spartanischsten Acro-Flugsteuerungen haben 6 DoF. Ein Gyroskop misst Winkelbeschleunigung in einem orthogonalen System aus drei Rotationsachsen. Hiermit lässt sich eine relative Lageänderung des Kopters messen.
Damit die Flugsteuerung den Vektor richtung Erdmitte kennen kann, hat man heute grundsätzlich auch ein Accelerometer dabei, dass die Schwerkraft als eine Beschleunigung in diese Richtung misst.
Deluxe-Flugsteuerungen, die zum Teil auch GPS-gestützten Flug ermöglichen, haben meist 10 DoF. Zu den oben genanngen 6 kommen noch 3 weitere durch den Kompass hinzu, damit die Flugsteuerung weiß, wie sie relativ zu den Himmelsrichtungen steht. Dies ist für GPS-Flug unumgänglich.
Der zehnte Freiheitsgrad ist die Höhe, die ein Barometer mithilfe des Luftdrucks bestimmt. Da diese Messung in Bodennähe sehr ungenau wird, erlauben größere Flugsteuerungen wie Pixhawk zusätzlich ein Sonar zu nutzen.
PID Verschachtelung
Um die diversen Messgrößen einfließen zu lassen, die je nach Flugmodus gebraucht werden, werden die Messungen der Reihe nach in das Rechenergebnis eingearbeitet. Bei komplexen Flugmodi (z.B. Return-to-Home) werden zuerst die Winkelgeschwindigkeiten korrigiert. Dann die absolute Ausrichtung des Kopters und danach die Wünsche des Positionskorrektur (Höhe, GPS-Koordinate…) eingearbeitet. Dabei läuft jedes Mal ein eigener Regler über die Werte und fügt die eigenen Korrekturen zu den bisher errechneten hinzu.
Das impliziert leider, dass die erste Berechnung einigermaßen korrekt sein muss, damit die danach folgenden überhaupt funktionieren können. Wenn schon eine falsche Abstimmung der ersten Korrektur zu Oszillationen führt, wird der zusätzliche Input der zweiten Korrektur dieses Chaos noch verschlimmern, da die beiden Regler nun gegeneinander arbeiten.
Es ist zwar so, dass man in Betaflight kein zusätzliches PID-Tuning für den Modus Angle braucht, allerdings ist es durch dieses gegeneinander-Regeln wesentlich schwieriger, die Fehler in den Einstellungen zu erkennen. Aus diesem Grund liest man in diversen berechtigterweise, man solle grundsätzlich im Rate-Modus die PIDs erfliegen.
Wirkung der Parameter
Abstrakt lassen sich die Wirkungen der drei Komponenten P, I und D so beschreiben:
P: Die Differenz zwischen dem gewünschten Wert und dem tatsächlichen wird korrigiert, die Stärke dieser Korrektur wird mit P multipliziert.
I: Ist zuständig für Abweichungen, die nach der P-Korrektur langfristig bestehen bleiben. Je länger das fortbestehen und je größer der I-Wert, desto stärker dieses Gegensteuern.
D: Dämpft die Änderung der Abweichung entsprechend der Größe dieses Koeffizienten.
Anmerkung: P, I und D sind eigentlich nur die Koeffizienten der jeweiligen Therme Proportional, Intergral und Differential. Dementsprechend wäre die korrekte Schreibweise KP, KI und KD. Allerdings ist es in der Welt der Modellfliegerei üblich, die drei Großbuchstaben so zu verwenden, wie ich es in diesem und vermutlich auch allen zukünftigen Artikeln tun werde.
PID in der Praxis
Die folgende Beschreibung orientiert sich an modernen Softwares wie Betaflight, die im Gegensatz zu veralteten oder anderweitig kaputten Systemen wie MultiWii normalerweise keine Nebenwirkungen haben, die sich nicht mit Verhalten der PID-Algorithmen erklären lassen.
P: Je höher dieser Wert, desto schneller und gründlicher werden die Fehler korrigiert. Ab einem bestimmten Punkt fängt der Kopter an, nachzuschwingen. Erhöht man noch weiter, kann es zum Aufschaukeln kommen.
I: Wenn dieser Wert zu gering ist, driftet der Kopter schleichend von der gewünschten Lage ab. Ist der Wert zu hoch, vermindert sich die Präzision beim Fliegen langer Kurven. Außerdem kann es zu langsamen Oszillationen kommen.
D: Wenn P genau auf den Punkt eingestellt ist, dass der Kopter nach Richtungsänderungen leicht nachschwingt, lässt sich dies mit der Erhöhung von D beheben. Übertreibt man es, fliegt der Kopter überdämpft. Richtungsänderungen und Korrekturen werden behäbig umgesetzt.
Die Gier-Achse fällt etwas aus der Rolle. Oszillationen sind eher selten. Stattdessen kann es bei zu scharfen Korrekturen dazu kommen, dass der Kopter hochspringt, als hätte man plötzlich Gas gegeben. ESCs mit Bremse (damped light) sorgen hier für Linderung. Die schnellen Korrekturen des D-Terms sind auf der Gier-Achse nicht sinnvoll, weswegen Betaflight komplett darauf verzichtet. Stattdessen gibt es andere Parameter, wie z.B. ein Maximum für die Gier-Rate, mit denen sich Probleme wie das eben erwähnt Springen bändigen lassen.
Für eine anschaulichere Erklärung habe ich das folgende Video produziert:
Angle / Horizon Strength und GPS-PIDs
Bei manchen Flugsteuerungen sind die zusätzlichen Berechnungen für Modi wie Angle und für GPS-Abgleich usw. durch jeweils eigene, vollständige PID-Regler gelöst. Hier hat man mit jeder Stufe auf eine andere Art mit den Symptomen eventuell ungünstig gesetzter Parameter zu kämpfen. Ein zu hoher P-Wert bei der Korrektur der Geokoordinate könnte zum Beispiel dazu führen, dass der Kopter aggressiv um die Zielkoordinate pendelt.
Flugsteuerungen, die für besonders gutes Flugverhalten konzipiert sind, erkennt man meines Erachtens unter anderem daran, dass auf überflüssige Terme verzichtet wird. Der Angle-Modus in Betaflight hat nur den Parameter „Strength“, der lediglich dazu dient, das Flugverhalten an persönliche Vorlieben anzupassen. Niedrige Werte fliegen sich sanft, bei 100% folgt der Kopter so direkt es geht dem Steuerbefehl, selbst wenn noch so hart gelenkt wird. Sind die PIDs für den Rate-Modus richtig gesetzt, stimmen sie auch für Angle. Man hat hier nicht das Problem, dass falsche Werte zu Oszillationen führen.
Fazit & Ausblick
PID-Regelung ist ein Konzept, das die mechanischen Flugeigenschaften von Helikoptern auf drei Variablen in den Flugsteuerungen von Multikoptern runterbricht. Diese Technologie gibt diesen simplen Fluggeräten das angenehme Flugverhalten, das man sonst nur mit teuren, komplexen Kontruktionen erreichen könnte. Dieser Knackpunkt, mit etwas Mathe ein viel billigeres Fluggerät bauen zu können, hat einen wesentlichen Beitrag dazu geleistet, dass Modellflug heute von viel mehr Leuten betrieben werden kann.
Betaflight und andere Flugsteuerungs-Softwares können natürlich weit mehr, als nur PID-Ergebnisse durch den Mixer zu jagen. In den kommenden Artikeln werde ich auch auf weitere Wege eingehen, das Flugverhalten zu optimieren.