Zum Inhalt springen
Betaflight Logo klein
  • Über
  • Knowledge Base
  • Tuning Guide
  • Tuning Beispiele
  • FPV-Linksammlung
  • Events
Menü Schließen
  • Über
  • Knowledge Base
  • Tuning Guide
  • Tuning Beispiele
  • FPV-Linksammlung
  • Events

PID-Controller und Step Response

Software

  • Betaflight Presets
  • Betaflight-Configurator
  • Impulse-RC Driver Fixer
  • PIDToolbox
  • BLHeli32_Suite und andere ESC Firmware Konfiguratoren
  • Blackbox-Explorer (Blackbox Log Viewer)
  • TBS Agent X (Crossfire)
  • Speedy Bee
  • Dronesitter
  • Notepad ++

Hardware - Bauplanung

  • Werkstatt-Ausstattung
  • kleine LiPo Kunde
  • Specing – Komponentenwahl
  • Frame
  • Kondensatoren
  • Flightcontroller
  • ESC – Motor – Propeller Auswahl
  • Baufehler als Ursache für Gyro-Noise
  • Sonderfall X-Class Builds

Konfiguration

  • Betaflight-Configurator
  • Bind-and-Fly Quadcopter
  • EdgeTX
  • OpenTX
  • ExpressLRS
  • Panik-Schalter
  • Betaflight Presets
  • Motoren einrichten

Filter- und PID-Theorie

  • Filter- und PID-Theorie
  • PID Loop und PID Error
  • Gyro (filtered and prefiltered)
  • RC Link

Tuning Guide

  • Einleitung zum Thema Tunen
  • Presets und initiales Setup
  • Filtertuning
  • PID-Controller
  • Rates und Throttle
  • Yaw-Tuning
  • Dynamic Idle und DShot Idle
  • Dynamic Damping
  • Antigravity
  • Feed Forward
  • I-Term und I-Term-Relax/ I-Term-Windup
  • Thrust Linearization (Thrust linear)
  • TPA – Trottle PID Attenuation
  • Battery Sag Compensation
  • Tune finalisieren

alternative Tuningansätze

  • PWM Frequenz und Tuning
  • Gyro Lowpass Filter deaktivieren
  • Damping Grease
  • Launch Control
  • Dual Axis Steering
  • D-Term Notch Filter

Blackbox Grundlagen

  • Blackbox-Logging
  • Tuning-Flug
  • Blackbox Log Interpretation
  • Kurvenanalyse
  • Spektralanalyse
  • PID-Controller und Step Response
  • Tuning-Probleme mit Blackbox lösen

Blackbox Analyse

  • Desync
  • Gyro-Drift
  • Gyro-Glitch
  • Motor-Saturation
  • Nose-Dipping
  • Stick Schnapper und zitternde Hände
  • YAW-Bounceback (iterm_windup)

Hintergrundwissen

  • Betaflight-Configurator
  • Betaflight Presets
  • Betaflight 4.3 Changelog
  • legaler Quadcopterflug in Deutschland
  • Filter Hintergrundwissen
  • Sensor Fusion
  • BLHeli_32, AM32
  • Bluejay, JESC, BlHeli_S, BlHeli_M

Fehlersuche

  • VTX-Bildstörungen, Ursachen und Lösungen
  • DJI Digital FPV System – Caddx Runcam
  • Flightcontroller wird nicht am PC erkannt
  • Fehlerhafte Spannungsangabe

Anhang

  • Channel Mapping
  • CLI Snippets
  • Lipo Tabelle für die Hosentasche
  • FPV-Frequenztabelle für die Goggle-Tasche
  • Home
  • Docs
  • Knowledge Base
  • Blackbox Grundlagen
  • PID-Controller und Step Response

PID-Controller und Step Response

Roll-Manöver mit gutem Setpoint-Tracking

