Implementierung eines Steuersystems zur gleichzeitigen Verfolgung von Positions- und Geschwindigkeitsreferenzen

Ich habe versucht, einen PI-Controller ( Proportional-Integral ) zu implementieren, damit eine Trägerrakete zwei Referenzzustände gleichzeitig verfolgen kann, nämlich Position und Geschwindigkeit, damit die Trägerrakete ihren Aufstiegsbrand in einer stabilen kreisförmigen Umlaufbahn bei 600 km beendet Umlaufbahnhöhe. Ich habe versucht, dies zu tun, indem ich zuerst ein optimales Führungsproblem löste, das die erforderliche Referenzposition, Referenzgeschwindigkeit und Referenzsteuerungseingabe (die als Feedforward-Steuerung verwendet wird) bereitstellt, damit die Rakete ihrem Aufstieg folgen kann. Der PI-Regler wird dann hauptsächlich zum Unterdrücken von Störungen verwendet, wobei die Feedforward-Regelung den Großteil des Regeleingangs bereitstellt.

Was mir aufgefallen ist, ist, dass der PI-Controller gute Arbeit leistet, wenn es darum geht, jeweils 1 Referenz zu verfolgen (dh eine Positionsreferenz oder eine Geschwindigkeitsreferenz zu verfolgen), aber wenn ich versuche, sowohl Position als auch Geschwindigkeit gleichzeitig zu verfolgen, gibt es nach enttäuschende Ergebnisse, da nur einer der Referenzzustände genau verfolgt wurde.

Angefügt ist ein Beispiel für die Implementierung des Controllers, um nur eine Positionsreferenz zu verfolgen. Die radiale Position ist im linken Diagramm angegeben, und die Gesamtgeschwindigkeit ist im rechten Diagramm angegeben, wobei die blauen Diagramme die zu folgenden Referenzen sind und die orangefarbenen Diagramme die tatsächlichen Flugbahnen der Rakete sind.

Geben Sie hier die Bildbeschreibung ein

Wie zu sehen ist, verfolgt die Steuerung die Positionsreferenz sehr gut, ist aber nicht in der Lage, die Geschwindigkeitsreferenz mit guter Genauigkeit zu verfolgen.

Wenn wir dann versuchen, nur die Geschwindigkeitsreferenz zu verfolgen, haben wir die folgenden Diagramme, in denen die Geschwindigkeit gut verfolgt wird, aber die Position von unserer gewünschten Trajektorie abweicht.

Geben Sie hier die Bildbeschreibung ein

Daher habe ich mich gefragt, ob es eine Möglichkeit gibt, sowohl Position als auch Geschwindigkeit für den Aufstieg der Trägerrakete in die Umlaufbahn genau zu verfolgen. Wie würde die Verfolgung mehrerer Referenzziele während eines echten Startereignisses erreicht?

Ich bin keine Person für Kontrollsysteme, aber ich frage mich, ob es irgendeine Erwartung gibt, dass dies zunächst funktionieren kann. Dies sind keine unabhängigen Parameter, einer basiert auf Ableitungen des anderen, sodass sie nicht unabhängig gesteuert werden können. Ist die Flugbahn zwischen t = 60 und 760 Sekunden ballistisch? Es sieht so aus, als gäbe es keinen Schub. Was genau steuert der Algorithmus? Ich denke, es wäre besser, wenn Sie eine klare, vollständige Liste und Beschreibung der spezifischen Eingabeparameter und Ausgabeparameter hinzufügen, mit denen Ihr Algorithmus verbunden ist.
Ich weiß kaum etwas über Kontrollen, außer der Tatsache, dass Ihr Tracking Error durch die Reihenfolge des Systems bestimmt wird. Stellen Sie sicher, dass Ihr Controller Ihren Fehler angemessen minimieren kann, je nachdem, was die Dynamik vorschreibt. Mit anderen Worten, ein PI-Controller ist möglicherweise nicht Ihre beste Option. Möglicherweise müssen Sie eine PID oder PD erstellen. Auch hier bin ich kein Steuerungstyp, daher mag dieser Kommentar nicht hilfreich erscheinen, aber ich denke, es lohnt sich, zu prüfen, ob Sie den richtigen Steuerungsalgorithmus verwenden, um Geschwindigkeit und Position gleichzeitig zu verfolgen.
-1. Diese Frage ergibt für mich als Regelungstechniker keinen Sinn. Wie andere betonen, können Sie Position und Geschwindigkeit nicht als Funktionen der Zeit steuern. Sie könnten versuchen, die Geschwindigkeit als Funktion der Position zu steuern, aber dies ist nur eine theoretische Übung, da es keinen physikalischen Sinn ergibt (Triebwerke wenden Kräfte an, die zu Beschleunigungen führen).
Oh Mann, das ist überall wie die Unschärferelation der Quantenmechanik – die besagt, dass Position oder Impuls genau bekannt sein können, aber niemals beides gleichzeitig. Ha ha. Ist deine Rakete am Elektron :/

Antworten (2)

Daher habe ich mich gefragt, ob es eine Möglichkeit gibt, sowohl Position als auch Geschwindigkeit für den Aufstieg der Trägerrakete in die Umlaufbahn genau zu verfolgen.

