modelOpenTank

Simple tank with inlet/outlet ports

Extends from Modelica.Fluid.Vessels.BaseClasses.PartialLumpedVessel (Lumped volume with a vector of fluid ports and replaceable heat transfer model).

Information

Model of a tank that is open to the ambient at the fixed pressure p_ambient.

The vector of connectors ports represents fluid ports at configurable heights, relative to the bottom of tank. Fluid can flow either out of or in to each port.

The following assumptions are made:
  • The tank is filled with a single or multiple-substance medium having a density higher than the density of the ambient medium.
  • The fluid has uniform density, temperature and mass fractions
  • No liquid is leaving the tank through the open top; the simulation breaks with an assertion if the liquid level growths over the height.

The port pressures represent the pressures just after the outlet (or just before the inlet) in the attached pipe. The hydraulic resistances portsData.zeta_in and portsData.zeta_out determine the dissipative pressure drop between tank and port depending on the direction of mass flow. See VesselPortsData and [Idelchik, Handbook of Hydraulic Resistance, 2004].

With the setting use_portsData=false, the port pressure represents the static head at the height of the respective port. The relationship between pressure drop and mass flow rate at the port must then be provided by connected components; Heights of ports as well as kinetic and potential energy of fluid entering or leaving are not taken into account anymore.

Parameters

TypeNameDefaultDescription
SI.HeightheightHeight of tank
SI.AreacrossAreaArea of tank
SI.ReynoldsNumberRe_turbulent (from PartialLumpedVessel)100cf. suddenExpansion
Assumptions › Ambient
Medium.AbsolutePressurep_ambientsystem.p_ambientTank surface pressure
Medium.TemperatureT_ambientsystem.T_ambientTank surface Temperature
Initialization
SI.Heightlevel_start0.5*heightStart value of tank level
Medium.AbsolutePressurep_start (from PartialLumpedVolume)system.p_startStart value of pressure
Booleanuse_T_start (from PartialLumpedVolume)true= true, use T_start, otherwise h_start
Medium.TemperatureT_start (from PartialLumpedVolume)if use_T_start then system.T_start else Medium.temperature_phX(p_start, h_start, X_start)Start value of temperature
Medium.SpecificEnthalpyh_start (from PartialLumpedVolume)if use_T_start then Medium.specificEnthalpy_pTX(p_start, T_start, X_start) else Medium.h_defaultStart value of specific enthalpy
Medium.MassFraction[Medium.nX]X_start (from PartialLumpedVolume)Medium.X_defaultStart value of mass fractions m_i/m
Medium.ExtraProperty[Medium.nC]C_start (from PartialLumpedVolume)Medium.C_defaultStart value of trace substances
Assumptions › Dynamics
Types.DynamicsenergyDynamics (from PartialLumpedVolume)system.energyDynamicsFormulation of energy balance
Types.DynamicsmassDynamics (from PartialLumpedVolume)system.massDynamicsFormulation of mass balance
Types.DynamicssubstanceDynamics (from PartialLumpedVolume)massDynamicsFormulation of substance balance
Types.DynamicstraceDynamics (from PartialLumpedVolume)massDynamicsFormulation of trace substance balance
General › Ports
IntegernPorts (from PartialLumpedVessel)0Number of ports
Booleanuse_portsData (from PartialLumpedVessel)true= false to neglect pressure loss and kinetic energy
Modelica.Fluid.Vessels.BaseClasses.VesselPortsDataportsData (from PartialLumpedVessel)Data of inlet/outlet ports
Advanced › Port properties
Medium.MassFlowRatem_flow_nominal (from PartialLumpedVessel)if system.use_eps_Re then system.m_flow_nominal else 1e2*system.m_flow_smallNominal value for mass flow rates in ports
SI.MassFlowRatem_flow_small (from PartialLumpedVessel)if system.use_eps_Re then system.eps_m_flow*m_flow_nominal else system.m_flow_smallRegularization range at zero mass flow rate
Booleanuse_Re (from PartialLumpedVessel)system.use_eps_Re= true, if turbulent region is defined by Re, otherwise by m_flow_small
Assumptions › Heat transfer
Booleanuse_HeatTransfer (from PartialLumpedVessel)false= true to use the HeatTransfer model

