modelControlVolumeEvaporation
Extends from Buildings.DHC.BaseClasses.Steam.PartialSaturatedControlVolume (Partial control volume for evaporation/condensation processes).
Information
This model represents an evaporation process of water with liquid and vapor phases in equilibrium and at a saturated state. Further information regarding the model formulation and assumptions are in the base class Buildings.DHC.BaseClasses.Steam.PartialSaturatedControlVolume.
References
Kathryn Hinkelman, Saranya Anbarasu, Michael Wetter, Antoine Gautier, Wangda Zuo. 2022. “A Fast and Accurate Modeling Approach for Water and Steam Thermodynamics with Practical Applications in District Heating System Simulation,” Energy, 254(A), pp. 124227. 10.1016/j.energy.2022.124227
Kathryn Hinkelman, Saranya Anbarasu, Michael Wetter, Antoine Gautier, Baptiste Ravache, Wangda Zuo 2022. “Towards Open-Source Modelica Models For Steam-Based District Heating Systems.” Proc. of the 1st International Workshop On Open Source Modelling And Simulation Of Energy Systems (OSMSES 2022), Aachen, German, April 4-5, 2022. 10.1109/OSMSES54027.2022.9769121
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Units.SI.MassFlowRate | m_flow_small (from PartialTwoPortTwoMedium) | 1E-4*abs(m_flow_nominal) | Small mass flow rate for regularization of zero flow |
| Modelica.Units.SI.Volume | V (from PartialSaturatedControlVolume) | Total volume | |
| Nominal condition | |||
| Modelica.Units.SI.MassFlowRate | m_flow_nominal (from PartialTwoPortTwoMedium) | Nominal mass flow rate | |
| Advanced › Diagnostics | |||
| Boolean | show_T (from PartialTwoPortTwoMedium) | false | = true, if actual temperature at port is computed |
| Assumptions | |||
| Boolean | allowFlowReversal (from PartialTwoPortTwoMedium) | true | = false to simplify equations, assuming, but not enforcing, no flow reversal. Used only if model has two ports. |
| Dynamics › Equations | |||
| Modelica.Fluid.Types.Dynamics | energyDynamics (from PartialTwoPortTwoMedium) | Modelica.Fluid.Types.Dynamics.DynamicFreeInitial | Type of energy balance: dynamic (3 initialization options) or steady state |
| Modelica.Fluid.Types.Dynamics | massDynamics (from PartialTwoPortTwoMedium) | energyDynamics | Type of mass balance: dynamic (3 initialization options) or steady state |
| Initialization | |||
| Medium_b.AbsolutePressure | p_start (from PartialTwoPortTwoMedium) | Medium_b.p_default | Start value of pressure |
| Medium_b.Temperature | T_start (from PartialTwoPortTwoMedium) | Medium_b.T_default | Start value of temperature |
| Modelica.Units.SI.Volume | VWat_start (from PartialSaturatedControlVolume) | V/2 | Start value of liquid volume |
| Boolean | fixed_p_start | false | Set to true if p_start is to be used as an explicit initial equation, not an initial guess |
Connectors
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Fluid.Interfaces.FluidPort_a | port_a (from PartialTwoPortTwoMedium) | Fluid connector a (positive design flow direction is from port_a to port_b) | |
| Modelica.Fluid.Interfaces.FluidPort_b | port_b (from PartialTwoPortTwoMedium) | Fluid connector b (positive design flow direction is from port_a to port_b) | |
| Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_a | heatPort (from PartialSaturatedControlVolume) | Heat port | |
| Modelica.Blocks.Interfaces.RealOutput | VLiq (from PartialSaturatedControlVolume) | Liquid volume |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Units.SI.MassFlowRate | m_flow (from PartialTwoPortTwoMedium) | port_a.m_flow | Mass flow rate from port_a to port_b (m_flow > 0 is design flow direction) |
| Modelica.Units.SI.PressureDifference | dp (from PartialTwoPortTwoMedium) | port_a.p - port_b.p | Pressure difference between port_a and port_b |
| Medium_a.ThermodynamicState | sta_a (from PartialTwoPortTwoMedium) | Medium_a.setState_phX(port_a.p, noEvent(actualStream(port_a.h_outflow)), noEvent(actualStream(port_a.Xi_outflow))) | Medium properties in port_a |
| Medium_b.ThermodynamicState | sta_b (from PartialTwoPortTwoMedium) | Medium_b.setState_phX(port_b.p, noEvent(actualStream(port_b.h_outflow)), noEvent(actualStream(port_b.Xi_outflow))) | Medium properties in port_b |
| MediumWat.ThermodynamicState | stateWat (from PartialSaturatedControlVolume) | Saturated state, liquid water | |
| MediumSte.ThermodynamicState | stateSte (from PartialSaturatedControlVolume) | Saturated state, steam | |
| MediumSte.AbsolutePressure | p (from PartialSaturatedControlVolume) | Pressure inside volume | |
| MediumSte.Temperature | T (from PartialSaturatedControlVolume) | Temperature inside volume | |
| Modelica.Units.SI.Volume | VSte (from PartialSaturatedControlVolume) | Volume of steam vapor | |
| Modelica.Units.SI.Volume | VWat (from PartialSaturatedControlVolume) | Volume of liquid water phase | |
| Modelica.Units.SI.VolumeFlowRate | VWat_flow (from PartialSaturatedControlVolume) | Volumetric flow rate of liquid water | |
| MediumSte.SpecificEnthalpy | hSte (from PartialSaturatedControlVolume) | Specific enthalpy of steam vapor | |
| MediumWat.SpecificEnthalpy | hWat (from PartialSaturatedControlVolume) | Specific enthalpy of liquid water | |
| MediumSte.Density | rhoSte (from PartialSaturatedControlVolume) | Density of steam vapor | |
| MediumWat.Density | rhoWat (from PartialSaturatedControlVolume) | Density of liquid water | |
| Modelica.Units.SI.Mass | m (from PartialSaturatedControlVolume) | Total mass of volume | |
| Modelica.Units.SI.Energy | U (from PartialSaturatedControlVolume) | Internal energy | |
| Modelica.Units.SI.MassFlowRate | mWat_flow (from PartialSaturatedControlVolume) | Water mass flow rate | |
| Modelica.Units.SI.MassFlowRate | mSte_flow (from PartialSaturatedControlVolume) | Steam mass flow rate |
Revisions
-
September 15, 2023, by Kathryn Hinkelman:
Updated publication references. -
February 26, 2022 by Kathryn Hinkelman:
Moved control volume formulation into a base class for reusability in condensation and evaporation instances. -
July 22, 2021 by Kathryn Hinkelman:
First implementation.