Frage:
Was macht Feed Forward und wie funktioniert es?
Klystrom
2020-04-18 16:13:18 UTC
view on stackexchange narkive permalink

Die PID-Abstimmung umfasst P-, I- und D-Verstärkungen, um dem Quad zu helfen, RC-Befehlen zu folgen.

Immer wenn ein Fehler auftritt, "drückt" P das Quad, um den Fehler zu reduzieren. Wie kommt Feed Forward zum Spielen?

Drei antworten:
#1
+12
FlashCactus
2020-04-18 18:07:08 UTC
view on stackexchange narkive permalink

Der PID-Regler arbeitet immer dann, wenn die tatsächliche Rotationsrate des Quadcopters nicht dem Sollwert oder der gewünschten Rotationsrate (die Sie durch Bewegen der Sticks einstellen) entspricht, sendet er a Signal an die Motoren, um die Rate zu kompensieren und näher an den Sollwert zu bringen.

Dieses Signal ist eine Summe von vier Termen : P, I, D und FF. Da es sich um eine Summe handelt, können Sie sich vorstellen, dass jeder das Quad unabhängig in eine bestimmte Richtung drückt, wobei sich einige Begriffe addieren und andere sich gegenseitig entgegenwirken.

Der P-Ausdruck ist die Differenz zwischen dem Sollwert und der tatsächlichen Rate , multipliziert mit der P Verstärkung . Die vom P-Term ausgeübte Kraft ist also direkt proportional zu dieser Differenz. Sie können sich das als eine Feder vorstellen, die versucht, das Quad zurückzubewegen, wenn es aus seiner Position gerät. Je weiter es bewegt wird (größerer Unterschied zwischen Sollwert und tatsächlicher Rate) und je steifer die Feder (größere P-Verstärkung), desto stärker wird sie gezogen.

Der Grund, warum der FF-Term benötigt wird, ist das Signal dafür Die Ausgänge des PID-Reglers beeinflussen die Beschleunigung und nicht direkt die Geschwindigkeit. Dies bedeutet, dass das Quad nicht sofort auf Touren kommt, sondern einige Zeit benötigt, je nachdem, wie stark es sich selbst drückt. Wenn Sie also ein Manöver scharf beginnen möchten, möchten Sie, dass das Quad viel Kraft in diese Richtung ausübt, um loszulegen und dann die Rotation mit einer geringeren Kraft aufrechtzuerhalten.

Der PID-Regler dient jedoch zur Stabilisierung. Es wird nicht unterschieden, ob Sie den Steuerknüppel stoßen oder ob der Quad durch ein Hindernis oder einen Windstoß aus seiner Position gestoßen wird. Wenn Sie den Steuerknüppel bewegen, "stabilisiert" er sich mit der neuen Geschwindigkeit, als ob Sie den Steuerknüppel überhaupt nicht bewegt hätten, und er wurde stattdessen von etwas gestoßen. Sie können sich vorstellen, den Steuerknüppel so zu bewegen, dass er das andere Ende der Feder bewegt, an der das Quad befestigt ist. Der Feder ist es egal, welches Ende bewegt wurde, nur dass sich ihre Länge geändert hat. Dies bedeutet, dass der PID-Regler nicht so viel Kraft aufbringt, um die Drehung zu starten, wie dies möglicherweise möglich ist. Dies bedeutet, dass das Beschleunigen beim Bewegen des Steuerknüppels etwas langsamer und beim Bewegen des Steuerknüppels langsamer ist Halten Sie sich an die Mitte zurück (und können sogar überschießen).

Sie können die Reaktion beschleunigen, indem Sie die P-Verstärkung erhöhen, jedoch bis zu einem Punkt, an dem höhere P-Verstärkungen zu Schwingungen führen, wenn die Bewegungen des Quad zu großen Bewegungen führen P-Terme, die wiederum größere Bewegungen usw. verursachen.

