Iron electrowinning models#
H2I contains iron electrowinning models to simulate the reduction of iron oxide to pure iron and removal of impurities. The main input feedstock is iron ore, while the output commodity is “sponge iron”, i.e. iron that is typically brittle (“spongey”) and contains less carbon than most steel alloys. This sponge iron can then be used in an electric arc furnace (EAF) to produce steel.
There are currently three iron electrowinning processes modeled in H2I: - Aqueous Hydroxide Electrolysis (AHE) - Molten Salt Electrolysis (MSE) - Molten Oxide Electrolysis (MOE)
In reality, the exact composition and structure of the resulting sponge iron will differ depending on the process and the conditions. Currently, H2I models do not make these distinctions, as the technology is new and we are still building out the capability. Instead, the models in their current form are based on two recent studies of electrowinning technology as a whole.
The first study is by Humbert et al., who focus specifically on iron and the three technologies above.
These authors gather information on the specific energy required for electrolysis and associated pretreatments needed, which is applied in the HumbertEwinPerformanceComponent performance model.
In their supporting information, they also model the full operational expenditures for each process, which is applied in the HumbertStinnEwinCostComponent cost model.
The second study is by Stinn & Allanore, who present a generalized capital cost model for electrowinning of many different metals.
These authors use both cost data and physical parameters from existing studies to fit the model to be applicable to any metal, including iron.
This model is applied in the HumbertStinnEwinCostComponent cost model.
To use this model, specify "HumbertEwinPerformanceComponent" as the performance model and "HumbertStinnEwinCostComponent" as the cost model.
The performance model will use Humbert et al.’s energy consumption data to consume electricity as a feedstock and feed this information to the cost model.
The cost model will calculate capex costs based on the Stinn correlations and opex costs based on the Humbert SI.
Performance Model#
- class h2integrate.converters.iron.humbert_ewin_perf.HumbertEwinConfig(*, electrolysis_type, ore_fe_wt_pct, capacity_mw)#
Bases:
BaseConfigConfiguration class for the Humbert iron electrowinning performance model.
- Parameters:
electrolysis_type (str) – The type of electrowinning being performed. Options: “ahe”: Aqueous Hydroxide Electrolysis (AHE) “mse”: Molten Salt Electrolysis (MSE) “moe”: Molten Oxide Electrolysis (MOE)
ore_fe_wt_pct (float) – The iron content of the ore coming in, expressed as a percentage.
capacity_mw (float) – The MW electrical capacity of the electrowinning plant.
- electrolysis_type: str#
- ore_fe_wt_pct: float#
- capacity_mw: float#
- class h2integrate.converters.iron.humbert_ewin_perf.HumbertEwinPerformanceComponent(**kwargs)#
Bases:
PerformanceModelBaseClassOpenMDAO component for the Humbert iron electrowinning performance model.
- OpenMDAO Inputs
- electricity_in#
Electric power input available in kW for each timestep.
- Type:
array
- iron_ore_in#
Iron ore mass flow available in kg/h for each timestep.
- Type:
array
- ore_fe_concentration#
The iron content of the ore coming in, given as a percentage.
- Type:
float
- spec_energy_cons_fe#
The specific electrical energy consumption required to win pure iron (Fe) from iron ore. These are currently calculated as averages between the high and low stated values in Table 10 of Humbert et al., but this is exposed as an OpenMDAO variable to probe the effect of specific energy consumption on iron cost.
- Type:
float
- capacity#
The electrical capacity of the electrowinning plant in MW.
- Type:
float
- NaOH_in#
Mass flow of NaOH available in kg/h for each timestep.
- Type:
array
- CaCl2_in#
Mass flow of CaCl2 available in kg/h for each timestep.
- Type:
array
- NaOH_ratio#
Ratio of NaOH consumption to annual iron production in kg/kg.
- Type:
float
- CaCl2_ratio#
Ratio of CaCl2 consumption to annual iron production in kg/kg.
- Type:
float
- OpenMDAO Outputs
- electricity_consumed#
Electric power consumption in kW for each timestep.
- Type:
array
- limiting_input#
An array of integers indicating which input is the limiting factor for iron production at each timestep: 0 = iron ore, 1 = electricity, 2 = capacity
- Type:
array
- sponge_iron_out#
Sponge iron production in kg/h for each timestep.
- Type:
array
- total_sponge_iron_produced#
Total annual sponge iron production in kg/y.
- Type:
float
- output_capacity#
Maximum possible annual sponge iron production in kg/y.
- Type:
float
- NaOH_consumed#
Mass flow of NaOH consumed in kg/h for each timestep.
- Type:
array
- CaCl2_consumed#
Mass flow of CaCl2 consumed in kg/h for each timestep.
- Type:
array
- initialize()#
Perform any one-time initialization run at instantiation.
- setup()#
Declare inputs and outputs.
- Available attributes:
name pathname comm options
- compute(inputs, outputs)#
Computation for the OM component.
For a template class this is not implement and raises an error.
Cost Model#
- class h2integrate.converters.iron.humbert_stinn_ewin_cost.HumbertStinnEwinCostConfig(cost_year=2018, labor_rate_cost=55.9, anode_cost_per_tonne=1660.716, annual_labor_hours_per_position=2000, *, electrolysis_type)#
Bases:
CostModelBaseConfigConfiguration class for the Humbert iron electrowinning cost model.
Default values for the labor_rate_cost, anode_cost_per_tonne, and annual_labor_hours_per_position came from the SI spreadsheet of the Humbert Opex model and were adjusted to 2018 dollars using CPI.
- Parameters:
electrolysis_type (str) – The type of electrowinning being performed. Options: “ahe”: Aqueous Hydroxide Electrolysis (AHE) “mse”: Molten Salt Electrolysis (MSE) “moe”: Molten Oxide Electrolysis (MOE)
cost_year (int) – The dollar year of costs output by the model. Defaults to 2018, the dollar year in which data was given in the Stinn paper
labor_rate_cost (float, optional) – labor cost in USD/person-hour. Defaults to 55.90, the number used in the Humbert OpEx model and adjusted to 2018 USD using CPI.
anode_cost_per_tonne (float, optional) – anode cost in USD/tonne. Defaults to 1660.716, the number used in the Humbert OpEx model and adjusted to 2018 USD using CPI.
annual_labor_hours_per_position (float | int, optional) – The labor hours per position per year. Defaults to 2000, the number used in the Humbert OpEx model.
- electrolysis_type: str#
- cost_year: int#
- labor_rate_cost: float#
- anode_cost_per_tonne: float#
- annual_labor_hours_per_position: int | float#
- class h2integrate.converters.iron.humbert_stinn_ewin_cost.HumbertStinnEwinCostComponent(**kwargs)#
Bases:
CostModelBaseClassOpenMDAO component for the Humbert/Stinn iron electrowinning cost model.
Default values for many inputs are set for 3 technology classes:
Aqueous Hydroxide Electrolysis (AHE)
Molten Salt Electrolysis (MSE)
Molten Oxide Electrolysis (MOE)
All of these values come from the SI spreadsheet for the Humbert paper that can be downloaded at doi.org/10.1007/s40831-024-00878-3 except for the default anode replacement interval. These are exposed to OpenMDAO for potential future optimization/sensitivity analysis.
We calculate both CapEx and OpEx in this component. CapEx is calculated using the Stinn & Allanore model. OpEx is calculated using the Humbert et al. model.
- OpenMDAO Inputs
- output_capacity#
Maximum annual iron production capacity in kg/year.
- Type:
float
- iron_ore_in#
Iron ore mass flow available in kg/h for each timestep.
- Type:
array
- electricity_in#
Electric power input available in kW for each timestep.
- Type:
array
- specific_energy_electrolysis#
The specific electrical energy consumption required to win pure iron (Fe) from iron ore - JUST the electrolysis step.
- Type:
float
- electrolysis_temp#
Electrolysis temperature (°C).
- Type:
float
- electron_moles#
Moles of electrons per mole of iron product.
- Type:
float
- current_density#
Current density (A/m²).
- Type:
float
- electrode_area#
Electrode area per cell (m²).
- Type:
float
- current_efficiency#
Current efficiency (dimensionless).
- Type:
float
- cell_voltage#
Cell operating voltage (V).
- Type:
float
- rectifier_lines#
Number of rectifier lines.
- Type:
float
- positions#
Labor rate (position-years/tonne).
- Type:
float
- NaOH_ratio#
Ratio of NaOH consumed to Fe produced.
- Type:
float
- CaCl2_ratio#
Ratio of CaCl2 consumed to Fe produced.
- Type:
float
- limestone_ratio#
Ratio of limestone consumed to Fe produced.
- Type:
float
- anode_ratio#
Ratio of anode mass to annual iron production.
- Type:
float
- anode_replacement_interval#
Replacement interval of anodes (years).
- Type:
float
- OpenMDAO Outputs
- CapEx#
Total capital cost of the electrowinning plant (USD).
- Type:
float
- OpEx#
Yearly operating expenses in USD/year which do NOT depend on plant output.
- Type:
float
- VarOpEx#
Yearly operating expenses in USD/year which DO depend on plant output.
- Type:
float
- processing_capex#
Portion of the capex that is apportioned to preprocessing of ore.
- Type:
float
- electrolysis_capex#
Portion of the capex that is apportioned to electrolysis.
- Type:
float
- rectifier_capex#
Portion of the capex that is apportioned to rectifiers.
- Type:
float
- labor_opex#
Portion of the opex that is apportioned to labor.
- Type:
float
- NaOH_opex#
Portion of the opex that is apportioned to NaOH.
- Type:
float
- CaCl2_opex#
Portion of the opex that is apportioned to CaCl2.
- Type:
float
- limestone_opex#
Portion of the opex that is apportioned to limestone.
- Type:
float
- anode_opex#
Portion of the opex that is apportioned to anodes.
- Type:
float
- ore_opex#
Portion of the opex that is apportioned to ore.
- Type:
float
- elec_opex#
Portion of the opex that is apportioned to electricity.
- Type:
float
- initialize()#
Perform any one-time initialization run at instantiation.
- setup()#
Declare inputs and outputs.
- Available attributes:
name pathname comm options
- compute(inputs, outputs, discrete_inputs, discrete_outputs)#
Computation for the OM component.
For a template class this is not implement and raises an error.