Wir schauen uns die Roll-Achse an. Der Setpoint (grün) gibt vor was der Quadcopter machen soll. Je weiter die Kurve von der Nulllinie (grau gestrichelt) abweicht, desto schneller (Grad/s) soll sich der Quadcopter um seine Roll Achse drehen. Die Gyro Kurve (hell-violett) zeigt wie gut der Quadcopter dem Befehl folgt. Man sieht sie kaum, da sie sich unter dem Setpoint versteckt. Sehr guter Tune, da wollen wir hin.

FeedFoward (orange) wirkt zuerst. Dies wird aus dem Grad der Änderung (Steilheit) der Setpoint-Kurve errechnet. Bewege ich den Stick der Fernsteuerung schnell ist FF hoch, bewege ich den Stick langsam ist FF weniger hoch. FF „kickt“ den Quadcopter in die richtige Richtung, in dem Fall um die Roll Achse.

Der P-Term (rot) unterstützt die Bewegung. Er errechnet sich aus dem PID-Error, also aus der Differenz zwischen Setpoint und Gyro. Zoomt man heran liegen die Setpoint und Gyro Kurve nie 100% übereinander. Dies „korrigiert“ der P-Term.

D-Term wirkt entgegengesetzt, aber leicht zeitlich verzögert. Er baut sich auf, je stärker sich das Gyrosignal ändert (Steilheit). Geht das Gyroskopsignal steil nach oben, geht der D-Term ebenso steil nach unten. Dies erzeugt ein gesundes Gegengewicht zu FF und P-Term. Dadurch muss aber auch der P-Term gegenhalten. Der D-Term ist aber hier leicht zeitversetzt. FF reagiert nicht auf den D-Term. Wichtig ist die Balance zwischen P- und D-Term. Diese sorgt dafür, dass der Quadcopter die gewünschte Drehrate hält und nicht darüber hinaus beschleunigt.

Oben seht ihr optimale Einstellungen. Auf dieses schnelle und harte Manöver hat FF den meisten Einfluss. FF ist also höher als P. Alle PIDs haben konstante, nicht verwackelte Verläufe. Zum Zeitpunkt der maximalen Drehrate (Setpoint voll ausgelenkt) machen die PIDs gar nichts. Der Quadcopter dreht sich störungsfrei. Auch die Motoren müssen keine Arbeit leisten um die Drehung aufrecht zu erhalten. Um die Drehung zu beenden werden die PIDs in genau umgekehrter Richtung wieder aktiv. Ergebnis ist eine knackige Drehung ohne Überschwingen oder Bounceback. Siehe auch critically damped Graphik. Habt ihr diese Einstellung (noch) nicht, dann schaut euch die Graphik zur PID-Controller Wirkung an und überlegt welchen Term Ihr ändern müsst. Voraussetzung ist natürlich ein gutes initiales Setup und Filtertuning, sonst kann man am D-Term einstellen was man will.

Prop-Wash Manöver

In diesem Beispiel sehen wir einen Setpoint (grün) auf der Nulllinie. Deshalb ist auch Feed Forward (orange) nicht aktiv. Auffällig ist aber eine Schwingung des Gyroskopsignals (violett), dieses schwingt hoch und runter. Misst man die Frequenz der Schwingung so erhält man unregelmäßige Frequenzangaben von 30-60 Hz. Dies ist Propwash. In diesem Manöver bin ich ein Split-S geflogen und habe gerade (ohne roll, pitch oder yaw) aus dem Propwash herausbeschleunigt, ein typischer „Prop-Wash-Move“. Um den Quadcopter auf Kurs zu halten arbeiten P- und D-Term zusammen, schwingen also nicht entgegengesetzt wie zur Ein- und Ausleitung eines Roll-Manövers. Die beiden Terme schieben gemeinsam den Gyroskoplinie (violett) in Richtung des Setpoints (grün – hier auf der 0-Linie). Der D-Term ist der stärkste aktive Term. Für eine gute Propwash-Kontrolle ist ein möglichst hoher D-Term notwendig. Da D-Term aber jegliche Störsignale des Gyroskops 10-100x verstärken kann darf er wiederum nicht zu hoch sein. Dazu müssen die PIDs und die D-Term-Filterung gut eingestellt sein. Zunächst müssen die Filter einigermaßen eingestellt werden, anschließend der PID-Controller, und beim Feintuning muss gerade der D-Term-Filter und D-Term nochmal feinjustiert werden.

