WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

LQR Reglerauslegung unter Kriterien

 

Batski
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 15.12.15
Wohnort: Aachen
Version: ---
     Beitrag Verfasst am: 15.12.2015, 19:01     Titel: LQR Reglerauslegung unter Kriterien
  Antworten mit Zitat      
Hallo!
Ich habe hier schon öfters gute Tipps bzgl. Matlab gefunden, damit ich Aufgaben trotz meiner doch relativ bescheidenen Kenntnisse lösen konnte.
Leider habe ich trotz einer intensiven Suche nichts gefunden, was mir jetzt weiterhilft, daher habe ich mich mal angemeldet! Smile

Konkret geht es um einen Entwurf für einen LQR eines Pendels, welches verkehrt herum auf einem "Fahrzeug" steht. Ein Segway wenn man so will Wink Eingangsgröße ist die Kraft, dann gibt es vier Zustandsgrößen (Winkel und Position mit den jeweiligen Ableitungen), wovon die Position und der Winkel die Ausgangsgrößen sind.
Ich komme bei der LQR-Auslegung leider nicht weiter. Und zwar soll ich für das grundlegende linearisierte Modell einen LQ Regler auslegen, sodass
- die settling time unter 3s liegt (für beide Ausgangsgrößen)
- der steady state error unter 2 % liegt
- der Ausschlagswinkel immer kleiner als 20°/0.3rad ist
- die Eingangsgröße/die Kraft kleiner als 20N ist

Meine grundlegende Idee war es, zuerst die Gewichtungsfaktoren in der Matrix Q so anzupassen, dass die settling time unter 3s fällt. Dabei gewichte ich den Winkel mehr als die Position, da mir das Aufrecht-stehen-bleiben des Stabes am wichtiger ist. Mal so eine Randfrage: Wie groß sollten Unterschiede sein, damit es spürbare Auswirkungen gibt? Mein großes Problem liegt aber an der Beschränkung der Kraft. Dafür muss man ja soweit ich weiß den Parameter R anpassen. Mein Problem ist jedoch, dass ich nicht weiß, wie ich sehen kann, wie große die Kraft schlussendlich ist. Daraus resultiert auch, dass ich nie weiß, wie sich der Winkel als wichtige Ausgangsgröße verhält.
Mit
Code:
t = 0:0.1:2;
u = 0.2 * ones(size(t));      
figure
sim(sys_LQR_ss,u,t,initial)

bzw.
Code:
initialplot(sys_LQR_ss,initial)

nehme ich ja leider keine Rücksicht auf den Eingangsgröße (initialplot) bzw. nehme Sie als gegeben an (lsim).

Kann mir wer helfen, diesen Anforderungen gerecht zu werden? Ich weiß echt nicht weiter... Danke schonmal! Smile
Der Aufgabentext selber lautet:
Zitat:
Tune the weights for Q and R matrices in order to meet the requirements from an initial condition. Report the optimal matrix K.
Ich denke, daher müsste das auch nur mit dem LQR möglich sein oder?

PS: Tut mir leid für die englischen Begriffe, aber ich lerne es momentan halt in Englisch. Hier ist ein ähnlicher Fall, welcher mir schon geholfen hat! Desweiteren habe ich mal meine .m Datei angehangen!

assignment.m
 Beschreibung:

Download
 Dateiname:  assignment.m
 Dateigröße:  2.92 KB
 Heruntergeladen:  520 mal
Private Nachricht senden Benutzer-Profile anzeigen


BigBodyBugatti
Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 25.11.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.12.2015, 14:17     Titel:
  Antworten mit Zitat      
Also ich bin selber noch neu auf dem Gebiet, deswegen kann ich keine Garantie auf meine Antworten geben, aber hier mal ein paar Ansätze:

Zu der Gewichtung der Zustände: Das hängt von der Dynamik des Systems ab und kann so nicht pauschal beantwortet werden. Im Endeffekt hilft da nur der "educated guess" bzw. trail and error.

Zu der Eingangsgröße: Du kannst ja nicht einfach die Kraft, die angreift begrenzen. Ich glaube eher, dass das eine Randbedinung ist. Ansonsten wirst du dein Pendel einen zu hohen Ausschlag haben.
Mit R kannst du nicht ide Eingangsgröße beeinflussen sondern nur die Steuerenergie Gewichten (gegenüber den Zuständen). Definierst du R>Q dann ist es dir wichtiger, dass sich das System mit möglichst wenig Energie der Führungsgröße anpasst.

Den Link den du gepostet hast fand ich sehr gut, ich habe den am Anfang auch damit angefangen. Allerdings solltest du dir überlegen nicht den Föllinger zu kaufen. Gerade dieser Teil wurde in den neuen Asugabe nue überarbeitet udn ist echt gut erklärt.

