BECCS Electricity

Graph structure

Bioenergy with carbon capture and storage (BECCS) that produces electricity is represented in Macro using the following graph structure:

%%{init: {'theme': 'base', 'themeVariables': { 'background': '#D1EBDE' }}}%% flowchart LR subgraph BECCSElectricity direction BT B((Biomass)) --> A{{..}} C((CO2 Source)) --> A A --> D((Emitted CO2)) A --> E((Captured CO2)) A --> F((Electricity)) end legend@{img: "../../images/battery.png", w: 120, h: 100, constraint: "off"} BECCSElectricity ~~~ legend style A fill:black,stroke:black,color:black; style B r:40,fill:palegreen,stroke:black,color:black,stroke-dasharray: 3,5; style C r:40,fill:lightgray,stroke:black,color:black,font-size: 12, stroke-dasharray: 3,5; style D r:40,fill:lightgray,stroke:black,color:black, font-size: 12,stroke-dasharray: 3,5; style E r:40,fill:lightgray,stroke:black,color:black, font-size: 12,stroke-dasharray: 3,5; style F r:40,fill:orange,stroke:black,color:black, font-size: 12, stroke-dasharray: 3,5; linkStyle 0 stroke:palegreen, stroke-width: 3px; linkStyle 1,2,3 stroke:lightgray, stroke-width: 3px; linkStyle 4 stroke:orange, stroke-width: 3px; style legend fill:white

A BECCS electricity asset is made of:

  • 1 Transformation component, representing the BECCS process.
  • 5 Edge components:
    • 1 incoming Biomass Edge, representing the biomass supply.
    • 1 incoming CO2 Edge, representing the CO2 that is absorbed by the biomass.
    • 1 outgoing Electricity Edge, representing the electricity production.
    • 1 outgoing CO2Captured Edge, representing the CO2 that is captured.
    • 1 outgoing CO2 Edge, representing the CO2 that is emitted.

Attributes

The structure of the input file for a BECCS electricity asset follows the graph representation. Each global_data and instance_data will look like this:

{
    "transforms":{
        // ... transformation-specific attributes ...
    },
    "edges":{
        "biomass_edge": {
            // ... biomass_edge-specific attributes ...
        },
        "co2_edge": {
            // ... co2_edge-specific attributes ...
        },
        "elec_edge": {
            // ... elec_edge-specific attributes ...
        },
        "co2_emission_edge": {
            // ... co2_emission_edge-specific attributes ...
        },
        "co2_captured_edge": {
            // ... co2_captured_edge-specific attributes ...
        }
    }
}

where the possible attributes that the user can set are reported in the following tables.

Transformation

The definition of the transformation object can be found here MacroEnergy.Transformation.

AttributeTypeValuesDefaultDescription/Units
timedataStringAny Macro commodity typeRequiredTime resolution for the time series data linked to the transformation. E.g. "Biomass".
constraintsDict{String,Bool}Any Macro constraint type for verticesBalanceConstraintList of constraints applied to the transformation. E.g. {"BalanceConstraint": true}.
capture_rate $\epsilon_{co2\_capture\_rate}$Float64Float641.0$t_{CO2}/t_{Biomass}$
co2_content $\epsilon_{co2}$Float64Float640.0$t_{CO2}/t_{Biomass}$
electricity_production $\epsilon_{elec\_prod}$Float64Float641.0$MWh_{elec}/t_{Biomass}$
emission_rate $\epsilon_{emission\_rate}$Float64Float641.0$t_{CO2}/t_{Biomass}$
Default constraints

The default constraint for the transformation part of the BECCS electricity asset is the following:

Flow equations

In the following equations, $\phi$ is the flow of the commodity and $\epsilon$ is the stoichiometric coefficient defined in the transformation table below.

BECCSElectricity

\[\begin{aligned} \phi_{elec} &= \phi_{biomass} \cdot \epsilon_{elec\_prod} \\ \phi_{co2} &= -\phi_{biomass} \cdot \epsilon_{co2} \\ \phi_{co2} &= \phi_{biomass} \cdot \epsilon_{emission\_rate} \\ \phi_{co2\_captured} &= \phi_{biomass} \cdot \epsilon_{co2\_capture\_rate} \\ \end{aligned}\]

Edges

Asset expansion

As a modeling decision, only the Biomass edge is allowed to expand. Consequently, the has_capacity and constraints attributes can only be set for the Biomass edge. For all other edges, these attributes are pre-set to false and an empty list, respectively, to ensure proper modeling of the asset.

Directionality

The unidirectional attribute is only available for the Biomass edge. For the other edges, this attribute is pre-set to true to ensure the correct modeling of the asset.

All the edges are represented by the same set of attributes. The definition of the Edge object can be found here MacroEnergy.Edge.

