Skip to content

Latest commit

 

History

History
46 lines (34 loc) · 3.23 KB

README.md

File metadata and controls

46 lines (34 loc) · 3.23 KB

This repository is to collect scripts and experiences with regards to dual values from OSeMOSYS GNU MathProg version

Add scripts to extract if some one is missing for any of solvers in the /src folder

Useful links to start reading from on dual values

LAB MJ2383

Documentation for the TIMES Model

Solvers

To the model file you can add at the end the equation of interest (e.g.):

table ProductionDual
{r in REGION, l in TIMESLICE, f in FUEL, y in YEAR:
EBa11_EnergyBalanceEachTS5[r,l,f,y].dual <> 0}
OUT "CSV"
ResultsPath & "/ProductionDual.csv" : 
r~REGION, l~TIMESLICE, f~FUEL, y~YEAR, 
EBa11_EnergyBalanceEachTS5[r,l,f,y].dual~DUAL, 
EBa11_EnergyBalanceEachTS5[r,l,f,y].lb~LB,
EBa11_EnergyBalanceEachTS5[r,l,f,y].ub~UP,
EBa11_EnergyBalanceEachTS5[r,l,f,y].val~VALUE,
EBa11_EnergyBalanceEachTS5[r,l,f,y].status~STATUS 

cbc <abc.lp> solve solu <abc_sol.txt> -printing all

/src are two scripts that are similar to extract the desired dual values

Gurobi

please add here

Equations that has be used

  • s.t. EBb4_EnergyBalanceEachYear4{r in REGION, f in FUEL, y in YEAR}: ProductionAnnual[r,f,y] >= UseAnnual[r,f,y] + sum{rr in REGION} TradeAnnual[r,rr,f,y]*TradeRoute[r,rr,f,y] + AccumulatedAnnualDemand[r,f,y]; (Mark OSeMOSYS google group) This equation Please add here

  • s.t. EBa11_EnergyBalanceEachTS5{r in REGION, l in TIMESLICE, f in FUEL, y in YEAR}: sum{(m,t) in MODExTECHNOLOGYperFUELout[f]} RateOfActivity[r,l,t,m,y]*OutputActivityRatio[r,t,f,m,y]*YearSplit[l,y] >= SpecifiedAnnualDemand[r,f,y]*SpecifiedDemandProfile[r,f,l,y] + sum{(m,t) in MODExTECHNOLOGYperFUELin[f]} RateOfActivity[r,l,t,m,y]*InputActivityRatio[r,t,f,m,y]*YearSplit[l,y] + sum{rr in REGION} Trade[r,rr,l,f,y]*TradeRoute[r,rr,f,y]; This equation gives the marginal cost of the fuels in each timeslice. This marginal cost takes into account the fixed and variables costs of inputs, capital cost of capacity needed to meet increased demands and emission penalties. (Will OSeMOSYS google group)

  • s.t. E8_AnnualEmissionsLimit{r in REGION, e in EMISSION, y in YEAR: AnnualEmissionLimit[r,e,y] <> -1}: sum{l in TIMESLICE, (m,t) in MODExTECHNOLOGYperEMISSION[e]} EmissionActivityRatio[r,t,e,m,y]*RateOfActivity[r,l,t,m,y]*YearSplit[l,y]+AnnualExogenousEmission[r,e,y] <= AnnualEmissionLimit[r,e,y]; (Georgios and Hauke OSeMOSYS google group) Cost of one more emission unit