Ich hoffe ich konnte dir helfen!
Private Nachricht senden Benutzer-Profile anzeigen
 
Batski
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 15.12.15
Wohnort: Aachen
Version: ---
     Beitrag Verfasst am: 18.12.2015, 15:33     Titel:
  Antworten mit Zitat      
BigBodyBugatti hat Folgendes geschrieben:
Definierst du R>Q dann ist es dir wichtiger, dass sich das System mit möglichst wenig Energie der Führungsgröße anpasst.

Bedeutet, dass dann nicht, dass das System mit einer geringeren Eingangsgröße in den gewünschten Zustand überführt wird und dafür mehr Zeit braucht bzw. mehr abweicht? D.h., dass es in diesem Fall Werte für R gibt (verglichen mit Q natürlich), für welche die benötigte Kraft um das Pendel aufrecht zu halten auf 20 N "beschränkt" ist?
Ich habe mich vorgestern zuletzt intensiv nochmal mit der Aufgabe beschäftigt, mir aber echt die Zähne ausgebissen. Ich komme einfach nicht drauf, inwiefern ich die Parameter Q und R wählen kann, damit ich den Anforderungen entspreche. Mit einem step input oder einem gegebenen Verlauf der Eingangsgröße über die Zeit ist es ja möglich. Letztere ist bis jetzt auch die Variante, welche ich im Bericht niedergeschrieben habe. Ich schätze sozusagen die Eingangsgröße auf konstant 20N, und wähle dann die Parameter von Q so, dass die settling time unter 3s ist. Nur mit dem Parameter R kann ich dann nicht wirklich was anfangen...

Danke für die Buchempfehlung, ich werde mal einen Blick rein werfen! Mir wurde hier in Lausanne vom Professor nur das Buch "Modern Control Systems" von C. Dorf empfohlen. Allerdings muss ich ganz ehrlich sagen, dass ich doch lieber mit dem Skript meiner "Heimatuniversität" gearbeitet habe, welches schlussendlich für mich ja auch am relevantesten ist.
Private Nachricht senden Benutzer-Profile anzeigen
 
BigBodyBugatti
Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 25.11.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.12.2015, 16:06     Titel:
  Antworten mit Zitat      
Zitat:
Bedeutet, dass dann nicht, dass das System mit einer geringeren Eingangsgröße in den gewünschten Zustand überführt wird und dafür mehr Zeit braucht bzw. mehr abweicht? D.h., dass es in diesem Fall Werte für R gibt (verglichen mit Q natürlich), für welche die benötigte Kraft um das Pendel aufrecht zu halten auf 20 N "beschränkt" ist?


Nicht ganz. Du musst hier Energie und Kraft unterscheiden. Auf das Pendel wirkt eine Kraft von xx Newton. Der Motor braucht dann eine gewissen Energie um das Pendel wieder in die Gelichgewichtslage zu bringen.
Auf die Kraft die auf das Pendel wirkt hast du keinen Einfluss. Aber die Energie des Motors kannst du über R beeinflussen. Du hast natürlich recht, das die Regelung langsamer wird, wenn du die Steuerenrgie stark gewichtest. Ich würde die Aufgabe so wie du interpretieren: Die Eingangsgröße ist zwischen 0N - 20N groß, wobei ich bei 20N den Regeler einstellen würde, da hier das Pendel am weitesten ausschlägt.
Private Nachricht senden Benutzer-Profile anzeigen
 
Batski
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 15.12.15
Wohnort: Aachen
Version: ---
     Beitrag Verfasst am: 18.12.2015, 19:50     Titel:
  Antworten mit Zitat      
Ja genau so habe ich es jetzt auch gemacht, also bei F = 20N und R = 4 (einfach mal willkürlich festgelegt) den Regler ausgelegt bzw. die beiden anderen Gewichtungen in Q bestimmt.
Mit der Lösung selber bin ich irgendwie unzufrieden, weil die Kraft für mich halt eigentlich eher eine Größe ist, welche man nicht kennt und die immer auf den Zustand des Systems reagiert. Aber gut, ich bin da definitiv mit meinem Latein am Ende, habe jetzt einfach mit stepinfo und lsim die wichtigsten Systemeigenschaften nachvollzogen und damit die Parameter gewählt.
Die einzige Idee, welche ich noch hätte wäre den Zusammenhang u = -Kx zu verwenden. Allerdings müsste man dafür die Zustände kennen, was wiederum ein Lösen der DGLs voraussetzt und ich denke jetzt einfach mal, dass dies nicht Teil der Aufgabe ist.
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.