PID Tuning bei Openpilot, So wirds gemacht!

PotRacer

Kamikazebuschpilot
#1
Hallöchen FPVC,

Da es vielen wohl extrem schwer fällt ihre Openpilot FCs vernünftig einzustellen, versuche ich hier mal etwas Klarheit zu schaffen. Hierbei handelt es sich nicht um ein "Hexenwerk" oder eine Kunst, lediglich das Verständnis zu dem was die gewissen Werte auslösen hinkt bei der Mehrheit wohl etwas nach. Dazu gibts nun ein paar Tipps die gerade Anfängern helfen werden.

In dem Post behandle ich folgende Punkte:
1) Wofür überhaupt PIDs / was machen die PIDs?
2) Ich flieg doch im Attimodus, wieso muss ich da auch die Rate PIDs einstellen?
3) Was macht "P", "I" und "D"
4) Wie komme ich vom abgeschlossenen Setup Wizard zu den passenden PIDs für meinen Copter?

5) TPS - Thrust PID Scaling - Was ist das?


Vorwort:
Ich habe bisher sooo viele Posts von Usern aus allerwelt in diversen Foren gelesen die folgendes aussagten:
"Ich habe an meinen PIDs nichts verändert und mein Copter fliegt solide!"

Das ist fast unmöglich. Klar kann ein Copter auch mit den Default werten im Atti Modus von Links nach Rechts schweben solang der P-Wert nicht massiv zu hoch ist (was im Default eben nicht der Fall ist), aber mit "solidem fliegen" hat das NICHTS zu tun. Spätestens wenns dann mal im Manuellen Modus (Rate/Acro+) bei leichtem Wind und anderen Einflüssen schneller umhergeht, dann schwimmt der Copter durch die Luft wie eine Nudel im Topf. Die perfekten PIDs sind für jeden Copter individuell.

-> Phantom-Like rumschweben ist also KEINE Herrausvorderung an die FC, das schafft sie selbst auf Werkseinstellungen :rolleyes:

Nun aber an die PIDs :D





1) Wofür überhaupt PIDs / was machen die PIDs?

Der Controller weiß zwar, das er sich nach den Befehlen der Fernsteuerung bewegen soll, aber nicht jeder Copter ist gleich, sprich jeder braucht auch seine eigenen PIDs damit die Flugsteuerung weiß wie sich das gerät in der Luft verhält. Hier wirken Faktoren wie Gewichtsverteilung, Antriebskraft, Luftwiederstand... Und alles was euren Copter sonst noch von einem anderen Unterscheidet.

Der Unterschied zwischen einem X-Quad (F450, Phantom, Warpquad...) und einem H-Quad (ZMR250, QAV250,Blackout MiniH...) ist die Geweichtsverteilung auf dem Frame. Auch wenn der Mittelpunkt zentral im Schnittpunkt der Motorachsen liegt, ist das Gewicht bei einem H Quad dennoch auf der Pitchachse (Längsachse). Bei einem "X-Quad" können die PIDs für die Roll und Pitchachse gleich sein, da die Masse zentral auf der Mitte des X liegt. Demnach benötigt ein "H-Quad" in der Regel auf der Roll-Achse auch niedrigere Stabilisationswerte (PIDs) als auf der schwereren Pitch-Achse.


->In der Openpilot GCS kann man im Tab "Vehicle" die Bauform des Quadcopters einstellen. Dadurch verändert sich der Mix-Level (rechts daneben). Diese Funktion dient lediglich dazu das man Pitch und Roll PIDs auch bei einem H-Quad (mix level 50/75/50) gleich wählen kann, die FC dann grob bescheid weiß und damit besser umgehen kann.

!!!Diese Funktion ist eher der "Noob-Trick", grundsätzlich ist es ratsam die Einstellung auf "X-Quad" zu lassen, auch wenn man ein "H-Quad" hat, und Pitch&Roll einzeln zu tunen!!!
(Wer dennoch das Bildchen gern als H-Quad in der GCS möchte, der kann einfach auf "H-Quad" stellen und den Mix dennoch auf 50/50/50 korregieren)
Hquad.jpg




