Internals - EnergyModelsInvestment extensions
Index
EMIExt.TransInvData
EnergyModelsGeography.constraints_capacity_installed
EnergyModelsGeography.update_objective
EnergyModelsGeography.variables_trans_capex
EnergyModelsInvestments.get_var_inst
Types
Methods
EMIExt.TransInvData
— MethodTransInvData(;
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.
EnergyModelsGeography.constraints_capacity_installed
— MethodEMG.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.
EnergyModelsGeography.update_objective
— MethodEMG.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
)
EnergyModelsGeography.variables_trans_capex
— MethodEMG.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
EnergyModelsInvestments.get_var_inst
— MethodEMI.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.