Internals - EnergyModelsInvestment extensions

Index

Types

Methods

EMIExt.TransInvDataMethod
TransInvData(;
    capex_trans::TimeProfile,
    trans_max_inst::TimeProfile,
    trans_max_add::TimeProfile,
    trans_min_add::TimeProfile,
    inv_mode::Investment = ContinuousInvestment(),
    trans_start::Union{Real, Nothing} = nothing,
    trans_increment::TimeProfile = FixedProfile(0),
    capex_trans_offset::TimeProfile = FixedProfile(0),
)

Legacy constructor for a TransInvData.

The new storage descriptions allows now for a reduction in functions which is used to make EnergModelsInvestments less dependent on EnergyModelsBase.

The core changes to the existing structure is the move of the required parameters to the type Investment (e.g., the minimum and maximum added capacity is only required for investment mdodes that require these parameters) as well as moving the lifetime to the type [LifetimeMode], when required.

See the documentation for further information regarding how you can translate your existing model to the new model.

source
EnergyModelsGeography.constraints_capacity_installedMethod
EMG.constraints_capacity_installed(
    m,
    tm::TransmissionMode,
    𝒯::TimeStructure,
    modeltype::EMB.AbstractInvestmentModel,
)

When the modeltype is an investment model, the function introduces the related constraints for the capacity expansion. The investment mode and lifetime mode are used for adding constraints.

The default function only accepts nodes with SingleInvData. If you have several capacities for investments, you have to dispatch specifically on the function. This is implemented for Storage nodes.

source
EnergyModelsGeography.update_objectiveMethod
EMG.update_objective(m, 𝒩, 𝒯, 𝒫, ℒᵗʳᵃⁿˢ, modeltype::EMB.AbstractInvestmentModel)

Create objective function overloading the default from EMB for EMB.AbstractInvestmentModel.

Maximize Net Present Value from revenues, investments (CAPEX) and operations (OPEX)

TODO:

* consider passing expression around for updating

* consider reading objective and adding terms/coefficients (from model object m)

source
EnergyModelsGeography.variables_trans_capexMethod
EMG.variables_trans_capex(m, 𝒯, ℳ,, modeltype::EMB.AbstractInvestmentModel)

Create variables for the capital costs for the investments in transmission.

Additional variables for investment in capacity:

  • :trans_cap_capex - CAPEX costs for increases in the capacity of a transmission mode
  • :trans_cap_current - installed capacity for storage in each strategic period
  • :trans_cap_add - added capacity
  • :trans_cap_rem - removed capacity
  • :trans_cap_invest_b - binary variable whether investments in capacity are happening
  • :trans_cap_remove_b - binary variable whether investments in capacity are removed
source
EnergyModelsInvestments.get_var_instMethod
EMI.get_var_inst(m, prefix::Symbol, tm::EMG.TransmissionMode)

When the transmission mode tm is used as conditional input, it extracts only the variable for the specified transmission mode.

source