Skip to content

Commit 604d68f

Browse files
authored
Merge pull request #137 from jmartin4nrel/meoh-merge
Adding CO2 Hydrogenation as a methanol production technology
2 parents 26cefc8 + 440cb1a commit 604d68f

23 files changed

Lines changed: 18298 additions & 803 deletions

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
- Added *_out/ to .gitignore to avoid clutter
77
- Added methanol production base class
88
- Added steam methane reforming methanol production technology
9+
- Added CO2 hydrogenation methanol production technology
910
- Added a new optimization example with a wind plant and electrolyzer to showcase how to define design variables, constraints, and objective functions
1011
- Added capability for user-defined technologies in the H2Integrate framework, allowing for custom models to be integrated into the system.
1112
- Added an example of a user-defined technology in the `examples` directory, demonstrating an extremely simple paper mill model.

docs/technology_models/methanol.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# Methanol model
2+
3+
Methanol is an essential precursor to many chemicals, and is also used as a fuel, especially in marine applications. It can be produced from many substances, which the most conventional route using natural gas as the main feedstock, and other developing technologies that combine hydrogen and carbon dioxide (CO2). A basic framework for modeling methanol production is set up in `h2integrate/converters/methanol/methanol_baseclass.py`, and specific technologies are modeled in inherited classes. Examples of each methanol production method can be found in `examples/03_methanol`. Currently, H2I models two methanol production technologies:
4+
5+
1. Steam Methane Reforming (SMR): This is the most prominent commercial production route for methanol in the United States, and utilizes natural gas as the main feedstock. This model is found at `h2integrate/converters/methanol/smr_methanol_plant.py`. The NREL modeling of this process is based on an [NETL Baseline Analysis of Crude Methanol Production from Coal and Natural Gas](https://doi.org/10.2172/1601964).
6+
7+
2. CO2 Hydrogenation: This is a developing methanol production technology that directly combines hydrogen with carbon dioxide to produce methanol. This model is found at `h2integrate/converters/methanol/co2h_methanol_plant.py`. The NREL modeling of this process is based on a combination of three peer-reviewed studies:
8+
- [Perez-Fortes et al.](https://doi.org/10.1016/j.apenergy.2015.07.067)
9+
- [Szima et al.](https://doi.org/10.1016/j.jcou.2018.02.007)
10+
- [Nyari et al.](https://doi.org/10.1016/j.jcou.2020.101166)
11+
12+
This modeling is further documented in a journal publication by [Martin et al.](https://doi.org/10.1021/acs.est.4c02589)
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
name: "H2Integrate_config"
2+
3+
system_summary: "This reference hybrid plant contains a simple SMR methanol plant"
4+
5+
driver_config: "driver_config.yaml"
6+
technology_config: "tech_config_co2h.yaml"
7+
plant_config: "plant_config_co2h.yaml"
File renamed without changes.
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
name: "plant_config"
2+
description: "This plant is located west of the Wolf Hollow II NGCC power plant in Texas"
3+
4+
site:
5+
latitude: 32.34
6+
longitude: -98.27
7+
elevation_m: 440.0
8+
time_zone: -6
9+
10+
# array of polygons defining boundaries with x/y coords
11+
boundaries: [
12+
{
13+
x: [0.0, 1000.0, 1000.0, 0.0],
14+
y: [0.0, 0.0, 100.0, 1000.0],
15+
},
16+
{
17+
x: [2000.0, 2500.0, 2000.0],
18+
y: [2000.0, 2000.0, 2500.0],
19+
}
20+
]
21+
22+
# array of arrays containing left-to-right technology
23+
# interconnections; can support bidirectional connections
24+
# with the reverse definition.
25+
# this will naturally grow as we mature the interconnected tech
26+
technology_interconnections: [
27+
["hopp", "electrolyzer", "electricity", "cable"],
28+
["electrolyzer", "methanol", "hydrogen", "pipe"],
29+
["financials_group_1", "methanol", "LCOE"],
30+
["financials_group_1", "methanol", "LCOH"],
31+
]
32+
33+
plant:
34+
plant_life: 30
35+
grid_connection: True # option, can be turned on or off
36+
ppa_price: 0.027498168 # based off correlations of LBNL PPA data
37+
hybrid_electricity_estimated_cf: 0.492 #should equal 1 if grid_connection = True
38+
39+
finance_parameters:
40+
analysis_start_year: 2032
41+
installation_time: 36 # months
42+
inflation_rate: 0.0 # 0 for nominal analysis
43+
discount_rate: 0.09 # nominal return based on 2024 ATB basline workbook for land-based wind
44+
debt_equity_split: False
45+
debt_equity_ratio: 2.62 # 2024 ATB uses 72.4% debt for land-based wind
46+
property_tax: 0.02 # https://www.house.mn.gov/hrd/issinfo/clsrates.aspx
47+
property_insurance: 0.01 # percent of CAPEX estimated based on https://www.nrel.gov/docs/fy25osti/91775.pdf
48+
total_income_tax_rate: 0.308 # 0.257 tax rate in 2024 atb baseline workbook, value here is based on federal (21%) and state in MN (9.8)
49+
capital_gains_tax_rate: 0.15 # H2FAST default
50+
sales_tax_rate: 0.07375 # total state and local sales tax in St. Louis County https://taxmaps.state.mn.us/salestax/
51+
debt_interest_rate: 0.07 # based on 2024 ATB nominal interest rate for land-based wind
52+
debt_type: "Revolving debt" # can be "Revolving debt" or "One time loan". Revolving debt is H2FAST default and leads to much lower LCOH
53+
loan_period: 0 # H2FAST default, not used for revolving debt
54+
cash_onhand_months: 1 # H2FAST default
55+
administrative_expense_percent_of_sales: 0.00 # percent of sales H2FAST default
56+
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
57+
depreciation_period: 5 # years - for clean energy facilities as specified by the IRS MACRS schedule https://www.irs.gov/publications/p946#en_US_2020_publink1000107507
58+
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
59+
discount_years:
60+
hopp: 2019
61+
electrolyzer: 2021
62+
methanol: 2020
63+
options:
64+
commodity_type: "methanol"
65+
cost_adjustment_parameters:
66+
cost_year_adjustment_inflation: 0.025 # used to adjust modeled costs to target_dollar_year
67+
target_dollar_year: 2022
68+
69+
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
70+
electricity_itc: 0
71+
electricity_ptc: 0
72+
h2_ptc: 0
73+
h2_storage_itc: 0
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
from h2integrate.core.h2integrate_model import H2IntegrateModel
2+
3+
4+
# Create an H2I model
5+
h2i = H2IntegrateModel("03_co2h_methanol.yaml")
6+
7+
# Run the model
8+
h2i.run()
9+
10+
h2i.post_process()
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
name: "technology_config"
2+
description: "This hybrid plant produces methanol"
3+
4+
technologies:
5+
hopp:
6+
performance_model:
7+
model: "hopp"
8+
config: !include tech_inputs/hopp_config.yaml
9+
cost_model:
10+
model: "hopp"
11+
financial_model:
12+
group: "1"
13+
electrolyzer_rating: 156. # MW
14+
electrolyzer:
15+
performance_model:
16+
model: "eco_pem_electrolyzer_performance"
17+
cost_model:
18+
model: "singlitico_electrolyzer_cost"
19+
financial_model:
20+
group: "1"
21+
model_inputs:
22+
shared_parameters:
23+
location: "onshore"
24+
electrolyzer_capex: 1295 # $/kW overnight installed capital costs for a 1 MW system in 2022 USD/kW (DOE hydrogen program record 24005 Clean Hydrogen Production Cost Scenarios with PEM Electrolyzer Technology 05/20/24) (https://www.hydrogen.energy.gov/docs/hydrogenprogramlibraries/pdfs/24005-clean-hydrogen-production-cost-pem-electrolyzer.pdf?sfvrsn=8cb10889_1)
25+
performance_parameters:
26+
sizing:
27+
resize_for_enduse: False
28+
size_for: 'BOL' #'BOL' (generous) or 'EOL' (conservative)
29+
hydrogen_dmd:
30+
n_clusters: 4
31+
cluster_rating_MW: 39
32+
pem_control_type: 'basic'
33+
eol_eff_percent_loss: 10 #eol defined as x% change in efficiency from bol
34+
uptime_hours_until_eol: 80000 #number of 'on' hours until electrolyzer reaches eol
35+
include_degradation_penalty: True #include degradation
36+
turndown_ratio: 0.1 #turndown_ratio = minimum_cluster_power/cluster_rating_MW
37+
financial_parameters:
38+
replacement_cost_percent: 0.15 # percent of capex - H2A default case
39+
methanol:
40+
performance_model:
41+
model: "co2h_methanol_plant_performance"
42+
cost_model:
43+
model: "co2h_methanol_plant_cost"
44+
financial_model:
45+
model: "co2h_methanol_plant_financial"
46+
group: "2"
47+
model_inputs:
48+
shared_parameters:
49+
plant_capacity_kgpy: 127893196.8
50+
plant_capacity_flow: "methanol"
51+
performance_parameters:
52+
capacity_factor: 0.9
53+
co2e_emit_ratio: 0.020296
54+
h2o_consume_ratio: 0.988
55+
h2_consume_ratio: 0.195
56+
co2_consume_ratio: 1.423
57+
elec_consume_ratio: 0.09466667
58+
meoh_syn_cat_consume_ratio: 0.00000128398
59+
ng_consume_ratio: 0.073511601
60+
cost_parameters:
61+
ng_lhv: 47.1
62+
toc_kg_y: 1.0633873
63+
foc_kg_y2: 0.020743864
64+
voc_kg: 0.00079
65+
meoh_syn_cat_price: 615.274273
66+
ng_price: 4.0
67+
co2_price: 0.0549007
68+
finance_parameters:
69+
# Sources in NETL-PUB-22580: Exhibit 3-5 and Exhibit 3-7
70+
tasc_toc_multiplier: 1.093
71+
fixed_charge_rate: 0.0707

examples/03_methanol/tech_inputs/default_fin_config.yaml renamed to examples/03_methanol/co2_hydrogenation/tech_inputs/default_fin_config.yaml

File renamed without changes.

examples/03_methanol/tech_inputs/hopp_config.yaml renamed to examples/03_methanol/co2_hydrogenation/tech_inputs/hopp_config.yaml

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ site: #!include flatirons_site.yaml
1616
- [0.0, 25000]
1717
- [25000, 25000]
1818
- [25000, 0.0]
19-
solar_resource_file: "weather/solar/32.34_-98.27_psmv3_60_2013.csv"
20-
wind_resource_file: "weather/wind/32.34_-98.27_windtoolkit_2013_60min_100m_120m.srw"
19+
solar_resource_file: "tech_inputs/weather/solar/32.31714_-100.18_psmv3_60_2013.csv"
20+
wind_resource_file: "tech_inputs/weather/wind/32.31714_-100.18_windtoolkit_2013_60min_100m_120m.srw"
2121
wave_resource_file: ""
2222
grid_resource_file: ""
2323
hub_height: 115.0
@@ -29,25 +29,18 @@ site: #!include flatirons_site.yaml
2929

3030
technologies:
3131
wind:
32-
num_turbines: 216
32+
num_turbines: 29
3333
turbine_rating_kw: 6000.0
34-
model_name: floris
34+
model_name: pysam #floris
3535
timestep: [0, 8760]
36-
floris_config: !include floris_input_lbw_6MW.yaml
36+
# floris_config: !include floris_input_lbw_6MW.yaml
3737
fin_model: !include default_fin_config.yaml
3838
pv:
39-
system_capacity_kw: 1500000
39+
system_capacity_kw: 350000
4040
dc_degradation: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
4141
fin_model: !include default_fin_config.yaml
42-
battery:
43-
system_capacity_kwh: 375745.2
44-
system_capacity_kw: 375740.4
45-
minimum_SOC: 20.0
46-
maximum_SOC: 100.0
47-
initial_SOC: 90.0
48-
fin_model: !include default_fin_config.yaml
4942
grid:
50-
interconnect_kw: 2000000 # Set higher than rated generation capacity
43+
interconnect_kw: 200000 # Set higher than rated generation capacity
5144
fin_model: !include default_fin_config.yaml
5245

5346
config:

0 commit comments

Comments
 (0)