modelHotWaterStorage_L4
Extends from TransiEnt.Basics.Icons.ThermalStorageBasic (Icon for thermal storage model).
Information
1. Purpose of model
One dimensional fluid storage model with stratification. Intention of the model is to represent a hot water storage in a bigger system with more accurate outflow temperatures compared to a zero dimensional storage model.
2. Level of detail, physical effects considered, and physical insight
L4: Storage is diveded in layered volumes. Each volume is ideally stirred. Between the fluid volumes heat conduction and boyancy are considered.
Heat losses to the ambient are simplified as heat conduction through top, side wall and bottom.
3. Limits of validity
The storage model includes just a vertical temperature distribution. No horizontal temperature distribution is modeled. Mixing effects due to the velocity of the fluid at inlets an outlets are not modelled.
4. Interfaces
Heat
heatLosses: ambient temperature and the collected heat flow to the ambient through top, side wall and bottom
heatPorts(optinal): temperature of connected fluid volume and heat flow to or from the fluid volume
Fluid
inletCHP: fluid connection from CHP, fluid flows to the storage
outletCHP: fluid connection to CHP, fluid flows from the storage
inletGrid: fluid connection from heating grid, fluid flows to the storage
outletGrid: fluid connection to heating Grid, fluid flows from the storage
inletSolar (optional): fluid connection from solar thermie, fluid flows depending on the temperature to different storage layers
outletSolar (optional): fluid connection to Solar thermie system, fluid flows from solar thermie to the storage
addPorts (optional): a various number of fluid connections to other components for example chiler.
5. Nomenclature
Just parameters and of the main model are described. Further explanations are in the sub models. medium: medium in the hot water storage. Has to be one phase fluid from the TILMedia library
nSeg: number of vertical layered fluid segments
maxTemperature_allowed: maximum allowed temperatur inside the storage
minTemperature_allowed: minimum allowed temperatur inside the storage
Use_Solar(Boolean): if true the ports inletSolar and outletSolar are active
Use_HeatPorts(Boolean): if true heatPorts is active
nHeatPorts: number of heat ports
nAdditionalFluidPorts: number of additional fluid ports
6. Governing Equations
Energy and mass or volume balance inside every volume segment. Heat losses due to one dimensional thermal conductance through top, bottom and side wall. Thermal conductance between volume segments. Modeled boyancy introducing heat flow from lower to higher segment if the lower segemnt has a higher temperature. Direct fluid connection between the volumes.
7. Remarks for Usage
The allowed minimum number of volume segements is two. The higher the number of segments the higher the number of equations.
8. Validation
The model is validated with hot water storage Vitocell 160E. The storage tank has a capacity of 1000 liters and an inner height of 1.88 metres (without insulation). The tank has multiple fluid inflow and outflow connections. The storage is used for climatisation and is installted at TUHH for research purposes. The model is validated against measurements and simulations from Harmsen. Parts of the Validation are shown in the figures below. The temperatures in the storage have been measured in four different heights (red: 1.592m, blue: 1.044m, green: 0.618m, black: 0.293m). The dotted lines show the measured temperatures, the dashed lines the temperatures from a reference simulation and the solid lines the temperatures of this model. The following picture shows the overnight cooling while no fluid flows entered or left the storage. The simulation was done with disretizing the storage in ten segemnts.
9. References
(no remarks)
10. Version History
Model created by Tobias Ramm (tobias.ramm@tuhh.de), Mar 2015
Revised and edited by Lisa Andresen (andresen@tuhh.de), Jun 2015
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| Integer | nSeg | 10 | Number of vertical storage segments |
| Integer | nSeg_min | 2 | Minimal allowed tank segments |
| SI.Length | Height | 2 | Height of Tank |
| SI.Volume | Volume | 1 | Volume of Tank |
| SI.Length | Height_port | if Add_ElectricHeater then Geometry.height else 1 | Height of HeatPorts |
| SI.Temperature | maxTemperature_allowed | 371.15 | maximal allowed temperature in tank in K |
| SI.Temperature | minTemperature_allowed | 283.15 | minimal allowed temperature in tank in K |
| SI.Temperature | refTemperature_max | 363.15 | Reference temperature for maximum filling level |
| SI.Temperature | refTemperature | 293.15 | Reference temperature for minimal filling level in K |
| SI.SpecificEnthalpy | h_ref | TILMedia.Internals.VLEFluidConfigurations.FullyMixtureCompatible.VLEFluidFunctions.specificEnthalpy_pTxi(medium, 1e5, refTemperature) | for calculation of stored energy |
| Integer | Use_Solar_Int | if Use_Solar then 1 else 0 | Has to be 1 if Use_Solar is true. Has to be 0 if Solar_Use is false |
| Integer | Add_FluidPorts_Int | if Add_FluidPorts then 10 else 0 | Add an arbitrary number of fluid ports |
| Integer | used_Ports_Int | Use_Solar_Int + Add_FluidPorts_Int | Describes which ports are in use |
| Integer | nPorts | if used_Ports_Int == 0 then 4 elseif used_Ports_Int == 1 then 5 + solarInPortGeometry.nSolar elseif used_Ports_Int == 10 then 4 + nAdditionalFluidPorts else 5 + solarInPortGeometry.nSolar + nAdditionalFluidPorts | Number of external fluid ports |
| Integer | PortCountVector | if used_Ports_Int == 0 then Utilities.get_PortCountVector_noSolar(nSeg, Geo_inletCHP.segment, Geo_outletCHP.segment, Geo_inletGrid.segment, Geo_outletGrid.segment) elseif used_Ports_Int == 1 then Utilities.get_PortCountVector(nSeg, Geo_inletCHP.segment, Geo_outletCHP.segment, Geo_inletGrid.segment, Geo_outletGrid.segment, solarInPortGeometry.nSolar, solarInPortGeometry.segment, Geo_outletSolar.segment) elseif used_Ports_Int == 10 then Utilities.get_PortCountVector_noSolar_addPorts(nSeg, Geo_inletCHP.segment, Geo_outletCHP.segment, Geo_inletGrid.segment, Geo_outletGrid.segment, nAdditionalFluidPorts, Geo_addPorts[:].segment) else Utilities.get_PortCountVector_addPorts(nSeg, Geo_inletCHP.segment, Geo_outletCHP.segment, Geo_inletGrid.segment, Geo_outletGrid.segment, solarInPortGeometry.nSolar, solarInPortGeometry.segment, Geo_outletSolar.segment, nAdditionalFluidPorts, Geo_addPorts[:].segment) | Vector contains the number of ports for each segement |
| Integer[nPorts] | ports | if used_Ports_Int == 0 then Utilities.get_Ports_noSolar(nSeg, Geo_inletCHP.segment, Geo_outletCHP.segment, Geo_inletGrid.segment, Geo_outletGrid.segment) elseif used_Ports_Int == 1 then Utilities.get_Ports(nSeg, Geo_inletCHP.segment, Geo_outletCHP.segment, Geo_inletGrid.segment, Geo_outletGrid.segment, solarInPortGeometry.nSolar, solarInPortGeometry.segment, Geo_outletSolar.segment) elseif used_Ports_Int == 10 then Utilities.get_Ports_noSolar_addPorts(nSeg, Geo_inletCHP.segment, Geo_outletCHP.segment, Geo_inletGrid.segment, Geo_outletGrid.segment, nAdditionalFluidPorts, Geo_addPorts[:].segment) else Utilities.get_Ports_addPorts(nSeg, Geo_inletCHP.segment, Geo_outletCHP.segment, Geo_inletGrid.segment, Geo_outletGrid.segment, solarInPortGeometry.nSolar, solarInPortGeometry.segment, Geo_outletSolar.segment, nAdditionalFluidPorts, Geo_addPorts[:].segment) | Vector contains for each in and outlet the port number to connect |
| SI.Pressure | p_nom | 1e5 | Nominal pressure of fluid in tank |
| SI.SpecificEnthalpy | h_nom | 1e5 | Nominal specific enthalpy of fluid in tank |
| Fluid Definition | |||
| TILMedia.VLEFluidTypes.BaseVLEFluid | medium | simCenter.fluid1 | Medium to be used |
| Ports | |||
| Boolean | Use_Solar | true | Solar fluid in and outflow |
| Boolean | Use_HeatPorts | true | Tank gets a heat flow from elelctrode |
| Integer | nHeatPorts | 1 | Segment the heating electrode is connected to |
| Boolean | Add_ElectricHeater | false | Add Electric Heater to Storage |
| Boolean | Add_FluidPorts | false | Add an arbitrary number of fluid ports |
| Integer | nAdditionalFluidPorts | 2 | Choose the number of additional fluid ports |
| Initialization | |||
| SI.Temperature[nSeg] | T_init | ones(nSeg)*(80 + 273.15) | |
| Heating condenser parameters | |||
| SI.SpecificEnthalpy[nSeg] | h_start | TILMedia.Internals.VLEFluidConfigurations.FullyMixtureCompatible.VLEFluidFunctions.specificEnthalpy_pTxi(medium, p_nom, T_init) | Start value of sytsem specific enthalpy |
Connectors
Components
| Type | Name | Default | Description |
|---|---|---|---|
| TransiEnt.SimCenter | simCenter | ||
| TransiEnt.ModelStatistics | modelStatistics | ||
| TransiEnt.Components.Statistics.Collectors.LocalCollectors.StorageCost | collectCosts_Storage | ||
| Base.Cylindric_Geometry | Geometry | ||
| TransiEnt.Storage.Heat.HotWaterStorage_L4.Base.FlatWall_HeatConduction | ConductanceTop | ||
| Base.CylindricWall_HeatTransfer | ConductanceWall | ||
| Base.FlatWall_HeatConduction | ConductanceBottom | ||
| Base.Fluid_Volume | Tank_Volume | Fluid Volumes the storage is divided in | |
| Base.Buoyancy | Buo | Models buoyancy due adding heat flows | |
| Base.ThermalConductor_Fluid | ConFluid | Thermal conductance between fluid segments | |
| Modelica.Thermal.HeatTransfer.Components.ThermalConductor | ConTop | Thermal conductance at top of storage | |
| Modelica.Thermal.HeatTransfer.Components.ThermalConductor | ConWall | Thermal conductance through side wall of storage | |
| Modelica.Thermal.HeatTransfer.Components.ThermalConductor | ConBottom | Thermal conductance at bottom of storage | |
| Modelica.Thermal.HeatTransfer.Components.ThermalCollector | thermalCollector | Collects the thermal losses from top, sidewall and bottom | |
| TransiEnt.Storage.Heat.HotWaterStorage_L4.Base.PortGeometry[nHeatPorts] | HeaPortsGeometry | Heights the heatPorts are connected to the storage | |
| Base.FlowSplit | flowSplit | distributes the fluid flow from the solar heating to the storage segments | |
| Base.PortGeometry | Geo_outletCHP | ||
| Base.PortGeometry | Geo_inletCHP | ||
| Base.PortGeometry | Geo_inletGrid | ||
| Base.PortGeometry | Geo_outletGrid | ||
| Base.PortGeometry | Geo_outletSolar | ||
| Base.SolarInPortGeometry | solarInPortGeometry | ||
| Base.PortGeometry | Geo_addPorts | ||
| Base.HeatingElectrode | heatingElectrode |
Contents
| Name | Description |
|---|---|