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

Umsetzung einer Optimierungsnebenbedingung für Intlinprog

 

Paul01
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 30.06.23
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.06.2023, 15:46     Titel: Umsetzung einer Optimierungsnebenbedingung für Intlinprog
  Antworten mit Zitat      
Hallo liebe Mitglieder,

ich arbeite derzeit an einer Studienarbeit, welche sich mit der Optimierung einer Trinkwasserproduktion beschäftigt.
Konkret habe ich Probleme damit eine Nebenbedingung so zu formulieren, dass Intlinprog sie akzeptiert.
Es geht darum, dass der Füllstand eines Trinkwasserbehälters innerhalb eines Tages um einen Wert DeltaV schwanken soll.
Genauer gesagt soll gelten, dass Vmax-Vmin>=DeltaV sein soll.
V ist ein 25x1 Vektor, welcher die Füllstände des Behälters von V(0) bis V(24) enthält.
In Matlab habe ich V zunächst mittels optimvar implementiert.
Bei anderen Solvern konnte ich noch den Ansatz Vmax=max(V) und Vmin=min(V) anwenden, bei Intlinprog funktioniert das aber leider nicht mehr.
Ich habe auch vergeblich versucht eine Formulierung der Form A*V=b , A*V<=b oder A*V>=b (A als 24x25 Matrix) zu finden welche die Nebenbedingung umsetzt, jedoch vergeblich.
Deswegen nun meine Frage ist es überhaupt möglich diese Bedingung so zu formulieren, dass sie Intlinprog akzeptiert?
Falls ja, würde ich mich über Anregungen freuen, wie man es umsetzten könnte.
Wenn etwas unverständlich erklärt ist oder ihr ggf. weitere Informationen braucht, gebt Bescheid Smile.

LG
Paul
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.449
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 30.06.2023, 17:13     Titel:
  Antworten mit Zitat      
Hallo,

soll die Schwankung mindestens oder höchstens DeltaV sein?
Ich kenne die Anwendung nicht im Detail, hätte aber höchstens gedacht? Deine Ungleichung besagt aber mindestens.

Vmax-Vmin<=DeltaV sollte sich mit Matrizen umsetzen lassen, da der Unterschied zwischen je zwei beliebigen V-Werten höchstens DeltaV sein darf. Bei Vmax-Vmin>=DeltaV sehe ich diese Möglichkeit leider nicht.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Paul01
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 30.06.23
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.06.2023, 17:37     Titel:
  Antworten mit Zitat      
Hallo Harald,
danke für deine Antwort Smile

Du hast richtig gelesen, der Füllstand muss mindestens um DeltaV schwanken (absolut betrachtet).
Dann hat sich meine Vorahnung, dass es mit Matrizen nicht geht, leider bestätigt. Ich glaube mittels einer Funktion geht es auch nicht, weil es dann nicht mehr linear ist Sad

LG
Paul
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

ich will nicht ausschließen, dass es geht, ich wüsste nur nicht wie.
Eine andere Möglichkeit kann sein, aus Erfahrung zu sagen, wo Minimum und Maximum in etwa liegen müssen. Diese dann festlegen, das Optimierungsproblem lösen, und dann eine Schleife über verschiedene Szenarien für Maximum und Minimum durchlaufen. Das kann besser sein als damit zu leben, dass das Problem nichtlinear wird.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Paul01
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 30.06.23
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.06.2023, 20:39     Titel:
  Antworten mit Zitat      
Hallo,
das habe ich sogar auch schon gemacht Smile
Habe mittels randi() aus einem Intervall vormittags und abends jeweils einen Zeitpunkt erzeugen lassen, an welchem dann Vmax und Vmin sein sollen und die Schleife laufen lassen (also immer neue Kombinationen an Zeitpunkten) bis die Zielfunktion einen bestimmten Wert unterschritten hat.
Leider habe ich dann gemerkt, dass dieses Vorgehen das Optimierungsproblem recht "steif" macht, weil bei gewissen Anfangsfüllständen sowie manchen Abflussvektoren (also die Vektoren, in denen der Abfluss aus dem Behälter pro Stunde, drin steht) das Optimierungsproblem keine Lösung findet. Hab die Idee dann also wieder verworfen und hier gefragt, ob jemand eine Idee hat.
Vielleicht greife ich die Idee jetzt aber wieder auf und schau, ob ich mit etwas testen geeignetere Intervalle finde. Smile

LG
Paul
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.449
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 30.06.2023, 21:38     Titel:
  Antworten mit Zitat      
Hallo,

zur Not alle Kombinationen durchprobieren. Bei 25*24 Möglichkeiten sollte es in max. ein paar Stunden durchlaufen.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
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.