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:
- Grid electricity CO₂ intensity
- Regional differences between grid markets.
- Time-varying intensity (hourly vs. annual averages).
- Average vs. marginal CO₂ intensity.
- On-site operational emissions (scope 1)
- Fuel combustion for heat, CHP, generators, etc.
- Emission factors per fuel type.
- 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).
- 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.
- 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)?
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
Proposed Behavior
1. Research first (ordered by importance)
Research and quantify, in order of expected impact:
2. Implementation after research
Implementation Notes
grid_co2_intensity[region, time](kgCO₂/MWh)fuel_co2_factor[fuel](kgCO₂/unit)asset_embodied_co2[technology](kgCO₂ per MW or MWh capacity)emissions = activity * emission_factoremissions = new_capacity * embodied_co2_factortotal_emissions.co2_cost = Σ emissions * co2_penalty[region, time]Open Questions