# Tank (IL)

**Libraries:**

Simscape /
Fluids /
Isothermal Liquid /
Tanks & Accumulators

## Description

The Tank (IL) block models a container with up to six input ports,
**A** through **F**, within an isothermal liquid
system. The tank outputs fluid volume at port **V** and fluid level at
port **L** as physical signals. The block models the hydrostatic
pressure difference between the liquid surface and the inlet height level. The tank can
be pressurized to a constant, user-specified value or to atmospheric pressure.

### Fluid Volume

The volume of fluid in the tank is determined from the total mass flow into the tank:

$$V=\frac{M}{\rho},$$

where:

*M*is the total mass in the tank supplied by all ports.*ρ*is the fluid density.

Due to the constant pressure in the tank, the liquid volume inside the tank changes based on mass flow rate. Note that the converse is true for pipes, where pressure is a function of fixed fluid volumes.

If the tank fluid volume exceeds the specified capacity of the tank, you can
choose to be notified. Set the **Liquid volume above max capacity**
parameter to `Warning`

if you would like to receive a
warning when this occurs during simulation. Set the parameter to
`Error`

if you would like the simulation to stop when
this occurs.

### Fluid Level

If **Tank volume parameterization** is set to
`Constant cross-section area`

, the fluid level in the
tank is determined from the fluid volume *V*, due to the constant
cross-sectional area of the tank. Otherwise, the fluid level can be specified as
tabulated data in the `Tabulated data - volume vs. level`

option.

When the level in the tank falls below the inlet height, the assumption that fluid entirely fills the volume of the connecting blocks may not be valid. Connections to a Pipe (IL) block, which is based on this assumption, may in this case return unphysical results. If you expect to model tank fluid levels below tank inlet height(s), connect the Tank (IL) block to your system with a Partially Filled Pipe (IL) block instead.

Like the **Liquid volume above max capacity** parameter, you can
be notified if the tank fluid level falls below the height of the inlet port(s)
during your simulation by changing the **Liquid level below inlet
height** parameter setting.

### Mass Flow Rate

If you have more than one port enabled, the equations below apply to each port. The mass flow rate at the inlet port is:

$${\dot{m}}_{port}={A}_{port}\frac{\sqrt{2\rho}}{\sqrt{\xi}}\frac{\Delta {p}_{port}}{{\left[\Delta {p}_{port}{}^{2}+\Delta {p}_{port,crit}^{2}\right]}^{1/4}},$$

where:

*A*_{port}is the**Inlet cross-sectional area**.*ρ*is the fluid density.*ζ*is the**Inlet pressure loss coefficient**.

The inlet pressure difference due to inlet losses is:

$$\Delta {p}_{port}={p}_{port}-(P+\Delta {p}_{elev,port}),$$

where:

*p*_{port}is the pressure at the inlet port.*P*is the**Tank pressurization**if the**Pressurization specification**parameter is set to`Specified pressure`

. Otherwise,*P*is the atmospheric pressure.*Δp*_{elev,port}is the hydrostatic pressure difference at the specified port**Inlet height**: $$\Delta {p}_{elev,port}=\rho gL$$, where*L*is either the difference in height between the fluid level and the inlet height or zero, whichever is larger.

The critical pressure difference,
*Δp*_{crit}, is the pressure differential
associated with the *critical Reynolds number*,
*Re*_{crit}, which is the point of
transition between laminar and turbulent flow in the fluid:

$$\Delta {p}_{crit}=\frac{\pi \rho P{R}_{loss}}{8{A}_{port}}{\left(\nu {\mathrm{Re}}_{crit}\right)}^{2},$$

where *ν* is the fluid kinematic
viscosity.

### Variables

To set the priority and initial target values for the block variables prior to simulation, use
the **Initial Targets** section in the block dialog box or
Property Inspector. For more information, see Set Priority and Initial Target for Block Variables.

Nominal values provide a way to specify the expected magnitude of a variable in a model.
Using system scaling based on nominal values increases the simulation robustness. Nominal
values can come from different sources, one of which is the **Nominal
Values** section in the block dialog box or Property Inspector. For more
information, see Modify Nominal Values for a Block Variable.

## Examples

## Ports

### Conserving

### Output

## Parameters

## Extended Capabilities

## Version History

**Introduced in R2020a**