Modellierung der Fluglagenkontrolle: Rampen/Nachlassen zwischen Fluglagenbefehlen?

Angenommen, Sie wechseln von Ihrem aktuellen Führungsprogramm zu einem brandneuen Programm, das Ihrem Raumschiff eine andere Fluglage befiehlt. Angenommen, die neue Fluglage ist eine diskontinuierliche Schrittänderung von Ihrer zuvor befohlenen Fluglage.

Wenn die Schrittänderung groß ist, wird dies große Korrekturen von Ihren Lagereglern auslösen, was dazu führen wird, dass das Raumschiff in die neue befohlene Lage eilt und möglicherweise darüber hinausschießt, während es auch großen Lasten ausgesetzt wird, die Sie lieber vermeiden würden.

Somit sind stufenweise Änderungen in Lagebefehlen von der Führung ein Problem, das es zu vermeiden gilt.

Meine Frage ist wie ? Durch Hochfahren des Lagebefehls vom vorherigen Befehl? Indem man stattdessen den Lagefehler hochfährt (Raumfahrzeug auf befohlene Lage)? Durch Filtern des Signals, um es zu glätten (obwohl die Filterzeitkonstante sehr groß sein müsste, um große Einstellungsschrittänderungen aufzunehmen)?

Ich würde das gerne wissen. Ich habe das Problem vermieden, indem ich zwischen alten und neuen Lagefehlern gewechselt habe (unter Verwendung einer linearen Gleichung des Typs y = ax + b), und dies vermeidet die großen problematischen Korrekturen, die meine Controller nicht ausgeben sollten (wie mein Raumschiff geht außer Kontrolle), aber es nagt an mir, dass ich dies in keiner der Space-Shuttle-Zeitungen gesehen habe, die ich auf GNC gelesen habe – und ich bin überzeugt, dass dies nicht der Weg ist, dies zu lösen.

Wie gehen Raumfahrzeuge also mit plötzlichen Übergängen zwischen Lagebefehlen um, wenn die Änderungen groß sind? Bitte helfen Sie mir, Unsinn in meinem Modell zu vermeiden.

Viele Fahrzeuge begrenzen die Rotationsgeschwindigkeit und wenden eine Burn-Coast-Burn-Strategie an, um große Änderungen in der Lage zu erreichen.
OK, nach einigem Experimentieren habe ich herausgefunden, dass das Durchleiten meines Lagefehlersignals durch einen Ratenbegrenzer gut funktioniert, um übermäßige Korrekturen durch die Rakete zu verhindern, wenn Sie plötzlich zu einem neuen Programm mit einem neuen Lagebefehl weit vom vorherigen Sollwert wechseln. Ich hatte bereits einen Ratenbegrenzer in meinem Modell und musste ihn nur der Fehlersignalberechnung mit einer geeigneten Ratenbegrenzung nachschalten, um die in meiner Frage aufgeworfenen Probleme zu beheben. Der Begrenzer nimmt das Fehlersignal auf, betrachtet die befohlene Rate und ersetzt diese dann durch die Grenze, wenn sie zu hoch ist, bevor er integriert, um ein neues Fehlersignal zu erhalten.

Antworten (1)

Ein naiver Bang-Bang-Ansatz kann übermäßige Mengen an Treibstoff verbrauchen, wenn das Fahrzeug große Lageänderungen erreichen muss. Am Umschaltpunkt kann die Drehzahl unverhältnismäßig groß werden. Die Lösung ist einfach: Tun Sie das nicht. Es gibt normalerweise keinen Grund, (zum Beispiel) eine 180°-Drehung in der erforderlichen Mindestzeit durchzuführen.

Viele Fahrzeuge legen eine Obergrenze für die Rotationsgeschwindigkeit des Fahrzeugs fest und wenden im Wesentlichen eine Burn-Coast-Burn-Strategie an, um große Änderungen in der Lage zu erreichen. Viele Lagesteuersysteme von Fahrzeugen begrenzen auch die prozentuale Einschaltzeit auf etwas weniger als 100 %, da Sättigung (100 % Einschaltzeit) ein Schlüsselindikator dafür ist, dass das Fahrzeug die Steuerbarkeit verloren hat.

