-
Notifications
You must be signed in to change notification settings - Fork 179
Expand file tree
/
Copy pathIndirectWet.mo
More file actions
117 lines (106 loc) · 4.55 KB
/
IndirectWet.mo
File metadata and controls
117 lines (106 loc) · 4.55 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
within Buildings.Fluid.Humidifiers.EvaporativeCoolers.Baseclasses;
block IndirectWet
"Calculates the heat transfer in an indirect wet evaporative cooler"
parameter Real maxEff(
final unit="1")
"Maximum efficiency of heat exchanger coil";
parameter Real floRat(
final unit="1")
"Coil flow efficency ratio of actual to maximum heat transfer rate";
Buildings.Controls.OBC.CDL.Interfaces.RealInput VPri_flow(
final unit="m3/s",
final quantity = "VolumeFlowRate")
"Primary air volume flow rate"
annotation (Placement(transformation(origin={-120,-60}, extent={{-20,-20},{20,20}}),
iconTransformation(origin={-140,-60}, extent={{-20,-20},{20,20}})));
Buildings.Controls.OBC.CDL.Interfaces.RealInput VSec_flow(
final unit="m3/s",
final quantity = "VolumeFlowRate")
"Secondary air volume flow rate"
annotation (Placement(transformation(origin={-120,-100}, extent={{-20,-20},{20,20}}),
iconTransformation(origin={-140,-100}, extent={{-20,-20},{20,20}})));
Buildings.Controls.OBC.CDL.Interfaces.RealInput TDryBulPriIn(
final unit="K",
displayUnit="degC",
final quantity="ThermodynamicTemperature")
"Dry bulb temperature of the primary inlet air"
annotation (Placement(transformation(origin={-120,100}, extent={{-20,-20},{20,20}}),
iconTransformation(origin={-140,100}, extent={{-20,-20},{20,20}})));
Buildings.Controls.OBC.CDL.Interfaces.RealInput TDryBulSecIn(
final unit="K",
displayUnit="degC",
final quantity="ThermodynamicTemperature")
"Dry bulb temperature of the secondary inlet air"
annotation (Placement(transformation(origin={-120,20}, extent={{-20,-20},{20,20}}),
iconTransformation(origin={-140,20}, extent={{-20,-20},{20,20}})));
Buildings.Controls.OBC.CDL.Interfaces.RealInput TWetBulSecIn(
final unit="K",
displayUnit="degC",
final quantity="ThermodynamicTemperature")
"Wet bulb temperature of the secondary inlet air"
annotation (Placement(transformation(origin={-120,-20}, extent={{-20,-20},{20,20}}),
iconTransformation(origin={-140,-20}, extent={{-20,-20},{20,20}})));
Buildings.Controls.OBC.CDL.Interfaces.RealOutput TDryBulPriOut(
displayUnit="degC",
final unit="K",
final quantity="ThermodynamicTemperature")
"Dry bulb temperature of the outlet air"
annotation (Placement(transformation(origin={120,0}, extent={{-20,-20},{20,20}}),
iconTransformation(origin={140,0}, extent={{-20,-20},{20,20}})));
Real eff(
unit="1")
"Actual efficiency of component";
equation
eff = max((maxEff - floRat*abs(VPri_flow)/abs(VSec_flow)),0);
TDryBulPriOut = TDryBulPriIn - eff*(TDryBulSecIn - TWetBulSecIn);
annotation (defaultComponentName="indWetCal",
Documentation(info="<html>
<p>
Block that calculates the water vapor mass flow rate addition in the
indirect evaporative cooler component. The calculations are based on the indirect
wet evaporative cooler model in the Engineering Reference document from EnergyPlus
v23.1.0.
</p>
<p>
The effective efficiency of the heat exchanger <code>eff</code> is calculated using
the formula
</p>
<p align=\"center\" style=\"font-style:italic;\">
eff = max((maxEff - floRat*abs(VPri_flow)/abs(VSec_flow)), 0)
</p>
<p>
where <code>VPri_flow</code> and <code>VSec_flow</code> are the volume flow
rates of the primary and secondary fluid media respectively. The maximum
efficiency of the heat exchanger <code>maxEff</code> and the efficiency-reduction
coil flow ratio <code>floRat</code> are empirically determined for the specific
equipment based on experiments.
</p>
<p>
The outlet primary fluid drybulb temperature <code>TDryBulPriOut</code> is calculated
using the energy-balance equation
</p>
<p align=\"center\" style=\"font-style:italic;\">
TDryBulPriOut = TDryBulPriIn - eff*(TDryBulSecIn - TWetBulSecIn)
</p>
<p>
where <code>TDryBulPriIn</code> is the inlet primary fluid drybulb temperature,
<code>TDryBulSecIn</code> is the inlet secondary fluid drybulb temperature and
<code>TWetBulSecIn</code> is the inlet secondary fluid wetbulb temperature.
</p>
</html>", revisions="<html>
<ul>
<li>
September 29, 2023 by Karthikeya Devaprasad:<br/>
First implementation.
</li>
</ul>
</html>"), Icon(coordinateSystem(extent={{-120,-120},{120,120}}),
graphics={Text(
extent={{-150,160},{150,120}},
textString="%name",
textColor={0,0,255}), Rectangle(extent={{-120,120},{120,-120}},
lineColor={0,0,0},
fillColor={255,255,255},
fillPattern=FillPattern.Solid)}),
Diagram(coordinateSystem(extent={{-100,-120},{100,120}})));
end IndirectWet;