MaximaLabs
All unit operations

Thermal energy storage simulation

1 inlet -> 1 outlet; charges or discharges a sensible-heat / PCM store (reports state of charge and time to full/empty)

Governing equations

The exact equations the solver works for a thermal energy storage — the same math shown in the app's "Theory" panel, not a black box.

Tout=Tbottom+ΔTapp (charge),Tout=TtopΔTapp (discharge)T_{out} = T_{bottom} + \Delta T_{app}\ (\text{charge}),\qquad T_{out} = T_{top} - \Delta T_{app}\ (\text{discharge})
Q˙=n˙(hinhout),Q˙loss=UA(TˉTamb),Q˙net=Q˙Q˙loss\dot Q = \dot n\,(h_{in} - h_{out}),\qquad \dot Q_{loss} = UA\,(\bar T - T_{amb}),\qquad \dot Q_{net} = \dot Q - \dot Q_{loss}
E=imicp(TiTmin)+mLfmelt,Ecap=mcp(TmaxTmin)+mLE = \sum_i m_i c_p (T_i - T_{min}) + m\,L\,f_{melt},\qquad E_{cap} = m\,c_p\,(T_{max} - T_{min}) + m\,L
SOC=E/Ecap,tfull=EcapEQ˙net,tempty=EQ˙netSOC = E / E_{cap},\qquad t_{full} = \frac{E_{cap} - E}{\dot Q_{net}},\qquad t_{empty} = \frac{E}{-\dot Q_{net}}
ToutT_{out}
fluid outlet temperature [K]
TtopT_{top}
hottest (top) layer temperature [K]
TbottomT_{bottom}
coldest (bottom) layer temperature [K]
ΔTapp\Delta T_{app}
approach temperature at the contact end [K]
Q˙\dot Q
heat into the store, negative when discharging [W]
Q˙loss\dot Q_{loss}
standing loss to ambient [W]
Q˙net\dot Q_{net}
net charge rate [W]
UAUA
loss conductance of the vessel [W/K]
Tˉ\bar T
mass-mean store temperature [K]
TambT_{amb}
ambient temperature [K]
n˙\dot n
fluid molar flow [mol/s]
hinh_{in}
inlet molar enthalpy [J/mol]
houth_{out}
outlet molar enthalpy [J/mol]
EE
stored energy above the window floor [J]
EcapE_{cap}
storage capacity over the operating window [J]
mim_i
mass of layer i [kg]
mm
total medium mass [kg]
cpc_p
medium specific heat [J/kg/K]
TiT_i
layer i temperature [K]
TminT_{min}
operating-window floor [K]
TmaxT_{max}
operating-window ceiling [K]
LL
PCM latent heat [J/kg]
fmeltf_{melt}
PCM melt fraction [-]
SOCSOC
state of charge [-]
tfullt_{full}
time to full at the net rate [s]
temptyt_{empty}
time to empty at the net rate [s]

Parameters

a heat store the process fluid charges or draws on. 'mass' [kg] of medium; 'medium' (water | solar_salt | thermal_oil | rock | concrete) or 'cp' [J/kg/K]; the store's state as 'temperature' [K] (well-mixed) or 'layer_temperatures' [K, hottest first] for a stratified store, or a PCM via 'melting_temperature' [K] + 'latent_heat' [J/kg] (+ 'melt_fraction' 0-1); 'mode' auto | charge | discharge (auto picks from the inlet T); 'approach' [K]; 't_min'/'t_max' [K] the operating window that defines capacity and state of charge; 'ua_loss' [W/K] + 'ambient_temperature' [K] for the standing loss; 'pressure_drop' [Pa]. Charging exhausts at the COLDEST layer, discharging draws from the HOTTEST, so a stratified store delivers hotter than a mixed one holding the same energy. Steady-state: the store's temperatures do not move within a solve -- the op reports time_to_full_hours / time_to_empty_hours at the current net rate. In the Dynamics run mode and in the live DCS engine the store's layers MOVE (DYN-TES / LIVE-TES): it charges and discharges through the flowsheet's own transient, a temperature loop downstream closes through it, and the standalone transient is the 'Thermal energy storage' analysis tool

Example flowsheets that use it

Stop fighting legacy software. Build your first flowsheet in 60 seconds.