2) Ich flieg doch im Attimodus, wieso muss ich da auch die Rate PIDs einstellen?


->"Wieso musst du in deinen Wanderschuhen noch Socken anziehn?"

Da der Attitude-Mode über die Stabilisation des Rate-Modes läuft, ist es zwingend notwendig eben diese "Rate PIDs" zu tunen. Das ist fast so essentiell wie das Kalibrieren des Boards. Die Rate-PIDs sind die Basis auf der die gesamte Stabilisation aufbaut!

Also zuerst diese Werte einstellen:

RateStabi.jpg ,
dann die Attitude Stabilization "P" anpassen, "I" auslassen.




3) Was macht "P", "I" und "D"


P: "Proportional"
"P" ist für das Nachsteuern/Korregieren eures Copters zuständig, während einer Bewegung auf der jeweiligen Achse.

I: "Integral"
"I" ist für das halten des Winkels verantwortlich, ohne weiteren "Stick Input"

D: "Derivative"
"D" dämpft die wirkung von P ab, damit das "einrasten" in einem bestimmten Winkel nicht zu "hackig/grob" ist.



4) Wie komme ich vom abgeschlossenen Setup Wizard zu den passenden PIDs für meinen Copter?

Vorab: Die PIDs werden im Manuellen Modus eingestellt, da der Copter sonst nicht ohne Input den Winkel hält. Wie oben schon erwähnt, hier nochmal: Die Rate-PIDs sind die Basis auf der die gesamte Stabilisation aufbaut!

Flugmodus:
Rate, Rate, Rate/Axislock
Wäre hier "Stabilized 2"
FM.jpg
-> Mit den Default PIDs sollte so gut wie jeder Copter schonmal schweben/fliegen können, ist dies nicht der Fall, P bei Pitch und Roll soweit runterschrauben bis der Copter fliegbar wird.

Jetz gehts an "tunen"!
Also heben wir nun vor uns mit etwas Sicherheitsabstand ab und ermitteln dann:

P: "Proportional"
Nun fliegt man mit scharfen Knüppelbewegungen zuerst auf der Roll-Achse und dann auf der Pitch-Achse hin und her. "Wobbelt" es hierbei beim ändern des Winkels auf einer Achse, so ist der P-Wert zu hoch gewählt - P also etwas runterschrauben, erneut fliegen...

-> knapp unterm "nachwobbeln" ist P optimal gewählt. Angenommen euer Copter steuert bei "Roll P= 300" noch minimal nach wenn ihr die Richtung ändert, dann wählt "Roll P=~280" um in die richtige Richtung zu kommen.

Habt ihr nun für die Roll-und Pitchachse den P-Wert ermittelt (der bei einem "H-Quad" auf der Pitch-Achse wie erwähnt höher als der "Roll-P" sein sollte), gehts an den "I-Wert"

I: "Integral"
Da I zum halten der Ausrichtung/des Winkels zuständig ist, ist I dann perfekt gewählt, wenn der Copter ohne weiteren Steuerinput zu geben den Winkel hält.
Um das einzustellen geht ihr am besten dort hin, wo wirklich genug Platz ist. Stellt ihr den Copter nun auf der Roll-Achse schräg & lasst den Knüppel los, dann sollte er bei optimalen I-Wert diesen Winkel halten und NICHT selbst ausleveln/ weiter absacken.

Levelt der Copter von allein aus, dann muss der "I-Wert" kleiner gewählt werden.
"Fällt" der Copter immer weiter durch Schwerkraft in die Richtung die ihr gelenkt habt, dann muss der "I-Wert" größer gewählt werden.

Diese Prozedur wird nun auch für die Pitch-Achse durchgeführt. Somit hätten wir unsere beiden "I-Werte".

D: "Derivative"
Ist euch das "einrasten" in den Winkel zu "starr/knackig", jedoch KEIN wobbeln aufgrund von Überkorrektur("P" zu hoch), dann könnt ihr etwas P hinzugeben.
Grundsätzlich kann etwas D nie schaden, gerade auf der Pitch-Achse bei einem "H-Quad" machts sich bemerkbar. Zwischen 0.000030 und 0.000055 sollte dieser ungefähr liegen.


