Skip to content

Commit

Permalink
Merge pull request #7397 from jmarrec/Fix_7136_PeakCoil
Browse files Browse the repository at this point in the history
Fix #7136 - Clarify which peak the outputs of the coil sizing details are referring to
  • Loading branch information
Myoldmopar authored Sep 28, 2019
2 parents a98bc85 + e94d988 commit 8917cd0
Show file tree
Hide file tree
Showing 6 changed files with 55 additions and 14 deletions.
2 changes: 1 addition & 1 deletion src/EnergyPlus/DataSizing.hh
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ namespace DataSizing {
extern int const CondenserLoop;
extern int const SteamLoop;

// paramters for sizing
// parameters for sizing
extern int const NonCoincident;
extern int const Coincident;

Expand Down
3 changes: 3 additions & 0 deletions src/EnergyPlus/OutputReportPredefined.cc
Original file line number Diff line number Diff line change
Expand Up @@ -376,6 +376,7 @@ namespace OutputReportPredefined {
int pdchCoilDateTimeTotIdealPeak;
int pdchCoilDDnameAirFlowIdealPeak;
int pdchCoilDateTimeAirFlowIdealPeak;
int pdchCoilPeakLoadTypeToSizeOn;
int pdchCoilTotalCapIdealPeak;
int pdchCoilSensCapIdealPeak;
int pdchCoilAirMassFlowIdealPeak;
Expand Down Expand Up @@ -1158,6 +1159,7 @@ namespace OutputReportPredefined {
pdchCoilDateTimeTotIdealPeak = 0;
pdchCoilDDnameAirFlowIdealPeak = 0;
pdchCoilDateTimeAirFlowIdealPeak = 0;
pdchCoilPeakLoadTypeToSizeOn = 0;
pdchCoilTotalCapIdealPeak = 0;
pdchCoilSensCapIdealPeak = 0;
pdchCoilAirMassFlowIdealPeak = 0;
Expand Down Expand Up @@ -2072,6 +2074,7 @@ namespace OutputReportPredefined {
pdchCoilDateTimeTotIdealPeak = newPreDefColumn(pdstCoilSummaryCoilSelection, "Date/Time at Total Ideal Loads Peak");
pdchCoilDDnameAirFlowIdealPeak = newPreDefColumn(pdstCoilSummaryCoilSelection, "Design Day Name at Air Flow Ideal Loads Peak");
pdchCoilDateTimeAirFlowIdealPeak = newPreDefColumn(pdstCoilSummaryCoilSelection, "Date/Time at Air Flow Ideal Loads Peak");
pdchCoilPeakLoadTypeToSizeOn = newPreDefColumn(pdstCoilSummaryCoilSelection, "Peak Load Type to Size On");

pdchCoilTotalCapIdealPeak = newPreDefColumn(pdstCoilSummaryCoilSelection, "Coil Total Capacity at Ideal Loads Peak [W]");
pdchCoilSensCapIdealPeak = newPreDefColumn(pdstCoilSummaryCoilSelection, "Coil Sensible Capacity at Ideal Loads Peak [W]");
Expand Down
1 change: 1 addition & 0 deletions src/EnergyPlus/OutputReportPredefined.hh
Original file line number Diff line number Diff line change
Expand Up @@ -368,6 +368,7 @@ namespace OutputReportPredefined {
extern int pdchCoilDateTimeTotIdealPeak;
extern int pdchCoilDDnameAirFlowIdealPeak;
extern int pdchCoilDateTimeAirFlowIdealPeak;
extern int pdchCoilPeakLoadTypeToSizeOn;
extern int pdchCoilTotalCapIdealPeak;
extern int pdchCoilSensCapIdealPeak;
extern int pdchCoilOffRatingCapacityModifierIdealPeak;
Expand Down
46 changes: 33 additions & 13 deletions src/EnergyPlus/ReportCoilSelection.cc
Original file line number Diff line number Diff line change
Expand Up @@ -99,19 +99,19 @@ CoilSelectionData::CoilSelectionData( // constructor
std::string const &coilName)
: isCooling(false), isHeating(false), coilNum(-999), airloopNum(-999), oaControllerNum(-999), zoneEqNum(-999), oASysNum(-999), zoneHVACTypeNum(0),
zoneHVACIndex(0), typeof_Coil(-999), coilSizingMethodConcurrence(-999), coilSizingMethodCapacity(-999), coilSizingMethodAirFlow(-999),
capIsAutosized(false), volFlowIsAutosized(false), coilWaterFlowUser(-999.0), oaPretreated(false), isSupplementalHeater(false),
coilTotCapFinal(-999.0), coilSensCapFinal(-999.0), coilRefAirVolFlowFinal(-999.0), coilRefWaterVolFlowFinal(-999.0), coilTotCapAtPeak(-999.0),
coilSensCapAtPeak(-999.0), coilDesMassFlow(-999.0), coilDesVolFlow(-999.0), coilDesEntTemp(-999.0), coilDesEntWetBulb(-999.0),
coilDesEntHumRat(-999.0), coilDesEntEnth(-999.0), coilDesLvgTemp(-999.0), coilDesLvgWetBulb(-999.0), coilDesLvgHumRat(-999.0),
coilDesLvgEnth(-999.0), coilDesWaterMassFlow(-999.0), coilDesWaterEntTemp(-999.0), coilDesWaterLvgTemp(-999.0), coilDesWaterTempDiff(-999.0),
pltSizNum(-999), waterLoopNum(-999), oaPeakTemp(-999.00), oaPeakHumRat(-999.0), oaPeakWetBulb(-999.0), oaPeakVolFlow(-999.0),
oaPeakVolFrac(-999.0), oaDoaTemp(-999.0), oaDoaHumRat(-999.0), raPeakTemp(-999.0), raPeakHumRat(-999.0), rmPeakTemp(-999.0),
rmPeakHumRat(-999.0), rmPeakRelHum(-999.0), rmSensibleAtPeak(-999.0), rmLatentAtPeak(0.0), coilIdealSizCapOverSimPeakCap(-999.0),
coilIdealSizCapUnderSimPeakCap(-999.0), reheatLoadMult(-999.0), minRatio(-999.0), maxRatio(-999.0), cpMoistAir(-999.0), cpDryAir(-999.0),
rhoStandAir(-999.0), rhoFluid(-999.0), cpFluid(-999.0), coilCapFTIdealPeak(1.0), coilRatedTotCap(-999.0), coilRatedSensCap(-999.0),
ratedAirMassFlow(-999.0), ratedCoilInDb(-999.0), ratedCoilInWb(-999.0), ratedCoilInHumRat(-999.0), ratedCoilInEnth(-999.0),
ratedCoilOutDb(-999.0), ratedCoilOutWb(-999.0), ratedCoilOutHumRat(-999.0), ratedCoilOutEnth(-999.0), ratedCoilEff(-999.0),
ratedCoilBpFactor(-999.0), ratedCoilAppDewPt(-999.0), ratedCoilOadbRef(-999.0), ratedCoilOawbRef(-999.0),
isCoilSizingForTotalLoad(false), capIsAutosized(false), volFlowIsAutosized(false), coilWaterFlowUser(-999.0), oaPretreated(false),
isSupplementalHeater(false), coilTotCapFinal(-999.0), coilSensCapFinal(-999.0), coilRefAirVolFlowFinal(-999.0),
coilRefWaterVolFlowFinal(-999.0), coilTotCapAtPeak(-999.0), coilSensCapAtPeak(-999.0), coilDesMassFlow(-999.0), coilDesVolFlow(-999.0),
coilDesEntTemp(-999.0), coilDesEntWetBulb(-999.0), coilDesEntHumRat(-999.0), coilDesEntEnth(-999.0), coilDesLvgTemp(-999.0),
coilDesLvgWetBulb(-999.0), coilDesLvgHumRat(-999.0), coilDesLvgEnth(-999.0), coilDesWaterMassFlow(-999.0), coilDesWaterEntTemp(-999.0),
coilDesWaterLvgTemp(-999.0), coilDesWaterTempDiff(-999.0), pltSizNum(-999), waterLoopNum(-999), oaPeakTemp(-999.00), oaPeakHumRat(-999.0),
oaPeakWetBulb(-999.0), oaPeakVolFlow(-999.0), oaPeakVolFrac(-999.0), oaDoaTemp(-999.0), oaDoaHumRat(-999.0), raPeakTemp(-999.0),
raPeakHumRat(-999.0), rmPeakTemp(-999.0), rmPeakHumRat(-999.0), rmPeakRelHum(-999.0), rmSensibleAtPeak(-999.0), rmLatentAtPeak(0.0),
coilIdealSizCapOverSimPeakCap(-999.0), coilIdealSizCapUnderSimPeakCap(-999.0), reheatLoadMult(-999.0), minRatio(-999.0), maxRatio(-999.0),
cpMoistAir(-999.0), cpDryAir(-999.0), rhoStandAir(-999.0), rhoFluid(-999.0), cpFluid(-999.0), coilCapFTIdealPeak(1.0), coilRatedTotCap(-999.0),
coilRatedSensCap(-999.0), ratedAirMassFlow(-999.0), ratedCoilInDb(-999.0), ratedCoilInWb(-999.0), ratedCoilInHumRat(-999.0),
ratedCoilInEnth(-999.0), ratedCoilOutDb(-999.0), ratedCoilOutWb(-999.0), ratedCoilOutHumRat(-999.0), ratedCoilOutEnth(-999.0),
ratedCoilEff(-999.0), ratedCoilBpFactor(-999.0), ratedCoilAppDewPt(-999.0), ratedCoilOadbRef(-999.0), ratedCoilOawbRef(-999.0),

supFanModelTypeEnum(DataAirSystems::fanModelTypeNotYetSet), supFanNum(0), supFanVecIndex(-1), fanSizeMaxAirVolumeFlow(-999.0),
fanSizeMaxAirMassFlow(-999.0), fanHeatGainIdealPeak(-999.0), coilAndFanNetTotalCapacityIdealPeak(-999.0), plantDesMaxMassFlowRate(-999.0),
Expand All @@ -131,6 +131,7 @@ CoilSelectionData::CoilSelectionData( // constructor
coilSizingMethodConcurrenceName = "N/A";
coilSizingMethodCapacityName = "N/A";
coilSizingMethodAirFlowName = "N/A";
coilPeakLoadTypeToSizeOnName = "N/A";
coilCapAutoMsg = "unknown";
coilVolFlowAutoMsg = "unknown";
coilWaterFlowAutoMsg = "unknown";
Expand Down Expand Up @@ -212,6 +213,9 @@ void ReportCoilSelection::writeCoilSelectionOutput()
OutputReportPredefined::PreDefTableEntry(OutputReportPredefined::pdchCoilDateTimeTotIdealPeak, c->coilName_, c->coilTotalPeakHrMin);
OutputReportPredefined::PreDefTableEntry(OutputReportPredefined::pdchCoilDDnameAirFlowIdealPeak, c->coilName_, c->desDayNameAtAirFlowPeak);
OutputReportPredefined::PreDefTableEntry(OutputReportPredefined::pdchCoilDateTimeAirFlowIdealPeak, c->coilName_, c->airPeakHrMin);

OutputReportPredefined::PreDefTableEntry(OutputReportPredefined::pdchCoilPeakLoadTypeToSizeOn, c->coilName_, c->coilPeakLoadTypeToSizeOnName);

OutputReportPredefined::PreDefTableEntry(OutputReportPredefined::pdchCoilTotalCapIdealPeak, c->coilName_, c->coilTotCapAtPeak, 2);
OutputReportPredefined::PreDefTableEntry(OutputReportPredefined::pdchCoilSensCapIdealPeak, c->coilName_, c->coilSensCapAtPeak, 2);
if (c->coilDesMassFlow == -999.0 || c->coilDesMassFlow == -99999.0) {
Expand Down Expand Up @@ -695,6 +699,12 @@ void ReportCoilSelection::doFinalProcessingOfCoilData()
c->coilSizingMethodAirFlowName = "FractionOfAutosizedHeatingAirflow";
}

if (c->isCoilSizingForTotalLoad) {
c->coilPeakLoadTypeToSizeOnName = "Total";
} else {
c->coilPeakLoadTypeToSizeOnName = "Sensible";
}

if (c->capIsAutosized) {
c->coilCapAutoMsg = "Yes";
} else {
Expand Down Expand Up @@ -1179,6 +1189,12 @@ void ReportCoilSelection::setCoilCoolingCapacity(
getTimeText(DataSizing::SysSizPeakDDNum(curSysNum).TimeStepAtCoolFlowPk(DataSizing::SysSizPeakDDNum(curSysNum).CoolFlowPeakDD));
}

if (DataSizing::FinalSysSizing(curSysNum).CoolingPeakLoadType == DataSizing::TotalCoolingLoad) {
c->isCoilSizingForTotalLoad = true;
} else {
c->isCoilSizingForTotalLoad = false;
}

c->oaPeakTemp = DataSizing::FinalSysSizing(curSysNum).OutTempAtCoolPeak;
c->oaPeakVolFlow = DataSizing::FinalSysSizing(curSysNum).DesOutAirVolFlow;
c->oaPeakHumRat = DataSizing::FinalSysSizing(curSysNum).OutHumRatAtCoolPeak;
Expand Down Expand Up @@ -1424,6 +1440,10 @@ void ReportCoilSelection::setCoilHeatingCapacity(
c->coilSizingMethodConcurrence = DataSizing::FinalSysSizing(curSysNum).SizingOption;
c->coilSizingMethodCapacity = DataSizing::FinalSysSizing(curSysNum).HeatingCapMethod;
c->coilSizingMethodAirFlow = DataSizing::FinalSysSizing(curSysNum).ScaleHeatSAFMethod;

// Central Heating Coils are always sized at the conditions at the peak Sensible Heating Load
c->isCoilSizingForTotalLoad = false;

// DesOutAirVolFlow

// loop over heated zones attached to this airloop to find average Room condition, if none heated use cooled zones
Expand Down
3 changes: 3 additions & 0 deletions src/EnergyPlus/ReportCoilSelection.hh
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,9 @@ public: // data
// 5=FractionOfAutosizedHeatingAirflow, 6=FlowPerCoolingCapacity, 7=FlowPerHeatingCapacity
std::string coilSizingMethodAirFlowName;

bool isCoilSizingForTotalLoad; // Type of peak to size (cooling) coils on: True is TotalCoolingLoad, False is sensible
std::string coilPeakLoadTypeToSizeOnName;

// Real64 coilDesCapUser; // coil capacity original input value [W]; -999 means field not applicable to this coil
bool capIsAutosized; // true if the coil's capacity was autosized
std::string coilCapAutoMsg; // Yes if user cap was autosized, No if hard value entered
Expand Down
14 changes: 14 additions & 0 deletions src/Transition/OutputRulesFiles/OutputChanges9-2-0-to-9-3-0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
Output Changes
==============

This file documents the structural changes on the output of EnergyPlus that could affect interfaces, etc.

### Description

This will eventually become a more structured file, but currently it isn't clear what format is best. As an intermediate solution, and to allow the form to be formed organically, this plain text file is being used. Entries should be clearly delimited. It isn't expected that there will be but maybe a couple each release at most. Entries should also include some reference back to the repo. At least a PR number or whatever.

### Additional field for Coil Sizing Details:Coils report

A new column "Peak Load Type to Size On" has been added to the `Coil Sizing Details:Coils` report

See [7397](https://github.com/NREL/EnergyPlus/pull/7397)

0 comments on commit 8917cd0

Please sign in to comment.