Open-Loop Storage Controllers Demonstrations#
from pathlib import Path
from matplotlib import pyplot as plt
from h2integrate.core.h2integrate_model import H2IntegrateModel
Hydrogen Dispatch#
The following example is an expanded form of examples/14_wind_hydrogen_dispatch.
Here, we’re highlighting the dispatch controller setup from
examples/14_wind_hydrogen_dispatch/inputs/tech_config.yaml. Please note some sections are removed
simply to highlight the controller sections
54 h2_storage:
55 control_strategy:
56 model: "DemandOpenLoopStorageController"
57 model_inputs:
58 control_parameters:
59 max_charge_percent: 1.0 # percent as decimal
60 min_charge_percent: 0.1 # percent as decimal
61 init_charge_percent: 0.25 # percent as decimal
62 max_discharge_rate: 12446.00729773 # kg/time step
63 charge_efficiency: 1.0 # percent as decimal
64 discharge_efficiency: 1.0 # percent as decimal
65 demand_profile: 5000 # constant demand of 5000 kg per hour (see commodity_rate_units)
Using the primary configuration, we can create, run, and postprocess an H2Integrate model.
# Create an H2Integrate model
model = H2IntegrateModel(Path("../../examples/14_wind_hydrogen_dispatch/inputs/h2i_wind_to_h2_storage.yaml"))
# Run the model
model.run()
model.post_process()
82 explicit inputs:
╷ ╷ ╷ ╷ Variable │ Mean │ Units │ Shape │ Promoted name ╶─────────────────────────────────────┼──────────────────┼──────────┼───────┼─────────────────────────────────────╴ plant │ │ │ │ electrolyzer │ │ │ │ ECOElectrolyzerPerformanceModel │ │ │ │ electricity_in │ 356,785.76 │ kW │ 8760 │ electrolyzer.electricity_in SingliticoCostModel │ │ │ │ electricity_in │ 356,785.76 │ kW │ 8760 │ electrolyzer.electricity_in n_clusters │ 18. │ unitless │ 1 │ electrolyzer.n_clusters cluster_size │ -1. │ MW │ 1 │ electrolyzer.cluster_size max_hydrogen_capacity │ 1,000. │ kg/h │ 1 │ electrolyzer.max_hydrogen_capacity size_mode │ n/a │ n/a │ n/a │ electrolyzer.size_mode total_hydrogen_produced │ 61,656,527.55 │ kg │ 1 │ electrolyzer.total_hydrogen_produced electrolyzer_size_mw │ 720. │ MW │ 1 │ electrolyzer.electrolyzer_size_mw electrolyzer_to_h2_storage_pipe │ │ │ │ hydrogen_in │ 1.9551 │ kg/s │ 8760 │ electrolyzer_to_h2_storage_pipe.hydr │ │ │ │ ogen_in finance_subgroup_all_hydrogen │ │ │ │ adjusted_capex_opex_comp │ │ │ │ capex_wind │ 1,245,000,000. │ USD │ 1 │ finance_subgroup_all_hydrogen.capex_ │ │ │ │ wind opex_wind │ 37,350,000. │ USD/year │ 1 │ finance_subgroup_all_hydrogen.opex_w │ │ │ │ ind varopex_wind │ 0. │ USD/year │ 30 │ finance_subgroup_all_hydrogen.varope │ │ │ │ x_wind capex_electrolyzer │ 675,464,089.17 │ USD │ 1 │ finance_subgroup_all_hydrogen.capex_ │ │ │ │ electrolyzer opex_electrolyzer │ 16,541,049.82 │ USD/year │ 1 │ finance_subgroup_all_hydrogen.opex_e │ │ │ │ lectrolyzer varopex_electrolyzer │ 0. │ USD/year │ 30 │ finance_subgroup_all_hydrogen.varope │ │ │ │ x_electrolyzer capex_h2_storage │ 128,437,698.56 │ USD │ 1 │ finance_subgroup_all_hydrogen.capex_ │ │ │ │ h2_storage opex_h2_storage │ 5,315,184.83 │ USD/year │ 1 │ finance_subgroup_all_hydrogen.opex_h │ │ │ │ 2_storage varopex_h2_storage │ 0. │ USD/year │ 30 │ finance_subgroup_all_hydrogen.varope │ │ │ │ x_h2_storage cost_year_wind │ 2,019. │ n/a │ n/a │ finance_subgroup_all_hydrogen.cost_y │ │ │ │ ear_wind cost_year_electrolyzer │ 2,021. │ n/a │ n/a │ finance_subgroup_all_hydrogen.cost_y │ │ │ │ ear_electrolyzer cost_year_h2_storage │ 2,018. │ n/a │ n/a │ finance_subgroup_all_hydrogen.cost_y │ │ │ │ ear_h2_storage hydrogen_finance_default │ │ │ │ rated_hydrogen_production │ 14,118.3805 │ kg/h │ 1 │ finance_subgroup_all_hydrogen.rated_ │ │ │ │ hydrogen_production capacity_factor │ 0.4727 │ unitless │ 30 │ finance_subgroup_all_hydrogen.capaci │ │ │ │ ty_factor capex_adjusted_wind │ 1,340,728,828.12 │ USD │ 1 │ finance_subgroup_all_hydrogen.capex_ │ │ │ │ adjusted_wind opex_adjusted_wind │ 40,221,864.84 │ USD/year │ 1 │ finance_subgroup_all_hydrogen.opex_a │ │ │ │ djusted_wind varopex_adjusted_wind │ 0. │ USD/year │ 30 │ finance_subgroup_all_hydrogen.varope │ │ │ │ x_adjusted_wind capex_adjusted_electrolyzer │ 692,350,691.4 │ USD │ 1 │ finance_subgroup_all_hydrogen.capex_ │ │ │ │ adjusted_electrolyzer opex_adjusted_electrolyzer │ 16,954,576.06 │ USD/year │ 1 │ finance_subgroup_all_hydrogen.opex_a │ │ │ │ djusted_electrolyzer varopex_adjusted_electrolyzer │ 0. │ USD/year │ 30 │ finance_subgroup_all_hydrogen.varope │ │ │ │ x_adjusted_electrolyzer electrolyzer_time_until_replac │ 32,941.6377 │ h │ 1 │ finance_subgroup_all_hydrogen.electr ement │ │ │ │ olyzer_time_until_replacement capex_adjusted_h2_storage │ 141,771,187.31 │ USD │ 1 │ finance_subgroup_all_hydrogen.capex_ │ │ │ │ adjusted_h2_storage opex_adjusted_h2_storage │ 5,866,969.53 │ USD/year │ 1 │ finance_subgroup_all_hydrogen.opex_a │ │ │ │ djusted_h2_storage varopex_adjusted_h2_storage │ 0. │ USD/year │ 30 │ finance_subgroup_all_hydrogen.varope │ │ │ │ x_adjusted_h2_storage finance_subgroup_dispatched_hydrog │ │ │ │ en │ │ │ │ adjusted_capex_opex_comp │ │ │ │ capex_wind │ 1,245,000,000. │ USD │ 1 │ finance_subgroup_dispatched_hydrogen │ │ │ │ .capex_wind opex_wind │ 37,350,000. │ USD/year │ 1 │ finance_subgroup_dispatched_hydrogen │ │ │ │ .opex_wind varopex_wind │ 0. │ USD/year │ 30 │ finance_subgroup_dispatched_hydrogen │ │ │ │ .varopex_wind capex_electrolyzer │ 675,464,089.17 │ USD │ 1 │ finance_subgroup_dispatched_hydrogen │ │ │ │ .capex_electrolyzer opex_electrolyzer │ 16,541,049.82 │ USD/year │ 1 │ finance_subgroup_dispatched_hydrogen │ │ │ │ .opex_electrolyzer varopex_electrolyzer │ 0. │ USD/year │ 30 │ finance_subgroup_dispatched_hydrogen │ │ │ │ .varopex_electrolyzer capex_h2_storage │ 128,437,698.56 │ USD │ 1 │ finance_subgroup_dispatched_hydrogen │ │ │ │ .capex_h2_storage opex_h2_storage │ 5,315,184.83 │ USD/year │ 1 │ finance_subgroup_dispatched_hydrogen │ │ │ │ .opex_h2_storage varopex_h2_storage │ 0. │ USD/year │ 30 │ finance_subgroup_dispatched_hydrogen │ │ │ │ .varopex_h2_storage cost_year_wind │ 2,019. │ n/a │ n/a │ finance_subgroup_dispatched_hydrogen │ │ │ │ .cost_year_wind cost_year_electrolyzer │ 2,021. │ n/a │ n/a │ finance_subgroup_dispatched_hydrogen │ │ │ │ .cost_year_electrolyzer cost_year_h2_storage │ 2,018. │ n/a │ n/a │ finance_subgroup_dispatched_hydrogen │ │ │ │ .cost_year_h2_storage hydrogen_finance_default │ │ │ │ rated_hydrogen_production │ 12,446.0073 │ kg/h │ 1 │ finance_subgroup_dispatched_hydrogen │ │ │ │ .rated_hydrogen_production capacity_factor │ 0.4017 │ unitless │ 30 │ finance_subgroup_dispatched_hydrogen │ │ │ │ .capacity_factor capex_adjusted_wind │ 1,340,728,828.12 │ USD │ 1 │ finance_subgroup_dispatched_hydrogen │ │ │ │ .capex_adjusted_wind opex_adjusted_wind │ 40,221,864.84 │ USD/year │ 1 │ finance_subgroup_dispatched_hydrogen │ │ │ │ .opex_adjusted_wind varopex_adjusted_wind │ 0. │ USD/year │ 30 │ finance_subgroup_dispatched_hydrogen │ │ │ │ .varopex_adjusted_wind capex_adjusted_electrolyzer │ 692,350,691.4 │ USD │ 1 │ finance_subgroup_dispatched_hydrogen │ │ │ │ .capex_adjusted_electrolyzer opex_adjusted_electrolyzer │ 16,954,576.06 │ USD/year │ 1 │ finance_subgroup_dispatched_hydrogen │ │ │ │ .opex_adjusted_electrolyzer varopex_adjusted_electrolyzer │ 0. │ USD/year │ 30 │ finance_subgroup_dispatched_hydrogen │ │ │ │ .varopex_adjusted_electrolyzer electrolyzer_time_until_replac │ 32,941.6377 │ h │ 1 │ finance_subgroup_dispatched_hydrogen ement │ │ │ │ .electrolyzer_time_until_replacement capex_adjusted_h2_storage │ 141,771,187.31 │ USD │ 1 │ finance_subgroup_dispatched_hydrogen │ │ │ │ .capex_adjusted_h2_storage opex_adjusted_h2_storage │ 5,866,969.53 │ USD/year │ 1 │ finance_subgroup_dispatched_hydrogen │ │ │ │ .opex_adjusted_h2_storage varopex_adjusted_h2_storage │ 0. │ USD/year │ 30 │ finance_subgroup_dispatched_hydrogen │ │ │ │ .varopex_adjusted_h2_storage finance_subgroup_electricity │ │ │ │ adjusted_capex_opex_comp │ │ │ │ capex_wind │ 1,245,000,000. │ USD │ 1 │ finance_subgroup_electricity.capex_w │ │ │ │ ind opex_wind │ 37,350,000. │ USD/year │ 1 │ finance_subgroup_electricity.opex_wi │ │ │ │ nd varopex_wind │ 0. │ USD/year │ 30 │ finance_subgroup_electricity.varopex │ │ │ │ _wind cost_year_wind │ 2,019. │ n/a │ n/a │ finance_subgroup_electricity.cost_ye │ │ │ │ ar_wind electricity_finance_default │ │ │ │ rated_electricity_production │ 830,000. │ kW │ 1 │ finance_subgroup_electricity.rated_e │ │ │ │ lectricity_production capacity_factor │ 0.4299 │ unitless │ 30 │ finance_subgroup_electricity.capacit │ │ │ │ y_factor capex_adjusted_wind │ 1,340,728,828.12 │ USD │ 1 │ finance_subgroup_electricity.capex_a │ │ │ │ djusted_wind opex_adjusted_wind │ 40,221,864.84 │ USD/year │ 1 │ finance_subgroup_electricity.opex_ad │ │ │ │ justed_wind varopex_adjusted_wind │ 0. │ USD/year │ 30 │ finance_subgroup_electricity.varopex │ │ │ │ _adjusted_wind h2_storage │ │ │ │ DemandOpenLoopStorageController │ │ │ │ hydrogen_demand │ 5,000. │ kg/h │ 8760 │ h2_storage.hydrogen_demand hydrogen_in │ 7,038.4164 │ kg/h │ 8760 │ h2_storage.hydrogen_in max_charge_rate │ 12,446.0073 │ kg/h │ 1 │ h2_storage.max_charge_rate LinedRockCavernStorageCostModel │ │ │ │ max_charge_rate │ 12,446.0073 │ kg/h │ 1 │ h2_storage.max_charge_rate SimpleGenericStorage │ │ │ │ max_charge_rate │ 12,446.0073 │ kg/h │ 1 │ h2_storage.max_charge_rate max_capacity │ 2,987,042. │ kg │ 1 │ h2_storage.max_capacity max_capacity │ 2,987,042. │ kg │ 1 │ h2_storage.max_capacity hydrogen_set_point │ 5,000. │ kg/h │ 8760 │ h2_storage.hydrogen_set_point wind │ │ │ │ ATBWindPlantCostModel │ │ │ │ rated_electricity_production │ 830,000. │ kW │ 1 │ wind.rated_electricity_production PYSAMWindPlantPerformanceModel │ │ │ │ num_turbines │ 100. │ unitless │ 1 │ wind.num_turbines wind_turbine_rating │ 8,300. │ kW │ 1 │ wind.wind_turbine_rating rotor_diameter │ 196. │ m │ 1 │ wind.rotor_diameter hub_height │ 130. │ m │ 1 │ wind.hub_height wind_to_electrolyzer_cable │ │ │ │ electricity_in │ 356,785.76 │ kW │ 8760 │ wind_to_electrolyzer_cable.electrici │ │ │ │ ty_in site │ │ │ │ wind_resource │ │ │ │ latitude │ 35.2019 │ deg │ 1 │ site.latitude longitude │ -101.945 │ deg │ 1 │ site.longitude ╵ ╵ ╵ ╵
101 explicit outputs:
╷ ╷ ╷ ╷ Variable │ Mean │ Units │ Shape │ Promoted name ╶────────────────────────────────────┼──────────────────┼───────────┼───────┼─────────────────────────────────────╴ plant │ │ │ │ electrolyzer │ │ │ │ ECOElectrolyzerPerformanceModel │ │ │ │ hydrogen_out │ 7,038.4164 │ kg/h │ 8760 │ electrolyzer.hydrogen_out total_hydrogen_produced │ 61,656,527.55 │ kg │ 1 │ electrolyzer.total_hydrogen_produced annual_hydrogen_produced │ 58,458,966.73 │ kg/year │ 30 │ electrolyzer.annual_hydrogen_produce │ │ │ │ d replacement_schedule │ 0.2333 │ unitless │ 30 │ electrolyzer.replacement_schedule capacity_factor │ 0.4727 │ unitless │ 30 │ electrolyzer.capacity_factor rated_hydrogen_production │ 14,118.3805 │ kg/h │ 1 │ electrolyzer.rated_hydrogen_producti │ │ │ │ on operational_life │ 30 │ year │ 1 │ electrolyzer.operational_life efficiency │ 0.7774 │ unitless │ 1 │ electrolyzer.efficiency time_until_replacement │ 32,941.6377 │ h │ 1 │ electrolyzer.time_until_replacement electrolyzer_size_mw │ 720. │ MW │ 1 │ electrolyzer.electrolyzer_size_mw SingliticoCostModel │ │ │ │ CapEx │ 675,464,089.17 │ USD │ 1 │ electrolyzer.CapEx OpEx │ 16,541,049.82 │ USD/year │ 1 │ electrolyzer.OpEx VarOpEx │ 0. │ USD/year │ 30 │ electrolyzer.VarOpEx cost_year │ 2021 │ n/a │ n/a │ electrolyzer.cost_year electrolyzer_to_h2_storage_pipe │ │ │ │ hydrogen_out │ 1.9551 │ kg/s │ 8760 │ electrolyzer_to_h2_storage_pipe.hydr │ │ │ │ ogen_out finance_subgroup_all_hydrogen │ │ │ │ adjusted_capex_opex_comp │ │ │ │ capex_adjusted_wind │ 1,340,728,828.12 │ USD │ 1 │ finance_subgroup_all_hydrogen.capex_ │ │ │ │ adjusted_wind opex_adjusted_wind │ 40,221,864.84 │ USD/year │ 1 │ finance_subgroup_all_hydrogen.opex_a │ │ │ │ djusted_wind varopex_adjusted_wind │ 0. │ USD/year │ 30 │ finance_subgroup_all_hydrogen.varope │ │ │ │ x_adjusted_wind capex_adjusted_electrolyzer │ 692,350,691.4 │ USD │ 1 │ finance_subgroup_all_hydrogen.capex_ │ │ │ │ adjusted_electrolyzer opex_adjusted_electrolyzer │ 16,954,576.06 │ USD/year │ 1 │ finance_subgroup_all_hydrogen.opex_a │ │ │ │ djusted_electrolyzer varopex_adjusted_electrolyzer │ 0. │ USD/year │ 30 │ finance_subgroup_all_hydrogen.varope │ │ │ │ x_adjusted_electrolyzer capex_adjusted_h2_storage │ 141,771,187.31 │ USD │ 1 │ finance_subgroup_all_hydrogen.capex_ │ │ │ │ adjusted_h2_storage opex_adjusted_h2_storage │ 5,866,969.53 │ USD/year │ 1 │ finance_subgroup_all_hydrogen.opex_a │ │ │ │ djusted_h2_storage varopex_adjusted_h2_storage │ 0. │ USD/year │ 30 │ finance_subgroup_all_hydrogen.varope │ │ │ │ x_adjusted_h2_storage total_capex_adjusted │ 2,174,850,706.84 │ USD │ 1 │ finance_subgroup_all_hydrogen.total_ │ │ │ │ capex_adjusted total_opex_adjusted │ 63,043,410.43 │ USD/year │ 1 │ finance_subgroup_all_hydrogen.total_ │ │ │ │ opex_adjusted total_varopex_adjusted │ 0. │ USD/year │ 30 │ finance_subgroup_all_hydrogen.total_ │ │ │ │ varopex_adjusted hydrogen_finance_default │ │ │ │ LCOH │ 5.6545 │ USD/kg │ 1 │ finance_subgroup_all_hydrogen.LCOH wacc_hydrogen │ 0.0625 │ percent │ 1 │ finance_subgroup_all_hydrogen.wacc_h │ │ │ │ ydrogen crf_hydrogen │ 0.0723 │ percent │ 1 │ finance_subgroup_all_hydrogen.crf_hy │ │ │ │ drogen irr_hydrogen │ 0.09 │ percent │ 1 │ finance_subgroup_all_hydrogen.irr_hy │ │ │ │ drogen profit_index_hydrogen │ 1.764 │ unitless │ 1 │ finance_subgroup_all_hydrogen.profit │ │ │ │ _index_hydrogen investor_payback_period_hydro │ 8 │ year │ 1 │ finance_subgroup_all_hydrogen.invest gen │ │ │ │ or_payback_period_hydrogen price_hydrogen │ 5.6545 │ USD/kg │ 1 │ finance_subgroup_all_hydrogen.price_ │ │ │ │ hydrogen LCOH_breakdown │ n/a │ n/a │ n/a │ finance_subgroup_all_hydrogen.LCOH_b │ │ │ │ reakdown finance_subgroup_dispatched_hydro │ │ │ │ gen │ │ │ │ adjusted_capex_opex_comp │ │ │ │ capex_adjusted_wind │ 1,340,728,828.12 │ USD │ 1 │ finance_subgroup_dispatched_hydrogen │ │ │ │ .capex_adjusted_wind opex_adjusted_wind │ 40,221,864.84 │ USD/year │ 1 │ finance_subgroup_dispatched_hydrogen │ │ │ │ .opex_adjusted_wind varopex_adjusted_wind │ 0. │ USD/year │ 30 │ finance_subgroup_dispatched_hydrogen │ │ │ │ .varopex_adjusted_wind capex_adjusted_electrolyzer │ 692,350,691.4 │ USD │ 1 │ finance_subgroup_dispatched_hydrogen │ │ │ │ .capex_adjusted_electrolyzer opex_adjusted_electrolyzer │ 16,954,576.06 │ USD/year │ 1 │ finance_subgroup_dispatched_hydrogen │ │ │ │ .opex_adjusted_electrolyzer varopex_adjusted_electrolyzer │ 0. │ USD/year │ 30 │ finance_subgroup_dispatched_hydrogen │ │ │ │ .varopex_adjusted_electrolyzer capex_adjusted_h2_storage │ 141,771,187.31 │ USD │ 1 │ finance_subgroup_dispatched_hydrogen │ │ │ │ .capex_adjusted_h2_storage opex_adjusted_h2_storage │ 5,866,969.53 │ USD/year │ 1 │ finance_subgroup_dispatched_hydrogen │ │ │ │ .opex_adjusted_h2_storage varopex_adjusted_h2_storage │ 0. │ USD/year │ 30 │ finance_subgroup_dispatched_hydrogen │ │ │ │ .varopex_adjusted_h2_storage total_capex_adjusted │ 2,174,850,706.84 │ USD │ 1 │ finance_subgroup_dispatched_hydrogen │ │ │ │ .total_capex_adjusted total_opex_adjusted │ 63,043,410.43 │ USD/year │ 1 │ finance_subgroup_dispatched_hydrogen │ │ │ │ .total_opex_adjusted total_varopex_adjusted │ 0. │ USD/year │ 30 │ finance_subgroup_dispatched_hydrogen │ │ │ │ .total_varopex_adjusted hydrogen_finance_default │ │ │ │ LCOH │ 7.5734 │ USD/kg │ 1 │ finance_subgroup_dispatched_hydrogen │ │ │ │ .LCOH wacc_hydrogen │ 0.0625 │ percent │ 1 │ finance_subgroup_dispatched_hydrogen │ │ │ │ .wacc_hydrogen crf_hydrogen │ 0.0723 │ percent │ 1 │ finance_subgroup_dispatched_hydrogen │ │ │ │ .crf_hydrogen irr_hydrogen │ 0.09 │ percent │ 1 │ finance_subgroup_dispatched_hydrogen │ │ │ │ .irr_hydrogen profit_index_hydrogen │ 1.8037 │ unitless │ 1 │ finance_subgroup_dispatched_hydrogen │ │ │ │ .profit_index_hydrogen investor_payback_period_hydro │ 9 │ year │ 1 │ finance_subgroup_dispatched_hydrogen gen │ │ │ │ .investor_payback_period_hydrogen price_hydrogen │ 7.5734 │ USD/kg │ 1 │ finance_subgroup_dispatched_hydrogen │ │ │ │ .price_hydrogen LCOH_breakdown │ n/a │ n/a │ n/a │ finance_subgroup_dispatched_hydrogen │ │ │ │ .LCOH_breakdown finance_subgroup_electricity │ │ │ │ adjusted_capex_opex_comp │ │ │ │ capex_adjusted_wind │ 1,340,728,828.12 │ USD │ 1 │ finance_subgroup_electricity.capex_a │ │ │ │ djusted_wind opex_adjusted_wind │ 40,221,864.84 │ USD/year │ 1 │ finance_subgroup_electricity.opex_ad │ │ │ │ justed_wind varopex_adjusted_wind │ 0. │ USD/year │ 30 │ finance_subgroup_electricity.varopex │ │ │ │ _adjusted_wind total_capex_adjusted │ 1,340,728,828.12 │ USD │ 1 │ finance_subgroup_electricity.total_c │ │ │ │ apex_adjusted total_opex_adjusted │ 40,221,864.84 │ USD/year │ 1 │ finance_subgroup_electricity.total_o │ │ │ │ pex_adjusted total_varopex_adjusted │ 0. │ USD/year │ 30 │ finance_subgroup_electricity.total_v │ │ │ │ aropex_adjusted electricity_finance_default │ │ │ │ LCOE │ 0.0591 │ USD/kW/h │ 1 │ finance_subgroup_electricity.LCOE wacc_electricity │ 0.0625 │ percent │ 1 │ finance_subgroup_electricity.wacc_el │ │ │ │ ectricity crf_electricity │ 0.0723 │ percent │ 1 │ finance_subgroup_electricity.crf_ele │ │ │ │ ctricity irr_electricity │ 0.09 │ percent │ 1 │ finance_subgroup_electricity.irr_ele │ │ │ │ ctricity profit_index_electricity │ 1.5752 │ unitless │ 1 │ finance_subgroup_electricity.profit_ │ │ │ │ index_electricity investor_payback_period_elect │ 8 │ year │ 1 │ finance_subgroup_electricity.investo ricity │ │ │ │ r_payback_period_electricity price_electricity │ 0.0591 │ USD/kW/h │ 1 │ finance_subgroup_electricity.price_e │ │ │ │ lectricity LCOE_breakdown │ n/a │ n/a │ n/a │ finance_subgroup_electricity.LCOE_br │ │ │ │ eakdown h2_storage │ │ │ │ DemandOpenLoopStorageController │ │ │ │ hydrogen_unmet_demand │ 0. │ kg/h │ 8760 │ h2_storage.hydrogen_unmet_demand hydrogen_unused_commodity │ 1,787.9425 │ kg/h │ 8760 │ h2_storage.hydrogen_unused_commodity hydrogen_set_point │ 5,000. │ kg/h │ 8760 │ h2_storage.hydrogen_set_point total_hydrogen_unmet_demand │ 0. │ kg/h │ 1 │ h2_storage.total_hydrogen_unmet_dema │ │ │ │ nd hydrogen_soc │ 0.9368 │ unitless │ 8760 │ h2_storage.hydrogen_soc storage_duration │ 240. │ h │ 1 │ h2_storage.storage_duration LinedRockCavernStorageCostModel │ │ │ │ CapEx │ 128,437,698.56 │ USD │ 1 │ h2_storage.CapEx OpEx │ 5,315,184.83 │ USD/year │ 1 │ h2_storage.OpEx VarOpEx │ 0. │ USD/year │ 30 │ h2_storage.VarOpEx cost_year │ 2018 │ n/a │ n/a │ h2_storage.cost_year SimpleGenericStorage │ │ │ │ hydrogen_out │ 5,000. │ kg/h │ 8760 │ h2_storage.hydrogen_out total_hydrogen_produced │ 43,800,000. │ kg │ 1 │ h2_storage.total_hydrogen_produced annual_hydrogen_produced │ 43,800,000. │ kg/year │ 30 │ h2_storage.annual_hydrogen_produced replacement_schedule │ 0. │ unitless │ 30 │ h2_storage.replacement_schedule capacity_factor │ 0.4017 │ unitless │ 30 │ h2_storage.capacity_factor rated_hydrogen_production │ 12,446.0073 │ kg/h │ 1 │ h2_storage.rated_hydrogen_production operational_life │ 30 │ year │ 1 │ h2_storage.operational_life wind │ │ │ │ ATBWindPlantCostModel │ │ │ │ CapEx │ 1,245,000,000. │ USD │ 1 │ wind.CapEx OpEx │ 37,350,000. │ USD/year │ 1 │ wind.OpEx VarOpEx │ 0. │ USD/year │ 30 │ wind.VarOpEx cost_year │ 2019 │ n/a │ n/a │ wind.cost_year PYSAMWindPlantPerformanceModel │ │ │ │ electricity_out │ 356,785.76 │ kW │ 8760 │ wind.electricity_out total_electricity_produced │ 3,125,443,255.17 │ kW*h │ 1 │ wind.total_electricity_produced annual_electricity_produced │ 3,125,443,255.17 │ kW*h/year │ 30 │ wind.annual_electricity_produced replacement_schedule │ 0. │ unitless │ 30 │ wind.replacement_schedule capacity_factor │ 0.4299 │ unitless │ 30 │ wind.capacity_factor rated_electricity_production │ 830,000. │ kW │ 1 │ wind.rated_electricity_production operational_life │ 30 │ year │ 1 │ wind.operational_life wind_to_electrolyzer_cable │ │ │ │ electricity_out │ 356,785.76 │ kW │ 8760 │ wind_to_electrolyzer_cable.electrici │ │ │ │ ty_out site │ │ │ │ site_component │ │ │ │ latitude │ 35.2019 │ deg │ 1 │ site.latitude longitude │ -101.945 │ deg │ 1 │ site.longitude elevation │ 0. │ m │ 1 │ site.elevation ╵ ╵ ╵ ╵
Now, we can visualize the demand profiles over time.
fig, (ax1, ax2) = plt.subplots(2, 1, sharex=True, figsize=(8, 6), layout="tight")
start_hour = 0
end_hour = 200
total_time_steps = model.prob.get_val("h2_storage.hydrogen_soc").size
demand_profile = [
model.technology_config["technologies"]["h2_storage"]["model_inputs"]["control_parameters"][
"demand_profile"
]
* 1e-3
] * total_time_steps
xvals = list(range(start_hour, end_hour))
ax1.plot(
xvals,
model.prob.get_val("h2_storage.hydrogen_soc", units="percent")[start_hour:end_hour],
label="SOC",
)
ax2.plot(
xvals,
model.prob.get_val("h2_storage.hydrogen_in", units="t/h")[start_hour:end_hour],
linestyle="-",
label="H$_2$ Produced (kg)",
)
ax2.plot(
xvals,
model.prob.get_val("h2_storage.hydrogen_unused_commodity", units="t/h")[start_hour:end_hour],
linestyle=":",
label="H$_2$ Unused (kg)",
)
ax2.plot(
xvals,
model.prob.get_val("h2_storage.hydrogen_unmet_demand", units="t/h")[start_hour:end_hour],
linestyle=":",
label="H$_2$ Unmet Demand (kg)",
)
ax2.plot(
xvals,
model.prob.get_val("h2_storage.hydrogen_out", units="t/h")[start_hour:end_hour],
linestyle="-",
label="H$_2$ Delivered (kg)",
)
ax2.plot(
xvals,
demand_profile[start_hour:end_hour],
linestyle="--",
label="H$_2$ Demand (kg)",
)
ax1.set_ylabel("SOC (%)")
ax1.grid()
ax1.set_axisbelow(True)
ax1.set_xlim(0, 200)
ax1.set_ylim(0, 50)
ax2.set_ylabel("H$_2$ Hourly (t)")
ax2.set_xlabel("Timestep (hr)")
ax2.grid()
ax2.set_axisbelow(True)
ax2.set_ylim(0, 20)
ax2.set_yticks(range(0, 21, 2))
plt.legend(ncol=3)
fig.show()