->Und was ist mit den Yaw PIDs?

Die Defaults funktionieren meist sehr gut. Hier ist es aber genau das gleiche wie bei beiden anderen Achsen:

P: Steuert der Copter beim abrupten Yaw nach? Wenn ja, P zu hoch.
I: Hält der Copter die Yaw-Ausrichtung? Wenn nicht, I anpassen.
D: Rastet der Copter zu stark in die Yaw-Position ein? -> etwas D dazu.


Nun habt ihr die PIDs für Pitch/Roll und Yaw für euren Copter bestimmt. Diese Werte könnt (und werdet!) ihr noch weiter verfeinern. Das geschieht am besten beim aktiven Fliegen. Spürt ihr etwa das der Copter im Vorwärtsflug von allein nach unten pitcht/nickt, so wisst ihr nun das der "Roll I" zu klein ist. Dies gilt natürlich für sämtliche Werte, egal ob P,I oder D.

Hier mal die Stabilisationswerte für meinen QAV250:

RateStabi.jpg
(FW: 15.02+Oneshot)



5) TPS - Thrust PID Scaling - Was ist das?


Seit dem Update Firmwareupdate 14.10 -Mini me- gibt es bei Openpilot nun die TPS Funktion.
Diese Bewirkt das die PIDs bei steigendem Gasinput heruntergeregelt werden.


Hier mal meine TPS Kurve vom 4S QAV250 Setup:

TPS.jpg


Sinnvoll ist es also wenn man seinen Copter an der obersten Grenze kurz vorm "wobbeln" eingestellt hat, diese Funktion zu aktivieren.

Dazu wählt man bei Source "Actuator Desired Thrust" und bei Targets "P and D". Kein "I", dieser Wert muss nicht geändert werden wenn er stimmt.

Mit der Kurve kann etwas herumgespielt werden, je "überpowerter" euer Copter ist, desto eher sollte diese Kurve beginnen, und desto tiefer sollte sie enden. Auch diese ist vergleichbar mit den PIDs individuell für euren Copter, jedoch kein "must have".
Fliegt der Copter auch ohne, fangt damit an rumzutesten sobald ihr verstärktes wobbeln bei hohem Gasinput bemerkt.





Ich hoffe dieser Post wird dem einen oder anderen noch eine Hilfe sein.

Gruß
Potracer
 
Zuletzt bearbeitet:
#2
Mein lieber Mann ... da haste dir aber ganz schön Mühe gemacht .. Respekt :popcorn:
 
#7
besten dank für deine mühe!!! dafür hast du dir sicher nicht nur eine positive bewertung verdient... ;)

viele grüße, gerald.
 

aruba68

Erfahrener Benutzer
#13
Mal eine ganz doofe Frage.
Was bedeutet denn Rate, Axislock, Rate und die ganzen anderen Begriffe und was bedeuten die:confused::confused::confused:

Irgendwie fange ich damit nix an.
 

PotRacer

Kamikazebuschpilot
#14
Das sind die Flugmodi die für die jeweilige Achse gewählt werden können, steht auch alles in der Anleitung feinsäuberlich erklärt:p

For each stabilized mode you can define how each axis is treated.


Manual: No stabilization on this axis. Cannot be selected for VTOL aircraft.

Rate: OpenPilot will aim for a target rate of turn around the axis (axial rotation about the axis). This target rate of is defined by the manual control (transmitter stick angle). When the manual control is neutral, OpenPilot will steer towards zero rate of turn (will stop rotating and hold the current angle).
E.g. on a multi-rotor, in "rate mode", the angle of the pitch/roll (elevator/aileron) sticks determines the rate of change of the pitch and roll axis. If you let go and return to a neutral position, the multi-rotor will keep flying in that (possibly inverted) orientation (angle). It's up to the pilot to return the craft to level, so it behaves like a "real" aircraft.
Attitude: OpenPilot will aim for a target attitude (bank angle). This target is defined by the manual control (transmitter stick angle). When the manual control is neutral, OpenPilot will steer towards level flight.
For example, on a multi-rotor, in "attitude mode", the angle of the pitch/roll (elevator/aileron) sticks directly determines the set point (bank angle) for the pitch and the roll axis of the vehicle. If you return the stick to a neutral position the multi-rotor would level and drift to a halt in level hover.

