> For the complete documentation index, see [llms.txt](https://taiphoon-com.gitbook.io/taiphoon.com-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://taiphoon-com.gitbook.io/taiphoon.com-docs/de/firmware/ardupilot/tuning.md).

# Tuning-Konzepte

<figure><img src="https://content.gitbook.com/content/LGIboFrNXLJPJJ0guqxf/blobs/u0oBWI9KheAL54yDN3Eg/image.png" alt=""><figcaption></figcaption></figure>

#### 1. Hintergrund und Aufbau des PID-Reglers

ArduPilot verwendet den **PID-FF-DFF-Regler**, um die Flugleistung der Drohne sicherzustellen. Der vollständige Regler besteht aus fünf Hauptkomponenten:

* **P (Proportional), Proportionalanteil**: Reagiert auf den aktuellen Fehler.
* **I (Integral), Integralanteil**: Kompensiert langfristige Fehler durch äußere Kräfte (z. B. Wind) und hält Geschwindigkeit und Fluglage.
* **D (Derivative), Differentialanteil**: Unterdrückt das Überschwingen der Beschleunigung und wirkt dämpfend.
* **FF (Feed Forward), Vorsteuerungsanteil**: Sagt die Ausgabe direkt anhand des Sollwerts voraus.
* **DFF (Derivative Feed Forward), Differential-Vorsteuerungsanteil**.

<figure><img src="https://content.gitbook.com/content/LGIboFrNXLJPJJ0guqxf/blobs/GYsuMxQxgUGuYlk07e4z/image.png" alt=""><figcaption></figcaption></figure>

**Die empfohlene Reihenfolge der Einstellung lautet: D -> P -> I -> DFF -> FF**.

**Hinweis: Stellen Sie jede Achse am besten separat ein. Wenn Sie z. B. die Roll-Achse einstellen, ändern Sie nur die Parameter der Roll-Achse.**

***

#### 2. Vorbereitungen vor der Einstellung

Im Allgemeinen wird empfohlen, direkt das Schnellberechnungswerkzeug von Mission Planner zu verwenden. Geben Sie die Konfiguration Ihres Fluggeräts ein, um die Start-PID-Werte grob abzuschätzen.

<figure><img src="https://content.gitbook.com/content/LGIboFrNXLJPJJ0guqxf/blobs/TIEuTK4hwtvNiJZ2a6mk/image.png" alt=""><figcaption></figcaption></figure>

1. **Einstellung der Anfangsparameter (Initial Tune Parameter)**: Legen Sie unter „Erstkonfiguration“ die Propellergröße, die Zellenzahl und die Spannung des Akkus fest. Mission Planner berechnet daraus geeignete Parameter, die Sie direkt schreiben können.
2. **Einstellung der Protokollierung**: Korrekte Logs sind für das Tuning entscheidend. Es wird empfohlen, `INS_LOG_BAT_OPT = 5` einzustellen und die Anzahl der Samples auf 1024 oder 2048 zu setzen.
3. **Flugmodus**: Die Einstellung sollte im Modus **Stabilize (Selbststabilisierung)** oder **AltHold (Höhe halten)** erfolgen. **Das anfängliche Tuning im Loiter-Modus ist streng untersagt.**

***

#### 3. Innerer Regelkreis – Einstellung des Raten-PID (Rate Controller)

Dies ist der Kern der Low-Level-Regelung und umfasst die drei Regler für Rollen (Roll), Nicken (Pitch) und Gieren (Yaw).

<figure><img src="https://content.gitbook.com/content/LGIboFrNXLJPJJ0guqxf/blobs/kUGV4U1TdNQCTaQCeNCf/image.png" alt=""><figcaption></figcaption></figure>

**1. Abstimmung des P:D-Verhältnisses**

Ziel ist es, dass die Kurve der tatsächlichen Drehrate perfekt mit der Sollkurve übereinstimmt.

* **Einstellung des D-Anteils**: Erhöhen Sie D in Schritten von 30 %, bis kurze Oszillationen auftreten. Verringern Sie den Wert dann in Schritten von 10 %, bis die Oszillationen verschwinden, und reduzieren Sie ihn abschließend um weitere 25 %.
* **Einstellung des P-Anteils**: Erhöhen Sie P in Schritten von 30 %, bis schnelle Vibrationen mit kleiner Amplitude auftreten. Verringern Sie den Wert dann in Schritten von 10 %, bis sie verschwinden, und reduzieren Sie ihn abschließend um weitere 25 %.
* **Beurteilung des Verhaltens**:
  * **P zu hoch**: hochfrequente Oszillationen und Zittern; **P zu niedrig**: träge Reaktion, das Fluggerät wird leicht vom Wind gestört und schwankt.
  * **D zu hoch**: verstärkt das Rauschen und führt zu Motorvibrationen, metallischem Pfeifen oder starker Erwärmung; **D zu niedrig**: nach einer Sprungeingabe tritt deutliches Überschwingen auf.

**2. Absolute Verstärkung und P:I-Verhältnis**

* **Gesamtverstärkung**: Nachdem Sie das P:D-Verhältnis gefunden haben, können Sie P, I und D um denselben Faktor erhöhen, bis Oszillationen auftreten, und sie dann um 10–20 % zurücknehmen.
* **Einstellung des I-Anteils**: Ist die I-Verstärkung zu hoch, sind langsame Oszillationen zu sehen; ist sie zu niedrig, dauert es nach einer Knüppeleingabe länger, bis die Fluglage in die Mitte zurückkehrt.
* **Allgemeine Erfahrungswerte**: Für Nicken und Rollen sind P und I normalerweise gleich, D beträgt etwa 1/10 von P. Für Gieren wird normalerweise kein D-Anteil benötigt (D=0), I beträgt etwa 1/10 von P.

***

#### 4. Äußerer Regelkreis – Abstimmung der Lageregelung (Stabilisierung) (Attitude Controller)

Erst nachdem der Raten-PID gut eingestellt ist, wird die Lageregelung eingestellt. Dies ist ein Proportionalregler (P), der die Umsetzung zwischen Sollwinkel und tatsächlichem Winkel regelt.

<figure><img src="https://content.gitbook.com/content/LGIboFrNXLJPJJ0guqxf/blobs/KwekXNLbJChC40iN7xMO/image.png" alt=""><figcaption></figcaption></figure>

* **Vorgehensweise**: Erhöhen Sie unter „Erweitertes Tuning“ den **Lage-P-Anteil**, bis Oszillationen auftreten, und nehmen Sie ihn dann um etwa 20 % zurück.
* **Maximaler Neigungswinkel**: Normalerweise wird empfohlen, `ANGLE_MAX = 30` (30 Grad) einzustellen, damit auch bei maximaler Neigung noch genügend Schub zum Halten der Höhe vorhanden ist.

***

#### 5. Einstellung des Gas- und Höhen-PID (Throttle PID)

Der Gasregler steuert die vertikale Beschleunigung und die Höhe.

<figure><img src="https://content.gitbook.com/content/LGIboFrNXLJPJJ0guqxf/blobs/LjLsk7cCCZMJJLZGhIN0/image.png" alt=""><figcaption></figcaption></figure>

1. **Schwebegas lernen**: Schweben Sie im AltHold-Modus 30 Sekunden lang stabil, damit das System `MOT_THST_HOVER` lernt. Ist dieser Wert kleiner als 0.3, wird empfohlen, `ATC_THR_MIX_MAX` auf 0.9 zu setzen.
2. **Beschleunigungskompensation**:
   * Setzen Sie `PSC_ACCZ_I` auf das 3-Fache des Schwebegases.
   * Setzen Sie `PSC_ACCZ_P` auf das 1,5-Fache des Schwebegases.
3. **Vertikale Positionsregelung**: Passen Sie `PSC_POSZ_P` an, um die Höhe aggressiver zu verfolgen. Ein zu hoher Wert führt jedoch zu Überschwingen oder Oszillationen.

***

#### 6. Einstellung der Positionshaltung (Loiter/Position Control)

<figure><img src="https://content.gitbook.com/content/LGIboFrNXLJPJJ0guqxf/blobs/4HcjS7fH2FzIRN9kBJty/image.png" alt=""><figcaption></figcaption></figure>

1. **Horizontale Positionsregelung**: `PSC_POSXY_P` wandelt den Positionsfehler in eine Sollgeschwindigkeit um.
2. **Horizontale Geschwindigkeitsregelung**: `PSC_VELXY_P、I、D` wandeln die Sollgeschwindigkeit in eine Beschleunigung um.
3. **Einstellung der Bewegungsparameter**:
   * **LOIT\_SPEED**: Legt die Höchstgeschwindigkeit im Loiter-Modus fest.
   * **PSC\_JERK\_XY**: Eine Erhöhung dieses Wertes beschleunigt die Reaktion der horizontalen Regelung, ein zu hoher Wert lässt den Flug jedoch zu aggressiv wirken.

***

#### 7. Gängige numerische Einstellmethode

* Öffnen Sie Mission Planner und wählen Sie ganz unten **Servo-Einstellung**
*

```
<figure><img src="/files/5blPEDTVjzri2bgY02ms" alt=""><figcaption></figcaption></figure>
```

* Doppelklicken Sie auf das Diagramm und wählen Sie die Achse aus, die Sie je nach einzustellender Achse betrachten möchten. Hier wird Pitch als Beispiel verwendet.

  <figure><img src="https://content.gitbook.com/content/LGIboFrNXLJPJJ0guqxf/blobs/otUphPTJd0s5yQaM6KTm/image.png" alt=""><figcaption></figcaption></figure>
* Beobachten Sie im realen Flug, ob die beiden Linien übereinanderliegen. Liegen sie sehr eng übereinander, ist der PID-Zustand sehr gut. Ist der Bereich von pitch.target größer als der tatsächliche Pitch, kann dies darauf hindeuten, dass Rate P nicht ausreicht. In diesem Fall sollten Sie Rate P und Rate I erhöhen und mehrfach einstellen und testen, bis die beiden Linien übereinanderliegen. Erst dann ist diese PID-Achse fertig eingestellt.
