Skip to content

Modellbildung der Strukturoptimierung

Grundlagen der Modellierung der Strukturoptimierung

Im Betriebsoptimierungsfall haben die Erzeugerkomponenten z. B. als Nennleistung eine algebraische Konstante mit einem festen Wert P_nom und eine linear optimierbare Erzeugungsleistung lP_el, welche in jedem Zeitschritt optimiert wird.

Soll die Nennleistung einer Anlage optimiert werden, wird eine linear optimierbare Variable benötigt, die über den gesamten Simulationszeitraum denselben Wert annimmt.

Für diese existieren die Variablentypen Steady Number und Steady Binary.

Steady Number lP_nom [kW] ;

Steady Number lInvestCosts [TEUR];

Steady Binary bPurchase  ;

Sobald im Modell eine Steady-Deklaration erscheint, wird die Simulation als Strukturoptimierungsproblem betrachtet und behandelt.

Die Auslegungsgrößen eines Energiesystems können nur anhand einer Kostenfunktion, welche die Investitionskosten berücksichtigt, sinnvoll optimiert werden. Dafür stehen im Simulationsribbon in der Gruppe Strukturoptimierung drei Auswahlfunktionen zur Verfügung:

  • Annualisierte Gesamtkosten (Default)
  • Investitionskosten
  • Kapitalwert

Diese werden in dem entsprechenden Elementary functionInvestmentCost.e-ctpl, das sich im Installationsverzeichnis von TOP-Energy im Ordner Elementaries/Elementaries/invest_costs in der PML mit dem entsprechenden target hinzugefügt:

target.Invest lInvestCosts ;

target.Annual lInvestCosts /.economy.RBF  + lOperationCosts ;

target.NPV lInvestCosts  + lOperationCosts * .economy.RBF ;

Die Steady-Variablen können in der PML genauso wie normale lineare Variablen verwendet werden, z. B. kann die Größe der Nennleistung beschränkt werden:

lP_nom <= 10000 [MW];

lP_nom >= 0 [MW];

In jedem Zeitschritt darf die Erzeugungsleistung lP_el nicht größer als die (optimale) Nennleistung sein. Zur Formulierung einer minimalen Teillast dienen üblicherweise Binärvariablen, aber da diese Gleichungen nicht linear sind, werden stattdessen häufig alternative Formulierungen verwendet:

lP_el >= 0 [W] ;

lP_el <= lP_nom ;

lP_el >= lP_nom * p_MinLoad – (1-bIsOn) * 10000 [MW];

lP_el <= bIsOn * 10000 [MW];

Wählen Sie eine passende Big-M-Formulierung!

Die Verwendung einer Kennlinie erfolgt immer mittels relativer Kennlinie, da die Leistungen nicht bekannt sind:

Kennlinie.generatePiecewiseRel(lP_x,lP_y, lP_nom/eta, P_tief/eta,P_hoch/eta, eta);

An den Anfang scrollen