diff --git a/Buildings/Controls/OBC/CDL/Continuous/Validation/Derivative.mo b/Buildings/Controls/OBC/CDL/Continuous/Validation/Derivative.mo index 9c523004f63..e070bf7c639 100644 --- a/Buildings/Controls/OBC/CDL/Continuous/Validation/Derivative.mo +++ b/Buildings/Controls/OBC/CDL/Continuous/Validation/Derivative.mo @@ -80,8 +80,8 @@ equation info="
Validation test for the block
-
-Buildings.Controls.OBC.Continuous.Derivative.
+
+Buildings.Controls.OBC.CDL.Continuous.Derivative.
The model integrates a time varying signal, and the differentiates this integrated signal.
Hence, the output der1.y
matches the non-integrated signal intWitRes.u
,
within a small approximation tolerance.
diff --git a/Buildings/Fluid/HeatExchangers/BaseClasses/HexElementLatent.mo b/Buildings/Fluid/HeatExchangers/BaseClasses/HexElementLatent.mo
index 19bee0ad0d4..e1c5ea80500 100644
--- a/Buildings/Fluid/HeatExchangers/BaseClasses/HexElementLatent.mo
+++ b/Buildings/Fluid/HeatExchangers/BaseClasses/HexElementLatent.mo
@@ -19,60 +19,47 @@ model HexElementLatent "Element of a heat exchanger with humidity condensation o
MassExchange masExc(
redeclare final package Medium=Medium2) "Model for mass exchange"
- annotation (Placement(transformation(extent={{50,-40},{70,-20}})));
+ annotation (Placement(transformation(extent={{-10,-10},{10,10}})));
protected
Modelica.Thermal.HeatTransfer.Sensors.TemperatureSensor temSen(
T(final quantity="ThermodynamicTemperature",
final unit = "K", displayUnit = "degC", min=0))
"Temperature sensor of metal"
- annotation (Placement(transformation(extent={{-60,-10},{-40,10}})));
+ annotation (Placement(transformation(extent={{-60,-2},{-40,18}})));
Buildings.HeatTransfer.Sources.PrescribedHeatFlow heaConVapAir
"Heat conductor for latent heat flow rate, accounting for latent heat removed with vapor"
- annotation (Placement(transformation(extent={{0,-30},{-20,-10}})));
+ annotation (Placement(transformation(extent={{70,-10},{90,10}})));
Modelica.Blocks.Math.Product pro
"Product to compute the latent heat flow rate"
- annotation (Placement(transformation(extent={{60,-10},{40,10}})));
+ annotation (Placement(transformation(extent={{40,-10},{60,10}})));
Modelica.Blocks.Sources.RealExpression h_fg(final y=Buildings.Utilities.Psychrometrics.Constants.h_fg)
"Enthalpy of vaporization"
- annotation (Placement(transformation(extent={{90,-4},{70,16}})));
- Buildings.HeatTransfer.Sources.PrescribedHeatFlow heaConVapCoi
- "Heat conductor for latent heat flow rate, accounting for latent heat deposited with vapor on the coil"
- annotation (Placement(transformation(extent={{0,10},{-20,30}})));
- Modelica.Blocks.Math.Gain gain(final k=-1)
- annotation (Placement(transformation(extent={{30,10},{10,30}})));
+ annotation (Placement(transformation(extent={{-10,10},{10,30}})));
equation
- connect(temSen.T, masExc.TSur) annotation (Line(points={{-40,0},{20,0},{20,
- -22},{48,-22}}, color={0,0,127}));
- connect(masExc.mWat_flow, vol2.mWat_flow) annotation (Line(points={{71,-30},{
- 80,-30},{80,-44},{44,-44},{44,-52},{14,-52}},
- color={0,0,127}));
- connect(vol2.X_w, masExc.XInf) annotation (Line(points={{-10,-64},{-20,-64},{
- -20,-44},{30,-44},{30,-30},{48,-30}},
- color={0,0,127}));
+ connect(temSen.T, masExc.TSur) annotation (Line(points={{-39,8},{-12,8}},
+ color={0,0,127}));
+ connect(vol2.X_w, masExc.XInf) annotation (Line(points={{-10,-64},{-24,-64},{
+ -24,0},{-12,0}}, color={0,0,127}));
connect(Gc_2, masExc.Gc) annotation (Line(
- points={{40,-100},{40,-38},{48,-38}},
+ points={{40,-100},{40,-20},{-20,-20},{-20,-8},{-12,-8}},
color={0,0,127},
smooth=Smooth.None));
connect(temSen.port, con1.solid) annotation (Line(
- points={{-60,0},{-66,0},{-66,60},{-50,60}},
+ points={{-60,8},{-66,8},{-66,60},{-50,60}},
color={191,0,0},
smooth=Smooth.None));
- connect(heaConVapAir.Q_flow, pro.y) annotation (Line(points={{0,-20},{0,-20},{
- 36,-20},{36,0},{39,0}}, color={0,0,127}));
- connect(masExc.mWat_flow, pro.u2) annotation (Line(points={{71,-30},{80,-30},
- {80,-6},{62,-6}},color={0,0,127}));
+ connect(masExc.mWat_flow, pro.u2) annotation (Line(points={{11,0},{26,0},{26,
+ -6},{38,-6}}, color={0,0,127}));
connect(pro.u1, h_fg.y)
- annotation (Line(points={{62,6},{66,6},{69,6}},
+ annotation (Line(points={{38,6},{30,6},{30,20},{11,20}},
color={0,0,127}));
- connect(heaConVapAir.port, con2.fluid) annotation (Line(points={{-20,-20},{-24,
- -20},{-24,-40},{-30,-40}}, color={191,0,0}));
- connect(heaConVapCoi.port, con2.solid) annotation (Line(points={{-20,20},{-66,
- 20},{-66,0},{-66,-40},{-50,-40}}, color={191,0,0}));
- connect(gain.y, heaConVapCoi.Q_flow)
- annotation (Line(points={{9,20},{6,20},{0,20}}, color={0,0,127}));
- connect(pro.y, gain.u) annotation (Line(points={{39,0},{36,0},{36,0},{36,20},{
- 32,20}}, color={0,0,127}));
+ connect(heaConVapAir.port, con2.fluid) annotation (Line(points={{90,0},{94,0},
+ {94,-40},{-30,-40}}, color={191,0,0}));
+ connect(masExc.mWat_flow, vol2.mWat_flow) annotation (Line(points={{11,0},{26,
+ 0},{26,-52},{14,-52}}, color={0,0,127}));
+ connect(pro.y, heaConVapAir.Q_flow) annotation (Line(points={{61,0},{70,0}},
+ color={0,0,127}));
annotation (
Documentation(info="
@@ -86,15 +73,23 @@ Buildings.Fluid.HeatExchangers.BaseClasses.PartialHexElement
for a description of the physics of the sensible heat exchange.
For the latent heat exchange, this model removes water vapor from the air stream, as
computed by the instance masExc
. This effectively moves water vapor molecules
-out of the air, and deposits them on the coil. Hence, the latent heat that is carried
-by these water vapor molecules is removed from the air stream, and added to the coil
-surface. This is done using the heat flow sources heaConVapAir
and
-heaConVapWat
.
+out of the air, and deposits them on the coil from where it drains from the system.
+Hence, the latent heat that is carried
+by these water vapor molecules is removed from the air stream. This is done using the heat flow source heaConVapAir
.
+
+Note that the driving potential for latent heat transfer is the temperature of the instance mas
.
+This is an approximation as it neglects the thermal resistance of the water film that builds up on the coil.
mas.T
.simplify_mWat_flow
from protected to public because it is assigned by
Buildings.Fluid.HeatExchangers.WetCoilCounterFlow.+This is a validation case in which the air flow rate is about a third of the design flow rate, +and the water mass flow rate is ramped to zero. +The validation verifies that the outlet temperatures approach the inlet temperature of the air. +
+", revisions=" +mas.T
in
+
+Buildings.Fluid.HeatExchangers.BaseClasses.HexElementLatent
+to correct latent heat exchange calculation.final
declaration in redeclaration.mas.T
in
+
+Buildings.Fluid.HeatExchangers.BaseClasses.HexElementLatent
+to correct latent heat exchange calculation.each
.