NatLabRockies / NatLabRockies/H2Integrate

Individual or Subgroups of Technology Commodity Production in Finance Calculations

Open
#252 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
26
Forks
44
Avg merge
3d 22h
Merged PRs (30d)
16

Description

Ability to split out commodity at different points to use as commodity production in finance calculations.

The desired enhancement may be best explained with an example problem.

Suppose I have a system with wind, solar, battery, natural gas technologies (all electricity producing technologies) to try and achieve some demand. I want to calculate the LCOE for the following cases:

  1. LCOE of wind and solar total production: wind and solar cost included and using total electricity production of wind plant and solar plant
  2. LCOE of wind and solar and battery for demand: wind, solar, and battery costs and using the total electricity production thats used to satisfy the demand (the sum of battery.electricity_out)
  3. LCOE of wind and solar and battery total production: wind, solar, and battery costs and using the total electricity production (the sum of battery.electricity_out + battery.electricity_curtailed which should be similar to the sum of wind.electricity_out + solar.electricity_out, differences would arise because of the battery's initial SOC)
  4. LCOE of wind, solar, battery, and natural gas plant for demand: costs of wind, solar, battery, natural gas plant, and natural gas feedstock. This requires passing the missed load from the battery into the natural gas plant as the electricity demand. Then using the sum of battery.electricity_out and natural_gas_plant.electricity_out as the total electricity production.
  5. LCOE of wind, solar, battery, and natural gas plant total production: costs of wind, solar, battery, natural gas plant, and natural gas feedstock. This requires passing the missed load from the battery into the natural gas plant as the electricity demand. Then using the sum of battery.electricity_out and natural_gas_plant.electricity_out and battery.electricity_curtailed as the total electricity production.

Proposed solution

  1. Modify the ElectricitySumComp to not sum all the electricity produced by the technologies in the tech config but to instead sum electricity from inputs, make the ElectricitySumComp be able to take in various inputs. Or - have summing done in the combiners.
  2. Add a generic summer to supported_models
  3. (small): change combiner connection in H2Integrate model to not depend on electricity OR make a commodity-neutral combiner
  4. total_commodity_produced input into finance models should be done in technology_interconnections of the plant config rather than in h2integrate_model.py

NOTE: Other thing is how to include a load demand and still pass the missed load to the natural gas plant if we don't have a battery.

Alternatives considered

Additional context

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Trace how ElectricitySumComp, supported_models, H2Integrate, plant-config technology_interconnections, and the finance models currently determine total commodity production. Compare those paths with the five wind, solar, battery, and natural-gas calculation cases described in the issue, including missed-load handling. Done means commodity-specific inputs can drive the required demand and total-production calculations without depending on a fixed technology list.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.