AttributeTypeValuesDefaultDescription
typeStringAny Macro commodity type matching the commodity of the edgeRequiredCommodity of the edge. E.g. "Electricity".
start_vertexStringAny node id present in the system matching the commodity of the edgeRequiredID of the starting vertex of the edge. The node must be present in the nodes.json file. E.g. "elec_node_1".
end_vertexStringAny node id present in the system matching the commodity of the edgeRequiredID of the ending vertex of the edge. The node must be present in the nodes.json file. E.g. "elec_node_2".
constraintsDict{String,Bool}Any Macro constraint type for EdgesCheck box belowList of constraints applied to the edge. E.g. {"CapacityConstraint": true}.
availabilityDictAvailability file path and headerEmptyPath to the availability file and column name for the availability time series to link to the edge. E.g. {"timeseries": {"path": "assets/availability.csv", "header": "SE_BECCS_Electricity_Herb"}}.
can_expandBoolBoolfalseWhether the edge is eligible for capacity expansion.
can_retireBoolBoolfalseWhether the edge is eligible for capacity retirement.
capacity_sizeFloat64Float641.0Size of the edge capacity.
existing_capacityFloat64Float640.0Existing capacity of the edge in MW.
fixed_om_costFloat64Float640.0Fixed operations and maintenance cost (USD/MW-year).
has_capacityBoolBoolfalseWhether capacity variables are created for the edge (only available for the Biomass edge).
integer_decisionsBoolBoolfalseWhether capacity variables are integers.
investment_costFloat64Float640.0Annualized capacity investment cost (USD/MW-year)
loss_fractionFloat64Number $\in$ [0,1]0.0Fraction of transmission loss.
max_capacityFloat64Float64InfMaximum allowed capacity of the edge (MW). Note: add the MaxCapacityConstraint to the constraints dictionary to activate this constraint.
min_capacityFloat64Float640.0Minimum allowed capacity of the edge (MW). Note: add the MinCapacityConstraint to the constraints dictionary to activate this constraint.
min_flow_fractionFloat64Number $\in$ [0,1]0.0Minimum flow of the edge as a fraction of the total capacity. Note: add the MinFlowConstraint to the constraints dictionary to activate this constraint.
ramp_down_fractionFloat64Number $\in$ [0,1]1.0Maximum decrease in flow between two time steps, reported as a fraction of the capacity. Note: add the RampingLimitConstraint to the constraints dictionary to activate this constraint.
ramp_up_fractionFloat64Number $\in$ [0,1]1.0Maximum increase in flow between two time steps, reported as a fraction of the capacity. Note: add the RampingLimitConstraint to the constraints dictionary to activate this constraint.
unidirectionalBoolBoolfalseWhether the edge is unidirectional (only available for the Biomass edge).
variable_om_costFloat64Float640.0Variable operation and maintenance cost (USD/MWh).
Default constraints

The only default constraint for the edges of the BECCS electricity asset is the Capacity constraint applied to the Biomass edge.

Example

The following is an example of the input file for a BECCS electricity asset that creates six BECCS electricity assets, two in each of the SE, MIDAT and NE regions.

