Skip to content

More elaborate CO2 emission calculations #3

@ArnoClaude

Description

@ArnoClaude

Description

Improve CO₂ emission modeling by first researching the most relevant emission sources and emission factors (ranked by impact), and only then implementing them. The objective is to move from a highly simplified CO₂ model to one that reflects reality closely enough to influence optimization decisions correctly.

Current Behavior

  • Only grid electricity imports are considered as a CO₂ emission source.
  • All grid imports use a single, global CO₂ intensity constant.
  • No differentiation by region, grid market, or time.
  • No CO₂ emissions from:
    • On-site fuel usage
    • Building own assets (e.g. PV, ESS)
    • Operating own assets
  • This simplification can strongly distort results.

Proposed Behavior

1. Research first (ordered by importance)

Research and quantify, in order of expected impact:

  1. Grid electricity CO₂ intensity
    • Regional differences between grid markets.
    • Time-varying intensity (hourly vs. annual averages).
    • Average vs. marginal CO₂ intensity.
  2. On-site operational emissions (scope 1)
    • Fuel combustion for heat, CHP, generators, etc.
    • Emission factors per fuel type.
  3. Embodied emissions of assets
    • CO₂ emitted by building own PV systems.
    • CO₂ emitted by building energy storage systems (ESS).
    • Typical lifecycle values (kgCO₂ per MW or per MWh capacity).
  4. Operational emissions of own assets
    • PV: typically zero during operation but may include lifecycle amortization.
    • ESS: emissions caused by round-trip losses leading to additional grid imports.
  5. CO₂ pricing / penalties
    • Differences by region and market.
    • Time-dependent CO₂ price trajectories.

2. Implementation after research

  • Incrementally extend the CO₂ model following research results.
  • Start with highest-impact sources and highest data confidence.

Implementation Notes

  • Introduce emission factors:
    • grid_co2_intensity[region, time] (kgCO₂/MWh)
    • fuel_co2_factor[fuel] (kgCO₂/unit)
    • asset_embodied_co2[technology] (kgCO₂ per MW or MWh capacity)
  • Model emissions as linear terms:
    • Operational: emissions = activity * emission_factor
    • Embodied: emissions = new_capacity * embodied_co2_factor
  • Attribute ESS operational emissions via increased grid imports due to losses.
  • Aggregate all emission sources into total_emissions.
  • Apply CO₂ penalty in objective:
    • co2_cost = Σ emissions * co2_penalty[region, time]
  • Keep a simplified fallback with a single global CO₂ factor.

Open Questions

  • How far to go with embodied emissions vs. operational focus?
  • Over which lifetime should embodied CO₂ be amortized?
  • Required time resolution for grid CO₂ intensity (hourly vs. yearly)?
  • Use average or marginal grid emissions for optimization decisions?
  • Should CO₂ limits be soft (penalized) or hard (budget constraint)?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions