This package contains base classes that are used to construct the models in Buildings.Fluid.HeatExchangers.CoolingTowers.
Extends from Modelica.Icons.BasesPackage (Icon for packages containing base classes).
Name | Description |
---|---|
CoolingTower | Base class for cooling towers |
Extends from Buildings.Fluid.Interfaces.TwoPortHeatMassExchanger (Partial model transporting one fluid stream with storing mass or energy), Buildings.BaseClasses.BaseIcon (Base icon).
Type | Name | Default | Description |
---|---|---|---|
replaceable package Medium | PartialMedium | Medium in the component | |
Nominal condition | |||
MassFlowRate | m_flow_nominal | Nominal mass flow rate [kg/s] | |
Pressure | dp_nominal | Pressure [Pa] | |
Initialization | |||
MassFlowRate | m_flow.start | 0 | Mass flow rate from port_a to port_b (m_flow > 0 is design flow direction) [kg/s] |
Pressure | dp.start | 0 | Pressure difference between port_a and port_b [Pa] |
Assumptions | |||
Boolean | allowFlowReversal | system.allowFlowReversal | = true to allow flow reversal, false restricts to design direction (port_a -> port_b) |
Advanced | |||
MassFlowRate | m_flow_small | 1E-4*abs(m_flow_nominal) | Small mass flow rate for regularization of zero flow [kg/s] |
Boolean | homotopyInitialization | true | = true, use homotopy method |
Diagnostics | |||
Boolean | show_V_flow | false | = true, if volume flow rate at inflowing port is computed |
Boolean | show_T | true | = true, if actual temperature at port is computed (may lead to events) |
Flow resistance | |||
Boolean | from_dp | false | = true, use m_flow = f(dp) else dp = f(m_flow) |
Boolean | linearizeFlowResistance | false | = true, use linear relation between m_flow and dp for any flow rate |
Real | deltaM | 0.1 | Fraction of nominal flow rate where flow transitions to laminar |
Dynamics | |||
Nominal condition | |||
Time | tau | 30 | Time constant at nominal flow (if energyDynamics <> SteadyState) [s] |
Equations | |||
Dynamics | energyDynamics | Modelica.Fluid.Types.Dynamic... | Formulation of energy balance |
Dynamics | massDynamics | energyDynamics | Formulation of mass balance |
Initialization | |||
AbsolutePressure | p_start | Medium.p_default | Start value of pressure [Pa] |
Temperature | T_start | Medium.T_default | Start value of temperature [K] |
MassFraction | X_start[Medium.nX] | Medium.X_default | Start value of mass fractions m_i/m [kg/kg] |
ExtraProperty | C_start[Medium.nC] | fill(0, Medium.nC) | Start value of trace substances |
Type | Name | Description |
---|---|---|
FluidPort_a | port_a | Fluid connector a (positive design flow direction is from port_a to port_b) |
FluidPort_b | port_b | Fluid connector b (positive design flow direction is from port_a to port_b) |
output RealOutput | TLvg | Leaving water temperature |
partial model CoolingTower "Base class for cooling towers" extends Buildings.Fluid.Interfaces.TwoPortHeatMassExchanger( redeclare final Buildings.Fluid.MixingVolumes.MixingVolume vol, show_T=true); extends Buildings.BaseClasses.BaseIcon;Modelica.Blocks.Interfaces.RealOutput TLvg "Leaving water temperature"; Modelica.SIunits.HeatFlowRate Q_flow = QWat_flow.y "Heat input into water circuit"; Modelica.SIunits.TemperatureDifference TAppAct(min=0, nominal=1, displayUnit="K") "Actual approach temperature"; protected Modelica.SIunits.Temperature TAirHT "Air temperature that is used to compute the heat transfer with the water";Modelica.Thermal.HeatTransfer.Sources.PrescribedHeatFlow preHea "Prescribed heat flow"; Modelica.Blocks.Sources.RealExpression QWat_flow(y=m_flow*( Medium.specificEnthalpy(Medium.setState_pTX( p=port_b.p, T=TAirHT + TAppAct, X=inStream(port_b.Xi_outflow))) - inStream(port_a.h_outflow))) "Heat input into water"; Modelica.Thermal.HeatTransfer.Sensors.TemperatureSensor T_Vol "Water temperature in volume, or leaving water temperature"; equationconnect(preHea.port, vol.heatPort); connect(QWat_flow.y, preHea.Q_flow); connect(T_Vol.port, vol.heatPort); connect(T_Vol.T, TLvg); end CoolingTower;