-
Notifications
You must be signed in to change notification settings - Fork 46
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
include greenheart init files and additional test input files
- Loading branch information
1 parent
3472204
commit bc36371
Showing
5 changed files
with
330 additions
and
0 deletions.
There are no files selected for viewing
Empty file.
Empty file.
217 changes: 217 additions & 0 deletions
217
tests/greenheart/test_hydrogen/input_files/plant/eco_config.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,217 @@ | ||
site: | ||
mean_windspeed: False | ||
project_parameters: | ||
grid_connection: False # option, can be turned on or off | ||
ppa_price: 0.025 # $/kWh based on 2022 land based wind market report (ERCOT area ppa prices) https://www.energy.gov/sites/default/files/2022-08/land_based_wind_market_report_2202.pdf | ||
atb_year: 2022 | ||
finance_parameters: | ||
general_inflation: 0.025 # based on 2022 ATB | ||
discount_rate: 0.10 # nominal return based on 2022 ATB basline workbook | ||
debt_equity_split: 68.5 # 2022 ATB uses 68.5% debt | ||
property_tax: 0.01 # percent of CAPEX # combined with property insurance then between H2A and H2FAST defaults | ||
property_insurance: 0.005 # percent of CAPEX # combined with property tax then between H2A and H2FAST defaults | ||
total_income_tax_rate: 0.257 # 0.257 tax rate in 2022 atb baseline workbook # current federal income tax rate, but proposed 2023 rate is 0.28. No state income tax in Texas | ||
capital_gains_tax_rate: 0.15 # H2FAST default | ||
sales_tax_rate: 0.0 #Verify that a different rate shouldn't be used # minimum total sales tax rate in Corpus Christi https://www.cctexas.com/detail/corpus-christi-type-fund-purpose - does this apply to H2? | ||
debt_interest_rate: 0.06 | ||
debt_type: "Revolving debt" # can be "Revolving debt" or "One time loan". Revolving debt is H2FAST default and leads to much lower LCOH | ||
loan_period: 0 # H2FAST default, not used for revolving debt | ||
cash_onhand_months: 1 # H2FAST default | ||
administrative_expense_percent_of_sales: 0.00 #Check this # percent of sales H2FAST default | ||
depreciation_method: "MACRS" # can be "MACRS" or "Straight line" - MACRS may be better and can reduce LCOH by more than $1/kg and is spec'd in the IRS MACRS schedule https://www.irs.gov/publications/p946#en_US_2020_publink1000107507 | ||
depreciation_period: 5 # years - as specified by the IRS MACRS schedule https://www.irs.gov/publications/p946#en_US_2020_publink1000107507 | ||
depreciation_period_electrolyzer: 7 # based on PEM Electrolysis H2A Production Case Study Documentation estimate of 7 years. also see https://www.irs.gov/publications/p946#en_US_2020_publink1000107507 | ||
discount_years: | ||
wind: 2022 # based on turbine capex value provided to ORBIT from 2022 ATB | ||
wind_and_electrical: 2022 # for ORBIT opex | ||
platform: 2022 # TODO ask Nick and Charlie | ||
electrical_export_system: 2022 # also from ORBIT, so match wind assumptions. TODO ask Sophie Bradenkamp | ||
desal: 2013 # from code citation: https://www.nrel.gov/docs/fy16osti/66073.pdf | ||
electrolyzer: 2020 # 2020 for singlitico2021, 2016 # for simple h2 cost model in hopp (see https://www.hydrogen.energy.gov/pdfs/19009_h2_production_cost_pem_electrolysis_2019.pdf) ## 2020 # based on IRENA report https://www.irena.org/-/media/Files/IRENA/Agency/Publication/2020/Dec/IRENA_Green_hydrogen_cost_2020.pdf | ||
h2_transport_compressor: 2016 # listed in code header | ||
h2_storage: | ||
pressure_vessel: 2022 # based on readme for Compressed_gas_function | ||
pipe: 2019 # Papadias 2021 | ||
salt_cavern: 2019 # Papadias 2021 | ||
turbine: 2003 # assumed based on Kottenstette 2004 | ||
none: 2022 # arbitrary | ||
h2_pipe_array: 2018 # ANL costs | ||
h2_transport_pipeline: 2018 # same model for costs as the h2_pipe_array | ||
|
||
electrolyzer: | ||
rating: 180 # MW # 0.9*Plant rating appears near-optimal for 400 MW wind plant with 3 days of underground pipe storage # MW | ||
electrolyzer_capex: 700 # $/kW conservative 2025 centralized. high 700, low 300 # based on https://www.irena.org/-/media/Files/IRENA/Agency/Publication/2020/Dec/IRENA_Green_hydrogen_cost_2020.pdf | ||
time_between_replacement: 62320 # 62320 based on PEM Electrolysis H2A Production Case Study Documentation estimate of 7 years, 40000 based on current est (see unpublished report), 80000 hours based on OSW atb_year = 2025 | ||
replacement_cost_percent: 0.15 # percent of capex - H2A default case | ||
model: "singlitico2021" # "basic" is a basic cost model based on H2a and HFTO program record for PEM electrolysis. "singlitico2021" uses cost estimates from that paper | ||
config: | ||
general: | ||
verbose: False # default | ||
electrolyzer: | ||
dt: 3600 # 1 default | ||
stack: | ||
cell_area: 1000.0 | ||
max_current: 2000 | ||
temperature: 60 | ||
n_cells: 100 | ||
stack_rating_kW: 3400.0 | ||
control: | ||
n_stacks: 6 | ||
system_rating_MW: 20.4 | ||
control_type: BaselineDeg | ||
costs: | ||
plant_params: | ||
plant_life: 25 #years (30 from [9]) | ||
pem_location: onshore #onshore,offshore,in-turbine | ||
grid_connected: False | ||
feedstock: | ||
water_feedstock_cost: 0.0008 #$/kg-H20 (pg 18 Section 4.3 of [4]) | ||
water_per_kgH2: 10 #kgH20/kgH2 placeholder - should be output from model in future | ||
opex: | ||
var_OM: 0.0013 #$/kW [2018$/MWh] (Table S25 on page 10 of [1]) | ||
fixed_OM: 12.8 #$/kW-year (Table S25 on page 10 of [1]) | ||
stack_replacement: | ||
d_eol: 0.7212 #end of life cell voltage value | ||
stack_replacement_percent: 0.15 #% of CapEx () | ||
capex: | ||
capex_learning_rate: 0.13 # ([1] Table S19) (Table B.2 [9]) (Exhibit 8 [8]) | ||
ref_cost_bop: 747 #$/kW #(Appendix E Table A8 [5]) (Table 3 of [2]) | ||
ref_size_bop: 200 #kW | ||
ref_cost_pem: 695 #$/kW (kinda of Figure 5b & Fig 6 of [5]) (Table 6 of [3]) (Slide 12 of [6]) | ||
ref_size_pem: 2000 #kW | ||
finances: | ||
discount_rate: 0.05 #(page 3 below Eqn (4) of [7]) (pg 9 near Eqn (23) of [9] has 0.05) | ||
install_factor: 0.33 # [%] Install Factor (Table B.2 of [9]) (Section 2.1 of [5]) | ||
|
||
# h2_transport_compressor: | ||
# output_pressure: 100 # bar (1 bar = 100 kPa) | ||
# flow_rate: 89 # kg/hr | ||
# energy_rating: 802 # kWe (aka 1 kWh) | ||
# mean_days_between_failures: 200 # days | ||
# useful_life: 15 # was default in compressor script | ||
# # annual_h2_throughput: 18750 # [kg/yr] -> kg of H2 per year | ||
h2_transport_compressor: | ||
outlet_pressure: 68 # bar based on HDSAM | ||
h2_storage_compressor: | ||
output_pressure: 100 # bar (1 bar = 100 kPa) | ||
flow_rate: 89 # kg/hr | ||
energy_rating: 802 # kWe (aka 1 kWh) | ||
mean_days_between_failures: 200 # days | ||
# annual_h2_throughput: 18750 # [kg/yr] -> kg of H2 per year | ||
h2_transport_pipe: | ||
outlet_pressure: 10 # bar - from example in code from Jamie #TODO check this value | ||
h2_storage: | ||
# capacity_kg: 18750 # kg | ||
capacity_from_max_on_turbine_storage: True # if True, then days of storage is ignored and storage capacity is based on how much h2 storage fits on the turbines in the plant using Kottenstete 2003. | ||
type: "none" # can be one of ["none", "pipe", "turbine", "pressure_vessel", "salt_cavern"] ### not yet implemented: ["line_rock_cavern"] #TODO fix salt cavern, just a number right now | ||
days: 3 # [days] how many days worth of production we should be able to store (this is ignored if `capacity_from_max_on_turbine_storage` is set to True) | ||
# platform: | ||
# opex_rate: 0.0111 # % of capex to determine opex (see table 5 in https://www.acm.nl/sites/default/files/documents/study-on-estimation-method-for-additional-efficient-offshore-grid-opex.pdf) | ||
# installation_days: 14 # days | ||
# site: | ||
# depth: -1 | ||
# distance: -1 | ||
# equipment: | ||
# tech_combined_mass: -1 | ||
# tech_required_area: -1 | ||
platform: | ||
opex_rate: 0.0111 # % of capex to determine opex (see table 5 in https://www.acm.nl/sites/default/files/documents/study-on-estimation-method-for-additional-efficient-offshore-grid-opex.pdf) | ||
# Modified orbit configuration file for a single platform to carry "X technology" | ||
design_phases: | ||
- FixedPlatformDesign # Register Design Phase | ||
install_phases: | ||
FixedPlatformInstallation: 0 # Register Install Phase | ||
oss_install_vessel: example_heavy_lift_vessel | ||
site: | ||
depth: -1 # site depth [m] (if -1, then will use the full plant depth) | ||
distance: -1 # distance to port [km] (if -1, then will use the full plant distance) | ||
equipment: | ||
tech_required_area: -1. # equipment area [m**2] (-1 will require the input during run) | ||
tech_combined_mass: -1 # equipment mass [t] (-1 will require the input during run) | ||
topside_design_cost: 4500000 # topside design cost [USD] | ||
installation_duration: 14 # time at sea [days] | ||
|
||
policy_parameters: # these should be adjusted for inflation prior to application - order of operations: rate in 1992 $, | ||
#then prevailing wage multiplier if applicable, then inflation | ||
option1: # base # no policy included ---> see files/task1/regulation and policy revue/ page 4 of 13 middle - read this | ||
# and look at assumptions | ||
wind_itc: 0 | ||
wind_ptc: 0 | ||
h2_ptc: 0 | ||
option2: # base credit levels with H2 | ||
wind_itc: 0 | ||
wind_ptc: 0.003 # $0.003/kW (this is base, see inflation adjustment in option 3) | ||
h2_ptc: 0.6 # $0.60/kg h2 produced - assumes net zero but not meeting prevailing wage requirements - does this need to be | ||
# adjusted for inflation from 2022 dollars to claim date, probably constant after claim date? | ||
option3: # same as option 5, but assuming prevailing wages are met --> 5x multiplier on both PTCs | ||
wind_itc: 0 | ||
wind_ptc: 0.015 # $/kWh 1992 dollars | ||
h2_ptc: 3.00 # $/kg 2022 dollars - do not adjust for inflation | ||
# bonus options, option 5 and 6 but ITC equivalents | ||
option4: # prevailing wages not met | ||
wind_itc: 0.06 # %/100 capex | ||
wind_ptc: 0.00 # $/kW 1992 dollars | ||
h2_ptc: 0.6 # $0.60/kg produced 2022 dollars - assumes net zero but not meeting prevailing wage requirements - does this need to be | ||
# do not adjust for inflation, probably constant after claim date? | ||
option5: # prevailing wages met | ||
wind_itc: 0.30 # %/100 capex | ||
wind_ptc: 0.0 # $/kWh 1992 dollars | ||
h2_ptc: 3.00 # $/kg of h2 produced 2022 dollars - do adjust for inflation every year applied and until application year | ||
option6: # assumes prevailing wages are met, and includes 10% bonus credit of domestic content (100% of steel and iron | ||
# and mfg. components from the US) | ||
wind_itc: 0.40 # %/100 capex | ||
wind_ptc: 0.0 # $/kWh 1992 dollars | ||
h2_ptc: 3.00 # $/kg of h2 produced 2022 dollars - do adjust for inflation every year applied and until application year | ||
option7: # assumes prevailing wages are met, and includes 10% bonus credit of domestic content (100% of steel and iron | ||
# and mfg. components from the US) | ||
wind_itc: 0.0 # %/100 capex | ||
wind_ptc: 0.0165 # $/kWh 1992 dollars (0.015*1.1) | ||
h2_ptc: 3.00 # $/kg of h2 produced 2022 dollars - do adjust for inflation every year applied and until application year | ||
# you can elect itc_for_h2 in leu of the h2_ptc - this choice is independent of the other tech credit selections | ||
# 6% or %50 for itc_for_h2 | ||
|
||
plant_design: | ||
scenario0: | ||
electrolyzer_location: "platform" # can be one of ["onshore", "turbine", "platform"] | ||
transportation: "pipeline" # can be one of ["hvdc", "pipeline", "none", hvdc+pipeline] | ||
h2_storage_location: "platform" # can be one of ["onshore", "turbine", "platform"] | ||
scenario1: | ||
electrolyzer_location: "onshore" # can be one of ["onshore", "turbine", "platform"] | ||
transportation: "hvdc" # can be one of ["hvdc", "pipeline", "none", hvdc+pipeline] | ||
h2_storage_location: "onshore" # can be one of ["onshore", "turbine", "platform"] | ||
scenario2: | ||
electrolyzer_location: "onshore" # can be one of ["onshore", "turbine", "platform"] | ||
transportation: "hvdc" # can be one of ["hvdc", "pipeline", "none", hvdc+pipeline] | ||
h2_storage_location: "platform" # can be one of ["onshore", "turbine", "platform"] | ||
scenario3: | ||
electrolyzer_location: "turbine" # can be one of ["onshore", "turbine", "platform"] | ||
transportation: "none" # can be one of ["hvdc", "pipeline", "none", hvdc+pipeline] | ||
h2_storage_location: "turbine" # can be one of ["onshore", "turbine", "platform"] | ||
scenario4: | ||
electrolyzer_location: "turbine" # can be one of ["onshore", "turbine", "platform"] | ||
transportation: "none" # can be one of ["hvdc", "pipeline", "none", hvdc+pipeline] | ||
h2_storage_location: "platform" # can be one of ["onshore", "turbine", "platform"] | ||
scenario5: | ||
electrolyzer_location: "turbine" # can be one of ["onshore", "turbine", "platform"] | ||
transportation: "pipeline" # can be one of ["hvdc", "pipeline", "none", hvdc+pipeline] | ||
h2_storage_location: "onshore" # can be one of ["onshore", "turbine", "platform"] | ||
scenario6: | ||
electrolyzer_location: "platform" # can be one of ["onshore", "turbine", "platform"] | ||
transportation: "none" # can be one of ["hvdc", "pipeline", "none", hvdc+pipeline] | ||
h2_storage_location: "platform" # can be one of ["onshore", "turbine", "platform"] | ||
scenario7: | ||
electrolyzer_location: "platform" # can be one of ["onshore", "turbine", "platform"] | ||
transportation: "pipeline" # can be one of ["hvdc", "pipeline", "none", hvdc+pipeline] | ||
h2_storage_location: "onshore" # can be one of ["onshore", "turbine", "platform"] | ||
scenario8: | ||
electrolyzer_location: "platform" # can be one of ["onshore", "turbine", "platform"] | ||
transportation: "hvdc+pipeline" # can be one of ["hvdc", "pipeline", "none", hvdc+pipeline] | ||
h2_storage_location: "onshore" # can be one of ["onshore", "turbine", "platform"] | ||
# design A -> scenario 1 | ||
# onshore electrolysis | ||
# HVDC transport, HVDC_2000mm_320kV | ||
# no storage | ||
# design B -> scenario 7 | ||
# electrolysis on platform | ||
# pipe transport to shore | ||
# no storage |
45 changes: 45 additions & 0 deletions
45
tests/greenheart/test_hydrogen/input_files/plant/hopp_config.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
site: #!include flatirons_site.yaml | ||
data: | ||
lat: 27.18624 | ||
lon: -96.9516 | ||
elev: 0 | ||
year: 2013 | ||
site_boundaries: | ||
verts: | ||
- [0.0, 0.0] | ||
- [0.0, 2000.0] | ||
- [2000.0, 2000.0] | ||
- [2000.0, 0.0] | ||
verts_simple: | ||
- [0.0, 0.0] | ||
- [0.0, 2000.0] | ||
- [2000.0, 2000.0] | ||
- [2000.0, 0.0] | ||
solar_resource_file: "" | ||
wind_resource_file: "" | ||
wave_resource_file: "" | ||
grid_resource_file: "" | ||
hub_height: 161.0 | ||
capacity_hours: [] | ||
desired_schedule: [] | ||
follow_desired_schedule: "" | ||
solar: false | ||
wind: true | ||
wave: false | ||
wind_resource_origin: "WTK" | ||
|
||
|
||
technologies: | ||
wind: | ||
num_turbines: 10 | ||
turbine_rating_kw: 18000.0 | ||
model_name: floris | ||
timestep: [0, 8760] | ||
floris_config: input_files/floris/floris_input_osw_18MW.yaml | ||
grid: | ||
interconnect_kw: 180000 | ||
|
||
config: | ||
simulation_options: | ||
wind: | ||
skip_financial: true |
68 changes: 68 additions & 0 deletions
68
tests/greenheart/test_hydrogen/input_files/plant/orbit-config-osw_18MW-stripped.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,68 @@ | ||
turbine: "osw_18MW" | ||
atb_year: 2025 # as per discussions of operational by 2027. This also makes the estimates a little more conservative | ||
cost_year: 2022 # to match ATB | ||
installation_availability: 0.7 # 30% downtime during installation to match ORCA | ||
site: | ||
area: 142 # km^2 | ||
depth: 45 # m | ||
distance: 80 # km | ||
distance_to_landfall: 85 # km | ||
mean_windspeed: False #8.45863584474886 # required input for ORBIT, provide desired mean wind speed or set to False to give ORBIT the mean wind speed from the lat/lon selection | ||
plant: | ||
capacity: 180 # MW | ||
layout: grid | ||
num_turbines: 10 # needs to be changed based on turbine model | ||
row_spacing: 7 # rotor diameters # based on rule of thumb of 7D | ||
substation_distance: 1 # from ORBIT/examples/configs/example_fixed_project.yaml | ||
turbine_spacing: 7 # rotor diameters # original 10 | ||
landfall: | ||
interconnection_distance: 5 # km | ||
trench_length: 4 # km | ||
port: | ||
monthly_rate: 2000000.0 # USD | ||
sub_assembly_lines: 1 | ||
turbine_assembly_cranes: 1 | ||
# Vessels | ||
array_cable_install_vessel: example_cable_lay_vessel # from ORBIT/examples/configs/example_fixed_project.yaml | ||
export_cable_install_vessel: example_cable_lay_vessel # from ORBIT/examples/configs/example_fixed_project.yaml | ||
export_cable_bury_vessel: example_cable_lay_vessel # from ORBIT/examples/configs/example_fixed_project.yaml | ||
oss_install_vessel: example_heavy_lift_vessel # from ORBIT/examples/configs/example_fixed_project.yaml | ||
spi_vessel: example_scour_protection_vessel # from ORBIT/examples/configs/example_fixed_project.yaml | ||
wtiv: example_wtiv # from ORBIT/examples/configs/example_fixed_project.yaml | ||
# Module Specific | ||
OffshoreSubstationInstallation: | ||
feeder: example_heavy_feeder # from ORBIT/examples/configs/example_fixed_project.yaml | ||
num_feeders: 1 # from ORBIT/examples/configs/example_fixed_project.yaml | ||
array_system_design: | ||
cables: | ||
- XLPE_630mm_66kV | ||
export_system_design: | ||
cables: HVDC_2000mm_320kV | ||
percent_added_length: 0.0 | ||
scour_protection_design: | ||
cost_per_tonne: 40 | ||
scour_protection_depth: 1 # ORBIT default | ||
MonopileDesign: | ||
monopile_steel_cost: 2250 #OSW | ||
tp_steel_cost: 3230 #OSW | ||
# Configured Phases | ||
design_phases: | ||
- ArraySystemDesign # from ORBIT/examples/configs/example_fixed_project.yaml | ||
- MonopileDesign # from ORBIT/examples/configs/example_fixed_project.yaml | ||
- ScourProtectionDesign # from ORBIT/examples/configs/example_fixed_project.yaml | ||
- ElectricalDesign # new addition from Sophie Bradenkamp combined ExportSystemDesign and OffshoreSubstationDesign phases | ||
install_phases: # these are hours into installation | ||
ArrayCableInstallation: 0 # from ORBIT/examples/configs/example_fixed_project.yaml | ||
ExportCableInstallation: 2000 # from ORBIT/examples/configs/example_fixed_project.yaml | ||
MonopileInstallation: 0 # from ORBIT/examples/configs/example_fixed_project.yaml | ||
# JacketInstallation: 0 # Jacket not ready yet in ORBIT | ||
OffshoreSubstationInstallation: 0 # from ORBIT/examples/configs/example_fixed_project.yaml | ||
ScourProtectionInstallation: 0 # from ORBIT/examples/configs/example_fixed_project.yaml | ||
TurbineInstallation: 0 # from ORBIT/examples/configs/example_fixed_project.yaml | ||
# Wind Project Inputs | ||
project_parameters: | ||
turbine_capex: 1300 # $USD turbine CAPEX only as per 2022 ATB https://atb.nrel.gov/electricity/2022/offshore_wind | ||
opex_rate: 97 # $USD/kW/yr ATB 2022, OpEx based on R&D assumptions with a base year of 2022. | ||
commissioning: 0.01 # ORBIT default | ||
decommissioning: 0.15 # ORBIT default | ||
project_lifetime: 30 # 2022 ATB capital recovery period for offshore wind |