h2integrate.simulation.technologies.hydrogen.h2_storage.on_turbine.on_turbine_hydrogen_storage#

Author: Cory Frontin Date: 23 Jan 2023 Institution: National Renewable Energy Lab Description: This file handles the cost, sizing, and pressure of on-turbine H2 storage

To use this class, specify a turbine

Costs are assumed to be in 2003 dollars [1]

Sources:
  • [1] Kottenstette 2003 (use their chosen favorite design)

param - year:

construction year

type - year:

int

param - turbine:

contains various information about the turbine, including tower_length, section_diameters, and section_heights

type - turbine:

dict

API member functions:
  • get_capex(): return the total additional capex necessary for H2 production, in 2003 dollars

  • get_opex(): return the result of a simple model for operational expenditures for pressure

    vessel, in 2003 dollars

  • get_mass_empty(): return the total additional empty mass necessary for H2 production, in kg

  • get_capacity_H2(): return the capacity mass of hydrogen @ operating pressure, ambient temp.,

    in kg

  • get_pressure_H2() return the operating hydrogen pressure, in Pa

Classes

PressurizedTower(year, turbine)

class h2integrate.simulation.technologies.hydrogen.h2_storage.on_turbine.on_turbine_hydrogen_storage.PressurizedTower(year, turbine)#
Parameters:
  • year (int)

  • turbine (dict)

run()#
get_volume_tower_inner()#

get the inner volume of the tower in m^3

assume t << d

get_volume_tower_material(pressure=None)#

get the material volume of the tower in m^3

if pressurized, use pressure to set thickness increment due to pressurization

assume t << d

params:
  • pressure: gauge pressure of H2 (defaults to design op. pressure)

Returns:

- Vmat_wall -- material volume of vertical tower - Vmat_bot: material volume of bottom cap (nonzero only if pressurized) - Vmat_top: material volume of top cap (nonzero only if pressurized)

Parameters:

pressure (float | None)

get_mass_tower_material(pressure=None)#

get the material mass of the tower in m^3

if pressurized, use pressure to set thickness increment due to pressurization

assume t << d

params:
  • pressure: gauge pressure of H2 (defaults to design op. pressure)

Returns:

- Mmat_wall -- material mass of vertical tower - Mmat_bot: material mass of bottom cap - Mmat_top: material mass of top cap

Parameters:

pressure (float | None)

get_cost_tower_material(pressure=None)#

get the material cost of the tower in m^3

if pressurized, use pressure to set thickness increment due to pressurization

assume t << d

params:
  • pressure: gauge pressure of H2 (defaults to design op. pressure)

Returns:

- Vmat_wall -- material cost of vertical tower - Vmat_bot: material cost of bottom cap - Vmat_top: material cost of top cap

Parameters:

pressure (float | None)

get_operational_mass_fraction()#

get the fraction of stored hydrogen to tower mass

following Kottenstette

get_cost_nontower(traditional=False, naive=True)#
Parameters:
  • traditional (bool)

  • naive (bool)

get_capex()#

return the total additional capex necessary for H2 production

get_opex()#

a simple model for operational expenditures for PV

maintenance for pressure vessel based on an annual maintenance rate against the vessel-specific capital expenditure, plus wages times staff hours per year

get_mass_empty()#

return the total additional empty mass necessary for H2 production in kg

get_capacity_H2()#

get the ideal gas H2 capacity in kg

get_pressure_H2()#
static compute_cap_thickness(pressure, diameter, strength_yield, safetyfactor_Sy=1.5, efficiency_weld=0.8, constant=0.1)#

compute the necessary thickness for a pressure vessel cap

$$ t= d sqrt{frac{C P}{S E}} $$ with weld joint efficiency E, allowable stress S, pressure P, diameter of pressure action d, edge restraint factor C

assumed:
  • C= 0.10: Fig-UG-34 of ASME Code S VII, div. 1, via Rao's _Companion

    Guide to the ASME Boiler and Pressure Vessel Code_ (2009), fig. 21.3. type of sketch (a) assumed

  • E= 0.80: conservatively butt weld, inspected

using the ASME pressure vessel code definitions, and values given in Rao _Companion Guide to the ASME Boiler and Pressure Vessel Code_ (2009)

static compute_frustum_volume(height, base_diameter, top_diameter)#

return the volume of a frustum (truncated cone)

static get_crossover_pressure(welded_joint_efficiency, ultimate_tensile_strength, d_t_ratio)#

get burst/fatigue crossover pressure

following Kottenstette 2003

Parameters:
  • welded_joint_efficiency (float)

  • ultimate_tensile_strength (float)

  • d_t_ratio (float)

static get_thickness_increment_const(pressure, ultimate_tensile_strength)#

compute Goodman equation-based thickness increment in m

following Kottenstette 2003

Parameters:
  • pressure (float)

  • ultimate_tensile_strength (float)