|
| 1 | +# Electrolyzer Plant |
| 2 | + |
| 3 | +The hydrogen electrolyzer modules use the [electrolyzer](https://github.com/NREL/electrolyzer) package developed by the National Renewable Energy Laboratory to predict hydrogen output of hydrogen electrolyzer plants. This repot contains models for PEM and Alkaline electrolyzer cell types. |
| 4 | + |
| 5 | +To create a hydrogen electrolzer plant, set `component_type` = `ElectrolyzerPlant` in the input dictionary (.yaml file). |
| 6 | + |
| 7 | + |
| 8 | +## Inputs |
| 9 | + |
| 10 | +#### Required Parameters |
| 11 | +The parameters listed below are required unless otherwise specifice as *Optional*. |
| 12 | + |
| 13 | +- `general`: General simulation parameters. |
| 14 | +- `initial_conditions`: Initial conditions for the simulation including: |
| 15 | + - `power_available_kw`: Initial power available to the electrolyzer [kW] |
| 16 | +- `electrolyzer`: Electrolyzer plant specific parameters including: |
| 17 | + - `initialize`: boolean. Whether to initialize the electrolyzer. |
| 18 | + - `initial_power_kW`: Initial power input to the electrolyzer [kW]. |
| 19 | + - `supervisor`: |
| 20 | + - `system_rating_MW`: Total system rating in MW. |
| 21 | + - `n_stacks`: Number of electrolyzer stacks in the plant. |
| 22 | + - `stack`: Electrolyzer stack parameters including: |
| 23 | + - `cell_type`: Type of electrolyzer cell (e.g., PEM, Alkaline). |
| 24 | + - `max_current`: Maximum current of the stack [A]. |
| 25 | + - `temperature`: Stack operating temperature [degC]. |
| 26 | + - `n_cells`: Number of cells per stack. |
| 27 | + - `min_power`: Minimum power for electrolyzer operation [kW]. |
| 28 | + - `stack_rating_kW`: Stack rated power [kW]. |
| 29 | + - `include_degradation_penalty`: *Optional* Whether to include degradation penalty. |
| 30 | + - `hydrogen_degradation_penalty`: *Optional* boolean, wether degradation is applied to hydrogen (True) or power (False) |
| 31 | + - `cell_params`: Electrolyzer cell parameters including: |
| 32 | + - `cell_area`: Area of individual cells in the stack [cm^2]. |
| 33 | + - `turndown_ratio`: Minimum turndown ratio for stack operation [between 0 and 1]. |
| 34 | + - `max current_density`: Maximum current density [A/cm^2]. |
| 35 | + - `p_anode`: Anode operating pressure [bar]. |
| 36 | + - `p_cathode`: Cathode operating pressure [bar]. |
| 37 | + - `alpha_a`: anode charge transfer coefficient. |
| 38 | + - `alpha_c`: cathode charge transfer coefficient. |
| 39 | + - `i_0_a`: anode exchange current density [A/cm^2]. |
| 40 | + - `i_0_c`: cathode exchange current density [A/cm^2]. |
| 41 | + - `e_m`: membrane thickness [cm]. |
| 42 | + - `R_ohmic_elec`: electrolyte resistance [A*cm^2]. |
| 43 | + - `f_1`: faradaic coefficien [mA^2/cm^4]. |
| 44 | + - `f_2`: faradaic coefficien [mA^2/cm^4]. |
| 45 | + - `degradation`: Electrolyzer degradation parameters including: |
| 46 | + - `eol_eff_percent_loss`: End of life efficiency percent loss [%]. |
| 47 | + - `PEM_params` or `ALK_params`: Degradation parameters specific to PEM or Alkaline cells: |
| 48 | + - `rate_steady`: Rate of voltage degradation under steady operation alone |
| 49 | + - `rate_fatigue`: Rate of voltage degradation under variable operation alone |
| 50 | + - `rate_onoff`: Rate of voltage degradation per on/off cycle |
| 51 | + - `controller`: Electrolyzer control parameters including: |
| 52 | + - `control_type`: Controller type for electrolyzer plant operation. |
| 53 | + - `costs`: *Optional* Cost parameters for the electrolyzer plant including: |
| 54 | + - `plant_params`: |
| 55 | + - `plant_life`: integer, Plant life in years |
| 56 | + - `pem_location`: Location of the PEM electrolyzer. Options are |
| 57 | + [onshore, offshore, in-turbine] |
| 58 | + - `grid_connected`: boolean, Whether the plant is connected to the grid or not |
| 59 | + - `feedstock`: Parameters related to the feedstock including: |
| 60 | + - `water_feedstock_cost`: Cost of water per kg of water |
| 61 | + - `water_per_kgH2`: Amount of water required per kg of hydrogen produced |
| 62 | + - `opex`: Operational expenditure parameters including: |
| 63 | + - `var_OM`: Variable operation and maintenance cost per kW |
| 64 | + - `fixed_OM`: Fixed operation and maintenance cost per kW-year |
| 65 | + - `stack_replacement`: Parameters related to stack replacement costs including: |
| 66 | + - `d_eol`: End of life cell voltage value [V] |
| 67 | + - `stack_replacement_percent`: Stack replacement cost as a percentage of CapEx [0,1] |
| 68 | + - `capex`: Capital expenditure parameters including: |
| 69 | + - `capex_learning_rate`: Capital expenditure learning rate. |
| 70 | + - `ref_cost_bop`: Reference cost of balance of plant per kW. |
| 71 | + - `ref_size_bop`: Reference size of balance of plant in kW. |
| 72 | + - `ref_cost_pem`: Reference cost of PEM electrolyzer stack per kW. |
| 73 | + - `ref_size_pem`: Reference size of PEM electrolyzer stack in kW. |
| 74 | + - `finances`: Financial parameters including: |
| 75 | + - `discount_rate`: Discount rate for financial calculations [%]. |
| 76 | + - `install_factor`: Installation factor for capital expenditure [0,1]. |
| 77 | +- `log_channels`: List of output channels to log (see [Logging Configuration](elec-logging-configuration) below) |
| 78 | + |
| 79 | + |
| 80 | +## Outputs |
| 81 | +(elec-logging-configuration)= |
| 82 | +**Logging Configuration** |
| 83 | + |
| 84 | +The `log_channels` parameter controls which outputs are written to the HDF5 output file. This is a list of channel names. The `power` channel is always logged, even if not explicitly specified. |
| 85 | + |
| 86 | + |
| 87 | +### Available Channels |
| 88 | + |
| 89 | +**Scalar Channels:** |
| 90 | +- `H2_output`: Total hydrogen produced during the last timestep |
| 91 | +- `H2_mfr`: Mass flow rate of the hydrogen production in kg/s |
| 92 | +- `power`: Power that the electrolyzer plant used to create hydrogen (kW). This follows the convention that power consumed is negative power. |
| 93 | +- `Power_input_kw`: Power allocated to the electrolyzer plant to use (kW) |
| 94 | +- `stacks_on`: Total number of stacks producing hydrogen |
| 95 | + |
| 96 | +**Array Channels:** |
| 97 | +- `stacks_waiting`: Boolean list of the stacks that are waiting to start producing hydrogen (True for stacks waiting, False for stacks not waiting) |
| 98 | + |
| 99 | + |
| 100 | +**Example:** |
| 101 | +```yaml |
| 102 | +ele: |
| 103 | + component_type: ElectrolyzerPlant |
| 104 | + log_channels: |
| 105 | + - power |
| 106 | + - H2_output |
| 107 | + - H2_mfr |
| 108 | + initial_conditions: |
| 109 | + - power_available_kw: 3000 |
| 110 | + electrolyzer: |
| 111 | + # ... other parameters |
| 112 | +``` |
| 113 | + |
| 114 | +If `log_channels` is not specified, only `power` will be logged. |
| 115 | + |
| 116 | +## References |
| 117 | +1. Z. Tully, G. Starke, K. Johnson and J. King, "An Investigation of Heuristic Control Strategies for Multi-Electrolyzer Wind-Hydrogen Systems Considering Degradation," 2023 IEEE Conference on Control Technology and Applications (CCTA), Bridgetown, Barbados, 2023, pp. 817-822, doi: 10.1109/CCTA54093.2023.10252187. |
0 commit comments