|
|
LQR-Regelung eines gedämpften Schwingers |
|
michigrunf |
Forum-Newbie
|
|
Beiträge: 2
|
|
|
|
Anmeldedatum: 26.02.16
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 26.02.2016, 12:08
Titel: LQR-Regelung eines gedämpften Schwingers
|
|
|
|
|
Hallo zusammen,
mir ist ein gedämpfter Schwinger mit folgender Systemgleichung gegeben:
ist dabei mein Systemeingang u. Da das System ja asymptotisch stabil ist, kann man u einfach auf einen festen Wert setzen und warten, bis sich das System auf diesen Wert eingeschwungen hat. Was ich nun gerne tun würde, ist dies durch eine Regelung zu optimieren, sodass das Schwingen und die Einschwingdauer (t_90-Zeit) reduziert werden.
Dazu habe ich testweise mal eine LQR Regelung simuliert, mit der Erwartung, dass diese -ähnlich wie beim invertierten Pendel- zunächst einen deutlich größeren Control-Input generiert als eine einfache Steuerung und am Ende durch einen entsprechend entgegengesetzt gerichteten Input das System wieder abbremst. Wie man am Plot sehen kann, funktioniert mein Code oder der Ansatz aber nicht wie gedacht. Was mache ich da falsch?
(Das zur Simulation verwendete Matlab-Skript habe ich angehängt.)
Im Fall der Steuerung ist u konstant 0.
Beschreibung: |
|
Download |
Dateiname: |
lqr1.m |
Dateigröße: |
1.31 KB |
Heruntergeladen: |
611 mal |
|
|
|
|
|
@Johannes |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 26.02.2016, 12:40
Titel:
|
|
Dein Eingang und dein Zustand x1=x hängen vom Sinus ab.
Somit ist deine Zustandsdarstellung die du für LQR verwendest falsch.
Die Darstellung die du verwendest würde für eine DGL der Art xpp = -2*delta*xp - w0^2 * x passen.
Dein System ist nichtlinear und daher würde ich raten es im Arbeitspunkt zu linearisieren. Alternativ kannst du auch einen nichtlinearen Regler entwerfen.
Grüße,
Johannes
|
|
|
michigrunf |
Themenstarter
Forum-Newbie
|
|
Beiträge: 2
|
|
|
|
Anmeldedatum: 26.02.16
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 26.02.2016, 13:45
Titel:
|
|
|
|
|
Hallo Johannes,
Danke für deine schnelle Antwort! Eine Linearisierung habe ich vorgenommen, das hätte ich im ersten Beitrag wohl noch erwähnen sollen. Und zwar sieht die so aus:
Mit der Annahme gilt:
Damit erhält man:
Dies lässt sich in die von dir genannte Form bringen. Setzt man nun , folgt:
Damit ergibt sich folgende Zustandsraumdarstellung:
Das Ergebnis ist dann das im Plot gezeigte.
Da die Annahme zur Sinusnäherung bei dem System eigentlich nicht gilt, habe ich die Linearisierung mal in die Simulation eingebaut gehabt (ist im Code noch drin, aber auskommentiert), sodass A und B (und darauf aufbauend dann auch die LQR Gain Matrix) ständig mit dem momentanen Arbeitspunkt neu gebildet werden:
Das Ergebnis ist aber nahezu identisch zum linearisierten Modell.
Edit:
Hier noch ein händisch gemachtes Beispiel mit Bang-Bang-Control, das grob zeigt, in welche Richtung das am Ende gehen könnte/sollte:
(Möglicherweise ist das in diesem Fall sogar der optimale Ansatz...)
|
|
|
@Johannes |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 28.02.2016, 00:18
Titel:
|
|
Hi Michi,
hatte leider nicht früher Zeit um mir dein Modell einmal genauer anzusehen.
Ich habe Q und R mal ein bischen variiert und wenn du
und wählst dann sieht das schon deutlich dynamischer aus.
Q muss lediglich positiv semidefinit sein deswegen kannst du auf die Gewichtung eines Zustands (hier Drehrate) verzichten. Je kleiner R desto weniger wird u im Gütemaß gewichtet.
Bang-Bang Control ist ein zeitoptimaler Ansatz bei beschränkter Stellgröße und basiert auf dem Satz von Feldbaum (n-1 Umschaltungen). Streng genommen gelten die n-1 Umschaltungen nur bei reelen Eigenwerten von A. In deinem Fall reicht aber eine Umschaltung trotz eines konjugiert komplexen Polpaars aus.
Viele Grüße,
Johannes
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2024
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|