Motor-Commands

Die Motor-Commands sind die Signale welches der FC an den ESC sendet (DShot command). Ob sich die Motoren wirklich so schnell drehen wie befohlen bekommt der FC bei aktivierter RPM Telemetrie vom ESC zurückgemeldet, solange der ESC die Drehung richtig erkennt und es nicht zu einem Desync kommt. Zu 99,9% entspricht der Motor-Command aber der tatsächlichen Motor-Drehzahl. Sollten hier Fehler vorliegen ist der Quadcopter meist grob unfliegbar oder stürzt unvermittelt ab. Beim Beschleunigen der Motoren gehen die Kurven nach oben, beim Bremsen (braking = active dampening = deszelerieren) gehen die Kurven nach unten. Unsere Motoren bremsen aktiv, ähnlich wie Elektroautos rekuperieren. Die Energie wird über den ESC in den Akku rie eingespeist. Dies geschieht nicht um Strom zu sparen. Die rückgewonnene Energiemenge ist marginal. Wir müssen die Propeller hart abbremsen um schnelle Manöver kontrolliert fliegen zu können. Der Luftstrom treibt die Propeller aber weiter an. Würde man sie nur passiv mit 0V schweben lassen, würde das abbremsen viel zu lang dauern. Der Motor muss also aktiv gegenhalten. Dies induziert eine Spannung die irgendwo hin muss. Würde alles zu Abwärme umgewandelt würden die Motoren oder der ESC sehr schnell durchbrennen. Die Induktion von Energie in den Akku hinein und das darauffolgende erneute abgeben der Energie aus dem Akku beim Beschleunigen erzeugt hohe Spannungsspitzen im System, die sich bis in den Gyroskopchip durchschlagen und dort elektrische Störungen verursachen (durch den induzierten Strom selbst, aber auch durch das entstehende Magnetfeld um die spannungsschwankenden Leiterbahnen/Kabel herum). Phasen der oszillierenden Motor-Commands sind bei Propwash nötig. Bei ruhigem geradeaus Flug sollten die Motor-Commands aber einigermaßen ruhig sein um nicht unnötig Energie zu verbraten und unnötige elektrische Störungen zu verursachen. Oben gezeigtes Bild ist ein gut kontrolliertes Propwash-Szenario. Malen die Motor-Command Linien euer Bild wie ein Kleinkind mit dem Filzstift aus werden die Motoren unnötig heiß und ihr verbraucht ineffizient Energie.

Weicht ein Motor permanent, also bei verschiedensten Manövern, nach oben ab könnte ein Motorproblem vorliegen. Hier ist vielleicht eine Wickelung einer Spule durchgebrannt oder das Kugellager verschlissen. Es wird bald ein neuer Motor fällig. Motoren sind Verschleißteile, auch wenn sie doch recht lang halten.

Weicht ein Motor sporadisch aber deutlich, unabhängig vom Manöver, nach oben ab so könnte ein Motor-Problem oder ein ESC Problem vorliegen. Dies bekommt man nur raus indem man so lang weiter fliegt bis das entsprechende Bauteil den Geist aufgibt. Man kann natürlich prophylaktisch beides tauschen. Abzugrenzen ist dies von einem Desync, der sich meist durch ESC Einstellungen beheben lässt.

Fragen und Anregungen?

Wie können wir helfen?

Updated on 2022-03-25
SpektralanalyseTuning-Probleme mit Blackbox lösen
de Deutsch
ar العربيةzh-CN 简体中文nl Nederlandsen Englishfr Françaisde Deutschit Italianopt Portuguêsru Русскийes Español
  • ImpressumOpens in a new tab
  • DatenschutzOpens in a new tab
(C) 2022 Betaflight.de