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

Zustandssprünge in quasistatischer Simulation

 

Marc!
Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 22.04.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.09.2016, 08:21     Titel: Zustandssprünge in quasistatischer Simulation
  Antworten mit Zitat      
Hallo!

Ich arbeite zur Zeit an einer quasistatischen Simulation, die den Zeitverlauf eines Systems als eine Reihe von Gleichgewichtszuständen bestimmt. Das übergeordnete Ziel ist es eine Strecke in minimaler Zeit zu absolvieren. Dazu muss in jedem Punkt die maximal mögliche Beschleunigung erreicht werden. Für jeden Berechnungsschritt wird aus Beschleunigung und Geschwindigkeit aus dem vorherigem Punkt die aktuelle Geschwindigkeit ermittelt und für diese Geschwindigkeit unter Rahmenbedingungen der Systemzustand gesucht, der die maximale Beschleunigung liefert.

Um die Beschleunigung zu maximieren, habe ich ein nichtlineares Optimierungsproblem formuliert, das mit der fmincon-Funktion aus Matlab gelöst wird (SQP-Algorithmus). Mein Problem ist, dass der Solver an recht vielen Stellen einen Sprung zu einem völlig anderem Systemzustand macht und somit die Ergebnisse nicht stetig sind. Vermutlich findet er hier ein anderes lokales Minimum.

Jetzt suche ich einen Weg, den Solver auf den richtigen "Pfad" zu führen um stetige Systemänderungen zu bekommen. Ich habe schon versucht die Änderungsrate diverser Größen zu beschränken aber das führte entweder zu keiner wirklichen Verbesserung oder der Solver fand keine Lösung mehr.

Vielleich hat der ein oder andere ja schon Erfahrung mit solchen Simulationen und stieß auf ähnliche Probleme. Für Tipps und Anregungen bin ich sehr dankbar!
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 16.09.2016, 09:14     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Mein Problem ist, dass der Solver an recht vielen Stellen einen Sprung zu einem völlig anderem Systemzustand macht und somit die Ergebnisse nicht stetig sind. Vermutlich findet er hier ein anderes lokales Minimum.

Dann würde ich auf Anhieb sagen, dass man den bisherigen Systemzustand als Startpunkt nehmen sollte und über untere/obere Schranken die Veränderungen beschränken sollte.

Für eine konkretere Hilfestellung bräuchte ich ein Codebeispiel, aus dem die Problematik ersichtlich wird.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Marc!
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 22.04.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.09.2016, 08:48     Titel:
  Antworten mit Zitat      
Guten Morgen,

die Sache mit den oberen und unteren Schranken zur Beschränkung der Veränderung habe ich auch schon ausprobiert. Entweder das System verändert sich immer genau um den zugelassenen Wert, oder der Solver findet keine passende Lösung in dem erlaubtem Intervall.
Mit dem ersten Fall bin ich aber auch nicht glücklich, da der User das System dann ja mehr oder weniger führt, als dass es sich ändert. Wahrscheinlich kommt man um solche Einschränkungen aber nicht herum, oder was meint ihr?

Ist eine geschicktere Formulierung der Schranken anhand des aktuellen Systemzustandes sinnvoller?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 19.09.2016, 08:56     Titel:
  Antworten mit Zitat      
Hallo,

ohne Code oder genaue Erklärung der Vorgehensweise (zu optimierende Parameter, Zielfunktion, Nebenbedingungen) kann ich nicht mehr sagen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Marc!
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 22.04.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.09.2016, 12:09     Titel:
  Antworten mit Zitat      
Danke für die rasche Antwort, Harald.

Den Code kann ich hier leider nicht posten.

Ich betrachte ein Fahrzeugmodell mit folgenden Einganggrößen:
    Control Input für Motor- oder Bremsmoment
    Lenkwinkel
    Geschwindigkeit
    Schwimmwinkel
    Gierrate
    Raddrehzahlen

Die Geschwindigkeit ist bekannt und ich möchte die maximale Längsbeschleunigung für einen bestimmten Kurvenradius finden. Die Objective Function für fmincon maximiert also die Längsbeschleunigung.

Mein Nebenbedingungen gleichen die Reifenlängskraft mit dem Brems-/Motormoment und Fahrwiderständen ab. Die Querbeschleunigung, die sich auch den Reifenkräften ergibt, gleich der um mit der gegebenen Geschwindigkeit den Kurvenradius zu fahren. Die Gierrate ergibt sich ebenfalls aus Geschwindigkeit und Kurvenradius.

Die Zustandssprünge treten im Schwimm- und Lenkwinkel auf. Wenn ich die Änderung aber begrenze gibt es, wie gesagt oft Probleme bei der Lösungsfindung.

Überhaupt ist das ganze Optimierungsproblem sehr empfindlich, was Startwerte und Constraints angeht Confused
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 19.09.2016, 12:54     Titel:
  Antworten mit Zitat      
Hallo,

ist das Fahrzeugmodell in Simulink implementiert, oder verwendest du einen DGL-Löser wie ode45? Dann siehe hier:
http://www.mathworks.com/help/optim.....ifferential-equation.html

Ich verstehe ja, dass du den Code nicht posten kannst. Nur kann zumindest ich dann leider nicht wirklich helfen, da ich mich nur generell mit Optimierungsproblemen, aber nicht diesem speziellen hier auskenne.

Grüße,
Harald
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 - 2025 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.