Connectors

TypeNameDefaultDescription
VesselFluidPorts_b[nPorts]ports (from PartialLumpedVessel)Fluid inlets and outlets
Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_aheatPort (from PartialLumpedVessel)

Components

TypeNameDefaultDescription
SI.HeightlevelLevel height of tank
SI.VolumeVActual tank volume
Modelica.Fluid.Systemsystem (from PartialLumpedVolume)System properties
SI.VolumefluidVolume (from PartialLumpedVolume)Volume
Medium.BasePropertiesmedium (from PartialLumpedVolume)
SI.EnergyU (from PartialLumpedVolume)Internal energy of fluid
SI.Massm (from PartialLumpedVolume)Mass of fluid
SI.MassmXi (from PartialLumpedVolume)Masses of independent components in the fluid
SI.MassmC (from PartialLumpedVolume)Masses of trace substances in the fluid
Medium.ExtraProperty[Medium.nC]C (from PartialLumpedVolume)Trace substance mixture content
SI.MassFlowRatemb_flow (from PartialLumpedVolume)Mass flows across boundaries
SI.MassFlowRatembXi_flow (from PartialLumpedVolume)Substance mass flows across boundaries
Medium.ExtraPropertyFlowRatembC_flow (from PartialLumpedVolume)Trace substance mass flows across boundaries
SI.EnthalpyFlowRateHb_flow (from PartialLumpedVolume)Enthalpy flow across boundaries or energy source/sink
SI.HeatFlowRateQb_flow (from PartialLumpedVolume)Heat flow across boundaries or energy source/sink
SI.PowerWb_flow (from PartialLumpedVolume)Work flow across boundaries or source term
Medium.EnthalpyFlowRate[nPorts]ports_H_flow (from PartialLumpedVessel)
Medium.MassFlowRate[nPorts,Medium.nXi]ports_mXi_flow (from PartialLumpedVessel)
Medium.MassFlowRatesum_ports_mXi_flow (from PartialLumpedVessel)Substance mass flows through ports
Medium.ExtraPropertyFlowRate[nPorts,Medium.nC]ports_mC_flow (from PartialLumpedVessel)
Medium.ExtraPropertyFlowRatesum_ports_mC_flow (from PartialLumpedVessel)Trace substance mass flows through ports
HeatTransferheatTransfer (from PartialLumpedVessel)
Medium.DensityportInDensities (from PartialLumpedVessel)Densities of the fluid at the device boundary
SI.VelocityportVelocities (from PartialLumpedVessel)Velocities of fluid flow at device boundary
SI.EnergyFlowRateports_E_flow (from PartialLumpedVessel)Flow of kinetic and potential energy at device boundary
Reals (from PartialLumpedVessel)Curve parameters for port flows vs. port pressures; for further details see, Modelica Tutorial: Ideal switching devices
Realports_penetration (from PartialLumpedVessel)Penetration of port with fluid, depending on fluid level and port diameter
SI.AreaportAreas (from PartialLumpedVessel){Modelica.Constants.pi/4*portsData_diameter[i]^2 for i in 1:nPorts}
Medium.AbsolutePressurevessel_ps_static (from PartialLumpedVessel)Static pressures inside the vessel at the height of the corresponding ports, zero flow velocity
SI.MassFlowRatem_flow_turbulent (from PartialLumpedVessel)

Revisions

  • Dec. 12, 2008 by Rüdiger Franke: move port definitions to BaseClasses.PartialLumpedVessel; also use energy and mass balance from common base class
  • Dec. 8, 2008 by Michael Wetter (LBNL):
    Implemented trace substances.
  • Jan. 6, 2006 by Katja Poschlad, Manuel Remelhe (AST Uni Dortmund), Martin Otter (DLR):
    Implementation based on former tank model.
  • Oct. 29, 2007 by Carsten Heinrich (ILK Dresden):
    Adapted to the new fluid library interfaces:
    • FluidPorts_b is used instead of FluidPort_b (due to it is defined as an array of ports)
    • Port name changed from port to ports
    Updated documentation.
  • Apr. 25, 2006 by Katrin Prölß (TUHH):
    Limitation to bottom ports only, added inlet and outlet loss factors.