Skip to content

Commit

Permalink
Issue3065 dx coils performance (#3147)
Browse files Browse the repository at this point in the history
* Corrected performance calculation as a function of mass flow rates

For #3065

* Updated reference results for #3065

* Corrected function argument to ffCon

* Updated reference results
  • Loading branch information
mwetter committed Nov 10, 2022
1 parent 0141c99 commit 5994b61
Show file tree
Hide file tree
Showing 15 changed files with 129 additions and 102 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ initial algorithm
x=1,
c=sta[iSta].perCur.capFunFFCon,
xMin=sta[iSta].perCur.ffConMin,
xMax=sta[iSta].perCur.ffConMin),
xMax=sta[iSta].perCur.ffConMax),
msg="Capacity as a function of normalized water mass flow rate at the condenser",
curveName="sta[" + String(iSta) + "].perCur.capFunFFCon");

Expand All @@ -37,7 +37,7 @@ initial algorithm
x=1,
c=sta[iSta].perCur.EIRFunFF,
xMin=sta[iSta].perCur.ffConMin,
xMax=sta[iSta].perCur.ffConMin),
xMax=sta[iSta].perCur.ffConMax),
msg="EIR as a function of normalized water mass flow rate at the condenser",
curveName="sta[" + String(iSta) + "].perCur.EIRFunFFCon");
end for;
Expand Down Expand Up @@ -65,21 +65,21 @@ if stage > 0 then
//-------------------------Cooling capacity modifiers----------------------------//

cap_FFCon[iSta] = Buildings.Fluid.Utilities.extendedPolynomial(
x=ff[iSta],
x=ffCon[iSta],
c=sta[iSta].perCur.capFunFFCon,
xMin=sta[iSta].perCur.ffConMin,
xMax=sta[iSta].perCur.ffConMin);
xMax=sta[iSta].perCur.ffConMax);
//-----------------------Energy Input Ratio modifiers--------------------------//
EIR_FFCon[iSta] = Buildings.Fluid.Utilities.extendedPolynomial(
x=ff[iSta],
x=ffCon[iSta],
c=sta[iSta].perCur.EIRFunFFCon,
xMin=sta[iSta].perCur.ffConMin,
xMax=sta[iSta].perCur.ffConMin)
xMax=sta[iSta].perCur.ffConMax)
"Cooling capacity modification factor as function of flow fraction";
//------------ Correction factor for flow rate outside of validity of data ---//
corFacCon[iSta] =Buildings.Utilities.Math.Functions.smoothHeaviside(
x=ffCon[iSta] - sta[iSta].perCur.ffConMin/4,
delta=max(Modelica.Constants.eps, sta[iSta].perCur.ffConMin/4));
delta=max(Modelica.Constants.eps, sta[iSta].perCur.ffConMin/8));

Q_flow[iSta] = corFac[iSta]*corFacCon[iSta]*cap_T[iSta]*cap_FF[iSta]*cap_FFCon[iSta]*sta[iSta].nomVal.Q_flow_nominal;
EIR[iSta] = corFac[iSta]*corFacCon[iSta]*EIR_T[iSta]*EIR_FF[iSta]*EIR_FFCon[iSta]/sta[iSta].nomVal.COP_nominal;
Expand Down Expand Up @@ -147,15 +147,22 @@ if stage > 0 then
revisions="<html>
<ul>
<li>
February 17, 2017 by Yangyang Fu:<br/>
First implementation.
November 8, 2022, by Michael Wetter:<br/>
Corrected calculation of performance which used the wrong upper bound, and
which used <code>ff</code> instead of <code>ffCon</code> for calculating <code>cap_FFCon</code>.<br/>
This is for
<a href=\"https://github.com/ibpsa/modelica-ibpsa/issues/3146\">issue 3146</a>.
</li>
<li>
October 21, 2019, by Michael Wetter:<br/>
Ensured that transition interval for computation of <code>corFac</code> is non-zero.<br/>
This is for
<a href=\"https://github.com/ibpsa/modelica-ibpsa/issues/1202\">issue 1202</a>.
</li>
<li>
February 17, 2017 by Yangyang Fu:<br/>
First implementation.
</li>
</ul>

</html>"));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ initial algorithm
x=1,
c=sta[iSta].perCur.capFunFF,
xMin=sta[iSta].perCur.ffMin,
xMax=sta[iSta].perCur.ffMin),
xMax=sta[iSta].perCur.ffMax),
msg="Capacity as a function of normalized mass flow rate ",
curveName="sta[" + String(iSta) + "].perCur.capFunFF");

Expand All @@ -107,7 +107,7 @@ initial algorithm
x=1,
c=sta[iSta].perCur.EIRFunFF,
xMin=sta[iSta].perCur.ffMin,
xMax=sta[iSta].perCur.ffMin),
xMax=sta[iSta].perCur.ffMax),
msg="EIR as a function of normalized mass flow rate ",
curveName="sta[" + String(iSta) + "].perCur.EIRFunFF");
end for;
Expand Down Expand Up @@ -183,7 +183,7 @@ if stage > 0 then
x=ff[iSta],
c=sta[iSta].perCur.capFunFF,
xMin=sta[iSta].perCur.ffMin,
xMax=sta[iSta].perCur.ffMin);
xMax=sta[iSta].perCur.ffMax);
//-----------------------Energy Input Ratio modifiers--------------------------//
EIR_T[iSta] =Buildings.Utilities.Math.Functions.smoothMax(
x1=Buildings.Utilities.Math.Functions.biquadratic(
Expand All @@ -196,12 +196,12 @@ if stage > 0 then
x=ff[iSta],
c=sta[iSta].perCur.EIRFunFF,
xMin=sta[iSta].perCur.ffMin,
xMax=sta[iSta].perCur.ffMin)
xMax=sta[iSta].perCur.ffMax)
"Cooling capacity modification factor as function of flow fraction";
//------------ Correction factor for flow rate outside of validity of data ---//
corFac[iSta] =Buildings.Utilities.Math.Functions.smoothHeaviside(
x=ff[iSta] - sta[iSta].perCur.ffMin/4,
delta=max(Modelica.Constants.eps, sta[iSta].perCur.ffMin/4));
delta=max(Modelica.Constants.eps, sta[iSta].perCur.ffMin/8));

end for;
else //cooling coil off
Expand Down Expand Up @@ -400,6 +400,12 @@ so that both are zero if <i>ff &lt; ff<sub>min</sub>/4</i>, where
revisions="<html>
<ul>
<li>
November 8, 2022, by Michael Wetter:<br/>
Corrected calculation of performance which used the wrong upper bound.<br/>
This is for
<a href=\"https://github.com/ibpsa/modelica-ibpsa/issues/3146\">issue 3146</a>.
</li>
<li>
October 21, 2019, by Michael Wetter:<br/>
Ensured that transition interval for computation of <code>corFac</code> is non-zero.<br/>
This is for
Expand Down

Large diffs are not rendered by default.

0 comments on commit 5994b61

Please sign in to comment.