modelFeedInStation_CavernComp
Extends from TransiEnt.Producer.Gas.Electrolyzer.Base.PartialFeedInStation.
Information
1. Purpose of model
This model represents a feed in station where hydrogen is produced with an electrolyzer, compressed with an ionic compressor, stored in an underground storage (salt cavern) and fed into a natural gas grid. The storage can by bypassed and the hydrogen is fed directly into the grid.
2. Level of detail, physical effects considered, and physical insight
see sub models
3. Limits of validity
see sub models
4. Interfaces
P_el_set: input for the set value for the electric power
m_flow_feedIn: input for the possible feed-in mass flow into the natural grid etc.
epp: electric power port for the electrolyzer
gasPortOut: outlet of the hydrogen
5. Nomenclature
(no elements)
6. Governing Equations
(no remarks)
7. Remarks for Usage
For start up, a small hydrogen mass flow for the electrolyzer can be set to allow for simpler initialisation.
Constant mass flow 'm_flow_hydrogenDemand_constant' is pulled from hydrogen storage if storage pressure is above p_min_Low_constantDemand. If pressure falls below 'p_minLow' hydrogen in storage is only used for supply of 'm_flow_hydrogenDemand_constant' and no more hydrogen can be fed in.
8. Validation
Tested in check model "TransiEnt.Producer.Gas.Electrolyzer.Systems.Check.Test_FeedInStation_CavernComp"
9. References
(no remarks)
10. Version History
Model created by Lisa Andresen (andresen@tuhh.de) in September 2016
Model revised by Carsten Bode (c.bode@tuhh.de) in Apr 2018 (fixed for update to ClaRa 1.3.0)
Model modified by Oliver Schülting (oliver.schuelting@tuhh.de) in Mar 2020: added boundary for constant internal hydrogen demand
Model modified by Carsten Bode (c.bode@tuhh.de) in May 2020: added option to use isothermal junction
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| SI.ActivePower | P_el_min | 0.05*P_el_n | Minimal power of ely, when only 1 stack is working at 2%(?) |
| Real | Ti | 0.1 | Ti for feed-in control |
| Real | Td | 0.1 | Td for feed-in control |
| Boolean | integrateMassFlow | false | True, if mass flow shall be integrated |
| General | |||
| Boolean | usePowerPort (from PartialFeedInStation) | true | True if power port shall be used |
| General › General | |||
| TILMedia.VLEFluidTypes.BaseVLEFluid | medium_h2 | simCenter.gasModel3 | Hydrogen model to be used |
| Boolean | useFluidAdapter | true | true: fluid adapter to natural gas at gasPortOut is used, false: no adapter, then set medium_ng to medium_h2 |
| TILMedia.VLEFluidTypes.BaseVLEFluid | medium_ng | simCenter.gasModel1 | Natural gas or output gas with H2 model to be used |
| General › Electrolyzer | |||
| SI.ActivePower | P_el_n | 1e6 | nominal power of electrolyser |
| SI.ActivePower | P_el_max | 1.68*P_el_n | Maximum power of electrolyzer |
| SI.ActivePower | P_el_overload | 1.0*P_el_n | Power at which overload region begins |
| Modelica.Units.SI.Efficiency | eta_n | 0.75 | Nominal efficency refering to the GCV (min = 0, max = 1) |
| Modelica.Units.SI.Efficiency | eta_scale | 0 | Sets a with increasing input power linear degrading efficiency coefficient (min = 0, max = 1) |
| SI.Time | t_overload | 0.5*3600 | Maximum admissible time the electrolyzer can work in overload region in seconds |
| Real | coolingToHeatingRatio | 1 | Defines how much faster electrolyzer cools down than heats up |
| Integer | startState | 1 | Initial state of the electrolyzer (1: ready to overheat, 2: working in overload, 3: cooling down) |
| SI.AbsolutePressure | p_out | 35e5 | Hydrogen output pressure from electrolyser |
| SI.Temperature | T_out | 283.15 | Hydrogen output temperature from electrolyser |
| Real | specificWaterConsumption | 10 | Mass of water per mass of hydrogen |
| Electrolyzer | |||
| SI.ActivePower | P_el_cooldown | P_el_n | Power below which cooldown of electrolyzer starts |
| General › Initialization | |||
| SI.MassFlowRate | m_flow_start | 0.0 | Sets initial value for m_flow from a buffer |
| Junction | |||
| Boolean | useIsothMix | false | Choose if the temperature changes in junction should be neglected |
| General › Junction | |||
| SI.SpecificEnthalpy | h_start_junction | TILMedia.Internals.VLEFluidConfigurations.FullyMixtureCompatible.VLEFluidFunctions.specificEnthalpy_pTxi(medium_h2, p_start_junction, T_start_junction, medium_h2.xi_default) | Initial specific enthalpy (can be calculated by StaticCycle) |
| SI.AbsolutePressure | p_start_junction | simCenter.p_amb_const + simCenter.p_eff_2 | Initial pressure in the junction |
| SI.Temperature | T_start_junction | simCenter.T_ground | Initial temperature |
| ClaRa.Basics.Units.Volume | volume_junction | 0.1 | Volume of the junction |
| Integer | initOption | 0 | Type of initialisation |
| Storage | |||
| Boolean | start_pressure | true | true if a start pressure is defined, false if a start mass is defined |
| SI.Pressure | p_maxHigh | 175e5 | Maximum pressure |
| SI.Pressure | p_maxLow | 174e5 | Lower value of the storage where it can be filled again |
| SI.Pressure | p_minLow | 58e5 | if valve open and p<p_low, close valve |
| SI.Pressure | p_minHigh | 60e5 | if valve closed and p>p_high, open valve |
| SI.Pressure | p_minLow_constantDemand | 50e5 | storage can be emptied via 'm_flow_hydrogenDemand_constant' up to 'p_minLow_constantDemand' |
| SI.Volume | V_geo | 1e5 | Geometric volume of storage |
| SI.Height | height | 3.779*V_geo^(1/3) | Height of storage |
| SI.CoefficientOfHeatTransfer | alpha_nom | 133 | Heat transfer coefficient inside the storage cylinder |
| SI.ThermodynamicTemperature | T_surrounding | 317.15 | Temperature of the surrounding media |
| SI.Thickness | thickness_salt | 2 | Thickness of the salt that changes temperature |
| SI.Mass | m_start | 1 | Stored gas mass at t=0 |
| SI.Pressure | p_start | 1e5 | Pressure in storage at t=0 |
| SI.ThermodynamicTemperature | T_start | 283.15 | Temperature of gas in storage at t=0 |
| Boolean | StoreAllHydrogen | false | All Hydrogen is stored before beeing fed in |
| Storage › Control | |||
| SI.MassFlowRate | m_flow_hydrogenDemand_constant | 0 | constant hydrogen demand if hydrogen is available |
| Storage › Compressor | |||
| SI.Efficiency | eta_mech_compressor | 0.95 | Mechanical efficiency |
| SI.Efficiency | eta_el_compressor | 0.97 | Electrical efficiency |
| General › Controller | |||
| Real | k | 2e8 | Gain for feed-in control |
| Statistics | |||
| Real | Cspec_demAndRev_other_water | simCenter.Cspec_demAndRev_other_water | Specific demand-related cost per cubic meter water of electrolyzer |
| TransiEnt.Basics.Units.MonetaryUnitPerEnergy | Cspec_demAndRev_el_electrolyzer | simCenter.Cspec_demAndRev_free | Specific demand-related cost per electric energy for electrolyzer |
| Modelica.Units.SI.Power | P_el_n_compressor | 1e5 | Nominal power of compressor for cost calculation |
| TransiEnt.Basics.Units.MonetaryUnitPerEnergy | Cspec_demAndRev_el_other | simCenter.Cspec_demAndRev_el_70_150_GWh | Specific demand-related cost per electric energy for compressor and start gas generation |
| Summary | |||
| Boolean | useFluidModelsForSummary | false | True, if fluid models shall be used for the summary |
| Coolant | |||
| Boolean | useFluidCoolantPort | false | choose if fluid port for coolant shall be used |
| Boolean | useHeatPort | false | choose if heat port for coolant shall be used |
| Boolean | useVariableCoolantOutputTemperature | false | choose if temperature of cooland output shall be defined by input |
| SI.Temperature | T_out_coolant_target | 500 + 273.15 | output temperature of coolant - will be limited by temperature which is technically feasible |
| Boolean | externalMassFlowControl | false | choose if heat port for coolant shall be used |
Connectors
| Type | Name | Default | Description |
|---|---|---|---|
| TransiEnt.Basics.Interfaces.General.MassFlowRateIn | m_flow_feedIn (from PartialFeedInStation) | Mass flow rate input | |
| TransiEnt.Basics.Interfaces.Electrical.ElectricPowerIn | P_el_set (from PartialFeedInStation) | Electric power input | |
| TransiEnt.Basics.Interfaces.Gas.RealGasPortOut | gasPortOut (from PartialFeedInStation) | ||
| TransiEnt.Basics.Interfaces.Electrical.ActivePowerPort | epp (from PartialFeedInStation) | ||
| Basics.Interfaces.Thermal.FluidPortIn | fluidPortIn | ||
| Basics.Interfaces.Thermal.FluidPortOut | fluidPortOut | ||
| Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_a | heat | ||
| Basics.Interfaces.General.TemperatureIn | T_set_coolant_out |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| TransiEnt.SimCenter | simCenter (from PartialFeedInStation) | ||
| SI.Mass | mass_H2_fedIn | Hydrogen mass fed into grid | |
| SI.ActivePower | P_el_max_is | if controlTotalElyStorage.overloadController.state == 3 then controlTotalElyStorage.overloadController.P_el_cooldown elseif controlTotalElyStorage.feedInStorageController.storageFull then controlTotalElyStorage.feedInStorageController.limPID.y else P_el_max | |
| TransiEnt.Producer.Gas.Electrolyzer.PEMElectrolyzer_L1 | electrolyzer | ||
| TransiEnt.Storage.Gas.UndergroundGasStorageHeatTransfer_L2 | storage | ||
| TransiEnt.Producer.Gas.Electrolyzer.Controller.TotalFeedInStorageController | controlTotalElyStorage | ||
| TransiEnt.Components.Gas.Compressor.CompressorRealGasIsothermal_L1_simple | compressorCavern | ||
| Summary | summary | ||
| Components.Boundaries.Gas.BoundaryRealGas_Txim_flow | boundary_Txim_flow2 | ||
| Modelica.Blocks.Sources.RealExpression | realExpression | ||
| Components.Gas.VolumesValvesFittings.Fittings.RealGasJunction_L2_isoth | mix_H2_isoth |
Contents
| Name | Description |
|---|---|