Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Include impact of AirTerminal:SingleDuct:Mixer in ZoneHVAC coil sizing #6788

Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
4192eb6
First pass at including ATMixer in fan coil sizing
rraustad Jun 19, 2018
ac5ebb8
Correct energyplus_tests so CI will compile
rraustad Jun 20, 2018
768e2ec
Revised new functions. Ready to move forward to other Eq types.
rraustad Jun 20, 2018
7cd40cf
Clean up comments in new functions
rraustad Jun 20, 2018
319592c
Revert return temp change to eliminate spurious diffs.
rraustad Jun 21, 2018
7183182
Forgot one.
rraustad Jun 21, 2018
ecc43a9
Merge branch '#6712-Zone-Coil-Autosizing-does-not-include-impact-of-A…
rraustad Jun 21, 2018
e124fef
Include other zone equipment for ATMixer coil sizing and add unit tests
rraustad Jun 21, 2018
6df2e42
Clean up commented lines for final pass, revert zone temp for zone re…
rraustad Jun 22, 2018
2752ebf
Set ZoneEqSizing.OAFlow before coils size.
rraustad Jun 22, 2018
c332518
Merge branch 'develop' of https://github.com/NREL/EnergyPlus into #67…
rraustad Jul 6, 2018
fc91e74
Merge branch 'develop' of https://github.com/NREL/EnergyPlus into #67…
rraustad Jul 25, 2018
66b8644
Revise calculation methodology and partially address comments
rraustad Jul 26, 2018
13b29b1
Address comments
rraustad Jul 30, 2018
bf4326d
Merge branch 'develop' of https://github.com/NREL/EnergyPlus into #67…
rraustad Jul 30, 2018
688128a
Correct reference initialization and other cleanup
rraustad Jul 31, 2018
ee5caf5
Fix cut-n-paste typo
rraustad Aug 1, 2018
ad70076
Merge branch 'develop' of https://github.com/NREL/EnergyPlus into #67…
rraustad Aug 1, 2018
9384c1d
Merge branch 'develop' of https://github.com/NREL/EnergyPlus into #67…
rraustad Aug 1, 2018
de30829
Avoid crash when no sizing
rraustad Aug 2, 2018
9bf0efa
Merge branch 'develop' of https://github.com/NREL/EnergyPlus into #67…
rraustad Aug 2, 2018
dddb185
Revise coil entering temp/humrat to account for ATMixer
rraustad Aug 6, 2018
b338312
Merge remote-tracking branch 'remotes/origin/develop' into #6712-Zone…
mjwitte Aug 29, 2018
afbab6f
Address comments
rraustad Sep 8, 2018
be61d9e
Update unit tests based on recent changes
rraustad Sep 9, 2018
26b6d5b
Add warnings to account for DOAS coil sizing
rraustad Sep 12, 2018
41e2928
Correct duplicate message and sizing of desiccant heating coil
rraustad Sep 13, 2018
4677015
Merge branch 'develop' of https://github.com/NREL/EnergyPlus into #67…
rraustad Sep 13, 2018
00cf8dd
Update example files based on new warning
rraustad Sep 13, 2018
4b61de3
Merge branch 'develop' of https://github.com/NREL/EnergyPlus into #67…
rraustad Sep 14, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
46 changes: 28 additions & 18 deletions src/EnergyPlus/DataSizing.hh
Expand Up @@ -639,24 +639,29 @@ namespace DataSizing {
struct ZoneEqSizingData // data saved from zone eq component sizing and passed to subcomponents
{
// Members
Real64 AirVolFlow; // design air vol flow rate for zone equipment unit [m3/s]
Real64 MaxHWVolFlow; // design Hot Water vol flow for zone equipment unit [m3/s]
Real64 MaxCWVolFlow; // design Cold Water vol flow for zone equipment unit [m3/s]
Real64 OAVolFlow; // design outside air flow for zone equipment unit [m3/s]
Real64 DesCoolingLoad; // design cooling load used for zone equipment [W]
Real64 DesHeatingLoad; // design heating load used for zone equipment [W]
Real64 CoolingAirVolFlow; // design cooling air vol flow rate for equipment[m3/s]
Real64 HeatingAirVolFlow; // design heating air vol flow rate for equipment[m3/s]
Real64 SystemAirVolFlow; // design heating air vol flow rate for equipment[m3/s]
bool AirFlow; // TRUE if AirloopHVAC system air flow rate is calcualted
bool CoolingAirFlow; // TRUE if AirloopHVAC system cooling air flow rate is calcualted
bool HeatingAirFlow; // TRUE if AirloopHVAC system heating air flow rate is calcualted
bool SystemAirFlow; // TRUE if AirloopHVAC system heating air flow rate is calcualted
bool Capacity; // TRUE if AirloopHVAC system capacity is calculated
bool CoolingCapacity; // TRUE if AirloopHVAC system cooling capacity is calculated
bool HeatingCapacity; // TRUE if AirloopHVAC system heating capacity is calculated
bool SystemCapacity; // TRUE if AirloopHVAC system heating capacity is calculated
bool DesignSizeFromParent; // TRUE if design size is set by parent object - normally false, set to true for special cases e.g. ERV
Real64 AirVolFlow; // design air vol flow rate for zone equipment unit [m3/s]
Real64 MaxHWVolFlow; // design Hot Water vol flow for zone equipment unit [m3/s]
Real64 MaxCWVolFlow; // design Cold Water vol flow for zone equipment unit [m3/s]
Real64 OAVolFlow; // design outside air flow for zone equipment unit [m3/s]
Real64 ATMixerVolFlow; // design ventilation air flow rate from air terminal mixer (central DOAS) [m3/s] //TRANE AT Mixer sizing
Copy link
Member

Choose a reason for hiding this comment

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

We don't really need comments tagging TRANE in here. If there's anything else to change in this PR, comments like this should go.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I missed that one.

Copy link
Contributor

Choose a reason for hiding this comment

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

This still needs cleanup.

Real64 ATMixerCoolPriDryBulb; // design ventilation drybulb temperature from air terminal mixer during cooling (central DOAS) [C]
Real64 ATMixerCoolPriHumRat; // design ventilation humidity ratio from air terminal mixer during cooling (central DOAS) [kgH20/kgDryAir]
Real64 ATMixerHeatPriDryBulb; // design ventilation drybulb temperature from air terminal mixer during heating (central DOAS) [C]
Real64 ATMixerHeatPriHumRat; // design ventilation humidity ratio from air terminal mixer during heating (central DOAS) [kgH20/kgDryAir]
Real64 DesCoolingLoad; // design cooling load used for zone equipment [W]
Real64 DesHeatingLoad; // design heating load used for zone equipment [W]
Real64 CoolingAirVolFlow; // design cooling air vol flow rate for equipment[m3/s]
Real64 HeatingAirVolFlow; // design heating air vol flow rate for equipment[m3/s]
Real64 SystemAirVolFlow; // design heating air vol flow rate for equipment[m3/s]
bool AirFlow; // TRUE if AirloopHVAC system air flow rate is calcualted
bool CoolingAirFlow; // TRUE if AirloopHVAC system cooling air flow rate is calcualted
bool HeatingAirFlow; // TRUE if AirloopHVAC system heating air flow rate is calcualted
bool SystemAirFlow; // TRUE if AirloopHVAC system heating air flow rate is calcualted
Copy link
Contributor

Choose a reason for hiding this comment

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

While you're in here, can fix "calcualted".

bool Capacity; // TRUE if AirloopHVAC system capacity is calculated
bool CoolingCapacity; // TRUE if AirloopHVAC system cooling capacity is calculated
bool HeatingCapacity; // TRUE if AirloopHVAC system heating capacity is calculated
bool SystemCapacity; // TRUE if AirloopHVAC system heating capacity is calculated
bool DesignSizeFromParent; // TRUE if design size is set by parent object - normally false, set to true for special cases e.g. ERV
Array1D_int SizingMethod; // supply air flow rate sizing method (SupplyAirFlowRate, FlowPerFloorArea, FractionOfAutosizedCoolingAirflow and
// FractionOfAutosizedHeatingAirflow)
Array1D_int CapSizingMethod; // capacity sizing methods (HeatingDesignCapacity, CoolingDesignCapacity, CapacityPerFloorArea,
Expand All @@ -665,6 +670,11 @@ namespace DataSizing {
// Default Constructor
ZoneEqSizingData()
: AirVolFlow(0.0), MaxHWVolFlow(0.0), MaxCWVolFlow(0.0), OAVolFlow(0.0),
ATMixerVolFlow(0.0), // design ventilation air flow rate from air terminal mixer (central DOAS) [m3/s]
ATMixerCoolPriDryBulb(0.0), // design air terminal mixer cooling outlet temperture [C]
ATMixerCoolPriHumRat(0.0), // design air terminal mixer cooling outlet humidity ratio [kgH20/kgDryAir]
ATMixerHeatPriDryBulb(0.0), // design air terminal mixer heating outlet temperture [C]
Copy link
Contributor

Choose a reason for hiding this comment

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

And "temperture".

ATMixerHeatPriHumRat(0.0), // design air terminal mixer cheating outlet humidity ratio [kgH20/kgDryAir]
Copy link
Contributor

Choose a reason for hiding this comment

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

"cheating" --> "heating"?

DesCoolingLoad(0.0), // design cooling load used for zone equipment [W]
DesHeatingLoad(0.0), // design heating load used for zone equipment [W]
CoolingAirVolFlow(0.0), // design cooling air vol flow rate for equipment[m3/s]
Expand Down
18 changes: 12 additions & 6 deletions src/EnergyPlus/FanCoilUnits.cc
Expand Up @@ -276,7 +276,7 @@ namespace FanCoilUnits {
ZoneEqFanCoil = true;

// Initialize the fan coil unit
InitFanCoilUnits(FanCoilNum, ZoneNum);
InitFanCoilUnits(FanCoilNum, ZoneNum, ControlledZoneNum);

// Select the correct unit type
{
Expand Down Expand Up @@ -1050,8 +1050,9 @@ namespace FanCoilUnits {
}
}

void InitFanCoilUnits(int const FanCoilNum, // number of the current fan coil unit being simulated
int const ZoneNum // number of zone being served
void InitFanCoilUnits(int const FanCoilNum, // number of the current fan coil unit being simulated
int const ZoneNum, // number of zone being served
int const ControlledZoneNum // index into ZoneEquipConfig array may not be equal to ZoneNum
)
{

Expand Down Expand Up @@ -1196,7 +1197,7 @@ namespace FanCoilUnits {

if (!SysSizingCalc && MySizeFlag(FanCoilNum) && !MyPlantScanFlag(FanCoilNum)) {

SizeFanCoilUnit(FanCoilNum);
SizeFanCoilUnit(FanCoilNum, ControlledZoneNum);

MySizeFlag(FanCoilNum) = false;
}
Expand Down Expand Up @@ -1312,7 +1313,9 @@ namespace FanCoilUnits {
}
}

void SizeFanCoilUnit(int const FanCoilNum)
void SizeFanCoilUnit(int const FanCoilNum,
int const ControlledZoneNum // index into ZoneEquipConfig array may not be equal to ZoneNum
)
{

// SUBROUTINE INFORMATION:
Expand Down Expand Up @@ -1671,6 +1674,10 @@ namespace FanCoilUnits {
}
}
}
ZoneEqSizing(CurZoneEqNum).OAVolFlow = FanCoil(FanCoilNum).OutAirVolFlow;
if (FanCoil(FanCoilNum).ATMixerExists) {
SingleDuct::setATMixerSizingProperties(FanCoil(FanCoilNum).ATMixerIndex, ControlledZoneNum, CurZoneEqNum);
}
Copy link
Contributor Author

Choose a reason for hiding this comment

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

This function will be used in each zone equipment type to set up ATMixer inlet conditions.

}
}

Expand Down Expand Up @@ -2048,7 +2055,6 @@ namespace FanCoilUnits {
if (CurZoneEqNum > 0) {
ZoneEqSizing(CurZoneEqNum).MaxHWVolFlow = FanCoil(FanCoilNum).MaxHotWaterVolFlow;
ZoneEqSizing(CurZoneEqNum).MaxCWVolFlow = FanCoil(FanCoilNum).MaxColdWaterVolFlow;
ZoneEqSizing(CurZoneEqNum).OAVolFlow = FanCoil(FanCoilNum).OutAirVolFlow;
ZoneEqSizing(CurZoneEqNum).AirVolFlow = FanCoil(FanCoilNum).MaxAirVolFlow;
ZoneEqSizing(CurZoneEqNum).DesCoolingLoad = FanCoil(FanCoilNum).DesCoolingLoad;
ZoneEqSizing(CurZoneEqNum).DesHeatingLoad = FanCoil(FanCoilNum).DesHeatingLoad;
Expand Down
9 changes: 5 additions & 4 deletions src/EnergyPlus/FanCoilUnits.hh
Expand Up @@ -286,11 +286,12 @@ namespace FanCoilUnits {

void GetFanCoilUnits();

void InitFanCoilUnits(int const FanCoilNum, // number of the current fan coil unit being simulated
int const ZoneNum // number of zone being served
);
void InitFanCoilUnits(int const FanCoilNum, // number of the current fan coil unit being simulated
int const ZoneNum, // number of zone being served
int const ControlledZoneNum); // index into ZoneEquipConfig array; may not be equal to ZoneNum

void SizeFanCoilUnit(int const FanCoilNum);
void SizeFanCoilUnit(int const FanCoilNum,
int const ControlledZoneNum); // index into ZoneEquipConfig array; may not be equal to ZoneNum

void SizeCoilWaterFlowRate(std::string const &WaterCoilType,
std::string const &WaterCoilName,
Expand Down