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 |
|---|---|
| Base class for cooling towers |
Buildings.Fluid.HeatExchangers.CoolingTowers.BaseClasses.CoolingTower
Base class for a steady-state cooling tower.
The variable TAirHT is used to compute the heat transfer with the water side of the cooling tower.
For a dry cooling tower, this is equal to the dry-bulb temperature.
For a wet cooling tower, this is equal to the wet-bulb temperature.
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";
equation
connect(preHea.port, vol.heatPort);
connect(QWat_flow.y, preHea.Q_flow);
connect(T_Vol.port, vol.heatPort);
connect(T_Vol.T, TLvg);
end CoolingTower;