Entwurf eines LQR-Servoreglers in Simulink
Dieses Beispiel zeigt den Entwurf eines LQR-Servoreglers in Simulink® anhand einer Autopilot-Anwendung für Luftfahrzeuge.
Öffnen Sie das Modell für
open_system("lqrpilot")
In diesem Modell:
Der Block
Linearized Dynamics
enthält das linearisierte Flugwerk.sf_aerodyn
ist ein S-Function-Block, der die nichtlinearen Gleichungen für enthält.Das Fehlersignal zwischen und wird durch einen Integrator geschickt, der dazu beiträgt, den Fehler auf Null zu bringen.
Beim Öffnen des Modells wird auch die MAT-Datei lqrpilotData
geladen, welche folgende Daten enthält:
Matrizen der Zustandsgleichungen
A
undB
Linearisierte Zustandsmatrix
A15
Endgültige LQG-Verstärkungsmatrix
K_lqr
Zustandsraumgleichungen für Luftfahrzeuge
Die Gleichung ist die Standard-Zustandsgleichung eines Zustandsraumsystems.
Für das Luftfahrzeugsystem sieht der Zustandsvektor wie folgt aus:
Die Variablen , und sind die drei Geschwindigkeiten relativ zum Flugzeugrumpf-Bezugssystem, wie in der folgenden Abbildung dargestellt.
Die Variablen und stellen das Rollen und Nicken dar , und sind die entsprechenden Roll-, Nick- und Giergeschwindigkeiten.
Die Dynamiken des Flugwerks sind nichtlinear. Die folgende Gleichung zeigt die Zustandsraumgleichung, nachdem die nichtlinearen Komponenten hinzugefügt wurden, wobei die Fallbeschleunigung ist.
Trimmen
Für LQG-Entwurfszwecke werden die nichtlinearen Dynamiken bei getrimmt und , , und auf null festgelegt. Da , und nicht auf den nichtlinearen Term in der vorstehenden Gleichung auswirken, ist das Ergebnis ein um linearisiertes Modell, bei dem alle restlichen Zustände auf null festgelegt sind.
Das lqrdes
-Skript beschreibt, wie das linearisierte Modell A15
an diesem getrimmten Arbeitspunkt berechnet wird.
Problemdefinition
Das Ziel des Entwurfs besteht im Fliegen einer stabil koordinierten Wende, wie in der folgenden Abbildung dargestellt.
Um dieses Ziel zu erreichen, müssen Sie eine Steuerung entwerfen, die eine stabile Wende beherrscht, indem eine 60-Grad-Rolle durchlaufen wird. Zusätzlich muss vorausgesetzt werden, dass der Nickwinkel möglichst nahe bei Null bleiben muss.
Ergebnisse
Das lqrdes
-Skript beschreibt, wie die LQG-Verstärkungsmatrix K_lqr
berechnet wird.
Stellen Sie im lqrpilot
-Modell sicher, dass der Schalterblock so konfiguriert ist, dass er den Ausgang des Blocks „Nonlinear Dynamics“ wählt.
Führen Sie das Modell aus.
sim("lqrpilot")
Betrachten Sie die Antwort des Rollens auf eine Sprungänderung von 60°. Das System verfolgt die befohlene Rolle innerhalb von etwa 60 Sekunden.
open_system("lqrpilot/phi (roll angle)")
Betrachten Sie den Nickwinkel . Der Regler war in der Lage, den Nickwinkel relativ klein zu halten.
open_system("lqrpilot/theta (pitch angle)")
Sehen Sie sich schließlich die Steuerungseingänge an.
open_system("lqrpilot/Control Inputs")
Sie können die Q- und R-Werte im lqrdes
-Skript anpassen, um verschiedene mögliche Entwürfe auszuprobieren. Außerdem können Sie Simulationen der linearen und nichtlinearen Systemdynamiken vergleichen, um die Auswirkungen der Nichtlinearitäten auf die Systemleistung zu sehen.