|
|
Optimierung: Wertebereich einschränken |
|
Matthe99 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 15.09.2015, 10:15
Titel: Optimierung: Wertebereich einschränken
|
 |
Hallo,
ich versuche den Betrieb von mehreren KWK-Anlagen mithilfe von Matlab zu optimieren. Momentan verwende ich dafür die Funktion linprog. Mehrere KWK-Anlagen sollen den Wärmebedarf ihres eigenen Gebäudes decken und gemeinsam möglichst einen gewissen Stromverbrauch über den Tag hinweg decken.
Ich scheitere an folgender Problematik: Eine Anlage soll entweder "aus" sein oder Leistung in einem gewissen Bereich produzieren (z.B. zwischen 1 und 2 kW). Ich würde als gerne als untere Grenze 0 haben, als obere Grenze 2, jedoch die Werte zwischen 0 und 1 ausschließen.
Kann mir hierbei jemand helfen? Muss ich eine andere Funktion verwenden?
Vielen Dank schonmal im voraus!
Viele Grüße,
Matthias
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 15.09.2015, 11:15
Titel:
|
 |
Hallo,
wieviele Dimensionen hat der zu optimierende Vektor denn? Wenn die Dimensionen überschaubar sind (sagen wir < 10), dann wird es am einfachsten sein, alle an/aus - Kombinationen in einer for-Schleife durchzuprobieren und jeweils die an-Parameter zu optimieren.
Kann denn zwischen 1 und 2 wirklich kontinuierlich variiert werden? Falls nicht, wäre das ein Fall für
intlinprog
.
Grüße,
Harald
|
|
|
Matthe99 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 15.09.2015, 12:23
Titel:
|
 |
Danke für die schnelle Antwort.
Es sind deutlich mehr als 10 Variablen.
Grundsätzlich ist es möglich kontinuierlich zu variieren, aber eine Annäherung mit intlinprog wäre schon denkbar. Das Problem ist, dass es auch Anlagen gibt die z.B. zwischen 1,5 und 4,7 kW variieren können. Dann müsste ich die Werte vor 1,5 (oder dann eben 15 mit intlinprog) wieder irgendwie ausklammern...
Viele Grüße,
Matthias
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 15.09.2015, 13:04
Titel:
|
 |
Hallo,
dann bleibt an sich nur genetischer Algorithmus für an/aus, und als Fitnessfunktion nochmal ein linprog für die eingeschalteten.
Denkbar sind auch Mischstrategien, also z.B. dass man für die an/aus-Kombinationen erst mal nur minimale und maximale Leistung testet und dann nur für die beste an/aus-Kombination nochmal eine "richtige" Optimierung durchführt.
Je mehr du über das genaue Problem und die Zielfunktion sagen kannst, desto besser. Denkbar wäre ja z.B. auch, dass man nicht an/aus an sich optimiert, sondern eine wie auch immer geartete Bedingung (x > x0 --> an, x < x0 --> aus, und das x0 wird optimiert).
Grüße,
Harald
|
|
|
Matthe99 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.09.2015, 10:22
Titel:
|
 |
Hallo Harald,
sorry für die späte Antwort, ich habe jetzt ein bisschen rumprobiert und eine für mich passende Lösung gefunden. Danke für deine Hinweise, ich habe es jetzt mit intlinprog gelöst.
Und zwar so, dass es jetzt für eine Anlage die z.B. eine elektrische Leistung zwischen 1,5 und 2 kWel hat je eine Variable für die Stufe 1,5 und eine Variable für die Stufe 2kW gibt. Beide können nur "an" (1) oder "aus" (0) sein, über die Nebenbedingungen wird die erste Stufe dann mit 1,5, die zweite Stufe mit 2 multipliziert und sichergestellt, dass nicht beide Stufen zur gleichen Zeit "an" sind. Die Stufenschritte kann man dann beliebig klein machen, muss man halt dann davon abhängig machen wie lange die Optimierung dauern soll.
Viele Grüße,
Matthias
|
|
|
|
|
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 - 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.
|
|