Die Brennphasen eines großen Lageänderungsmanövers werden mit weniger als 100 % Einschaltzeit durchgeführt. Die Coast-Phase ist keine reine Coast; Einige geringfügige Korrekturen können erforderlich sein, um die Freilaufphase für die letzte Brennphase auf dem Ziel zu halten. Aber die Strategie bleibt im Wesentlichen Burn-Coast-Burn für große Einstellungsänderungen.

Wie von BrendanLuke15 angemerkt, lässt sich dies leicht mit einem Phasenebenen-Controller erreichen. Ein vereinfachtes Steuerdiagramm der Phasenebene ist unten abgebildet.

Vereinfachtes Steuerdiagramm der Phasenebene.  Bild wird im Text beschrieben.

Ein Phasenebenen-Steuerungsdiagramm zeigt, wie das Fahrzeug auf Fehler in der Lage und der Lagerate des Fahrzeugs reagieren sollte. In dem oben abgebildeten vereinfachten Diagramm befindet sich der Lagefehler auf der horizontalen Achse und der Ratenfehler auf der vertikalen Achse. Ich nenne das Diagramm "vereinfacht", weil viele Steuerdiagramme der Phasenebene erheblich komplexer sind als das obige Diagramm. Ein Phasenebenen-Steuerdiagramm umfasst mehrere Bereiche. Ein Bereich führt dazu, dass Triebwerke ausgewählt werden, um die Lagerate zu erhöhen, ein anderer, um die Lagerate zu verringern, und wieder andere Bereiche, in denen überhaupt keine Triebwerke gezündet werden.

Im obigen Diagramm sind die Bereiche, in denen die Triebwerke nicht zum Zünden befohlen werden, als Driftkanäle und Kanal zum Halten der Fluglage gekennzeichnet. Der Haltungshaltekanal fällt rechts abwärts ab, ist um den Ursprung zentriert und geht in die Driftkanäle über, die horizontal zu den Rändern des Diagramms bei -180° und +180° verlaufen.

Es sind die Driftkanäle, die auf natürliche Weise die großen Lagefehler aufnehmen, die sich plötzlich aus befohlenen Lageänderungen ergeben. Den Triebwerken wird befohlen, die Lagerate zu ändern, um das Fahrzeug in die richtige Richtung zu drehen, aber der Schub stoppt, sobald das Fahrzeug in den Driftkanal eintritt. Beim Übergang vom Driftkanal zum Haltungshaltekanal läuft es im Leerlauf und beginnt erst dann wieder zu feuern (in die entgegengesetzte Richtung), wenn es den Haltungshaltekanal verlässt. Schließlich tritt das Fahrzeug in eine Hystereseschleife ein, die um den Ursprung herum zentriert ist, wobei nur gelegentliche Triebwerkzündungen erforderlich sind, um das Fahrzeug um die gewünschte Lage und Lagerate herum zentriert zu halten.