Stattdessen wurde der FF-Term hinzugefügt. Der FF-Term berücksichtigt die aktuelle Rotationsrate überhaupt nicht, trägt also nicht zur Stabilisierungswirkung des PID-Regelkreises bei und kann daher keine Schwingungen verursachen. Das einzige, was es sieht, sind die Stöcke. Die vom FF-Term ausgeübte Kraft ist proportional zu der Geschwindigkeit, mit der Sie Ihren Stick bewegen (multipliziert mit der FF-Verstärkung). Wenn Sie beispielsweise eine Rolle einleiten und den Steuerknüppel nach rechts stoßen, erkennt der FF-Term die schnelle Bewegung des Steuerknüppels und gibt einen Kraftstoß ab, um das Quad zum Laufen zu bringen. Wenn Sie dann die Rolle beenden und Ihren Steuerknüppel wieder in die Mitte zurückbringen, erkennt der FF-Term die entgegengesetzte schnelle Steuerknüppelbewegung und übt eine entsprechende Kraft aus, wodurch der PID-Regler die Drehung des Quad schneller stoppen und ein Überschießen vermeiden kann.

#2
+11
Kenn Sebesta
2020-04-18 19:58:17 UTC
view on stackexchange narkive permalink

30.000-Fuß-Ansicht von Feedforward als allgemeines Konzept

  • Feedforward : Ich gebe Ihnen eine geschlossene Box und Sie gehen davon aus, dass sie schwer sein wird sich in Vorbereitung. Ihre Kontrolle über die Box ist schnell und präzise.

  • Feedforward-Fehler : Ich gebe Ihnen eine Box und sie ist viel schwerer als Sie erwartet hatten. Ihre Kontrolle über die Box ist schlampig, bis Sie neu kalibrieren und herausfinden, wie viel sie wiegt.

  • Kein Feedforward : Wenn Ihre Augen geschlossen sind und Sie alle Ich weiß, dass ich dir etwas geben werde. Könnte ein Heliumballon sein, könnte eine Spülmaschine sein. Sie wissen nicht, ob Ihre Arme nach oben oder unten gezogen werden, und reagieren daher nur langsam.

Feedforward in Drohnen

In Im Fall einer Drohne, die rollt, können Sie mit einem Feedforward-Begriff davon ausgehen, dass Sie eine Rollkontrolle benötigen, auch wenn Sie noch nicht genau wissen, wie viel . Mit den gängigen Flugsteuerungen können Sie also eine gewisse Vorwärtskopplung hinzufügen, um schneller auf Eingaben reagieren zu können.

Die Vorwärtskopplung funktioniert in geeigneten Mengen sehr gut. In einem System wie einer Drohne, in dem sie sich ständig bewegt und es keine echte Langzeitstabilität im eingeschwungenen Zustand gibt, kann Feedforward die Reaktionszeit erheblich beschleunigen und die Genauigkeit verbessern. Der Teufel steckt jedoch im Detail, da jede Kombination aus Flugzeugzelle, Motoren, Propellern und atmosphärischen Bedingungen eine andere optimale Vorwärtskopplung aufweist.

Infolgedessen gibt es unzählige Möglichkeiten, Feedforward zu implementieren, und daher gibt es keine allgemeinen Ratschläge, wie Sie es richtig einstellen können. Ein weiteres Poster, das mit https://github.com/betaflight/betaflight/wiki/Feed-Forward-2.0 verlinkt ist, und ich würde dies als eine gute Ressource für Pathologien betrachten, die mit Beta Flight erlebt werden können. Andere FCs haben ihre eigenen Pathologien, Sie müssen experimentieren.


Hintergrund

Dies ist an der Wurzel eine Kontrollfrage. In der Welt der klassischen Kontrollen [*] war die PID König. Es stellt sich heraus, dass einfache Dinge sich weigern zu sterben, und zum Leidwesen der Kontrollforscher weltweit ist die PID immer noch König. Kreide es so an, dass es für viele Systeme leicht zu verstehen und leicht abzustimmen ist, auch wenn es nicht sehr gut ist.

Ohne Feedforward

Hier ist ein Diagramm eines PID ohne Feedforward rollen .

