.. _sec.units.bunker: Bunker ====== Bunker unit performs accumulation of the solid part of the input material with ideal mixing, see figure below. .. image:: ../static/images/003_models/bunker.png :width: 200px :alt: :align: center The model takes into account only the solid phase, the rest of the phases are bypassed. .. math:: \frac{dm}{dt} = \dot{m}_{in} - \dot{m}_{out} Two models for the bunker outflow :math:`m_{out}` are available: - **Adaptive**: User defines only the target mass :math:`m_{target}` of the bunker and :math:`\dot{m}_{out}` is being adjusted by the system to match the user-defined target mass :math:`m_{target}`, depending on inflow mass :math:`\dot{m}_{in}`, current bunker mass :math:`{m}` and :math:`m_{target}`: . .. math:: \dot{m}_{out} = \dot{m}_{in}\left(\frac{2m}{m + m_{target}}\right)^2 - **Constant**: User defines timepoints with the desired bunker outflow :math:`\dot{m}_{requested}`. The system tries to provide this outflow, if enough material :math:`{m}` is in bunker. Otherwise the :math:`\dot{m}_{out} = \dot{m}_{in}`. The smoothing function is implemented to let the numerical solver provide reliable results: .. math:: f_{smooth} = \frac{1}{2} + \frac{1}{2} \cdot \tanh{\left(50\cdot\left(m - \dot{m}_{requested}\cdot{dt}\right)\right)} .. math:: \dot{m}_{out} = f_{smooth} \cdot \dot{m}_{requested} + \left(1 - f_{smooth} \right) \cdot \min\left(\dot{m}_{in}, \dot{m}_{requested}\right) To correctly take into account the dynamics of the process, norms of each overall parameter (mass flow, temperature, pressure) are maintained as: .. math:: \frac{d||X||}{dt} = (X(t) - X(t-1))^2 - ||X|| For compounds fractions: .. math:: \frac{d||C||}{dt} = \sqrt{\sum_{i}^{N_{c}}{(w_{i}(t) - w_{i}(t-1))^2}} - ||C|| For each distributed parameter: .. math:: \frac{d||D_{i}||}{dt} = \sqrt{\sum_{j}^{N_{D_{i}}}{(w_{i,j}(t) - w_{i,j}(t-1))^2}} - ||D|| .. note:: Notations: :math:`{m}` – current mass inside the bunker :math:`m_{target}` – target mass inside the bunker :math:`\dot{m}_{in}` – solids input mass flow :math:`\dot{m}_{out}` – solids output mass flow :math:`X(t)` – value of an overall parameter at time point :math:`t` :math:`w(t)` – mass fraction at time point :math:`t` :math:`N_{c}` – number of defined compounds :math:`N_{D_{i}}` – number of classes in distribution :math:`i` .. note:: Solid phase is required for the simulation. .. note:: Input parameters needed for the simulation: +--------------------+-----------------------------------+-------+---------------------------------+ | Name | Description | Units | Boundaries | +====================+===================================+=======+=================================+ | Target mass | Target mass within the bunker | [kg] | Target mass > 0 | +--------------------+-----------------------------------+-------+---------------------------------+ | Relative tolerance | Relative tolerance for DAE solver | [-] | >0 (0 for flowsheet-wide value) | +--------------------+-----------------------------------+-------+---------------------------------+ | Absolute tolerance | Absolute tolerance for DAE solver | [-] | >0 (0 for flowsheet-wide value) | +--------------------+-----------------------------------+-------+---------------------------------+ .. seealso:: a demostration file at ``Example Flowsheets/Units/Bunker.dlfw``. |