@user39728_i_said_user_39728_i_ Elements of Spacecraft Design, Brown gibt einen schönen Überblick über das Phasenebenen-Steuerungsgesetz, Seite 289-292 in dieser Vorschau
@ BrendanLuke15 Ich habe ein Phasenebenen-Steuerungsdiagramm und eine Beschreibung hinzugefügt, wie sie für die Lagesteuerung verwendet werden. Danke!
Danke, David! Ich habe tatsächlich Totband-PD-Controller für meine Kaltgas-Triebwerke und sie basieren auf einem Diagramm wie diesem. Sie helfen enorm, weiter nach unten zu ratschen (wenn die erforderliche Korrektur gering ist, aber ein einzelner Schuss zu stark ist, um sie zu erzeugen, so dass das Fahrzeug in einen Teufelskreis der Überkorrektur gerät, zuerst in die eine Richtung, dann in die andere). So habe ich gelernt, dass leistungsstarke Kaltgas-Triebwerke nicht unbedingt die besten für die Lagekontrolle sind. Aber ein Totbandregler hilft.
Aber Entschuldigung, ich gehe hier auf eine Tangente, und ich war in meiner Frage nicht sehr klar. Ich schätze, ich habe am meisten mit Sollwertübergängen zu kämpfen, die während des Brennens des Motors stattfinden, wenn der Motor die Steuerautorität hat, sehr aggressiv Einstellungsfehler zu korrigieren - was normalerweise gut ist, außer dass die Fehler jetzt plötzlich sehr, sehr groß sind. Dies ist weniger ein Problem für das schwächere CGS, das im schlimmsten Fall in die Sättigung gerät und die Rakete sich nur auf die neue befohlene Einstellung einpendelt. Aber bei Motoren --- wie sollte ich zwischen Sollwerten wechseln, um zu vermeiden, dass das Fahrzeug wild wird?
OK, Beispiel: Angenommen, Sie starten eine Rakete, die zufällig gerade ihr Pitchover-Manöver beendet. Die Neigung beträgt 10 Grad und der Anstellwinkel einige Grad – etwas, das normalerweise in kurzer Zeit auf Null fallen würde, wenn sich die Geschwindigkeit aufbaut. Aber ein Notfall löst das Start-Flucht-System aus und das Besatzungsmodul feuert von den versagenden Raketenstufen weg. Sie möchten die Start-Fluchtmotoren differenziell drosseln, um eine Anstellbahn mit Nullwinkel zu verfolgen ... aber Sie möchten nicht mit einem wilden 10-Grad-Fehler starten und Ihr Fahrzeug tanzen lassen ... (Fortsetzung)
@user39728_i_said_user_39728_i_ Verwenden Sie PID oder PD nicht zur Lageregelung mit Triebwerken. Phasenebenensteuerung ist die bessere Wahl.
Sie könnten das Fehlersignal filtern, um es zu glätten, aber ein 10-Grad-Schritt würde viel Glättung erfordern, was die Reaktion Ihres Controllers in normaleren Situationen zunichte machen würde. Wie würden Sie auf diesen 10-Grad-Neigungsfehler umsteigen?
Aber David, diese PD-Controller sind Phasenraum-Controller. Die Totzone ist so formuliert, dass Ihre proportionale Verstärkung aus Ihrer Fehlertotzone und Ihre abgeleitete Verstärkung aus Ihrer Fehlerratentotzone stammt . Ich habe diese Formulierung aus einer Abhandlung zu diesem Thema, und sie funktioniert gut. Ich leite den Ausgang des Totband-PD-Controllers durch ein Relais, das nur ausgelöst wird, wenn ein Schwellenwert erreicht ist (der Ausgang ist also wirklich ein / aus, wie es ein Kaltgas-Triebwerk wäre).
Wenn Sie Lagefehler in Ihrem Phasenraumdiagramm darstellen, würden sie auf der horizontalen Achse liegen, während die Fehlerraten auf der vertikalen Achse liegen würden. Die proportionale Verstärkung wirkt auf die Fehler (horizontale Achse) und die abgeleiteten Verstärkungen wirken auf die Fehlerraten (vertikale Achse). Sie können beide Gewinne aus den von Ihnen gewählten Totzonengrenzen berechnen. Und wenn die Totzone wie in Ihrem Beispiel linear ist, stehen die proportionalen und abgeleiteten Verstärkungen durch eine Liniengleichung des Typs y = a * x + b ... in Beziehung. Sobald Sie also eine Verstärkung bestimmt haben, haben Sie sie vollständig beschränkt den anderen Gewinn.
Aber ich gebe zu, dass dies wahrscheinlich nicht die Art ist, wie die meisten Leute über Phasenraum-Totband-Controller denken, und es ist wahrscheinlich nicht ohne Nachdenken offensichtlich, dass Sie einen Phasenraum-Totband-Controller als PD-Controller modellieren können. Ich hätte es nicht gekauft, wenn ich es nicht in einer seriösen Forschungsarbeit gefunden hätte.
In dieser Formulierung ist P = 1 und D = dq/dw , wobei dq die Breite Ihres Fehlerkanals und dw die Höhe Ihres Fehlerratenkanals ist . Wenn die Fehlerrate Null ist, gibt Ihr Controller 1 * q aus , was einen Vollschub auslöst, wenn q über der dq- Schwelle Ihres Totbands liegt, aber ansonsten tot bleibt. Und wenn der Fehler Null ist, gibt Ihr Controller ( dq/dw ) * w aus , was einen Vollschub auslöst, wenn w über der dw- Schwelle Ihres Totbands liegt, aber ansonsten tot bleibt. Und bei ungleich Null q undw , fallen Sie irgendwo auf die Linie der linearen diagonalen Totzone.
@user39728_i_said_user_39728_i_ Re "Wie würden Sie auf diesen 10-Grad-Neigungsfehler umsteigen?" Die Steuerung befiehlt Triebwerken, das Fahrzeug in Rotation zu versetzen, um diesen Fehler zu korrigieren. Angesichts des großen Fehlers tritt das Fahrzeug in den Driftkanal ein und stoppt den Schub. Das Stoppen des Schubs verhindert nicht, dass sich das Fahrzeug dreht. Die laufende Rotation arbeitet weiter daran, diesen Einstellungsfehler zu korrigieren. Es muss schließlich den Ratenfehler korrigieren, und das wird passieren, wenn das Fahrzeug die Totzonenbereiche verlässt. PID oder PD sind nicht erforderlich. Es steht nur im Weg.
Die PID/PD-Regelung eignet sich für kontinuierliche Lageregelungsgeräte wie magnetische Drehmomenterzeuger, Reaktionsräder, Steuermomentkreisel usw., jedoch nicht für Schubdüsen. Aber selbst dann brauchen Sie ein Äquivalent für diese Driftkanäle, um Probleme zu vermeiden, die mit großen Lagefehlern verbunden sind.
Aber wir sprechen von Totzonen-PD-Controllern mit diskontinuierlichen Relais, die eine Zündung mit voller Stärke oberhalb der Fehlerschwelle Ihrer Totzone auslösen und alle Zündungen unterhalb dieser Schwelle unterdrücken. Diese PD-Regler sind diskontinuierlich formuliert. Sie drücken einfach die Totbandgrenzen in Form von PD-Gewinn aus.
Thrust Vectoring ist das, was ich als kontinuierliche Steuerungsgeräte klassifizieren würde. Das ist anders. Ich nahm an, Sie fragen nach der Auswahl von RCS-Triebwerken mit fester Ausrichtung, die entweder ein- oder ausgeschaltet sind, wobei die Ein- / Aus-Zyklusrate jedoch normalerweise schneller ist als die des Steuersystems. Befehle an die meisten modernen RCS-Jets sind prozentuale Einschaltzeit für den nächsten Zeitschritt des Steuersystems, jedoch in nicht kontinuierlichen Schritten von prozentualer Einschaltzeit.
Tut mir leid, ich habe bemerkt, dass Sie nur kontinuierliche Kontrolle meinten, nachdem ich gerade meinen Kommentar gepostet hatte, also habe ich ihn gelöscht, da er eindeutig nicht zutraf. Ja, ich verstehe deinen Punkt. Kaltgas-Triebwerke sind diskontinuierlich und für sie wäre die herkömmliche PD-Steuerung nicht richtig. Aber diese Totband-PD-Controller sind diskontinuierlich und nur eine andere Art, die Phasenebenensteuerung (in Bezug auf PD-Verstärkungen) auszudrücken.
OK, ich verwende Ratenbegrenzer bereits in anderen Teilen meines Modells und vielleicht sind sie ein besserer Ansatz für Sollwertübergänge als lineare Rampen. Ich habe die Ratenbegrenzer aus den Space-Shuttle-Papieren, damit ich weiß, dass sie irgendwo verwendet wurden, im Gegensatz zu meinen linearen Rampen, die ich einfach aus dem Nichts gezogen habe.
Ich muss nur die Ratenbegrenzungen verschärfen, wo dies erforderlich ist, um zu verhindern, dass große Fehler meine Controller während dieser bestimmten Sollwertübergänge erreichen, und um zu verhindern, dass diese Controller unverschämt aggressive Befehle ausgeben, die dazu führen würden, dass das Fahrzeug wild wird.
Ich sollte klarstellen, dass in diesen Totband-PD-Controllern das Phasenraum-Totband durch die diskontinuierlichen Relais erzwungen wird, die den PD-Controllern nachgeschaltet sind. Die PD-Controller teilen dem Relais praktisch nur mit, wenn der Fehler / die Fehlerrate außerhalb der Totzone liegt. Es ist das Relais, das den diskontinuierlichen binären Ein-/Aus-Zündungsbefehl ausgibt.