Feedback example

  1. Sie haben einen Rollensollwert (dh den gewünschten Roll)
  2. Sie Vergleichen Sie den Sollwert mit der gemessenen Rolle, um den Fehler zu erhalten.
  3. Sie multiplizieren diesen Fehler, indem Sie die Werte (K_p, K_i und K_d) so einstellen, dass eine Steuerantwort generiert wird.
  4. Sie wenden diese Steuerantwort an zum System und sehen, wie das System reagiert
  5. GOTO (1)
  6. ol>

    Mit Feedforward

    Feedforward hat alle diese Teile, außer dass es hinzufügt Ein neues Element, bei dem es sich um die vorhergesagte Steuerung handelt, die auf dem erwarteten Wurf basiert. Hier ist ein Diagramm einer Roll-PID mit Feedforward .

    Feedforward example

    Beachten Sie, dass es einen neuen Pfad zur Steuerung gibt, der völlig unabhängig vom Fehler ist. Deshalb heißt es feedforward . Dieser Weg berücksichtigt einfach das gewünschte Ergebnis und wendet blind eine darauf basierende Steuereingabe an.


    [*] Die Ära der modernen Kontrollen begann 1958 mit der Veröffentlichung von Pontryagins revolutionärer Theorie zur Optimierung, gefolgt von R. Kalmans jetzt allgegenwärtigem Schätzfilter. Eine vollständige Historie finden Sie unter http://www.uta.edu/utari/acs/history.htm.

Der Ableitungsterm in Betaflight wird nicht aus dem Fehlersignal im obigen Diagramm berechnet, sondern aus dem Kreisel oder dem Rückkopplungssignal. Das obige Diagramm ist in dieser Hinsicht falsch. Das oben gezeigte Fehlersignal enthält bereits die Sollwertänderung; Im obigen Diagramm und wenn Feed Forward tatsächlich wie oben implementiert wurde, würde die Sollwertänderung zweimal angewendet. Also machen wir das nicht so. In früheren Versionen von Betaflight wurde die Ableitung aus dem Fehler berechnet, aber jetzt wird sie nur aus dem Kreisel- oder Rückkopplungssignal berechnet.
Das Diagramm bezieht sich nicht auf Betaflight. Es ist einfach eine allgemeine Ansicht darüber, was ein generischer FF tut. Es gibt eine große Anzahl von Arbeiten, die sich mit den Problemen befassen, die sich aus der Verwendung eines D-Begriffs ergeben, und wie Sie sagen, klingt es so, als ob frühe Versionen von Betaflight auf diese klassischen Probleme gestoßen sind. Ein großes Lob an die Entwickler für die Suche nach einer optimierten Lösung.
#3
+3
anonymous2
2020-04-18 17:22:29 UTC
view on stackexchange narkive permalink

Ich bin weit entfernt von einem Experten auf diesem Gebiet ... aber es gibt einen guten Artikel hier auf Github, der es meiner Meinung nach gut erklärt.

Grundsätzlich ist Feedforward ein Faktor Dies erhöht die Reaktionsfähigkeit des Sticks - ähnlich wie bei P, nur dass FF die Drohne bei hohen Pegeln nicht zum Wackeln bringt. Ich zitiere:

FeedForward (FF) ist ein Antriebsfaktor, der die Reaktionsfähigkeit des Sticks erhöht. Sie ist proportional zur augenblicklichen Ableitung oder "Änderungsrate" der Stickbewegung. Je schneller sich die Sticks bewegen, desto mehr FeedForward erhalten wir. FeedForward hilft P, das Quad in Kurven zu fahren. Im Gegensatz zu P kann FeedForward keine Oszillation verursachen, unabhängig davon, wie viel FF hinzugefügt wird.

Mit FeedForward erzielen wir eine bessere Reaktionsfähigkeit des Sticks, ohne P so hoch zu drücken, dass Wackeln verursacht wird. Es reduziert auch die Verzögerungszeit zwischen Eingabe und Antwort. Weniger Verzögerung bedeutet weniger Fehler und weniger Aufwickeln / Überschwingen. Es ist großartig für Rennen, LOS und radikales Freestyle-Fliegen. Es ist nicht großartig für filmische HD.


Hoffe, es hilft!



Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 4.0-Lizenz, unter der er vertrieben wird.
Loading...