Code Documentation¶
Economic Dispatcher
Purpose of this module is to dispatch between the different types of economic dispatchers and calculated the minimum objective function
-
EconomicDispatcher.Dispatch(model, *data)[source]¶ Args:
Returns: json file with the solutions of the model
-
class
EconomicDispatcher.Network[source]¶ Bases:
objectNetwork constrained optimization problem
Parameters: - file –
- solver –
Returns: Json file with simple marketclearing
Return type: solotion
-
BussesAdder(network, Buss, BussVnom, BussVmax, BussVmin, BussVset, BussType)[source]¶ - Add all the buses to the network component
Parameters: - () (BussType) – Pandas dataframework from frontend
- () – Pandas dataframework from frontend
- () – Pandas dataframework from frontend
- () – Pandas dataframework from frontend
- () – Pandas dataframework from frontend
- () – Pandas dataframework from frontend
Returns:
-
ElectricLinesAdder(network, ElectricLines, ElectricLinesR, ElectricLinesX, ElectricLinesCcap, ElectricLinesL, ElectricLinesPhaseShift, ElectricLinesAngMax, ElectricLinesAngMin, ElectricLinesLength, ElectricLinesConnection, ElectricLinesPmax)[source]¶ Add the lines between buses to the network component
Parameters: - () (ElectricLinesPmax) – pypsa network component
- () – Pandas dataframework from frontend
- () – Pandas dataframework from frontend
- () – Pandas dataframework from frontend
- () – Pandas dataframework from frontend
- () – Pandas dataframework from frontend
- () – Pandas dataframework from frontend
- () – Pandas dataframework from frontend
- () – Pandas dataframework from frontend
- () – Pandas dataframework from frontend
- () – Pandas dataframework from frontend
- () – Pandas dataframework from frontend
Returns:
-
GeneratorAdder(network, Generators, GeneratorConnection, PnomOrdered, PminOrdered, PmaxOrdered, CostsOrdered, RampUp, RampDown, MaxDownTime, MinDownTime, Initstatus, StartUpCost, ShutdownCost, Effciency, CapCost, PsetPoint, QsetPoint, Time)[source]¶ Add the generators to the network component
Parameters: - () (QsetPoint) – pypsa network component
- () – Pandas dataframework from frontend
- () – Pandas dataframework from frontend
- () – Pandas dataframework from frontend
- () – Pandas dataframework from frontend
- () – Pandas dataframework from frontend
- () – Pandas dataframework from frontend
- () – Pandas dataframework from frontend
- () – Pandas dataframework from frontend
- () – Pandas dataframework from frontend
- () – Pandas dataframework from frontend
- () – Pandas dataframework from frontend
- () – Pandas dataframework from frontend
- () – Pandas dataframework from frontend
- () – Pandas dataframework from frontend
- () – Pandas dataframework from frontend
- () – Pandas dataframework from frontend
- () – Pandas dataframework from frontend
Returns:
-
LoadAdder(network, LoadName, Loads, LoadQ, LoadBus)[source]¶ - Add loads to the network
ToDo : Qload
Parameters: - LoadName – List of Load names
- Loads – List of loads that need to be edited
- LoadBus – List of the busses where the load is connected to
-
Main(model, ElectricLines, ElectricLinesR, ElectricLinesC, ElectricLinesX, Buss, BussVnom, BussType, BussVset, BussVmax, BussVmin, BussConnection, ElectricLinesCcap, ElectricLinesL, ElectricLinesPhaseShift, ElectricLinesAngMax, ElectricLinesAngMin, ElectricLinesLength, ElectricLinesConnection, ElectricLinesPmax, Generators, CostsOrdered, PnomOrdered, RampUp, RampDown, Effciency, MinDownTime, MaxDownTime, PminOrdered, GeneratorConnection, Time, PowerBlocks, PmaxOrdered, StartUpCost, ShutdownCost, Initstatus, CapCost, PsetPoint, QsetPoint, Loads, LoadP, LoadQ, LoadTime, LoadConnection, options)[source]¶ - Main network function that calls necessary network functions
Parameters: - () (options) – Pandas Data Framework from the frontend
- () – Pandas Data Framework from the frontend
- () – Pandas Data Framework from the frontend
- () – Pandas Data Framework from the frontend
- () – Pandas Data Framework from the frontend
- () – Pandas Data Framework from the frontend
- () – Pandas Data Framework from the frontend
- () – Pandas Data Framework from the frontend
- () – Pandas Data Framework from the frontend
- () – Pandas Data Framework from the frontend
- () –
- () – Pandas Data Framework from the frontend
- () – Pandas Data Framework from the frontend
- () – Pandas Data Framework from the frontend
- () – Pandas Data Framework from the frontend
- () – Pandas Data Framework from the frontend
- () – Pandas Data Framework from the frontend
- () – Pandas Data Framework from the frontend
- () – Pandas Data Framework from the frontend
- () – Pandas Data Framework from the frontend
- () – Pandas Data Framework from the frontend
- () – Pandas Data Framework from the frontend
- () – Pandas Data Framework from the frontend
- () – Pandas Data Framework from the frontend
- () – Pandas Data Framework from the frontend
- () – Pandas Data Framework from the frontend
- () – Pandas Data Framework from the frontend
- () – Pandas Data Framework from the frontend
- () – Pandas Data Framework from the frontend
- () – Pandas Data Framework from the frontend
- () – Pandas Data Framework from the frontend
- () – Pandas Data Framework from the frontend
- () – Pandas Data Framework from the frontend
- () – Pandas Data Framework from the frontend
- () – Pandas Data Framework from the frontend
- () – Pandas Data Framework from the frontend
- () – Pandas Data Framework from the frontend
- () – Pandas Data Framework from the frontend
- () – Pandas Data Framework from the frontend
- () – Pandas Data Framework from the frontend
- () – Pandas Data Framework from the frontend
Returns:
-
class
EconomicDispatcher.Simple[source]¶ Bases:
objectSimple optimization problem, using only 3 basic constrains: Unit, Balance , Cost
Parameters: - file – file to be loaded with all the data
- solver – string that defines which optimization solver to be used e.g. the free software GLPK or the commercial software Gurobi
Returns:
-
BalanceRule(model, t)[source]¶ - Generated power and load needed should be matched, the sum off all the powers at a time instance \(t\) needs to match the load at an time instance \(t\)
- \[\sum_{i=1}^{i=j} P[i,t] = Load[t]\]
Where \(Load[t]\) is the load at time instance \(t\)
-
CostRule(model)[source]¶ - Defining the cost rule that pyomo uses
- \[\sum_{t=1}^{t=t_{end}} \Big( \sum_{i=1}^{i=j} P_{cost}[i] \cdot P[i,t] \Big)\]
where \(t_{end}\) is the end time of the series, \(P_{cost}[i]\) is the cost of generator at place i (e.g. the i th generator) \(P[i,t]\) is the power that can be generated by an generator at time \(t\)
-
Main(Pmax, Pmin, CostsOrdered, LoadP)[source]¶ Main function of the simple network model
Returns: solotion
-
Printer(model)[source]¶ For debugging purpose only prints the output of the result if the debug option has been set
-
UnitRule(model, i, t)[source]¶ - Power delivered from the generator on time interval \(t\) cannot be larger then maximum power of the generator and should be higher then the minimum power the generator must deliver
- \[P_{min}[i] \leq P[i,t] \leq P_{max}[i]\]
Where \(P_{min}[i]\) is the minimum power generator i can deliver , \(P[i,t]\) is the desired power at time \(t\) , \(P_{max}[i]\) is the maximum power generator i can deliver