Buildings.Fluid.HeatExchangers.CoolingTowers.Examples.BaseClasses
Package with base classes for Buildings.Fluid.HeatExchangers.CoolingTowers.Examples
Information
This package contains base classes that are used to construct the models in Buildings.Fluid.HeatExchangers.CoolingTowers.Examples.
Extends from Modelica.Icons.BasesPackage (Icon for packages containing base classes).
Package Content
Name | Description |
---|---|
PartialStaticTwoPortCoolingTower | Base class for test models of cooling towers |
Buildings.Fluid.HeatExchangers.CoolingTowers.Examples.BaseClasses.PartialStaticTwoPortCoolingTower
Base class for test models of cooling towers
Information
Partial model to test cooling tower models that are connected to a weather data reader and a simple fluid loop to which a constant amount of heat is added. The pump in the cooling tower loop is switched on and off depending on the temperature of the control volume to which the heat is added.
Parameters
Type | Name | Default | Description |
---|---|---|---|
CoolingTower | tow | redeclare Buildings.Fluid.He... | Cooling tower |
Nominal condition | |||
MassFlowRate | m_flow_nominal | 0.5 | Design water flow rate [kg/s] |
Connectors
Type | Name | Description |
---|---|---|
Bus | weaBus | Weather data bus |
Modelica definition
partial model PartialStaticTwoPortCoolingTower
"Base class for test models of cooling towers"
package Medium_W = Buildings.Media.Water "Medium model for water";
parameter Modelica.SIunits.MassFlowRate m_flow_nominal = 0.5
"Design water flow rate";
replaceable Buildings.Fluid.HeatExchangers.CoolingTowers.BaseClasses.CoolingTower
tow
constrainedby Buildings.Fluid.HeatExchangers.CoolingTowers.BaseClasses.CoolingTower
(
redeclare package Medium = Medium_W,
m_flow_nominal=m_flow_nominal,
dp_nominal=6000,
energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial,
show_T=true) "Cooling tower";
Buildings.Fluid.Movers.FlowControlled_m_flow pum(
redeclare package Medium = Medium_W,
m_flow_nominal=m_flow_nominal,
energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial,
nominalValuesDefineDefaultPressureCurve=true)
"Pump for chilled water loop";
Buildings.BoundaryConditions.WeatherData.ReaderTMY3 weaDat(filNam=
Modelica.Utilities.Files.loadResource(
"modelica://Buildings/Resources/weatherdata/USA_CA_San.Francisco.Intl.AP.724940_TMY3.mos"));
Buildings.BoundaryConditions.WeatherData.Bus weaBus "Weather data bus";
Modelica.Blocks.Logical.OnOffController onOffCon(
bandwidth=2,
reference(
unit="K",
displayUnit="degC"),
u(unit="K",
displayUnit="degC"))
"On/off controller";
Modelica.Blocks.Logical.Switch swi "Control switch for chilled water pump";
Modelica.Blocks.Sources.Constant TSwi(k=273.15 + 22)
"Switch temperature for switching tower pump on";
Modelica.Blocks.Sources.Constant zer(k=0) "Zero flow rate";
Modelica.Blocks.Sources.Constant m_flow(k=m_flow_nominal)
"Water flow rate";
Buildings.Fluid.MixingVolumes.MixingVolume vol(nPorts=3,
redeclare package Medium = Medium_W,
m_flow_nominal=m_flow_nominal,
V=0.5,
energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial);
Buildings.Fluid.Sources.Boundary_pT exp(
redeclare package Medium = Medium_W,
nPorts=1) "Expansion vessel";
Modelica.Thermal.HeatTransfer.Sources.FixedHeatFlow fixHeaFlo(
Q_flow=0.5*m_flow_nominal*4200*5) "Fixed heat flow rate";
Modelica.Thermal.HeatTransfer.Sensors.TemperatureSensor TVol
"Water temperature";
equation
connect(weaDat.weaBus, weaBus);
connect(onOffCon.y, swi.u2);
connect(zer.y, swi.u3);
connect(m_flow.y, swi.u1);
connect(vol.ports[1], pum.port_a);
connect(fixHeaFlo.port, vol.heatPort);
connect(vol.heatPort, TVol.port);
connect(tow.port_b, vol.ports[2]);
connect(pum.port_b, tow.port_a);
connect(onOffCon.u, TSwi.y);
connect(TVol.T, onOffCon.reference);
connect(swi.y, pum.m_flow_in);
connect(exp.ports[1], vol.ports[3]);
end PartialStaticTwoPortCoolingTower;