|
Weissbart |
Forum-Newbie
|
|
Beiträge: 4
|
|
|
|
Anmeldedatum: 29.10.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 29.10.2011, 22:30
Titel: Hamilton-Funktion
|
|
|
|
|
Hallo Forum
Ich bin neu hier im Forum, auch wenn ich schon einige Zeit "still" mitlese. Nun bin ich aber auf ein Problem gestoßen, bei dem ich hoffe, dass ihr mir vielleicht helfen könnt.
Bei der Auslegung einer optimalen Steuerung von dynamischen System stößt man ja sehr oft auf eine Hamilton-Funktion, die minimiert werden muss. Und bei dieser Funktion liegt mein Problem. Wie muss ich in Matlab vorgehen, um sie zu lösen?
z.B.: dynamisches System --> Bewegungsgleichungen
M=2x2 Matrix; N=1x2 Matrix; u=Steuerung; s=Weg; v=Geschw.; s(.) und v(.)= jeweilige Ableitung
[s(.); v(.)]=M*[s;v]+N*u
Wenn man es Zeit-optimal optimieren möchte, folgt folgende Hamilton- Funktion, bei der Landa berechnet werden soll und dann minimiert werden muss, um für jeden Zeitpunkt bis zum Ende den optimalen Steuerungswert u zu erhalten:
H(t)=Landa0(t)+Landa1(t)*M+Landa2*N(t)
min(H(t))
Wie macht man das?
Danke für jede Hilfe!
Schöne Grüße, Weissbart
PS. Vielleicht stelle ich mich auch nur blöd an u die Lösung ist ganz trivial. Vielleicht bin ich schon etwas "betriebsblind".
|
|
|
|
|
eupho |
Forum-Meister
|
|
Beiträge: 777
|
|
|
|
Anmeldedatum: 07.01.09
|
|
|
|
Wohnort: Marburg
|
|
|
|
Version: R2009b
|
|
|
|
|
|
Verfasst am: 30.10.2011, 08:42
Titel:
|
|
Das geht beispielsweise mit fminsearch(). Einfach mal in der Hilfe die Beispiele nachvollziehen und ausprobieren, ansonsten nochmal nachfragen
|
|
|
Weissbart |
Themenstarter
Forum-Newbie
|
|
Beiträge: 4
|
|
|
|
Anmeldedatum: 29.10.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 30.10.2011, 19:59
Titel:
|
|
Danke eupho für deinen Hinweis.
Aber vestehe ich es richtig, dass fminsearch nur die Minimalstellen einer Funktion sucht? Weil ich muss doch zuerst für die Hamiltonfunktion die Landa bestimmen und dann u(t) durch die Minimierung der vollständigen (also mit den landa) Hamiltonfunktion berechnen, oder?
Danke!
mfg, Weissbart
|
|
|
eupho |
Forum-Meister
|
|
Beiträge: 777
|
|
|
|
Anmeldedatum: 07.01.09
|
|
|
|
Wohnort: Marburg
|
|
|
|
Version: R2009b
|
|
|
|
|
|
Verfasst am: 31.10.2011, 07:43
Titel:
|
|
Du brauchst einen Optimierungskern, der die objective function (in deinem Fall H(t)=Landa0(t)+Landa1(t)*M+Landa2*N(t) ) und wenn nötig die Berechnung der jeweiligen Landa's beinhaltet. H muss dabei ein minimierungsfähiger Skalar sein (z.B. quadratisch als Parabel).
|
|
|
|
|
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.
|
|