Wenn möglich, haben Sie genauere Aktuatoren und Referenzmodelle. Verbessert das Tracking von Zuständen einfacher.

Da es jedoch eine Beziehung zwischen Position und Geschwindigkeit gibt, können Sie nicht beide richtig steuern. Der Grund ist einfach: Wenn Sie eine Referenzbahnposition und -geschwindigkeit haben, die beide mit der Zeit ausgerichtet sind. Wenn Sie an irgendeinem Punkt in der Position hinterherhinken, können Sie dies nur durch Beschleunigen und damit Erhöhen der Geschwindigkeit kompensieren, wodurch Sie von der Referenzgeschwindigkeit abweichen würden. Wenn Sie versuchen würden, nur die Referenzgeschwindigkeit zu steuern, würde Ihre Position im Laufe der Zeit immer mehr von ihrer Referenz abweichen.

Ich würde vorschlagen, dass Sie für ein so vereinfachtes Problem Folgendes in Betracht ziehen, während Sie generieren P ( T ) Und v ( T ) als zeitabhängige Referenzen sollten Sie versuchen, die Geschwindigkeit in Abhängigkeit von der Position zu steuern, dh v ( P ) . Das macht Sinn, denn es ist besser, mit der entsprechenden Geschwindigkeit auf der entsprechenden Höhe zu sein als zur richtigen Zeit.

Wie würde die Verfolgung mehrerer Referenzziele während eines echten Startereignisses erreicht?

Das sind so ziemlich proprietäre Informationen für jede Rakete und jeden Startplatz. Beachten Sie jedoch ein paar Dinge: 1. Es werden nicht nur Höhe und Geschwindigkeit überwacht, sondern auch Breitengrad, Längengrad, absolute Geschwindigkeit, vertikale Geschwindigkeit und horizontale Geschwindigkeit. 2. Die Fluglage der Rakete ist sehr wichtig. 3. Es ist nicht einfach, das Vertrauen zu modulieren (ich glaube nicht einmal, dass eine Rakete den inneren Druck mit einer Referenz kontrollieren kann). Und das Ein- und Ausschalten der Triebwerke dauert, wenn möglich, lange. 4. Jede moderne Rakete steuert die Richtung des Schubs, aber in sehr begrenzter Weise, in einem kleinen Winkel, und die Richtung kann (und sollte) nur langsam geändert werden.

Es gibt jedoch keine Möglichkeit, die Geschwindigkeit in einem realistischen physikalischen Modell zu steuern.
@Ludo: Ich bin mir nicht sicher, was du damit meinst. Sie wissen, dass Flugzeuge, Autos und so weiter die Geschwindigkeit steuern, richtig? Sicherlich ist es nicht perfekt, aber dies ist eine steuerungstheoretische / technische Frage, kein reines physikalisches Problem.
Ich meine, dass ein Systemmodell wo v = u , dh wo Geschwindigkeit direkt auferlegt wird, macht als Modell keinen Sinn. Autos und Flugzeuge steuern die Beschleunigung, um die gewünschte Geschwindigkeit zu erreichen. Mir ist jetzt jedoch klar, dass Sie möglicherweise „Steuerung“ als gesteuerte Zustandsvariable meinen, wobei ich „Steuerung“ als Steuerungseingang meine.

Daher habe ich mich gefragt, ob es eine Möglichkeit gibt, sowohl Position als auch Geschwindigkeit für den Aufstieg der Trägerrakete in die Umlaufbahn genau zu verfolgen. Wie würde die Verfolgung mehrerer Referenzziele während eines echten Startereignisses erreicht?

Sie können nicht. Position und Geschwindigkeit sind abhängige Variablen (Geschwindigkeit ist per Definition die zeitliche Ableitung der Position), sodass die Steuerung der einen die andere beeinflusst und umgekehrt (siehe Antwort von Mefitico ).

Als theoretische Übung könnten Sie die Trajektorie parametrisieren, um die Geschwindigkeit als Funktion der Position zu erhalten, wie von Mefitico vorgeschlagen, aber dieser Ansatz ergibt keinen physikalischen Sinn: Physikalische Systeme ermöglichen es Ihnen entweder, eine Kraft anzuwenden, die eine Beschleunigung ergibt (alles, was sich wie a verhält Masse, A = 1 M F ) oder unter Krafteinwirkung verschieben (federähnliche Dinge, F = K X ).

Ich schlage daher vor, dass Sie Ihre Rakete zuerst als Punktmasse mit einem omnidirektionalen Triebwerk modellieren und prüfen, ob Sie Ihre Flugbahn verfolgen können. Dann verfeinern Sie Ihr Modell schrittweise von dort aus.

Um es klar zu sagen: Ich schlage nicht vor, dass er ein System schaffen sollte, bei dem das physikalische Geschwindigkeitsverhalten eine Funktion der Position ist, sondern vielmehr, da es sich um eine Frage des Steuersystems handelt, dass er die Kontrolle der Position verwirft und versucht, die Geschwindigkeit zu kontrollieren nur, sondern dann eine Referenzgeschwindigkeit verwenden, die an Bord basierend auf der Position gemäß dem von ihm erstellten vorgenerierten Profil berechnet werden sollte.