Skip to content

Commit

Permalink
Add two output variables to Ideal Air loads
Browse files Browse the repository at this point in the history
  • Loading branch information
jmythms committed Sep 24, 2020
1 parent b1c7a5b commit 861cfef
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -296,6 +296,10 @@ \subsubsection{Outputs}\label{outputs-043}
HVAC,Average,Zone Ideal Loads Supply Air Mass Flow Rate {[}kg/s{]}
\item
HVAC,Average,Zone Ideal Loads Supply Air Standard Density Volume Flow Rate {[}m3/s{]}
\item
HVAC,Average,Zone Ideal Loads Supply Air Temperature {[}C{]}
\item
HVAC,Average,Zone Ideal Loads Supply Air Humidity Ratio {[}kgWater/kgDryAir{]}
\end{itemize}

\paragraph{Ideal Loads Output Variable Overview}\label{ideal-loads-output-variable-overview}
Expand Down Expand Up @@ -486,6 +490,16 @@ \subsubsection{Outputs}\label{outputs-043}

The volume flow rate of the supply air stream in m3/s using the standard density. The standard density is determined for dry air at the standard barometric pressure for the location's elevation and a temperature of 20.0ºC. The standard density does not vary over time.

\paragraph{Zone Ideal Loads Supply Air Temperature {[}C{]}}\label{zone-ideal-loads-supply-air-temperature-c}

The dry bulb temperature of the supply air stream in ºC.


\paragraph{Zone Ideal Loads Supply Air Humidity Ratio {[}kgWater/kgDryAir{]}}\label{zone-ideal-loads-supply-air-humidity-ratio-kgWaterkgDryAir}

The humidity ratio of the supply air stream in kgWater/kgDryAir.


\subsection{ZoneHVAC:FourPipeFanCoil}\label{zonehvacfourpipefancoil}

What is a fan coil unit? Like many HVAC terms, ``fan coil unit'' is used rather loosely. Sometimes it is used for terminal units that would be better described as powered induction units. Carrier and others use the term for the room side of refrigerant-based split systems. Here we are modeling in-room forced-convection hydronic units. The hydronic heating coil may be replaced with an electric heating coil. Typically these units are small (200 -- 1200 cfm) and self-contained. They are mostly used in exterior zones, usually in hotels, apartments, or offices. They may be connected to ducted outside air, or have a direct outside air vent, but they do not have outside air economizers. Units with outside air economizers are marketed (in the United States) as unit ventilators. Unit ventilators are typically bigger than fan coils and are widely used in classrooms or other applications where ventilation is a priority. If a zonal unit with an outside economizer is desired, \emph{\hyperref[zonehvacunitventilator]{ZoneHVAC:UnitVentilator}} should be used.
Expand Down
19 changes: 19 additions & 0 deletions src/EnergyPlus/PurchasedAirManager.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1057,6 +1057,21 @@ namespace PurchasedAirManager {
"Average",
PurchAir(PurchAirNum).Name);

// Air temperature
SetupOutputVariable("Zone Ideal Loads Supply Air Temperature",
OutputProcessor::Unit::C,
PurchAir(PurchAirNum).ZoneIdealLoadsSupplyAirTemperature,
"System",
"Average",
PurchAir(PurchAirNum).Name);
// Humidity Ratio
SetupOutputVariable("Zone Ideal Loads Supply Air Humidity Ratio",
OutputProcessor::Unit::kgWater_kgDryAir,
PurchAir(PurchAirNum).ZoneIdealLoadsSupplyAirHumidityRatio,
"System",
"Average",
PurchAir(PurchAirNum).Name);

