GenXProject / GenX.jl

GenX: a configurable power system capacity expansion model for studying low-carbon energy futures. More details at : https://genx.mit.edu

Home Page:https://genxproject.github.io/GenX.jl/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

(Internal development) Pain point: vCAP has units which are resource-dependent.

cfe316 opened this issue · comments

Sometimes (for y not in COMMIT) vCAP is in MW and sometime it's in "number of plants". This leads to needed to repeatedly test whether vCAP is in COMMIT in order to correctly set constraints, expressions etc. It also means repeatedly conditionally multiplying by Cap_Size in order to get a quantity in units of MW.

Note that some variable (currently vCAP) does need to be (conditionally) an integer if we want to have integer capacity expansion.

What I might recommend is something like

  • always have vCAP be in "number of plants" and create a new expression eCAP (or eNewCap) which is always vCAP * Cap_Size, so that it's always in units of MW. For comparison, currently, eTotalCap is always in MW.
  • optionally also create eCOMMIT/START/SHUT which are vCOMMIT/START/SHUT * Cap_Size.

This would make many expressions and constraints easier to read, and eliminate if statements, at the cost of G (for eCAP) or 3 G T (for the commitment states) new expression terms.