CO2 captured storage#

Alt text

Technology ID: CO2_CAPTURED_STORAGE

Input energy interface, with default energy:

  • CONSUMPTION: co2_captured

Output energy interface, with default energy:

  • PRODUCTION: co2_captured

Technology behaviors:

  • OPTIM_PATHWAY

  • USE_PMAX_IN

  • OPTIM_PMAX

  • DISCHARGE_TIMES

  • GRADIENTS

Technology parameters:

ID

Label

Unit

Behaviors

Description

CAPEX_OVERNIGHT

CAPEX Overnight

Euro/t/h

-Overall capital expenditure (only used for pathway optimization)

DEINVEST_COST

Deinvest cost

Euro/t/h

Deinvest cost (only used for pathway optimization)

LIFETIME

Lifetime

Lifetime of the asset (only used for pathway optimization)

YIELD_INVEST

Yield of investment

%

Yield associated with investment

INSTALL_MAX

Max installation

t/h

OPTIM_PATHWAY

Max installation (only used for pathway optimization)

DECOMM_MAX

Max decommissioning

t/h

OPTIM_PATHWAY

Max decommissioning (only used for pathway optimization)

STORAGE_CAPEX_OVERNIGHT

Overnight CAPEX (Storage)

Euro/t/Year

Overnight capital expenditure for storage assets

PMAX

Pmax

t/h

(not OPTIM_PMAX) and (not OPTIM_PATHWAY)

Installed power capacity

CAPEX

CAPEX

Euro/t/h/Year

Capital expenditure (only used for capacity optimization)

FOC

Fixed Operating Costs

Euro/t/h/Year

Fixed Operating Costs (only used for capacity optimization)

PMAXMIN

Min Pmax

t/h

OPTIM_PMAX or OPTIM_PATHWAY

Installed capacity lower bound for capacity optimization

PMAXMAX

Max Pmax

t/h

OPTIM_PMAX or OPTIM_PATHWAY

Installed capacity upper bound for capacity optimization

CONSUMPTION_COST

Consumption cost

Euro/t

Consumption cost

EXIT_FEE

Fee for gas withdrawal from the internal network

Euro/t

Exit fee

PRODUCTION_COST

Production cost

Euro/t

Production cost (emission cost excluded)

ENTRY_FEE

Fee for gas injection on the internal network

Euro/t

Entry fee

STORAGE_CAPEX

CAPEX (Storage)

Euro/t/Year

Capital expenditure for storage assets

STORAGE_CAPACITY

Storage capacity

t

Storage capacity

PMAX_IN

Pmax In

t

USE_PMAX_IN and (not OPTIM_PMAX) and (not OPTIM_PATHWAY)

Input maximal power

AVAILABILITY

Availability

%

Available capacity, expressed as a percentage of the installed capacity

STORAGE_AVAILABILITY

Storage availability

%

Storage availability, expressed as a percentage of the installed storage capacity

MIN_STORAGE_LEVEL

Minimal storage level

%

Minimum level for storage, expressed as a percentage of the installed storage capacity

DISCHARGE_TIME

Discharge time

h

Discharge time

AVAILABILITY_IN

Input availability

%

Injection capacity availability

MIN_INITIAL_STORAGE_LEVEL

Minimal initial storage level

%

Minimal initial storage level, expressed as percentage of the storage capacity

MAX_INITIAL_STORAGE_LEVEL

Maximal initial storage level

%

Maximal initial storage level, expressed as percentage of the storage capacity

PMAX_IN_OUT_RATIO

Withdrawal over Injection ratio (for capacity optimization)

%

OPTIM_PMAX or OPTIM_PATHWAY

Injection (to the storage) over Withdrawal (from the storage) ratio (for capacity optimization)

EMPTY_STORAGE_RATIO_WITHDRAWAL

Empty storage ratio of available withdrawal capacity

%

Share of storage available withdrawal capacity when empty

FILLED_STORAGE_RATIO_INJECTION

Filled storage ratio of available injection capacity

%

Share of storage available injection capacity when filled

INJECTION_INFLEXION_STORAGE_LEVEL

Injection capacity inflexion storage level

%

Storage level at which available injection capacity starts to decrease

WITHDRAWAL_INFLEXION_STORAGE_LEVEL

Withdrawal capacity inflexion storage level

%

Storage level at which available withdrawal capacity reaches 100%

GRADIENT_UP

Gradient up

%/min

GRADIENTS

Maximal upward variation, expressed as a percentage of the available capacity per minute

GRADIENT_DOWN

Gradient down

%/min

GRADIENTS

Maximal downward variation, expressed as a percentage of the available capacity per minute

Model code:

stateON = AssetState('ON')
moduleStock = addDischargeStock(asset, stateON, minStorageLevel=MIN_STORAGE_LEVEL, initialStorageLevel=None, storageAvailability=STORAGE_AVAILABILITY, initialEqualsFinal=True)
variableStorageInjectionCapacity(MODEL, asset, stateON, moduleStock, pmaxInOutRatio = PMAX_IN_OUT_RATIO)
variableStorageWithdrawalCapacity(MODEL, asset, stateON, moduleStock)
addInitialStorageLevelBounds(asset, moduleStock, initialStorageLevel=None, minInitialStorageLevel=MIN_INITIAL_STORAGE_LEVEL, maxInitialStorageLevel= MAX_INITIAL_STORAGE_LEVEL)

# Computing overall cost to set on incoming flows (consumption cost + network exit fee)
overallConsumptionCost  = getAssetData(asset, CONSUMPTION_COST, dataName=LABELS[CONSUMPTION_COST], mustExist=False)
exitFee = getAssetData(asset, "EXIT_FEE", mustExist=False)
if exitFee is not None:
    overallConsumptionCost += exitFee

# Computing overall cost to set on outcoming flows (production cost + network entry fee)
overallProductionCost  = getAssetData(asset, PRODUCTION_COST, dataName=LABELS[PRODUCTION_COST], mustExist=False)
entryFee = getAssetData(asset, "ENTRY_FEE", mustExist=False)
if entryFee is not None:
    overallProductionCost += entryFee

addEnergyConsumption(asset, stateON, availability = "AVAILABILITY_IN", pmaxInOutRatio = PMAX_IN_OUT_RATIO, consumptionCost = overallConsumptionCost)
addEnergyProduction(asset, stateON, productionCost = overallProductionCost)
addGradients(asset, stateON)
finalize(stateON)