if (AnyEnergyManagementSystemInModel) {
SetupEMSActuator("Ideal Loads Air System",
PurchAir(PurchAirNum).Name,
Expand Down Expand Up @@ -2080,6 +2095,8 @@ namespace PurchasedAirManager {
PurchAir(PurchAirNum).MinOAMassFlowRate = 0.0;
PurchAir(PurchAirNum).TimeEconoActive = 0.0;
PurchAir(PurchAirNum).TimeHtRecActive = 0.0;
PurchAir(PurchAirNum).ZoneIdealLoadsSupplyAirTemperature = 0.0;
PurchAir(PurchAirNum).ZoneIdealLoadsSupplyAirHumidityRatio = 0.0;
SysOutputProvided = 0.0;
MoistOutputProvided = 0.0;
CoolSensOutput = 0.0;
Expand Down Expand Up @@ -2785,6 +2802,8 @@ namespace PurchasedAirManager {
PurchAir(PurchAirNum).OutdoorAirVolFlowRateStdRho = OAMassFlowRate / StdRhoAir;
PurchAir(PurchAirNum).SupplyAirMassFlowRate = SupplyMassFlowRate;
PurchAir(PurchAirNum).SupplyAirVolFlowRateStdRho = SupplyMassFlowRate / StdRhoAir;
PurchAir(PurchAirNum).ZoneIdealLoadsSupplyAirTemperature = Node(InNodeNum).Temp;
PurchAir(PurchAirNum).ZoneIdealLoadsSupplyAirHumidityRatio = Node(InNodeNum).HumRat;

if (PurchAir(PurchAirNum).PlenumExhaustAirNodeNum > 0) {
Node(PurchAir(PurchAirNum).PlenumExhaustAirNodeNum).MassFlowRate = SupplyMassFlowRate;
Expand Down
5 changes: 4 additions & 1 deletion src/EnergyPlus/PurchasedAirManager.hh
Original file line number Diff line number Diff line change
Expand Up @@ -247,6 +247,9 @@ namespace PurchasedAirManager {
int ZonePtr; // pointer to a zone served by an Ideal load air system
int HVACSizingIndex; // index of a HVAC Sizing object for an Ideal load air system

Real64 ZoneIdealLoadsSupplyAirTemperature; // ZoneIdealLoadsSupplyAirTemperature [C]
Real64 ZoneIdealLoadsSupplyAirHumidityRatio; // ZoneIdealLoadsSupplyAirHumidityRatio [kgWater/kgDryAir]

// Default Constructor
ZonePurchasedAir()
: AvailSchedPtr(0), ZoneSupplyAirNodeNum(0), ZoneExhaustAirNodeNum(0), PlenumExhaustAirNodeNum(0), ReturnPlenumIndex(0),
Expand All @@ -271,7 +274,7 @@ namespace PurchasedAirManager {
ZoneLatHeatRate(0.0), ZoneTotHeatRate(0.0), ZoneSenCoolRate(0.0), ZoneLatCoolRate(0.0), ZoneTotCoolRate(0.0), OASenHeatRate(0.0),
OALatHeatRate(0.0), OATotHeatRate(0.0), OASenCoolRate(0.0), OALatCoolRate(0.0), OATotCoolRate(0.0), HtRecSenHeatRate(0.0),
HtRecLatHeatRate(0.0), HtRecTotHeatRate(0.0), HtRecSenCoolRate(0.0), HtRecLatCoolRate(0.0), HtRecTotCoolRate(0.0), TimeEconoActive(0.0),
TimeHtRecActive(0.0), ZonePtr(0), HVACSizingIndex(0)
TimeHtRecActive(0.0), ZoneIdealLoadsSupplyAirTemperature(0.0), ZoneIdealLoadsSupplyAirHumidityRatio (0.0), ZonePtr(0), HVACSizingIndex(0)
{
}
};
Expand Down

5 comments on commit 861cfef

@nrel-bot-2b
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add-New-Zone-Ideal-Loads-Output-Variables (jmythms) - x86_64-Linux-Ubuntu-18.04-gcc-7.5: OK (3022 of 3022 tests passed, 76 test warnings)

Messages:\n

  • 76 tests had: AUD diffs.
  • 73 tests had: RDD diffs.

Build Badge Test Badge

@nrel-bot-3
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add-New-Zone-Ideal-Loads-Output-Variables (jmythms) - x86_64-MacOS-10.15-clang-11.0.0: OK (2982 of 2982 tests passed, 74 test warnings)

Messages:\n

  • 74 tests had: AUD diffs.
  • 71 tests had: RDD diffs.

Build Badge Test Badge

@nrel-bot-2
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add-New-Zone-Ideal-Loads-Output-Variables (jmythms) - x86_64-Linux-Ubuntu-18.04-gcc-7.5-UnitTestsCoverage-Debug: OK (1548 of 1548 tests passed, 0 test warnings)

Build Badge Test Badge Coverage Badge

@nrel-bot
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add-New-Zone-Ideal-Loads-Output-Variables (jmythms) - Win64-Windows-10-VisualStudio-16: OK (2239 of 2239 tests passed, 0 test warnings)

Build Badge Test Badge

@nrel-bot-2b
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add-New-Zone-Ideal-Loads-Output-Variables (jmythms) - x86_64-Linux-Ubuntu-18.04-gcc-7.5-IntegrationCoverage-Debug: OK (721 of 721 tests passed, 0 test warnings)

Build Badge Test Badge Coverage Badge

Please sign in to comment.