|
|
Optimization: unhandliche Zielfunktion bei intlinprog |
|
derhendrik |
Forum-Newbie
|
|
Beiträge: 1
|
|
|
|
Anmeldedatum: 13.11.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 13.11.2015, 20:20
Titel: Optimization: unhandliche Zielfunktion bei intlinprog
|
|
|
|
|
Guten Abend Forengemeinde,
Zurzeit befasse ich mich an der Uni mit einem Projekt, in dem es darum geht, möglichst sinnvoll Zeitfenster mit geringen Stromkosten auszunutzen bzw. die Leistungsaufnahme einer Werkzeugmaschine zu glätten um etwaige Strafzahlungen zu vermeiden. In meinem konkreten Beispiel steuer ich dabei eine Pumpe einer Werkzeugmaschine an, wozu ich im Vorfeld des Fertigungsauftrags einen optimalen "Schedule" erstellen will. Es existiert bereits ein prozessbedingtes Leistungsprofil (über die Zeit), welches unveränderlich ist und eben durch die Zerspanung des Werkstücks zustande kommt.
In der Dokumentation der Optimization Toolbox gibt es ein sehr gutes, relevantes Beispiel, in dem es um den "Optimal Dispatch of Power Generators" geht, was mir bereits sehr geholfen hat, wenn es zb an die Formulierung der Randbedingungen durch Anlaufkosten geht.
Um mein Problem zu lösen, plane ich ein MILP zu formulieren und dieses mit intlinprog zu lösen.
Bei der Formulierung der Kostenfunktion habe ich aber bereits meine Schwierigkeiten:
Die zu minimierenden Kosten ergeben sich durch die tatsächliche Leistungsaufnahme und die Stromkosten der jeweiligen Zeitperiode, was ja noch relativ trivial ist. Mein Problem liegt jedoch jetzt in der mathematischen Formulierung der eventuell anfallenden Strafzahlungen durch überschreiten bestimmter Leistungsgrenzen. Es geht also nur um die maximale Leistungsaufnahme in dem betrachteten Zeitraum.
Meine konkreten Fragen sind jetzt:
1) Gibt es eine Möglichkeit, wie ich so einen Sachverhalt mathematisch modelliere? Also das Zeitintervall mit der maximalen Leistungsaufnahme bestimme und anhand eben dieser Maximalleistung die Strafzahlung bestimme?
2) Gibt es die Möglichkeit, Matrizen in der Problemformulierung mit einer eigens geschriebenen Funktion zu füllen? (Einfach nur eine if-else Abfrage um das Maximum zu bestimmen)
3) Hat das gar nichts mehr mit linearer Programmierung zu tun? Da ich ja neben den eigentlichen Stromkosten noch diesen gewissen Strafzahlungsterm habe.
Bitte entschuldigt, falls meine Fragestellung etwas unverständlich ist. Das ist alles noch Neuland für mich. Bei Fragen kann ich natürlich gerne noch mehr Infos bereitstellen.
Viele Grüße
Hendrik
|
|
|
|
|
|
|
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.
|
|