AxisLock: This is essentially Rate mode, that when disturbed (as by e.g. air turbulence or vehicle configuration imperfections) tries harder and longer to return the aircraft orientation (angle) to where it should be. This mode is very good for use on a copter yaw axis. Like Rate mode, where it should be does not necessarily mean level. OpenPilot will try to keep the total amount of rotation on the selected axis on 0 when the stick is not touched. When OpenPilot detects e.g. 5 degrees of undesired/uncommanded rotation, it will try and undo that. Axis lock essentially grabs the current position of the axis when you let go of the stick and tries to stay there.

WeakLeveling:
Weak leveling is basically rate mode with a slow component to make the attitude go towards zero. In weak leveling your aircraft slowly drifts back to level - sort of rate mode with an assist. Note that it's not recommended for yaw because it basically will turn your nose facing forward again.

Acro+: A flight mode that mixes Rate with manual actuator outputs. It allows the pilot to go from very modest rates to full on madness. It does this by bypassing the gyro for rotation during stronger stick deflections and applies manual output signals to the ESCs. Read this Acro+ Setup Flight Mode.
VirtualBar: This mode is released in the upcoming firmware, for helis it can be compared to a standard flybarless controller and for multi-rotors a much more aggressive roll and flip rate can be achieved. More information can be found on Virtual Flybar Mode.
Ratitude Mode: Ratitude Mode is an OpenPilot implementation of Multi Wii Horizon Mode that is like Attitude mode for small stick angles and is like Rate mode for large stick angles. More info on Rattitude Mode.
Quelle:https://wiki.openpilot.org/display/WIKI/Input (ab Überschrift "Configuration")
 

aruba68

Erfahrener Benutzer
#15
Gibt es das auch irgendwo in Deutsch nachzulesen?
 

PotRacer

Kamikazebuschpilot
#16
Nicht das ich wüsste, ist aber ja jetzt auch kein kompliziertes Englisch.


Ich weiß nicht wieso manche Leute die kein Englisch können sich Flightcontrols kaufen wo vorab schon klar ist das ohne Englischkenntnisse gar nichts läuft?!
 

Truortz

Erfahrener Benutzer
#17
Ich weiß nicht wieso manche Leute die kein Englisch können sich Flightcontrols kaufen wo vorab schon klar ist das ohne Englischkenntnisse gar nichts läuft?!
Weil es immer jemanden gibt der es für uns ins deutsche übersetzt und erklärt ;)

Jetzt hab ich mal PID´s eingestellt, läuft auf jedenfall besser. Ein bisschen was kann man noch änderen aber ist erstmal gut so wie es ist.

THX

[video=youtube;UkA4jm-Jk2I]https://www.youtube.com/watch?v=UkA4jm-Jk2I[/video]
 

aruba68

Erfahrener Benutzer
#18
Die Menschen die Englisch sprechen/schreiben/lesen können auch nicht alle Deutsch.
Aber egal. Werde schon was auf Deutsch finden.
 
D

Deleted member 36676

Gast
#19
Gibt's eigentlich eine vernünftige App (Android) mit der ich die PIDs einstellen kann über USB OTG? Habe nur welche gefunden wo man die Rates einstellen kann und habs auch nicht gestestet
 
#20
Weil es immer jemanden gibt der es für uns ins deutsche übersetzt und erklärt ;)

Jetzt hab ich mal PID´s eingestellt, läuft auf jedenfall besser. Ein bisschen was kann man noch änderen aber ist erstmal gut so wie es ist.

THX

[video=youtube;UkA4jm-Jk2I]https://www.youtube.com/watch?v=UkA4jm-Jk2I[/video]
Jetzt die Aufnahme Cam noch ein paar grad mehr nach oben gestellt , sind die aufnahmen super :D
 
RCLogger

FPV1

Banggood

Banggood

Oben