{
    "BECCS_Electricity": [
        {
            "type": "BECCSElectricity",
            "global_data": {
                "transforms": {
                    "timedata": "Biomass",
                    "constraints": {
                        "BalanceConstraint": true
                    }
                },
                "edges": {
                    "elec_edge": {
                        "type": "Electricity",
                        "unidirectional": true,
                        "has_capacity": false
                    },
                    "biomass_edge": {
                        "type": "Biomass",
                        "unidirectional": true,
                        "has_capacity": true,
                        "can_expand": true,
                        "can_retire": true,
                        "integer_decisions": false,
                        "constraints": {
                            "CapacityConstraint": true,
                            "MinFlowConstraint": true
                        }
                    },
                    "co2_edge": {
                        "type": "CO2",
                        "unidirectional": true,
                        "has_capacity": false,
                        "start_vertex": "co2_sink"
                    },
                    "co2_emission_edge": {
                        "type": "CO2",
                        "unidirectional": true,
                        "has_capacity": false,
                        "end_vertex": "co2_sink"
                    },
                    "co2_captured_edge": {
                        "type": "CO2Captured",
                        "unidirectional": true,
                        "has_capacity": false,
                        "end_vertex": "co2_captured_sink"
                    }
                }
            },
            "instance_data": [
                {
                    "id": "SE_BECCS_Electricity_Herb",
                    "transforms": {
                        "electricity_production": 1.656626506,
                        "capture_rate": 1.5313914,
                        "co2_content": 1.76022,
                        "emission_rate": 0.2288286
                    },
                    "edges": {
                        "biomass_edge": {
                            "start_vertex": "bioherb_SE",
                            "availability": {
                                "timeseries": {
                                    "path": "assets/availability.csv",
                                    "header": "SE_BECCS_Electricity_Herb"
                                }
                            },
                            "investment_cost": 696050.2868,
                            "fixed_om_cost": 193228.9157,
                            "variable_om_cost": 42.93975904,
                            "capacity_size": 400,
                            "min_flow_fraction": 0.4
                        },
                        "elec_edge": {
                            "end_vertex": "elec_SE"
                        }
                    }
                },
                {
                    "id": "MIDAT_BECCS_Electricity_Herb",
                    "transforms": {
                        "electricity_production": 1.656626506,
                        "capture_rate": 1.5313914,
                        "co2_content": 1.76022,
                        "emission_rate": 0.2288286
                    },
                    "edges": {
                        "biomass_edge": {
                            "start_vertex": "bioherb_MIDAT",
                            "availability": {
                                "timeseries": {
                                    "path": "assets/availability.csv",
                                    "header": "MIDAT_BECCS_Electricity_Herb"
                                }
                            },
                            "investment_cost": 696050.2868,
                            "fixed_om_cost": 193228.9157,
                            "variable_om_cost": 42.93975904,
                            "capacity_size": 400,
                            "min_flow_fraction": 0.4
                        },
                        "elec_edge": {
                            "end_vertex": "elec_MIDAT"
                        }
                    }
                },
                {
                    "id": "NE_BECCS_Electricity_Herb",
                    "transforms": {
                        "electricity_production": 1.656626506,
                        "capture_rate": 1.5313914,
                        "co2_content": 1.76022,
                        "emission_rate": 0.2288286
                    },
                    "edges": {
                        "biomass_edge": {
                            "start_vertex": "bioherb_NE",
                            "availability": {
                                "timeseries": {
                                    "path": "assets/availability.csv",
                                    "header": "NE_BECCS_Electricity_Herb"
                                }
                            },
                            "investment_cost": 696050.2868,
                            "fixed_om_cost": 193228.9157,
                            "variable_om_cost": 42.93975904,
                            "capacity_size": 400,
                            "min_flow_fraction": 0.4
                        },
                        "elec_edge": {
                            "end_vertex": "elec_NE"
                        }
                    }
                },
                {
                    "id": "SE_BECCS_Electricity_Wood",
                    "transforms": {
                        "electricity_production": 1.656626506,
                        "capture_rate": 1.5313914,
                        "co2_content": 1.76022,
                        "emission_rate": 0.2288286
                    },
                    "edges": {
                        "biomass_edge": {
                            "start_vertex": "biowood_SE",
                            "availability": {
                                "timeseries": {
                                    "path": "assets/availability.csv",
                                    "header": "SE_BECCS_Electricity_Wood"
                                }
                            },
                            "investment_cost": 696050.2868,
                            "fixed_om_cost": 193228.9157,
                            "variable_om_cost": 42.93975904,
                            "capacity_size": 400,
                            "min_flow_fraction": 0.4
                        },
                        "elec_edge": {
                            "end_vertex": "elec_SE"
                        }
                    }
                },
                {
                    "id": "MIDAT_BECCS_Electricity_Wood",
                    "transforms": {
                        "electricity_production": 1.656626506,
                        "capture_rate": 1.5313914,
                        "co2_content": 1.76022,
                        "emission_rate": 0.2288286
                    },
                    "edges": {
                        "biomass_edge": {
                            "start_vertex": "biowood_MIDAT",
                            "availability": {
                                "timeseries": {
                                    "path": "assets/availability.csv",
                                    "header": "MIDAT_BECCS_Electricity_Wood"
                                }
                            },
                            "investment_cost": 696050.2868,
                            "fixed_om_cost": 193228.9157,
                            "variable_om_cost": 42.93975904,
                            "capacity_size": 400,
                            "min_flow_fraction": 0.4
                        },
                        "elec_edge": {
                            "end_vertex": "elec_MIDAT"
                        }
                    }
                },
                {
                    "id": "NE_BECCS_Electricity_Wood",
                    "transforms": {
                        "electricity_production": 1.656626506,
                        "capture_rate": 1.5313914,
                        "co2_content": 1.76022,
                        "emission_rate": 0.2288286
                    },
                    "edges": {
                        "biomass_edge": {
                            "start_vertex": "biowood_NE",
                            "availability": {
                                "timeseries": {
                                    "path": "assets/availability.csv",
                                    "header": "NE_BECCS_Electricity_Wood"
                                }
                            },
                            "investment_cost": 696050.2868,
                            "fixed_om_cost": 193228.9157,
                            "variable_om_cost": 42.93975904,
                            "capacity_size": 400,
                            "min_flow_fraction": 0.4
                        },
                        "elec_edge": {
                            "end_vertex": "elec_NE"
                        }
                    }
                }
            ]
        }
    ]
}