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

New Coil Sizing Reports #6454

Merged
merged 20 commits into from
Feb 20, 2018
Merged
Show file tree
Hide file tree
Changes from 16 commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
f6453b1
draft code changes for nwe coil summary report table
EnergyArchmage Jan 25, 2018
6e2d192
CoilSizingReport-NFP
mjwitte Jan 31, 2018
dcfcab4
Doc changes for coil report table
EnergyArchmage Feb 5, 2018
d6c7e31
Merge remote-tracking branch 'remotes/origin/develop' into Coil-Repor…
mjwitte Feb 14, 2018
d395b27
Coil sizing report - fix test failures
mjwitte Feb 14, 2018
aa64ea0
Merge remote-tracking branch 'remotes/origin/develop' into Coil-Repor…
mjwitte Feb 14, 2018
1ee7c8d
Coil sizing report - protect against errors for fan not found
mjwitte Feb 14, 2018
1c22fd3
Coil sizing report - fix test failures 2 and build warnings
mjwitte Feb 16, 2018
156fac0
Merge branch 'Coil-Report-Table' into CoilSizingReport
mjwitte Feb 16, 2018
89809a9
Merge remote-tracking branch 'remotes/origin/develop' into CoilSizing…
mjwitte Feb 16, 2018
41ab0aa
Add test for zero mass flow, fix missing pointer initialization in un…
Myoldmopar Feb 18, 2018
ed568c1
Merge remote-tracking branch 'origin/develop' into CoilSizingReport
Myoldmopar Feb 18, 2018
314cdd5
fix build warnings in coil sizing report
EnergyArchmage Feb 18, 2018
5868641
fix uninitialized variable build warning
EnergyArchmage Feb 18, 2018
af4fe2b
Coil sizing report - Add new CoilSizingDetails report
mjwitte Feb 19, 2018
57a0055
Coil sizing report - Revert water coil fixes causing diffs
mjwitte Feb 19, 2018
515082b
Merge remote-tracking branch 'remotes/origin/develop' into CoilSizing…
mjwitte Feb 20, 2018
b20c099
Coil sizing report - fix merge mistake
mjwitte Feb 20, 2018
6bb8d01
Coil sizing report - minor title change and add output rules
mjwitte Feb 20, 2018
bb00e38
Coil sizing report - fix units warnings
mjwitte Feb 20, 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
Binary file not shown.

Large diffs are not rendered by default.

83 changes: 83 additions & 0 deletions idd/Energy+.idd.in

Large diffs are not rendered by default.

2 changes: 2 additions & 0 deletions src/EnergyPlus/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -441,6 +441,8 @@ SET( SRC
PVWattsSSC.hh
RefrigeratedCase.cc
RefrigeratedCase.hh
ReportCoilSelection.cc
ReportCoilSelection.hh
ReportSizingManager.cc
ReportSizingManager.hh
ReturnAirPathManager.cc
Expand Down
184 changes: 177 additions & 7 deletions src/EnergyPlus/DXCoils.cc

Large diffs are not rendered by default.

9 changes: 7 additions & 2 deletions src/EnergyPlus/DXCoils.hh
Original file line number Diff line number Diff line change
Expand Up @@ -514,6 +514,8 @@ namespace DXCoils {
Real64 ActualSC; // Actual subcooling degrees [C]
Real64 RateBFVRFIUEvap; // VRF Iutdoor Unit Evaporator Rated Bypass Factor
Real64 RateBFVRFIUCond; // VRF Iutdoor Unit Condenser Rated Bypass Factor
bool reportCoilFinalSizes; // one time report of sizes to coil selection report
Real64 capModFacTotal; // current coil capacity modification factor

// Default Constructor
DXCoilData() :
Expand Down Expand Up @@ -753,7 +755,9 @@ namespace DXCoils {
ActualSH( 0.0 ),
ActualSC( 0.0 ),
RateBFVRFIUEvap( 0.0592 ),
RateBFVRFIUCond( 0.1360 )
RateBFVRFIUCond( 0.1360 ),
reportCoilFinalSizes( true ),
capModFacTotal( 0.0 )
{}

};
Expand Down Expand Up @@ -947,7 +951,8 @@ namespace DXCoils {
Real64 & TotCap, // total capacity at the given conditions [W]
Real64 & SHR, // sensible heat ratio at the given conditions
Real64 const CondInletTemp, // Condenser inlet temperature [C]
Real64 const Pressure // air pressure [Pa]
Real64 const Pressure, // air pressure [Pa]
Real64 & TotCapModFac // capacity modification factor, func of temp and func of flow
);

void
Expand Down
3 changes: 3 additions & 0 deletions src/EnergyPlus/DataHVACGlobals.cc
Original file line number Diff line number Diff line change
Expand Up @@ -233,6 +233,9 @@ namespace DataHVACGlobals {

Array1D_string const cAllCoilTypes( NumAllCoilTypes, { "Coil:Cooling:DX:SingleSpeed", "Coil:Heating:DX:SingleSpeed", "Coil:Cooling:DX:TwoSpeed", "CoilSystem:Cooling:DX:HeatExchangerAssisted", "Coil:Cooling:DX:TwoStageWithHumidityControlMode", "Coil:WaterHeating:AirToWaterHeatPump:Pumped", "Coil:WaterHeating:AirToWaterHeatPump:Wrapped", "Coil:Cooling:DX:MultiSpeed", "Coil:Heating:DX:MultiSpeed", "Coil:Heating:Fuel", "Coil:Heating:Gas:MultiStage", "Coil:Heating:Electric", "Coil:Heating:Electric:MultiStage", "Coil:Heating:Desuperheater", "Coil:Cooling:Water", "Coil:Cooling:Water:DetailedGeometry", "Coil:Heating:Water", "Coil:Heating:Steam", "CoilSystem:Cooling:Water:HeatExchangerAssisted", "Coil:Cooling:WaterToAirHeatPump:ParameterEstimation", "Coil:Heating:WaterToAirHeatPump:ParameterEstimation", "Coil:Cooling:WaterToAirHeatPump:EquationFit", "Coil:Heating:WaterToAirHeatPump:EquationFit", "Coil:Cooling:DX:VariableRefrigerantFlow", "Coil:Heating:DX:VariableRefrigerantFlow", "Coil:UserDefined", "Coil:Cooling:DX:SingleSpeed:ThermalStorage", "Coil:Cooling:WaterToAirHeatPump:VariableSpeedEquationFit", "Coil:Heating:WaterToAirHeatPump:VariableSpeedEquationFit", "Coil:Cooling:DX:VariableSpeed", "Coil:Heating:DX:VariableSpeed", "Coil:WaterHeating:AirToWaterHeatPump:VariableSpeed", "Coil:Cooling:DX:VariableRefrigerantFlow:FluidTemperatureControl", "Coil:Heating:DX:VariableRefrigerantFlow:FluidTemperatureControl" } );

Array1D_string const cCoolingCoilTypes( NumAllCoilTypes, { "Coil:Cooling:DX:SingleSpeed", "", "Coil:Cooling:DX:TwoSpeed", "CoilSystem:Cooling:DX:HeatExchangerAssisted", "Coil:Cooling:DX:TwoStageWithHumidityControlMode", "", "", "Coil:Cooling:DX:MultiSpeed", "", "", "", "", "", "", "Coil:Cooling:Water", "Coil:Cooling:Water:DetailedGeometry", "", "", "CoilSystem:Cooling:Water:HeatExchangerAssisted", "Coil:Cooling:WaterToAirHeatPump:ParameterEstimation", "", "Coil:Cooling:WaterToAirHeatPump:EquationFit", "", "Coil:Cooling:DX:VariableRefrigerantFlow", "", "", "Coil:Cooling:DX:SingleSpeed:ThermalStorage", "Coil:Cooling:WaterToAirHeatPump:VariableSpeedEquationFit", "", "Coil:Cooling:DX:VariableSpeed", "", "", "Coil:Cooling:DX:VariableRefrigerantFlow:FluidTemperatureControl", "" } );

Array1D_string const cHeatingCoilTypes( NumAllCoilTypes, { "", "Coil:Heating:DX:SingleSpeed", "", "", "", "Coil:WaterHeating:AirToWaterHeatPump:Pumped", "Coil:WaterHeating:AirToWaterHeatPump:Wrapped", "", "Coil:Heating:DX:MultiSpeed", "Coil:Heating:Gas", "Coil:Heating:Gas:MultiStage", "Coil:Heating:Electric", "Coil:Heating:Electric:MultiStage", "Coil:Heating:Desuperheater", "", "", "Coil:Heating:Water", "Coil:Heating:Steam", "", "", "Coil:Heating:WaterToAirHeatPump:ParameterEstimation", "", "Coil:Heating:WaterToAirHeatPump:EquationFit", "", "Coil:Heating:DX:VariableRefrigerantFlow", "", "", "", "Coil:Heating:WaterToAirHeatPump:VariableSpeedEquationFit", "", "Coil:Heating:DX:VariableSpeed", "Coil:WaterHeating:AirToWaterHeatPump:VariableSpeed", "", "Coil:Heating:DX:VariableRefrigerantFlow:FluidTemperatureControl" } );

// Water to air HP coil types
int const WatertoAir_Simple( 1 );
Expand Down
2 changes: 2 additions & 0 deletions src/EnergyPlus/DataHVACGlobals.hh
Original file line number Diff line number Diff line change
Expand Up @@ -229,6 +229,8 @@ namespace DataHVACGlobals {
extern int const CoilVRF_FluidTCtrl_Heating;

extern Array1D_string const cAllCoilTypes;
extern Array1D_string const cCoolingCoilTypes;
extern Array1D_string const cHeatingCoilTypes;

// Water to air HP coil types
extern int const WatertoAir_Simple;
Expand Down
2 changes: 1 addition & 1 deletion src/EnergyPlus/DataPlant.hh
Original file line number Diff line number Diff line change
Expand Up @@ -992,7 +992,7 @@ namespace DataPlant {
// Default Constructor
PlantLoopData() :
FluidType( 0 ),
FluidIndex( 0 ),
FluidIndex( 1 ), // default to water
MFErrIndex( 0 ),
MFErrIndex1( 0 ),
MFErrIndex2( 0 ),
Expand Down
27 changes: 26 additions & 1 deletion src/EnergyPlus/DataSizing.hh
Original file line number Diff line number Diff line change
Expand Up @@ -1082,6 +1082,20 @@ namespace DataSizing {
int CoolingPeakLoadType; //Type of peak to size cooling coils on 1=SensibleCoolingLoad; 2=TotalCooligLoad
int CoolCapControl; // type of control of cooling coil 1=VAV; 2=Bypass; 3=VT; 4=OnOff

Real64 CoinCoolCoilMassFlow; // coincident volume flow at time of cooling coil sensible+latent peak [m3/s]
Real64 CoinHeatCoilMassFlow; // coincident volume flow at time of heating coil sensible peak [m3/s]
Real64 DesCoolCoilVolFlow; // design cooling air volume flow rate at time of coil sens+latent peak [m3/s]
Real64 DesHeatCoilVolFlow; // design heating air volume flow rate at time of coil sens peak [m3/s]
Real64 DesMainCoilVolFlow; // design main supply duct volume flow at time of coil peak [m3/s]
//These are for reporting purposes

int SysHeatCoilTimeStepPk; // timestep in day of heating coil peak
int SysHeatAirTimeStepPk; // timestep in day of heating airflow peak
int HeatDDNum; // index of design day for heating
int CoolDDNum; // index of design day for cooling

Real64 SysCoolCoinSpaceSens; // sum of zone space sensible cooling loads at coincident peak
Real64 SysHeatCoinSpaceSens; // sum of zone space sensible heating loads at coincident peak
// Default Constructor
SystemSizingData() :
LoadSizeType( 0 ),
Expand Down Expand Up @@ -1164,7 +1178,18 @@ namespace DataSizing {
CoolingTotalCapacity( 0.0 ),
HeatingTotalCapacity( 0.0 ),
CoolingPeakLoadType( 0 ), // wfb
CoolCapControl( 0 ) // wfb
CoolCapControl( 0 ), // wfb
CoinCoolCoilMassFlow( 0.0 ),
CoinHeatCoilMassFlow( 0.0 ),
DesCoolCoilVolFlow( 0.0 ),
DesHeatCoilVolFlow( 0.0 ),
DesMainCoilVolFlow( 0.0 ),
SysHeatCoilTimeStepPk( 0 ),
SysHeatAirTimeStepPk( 0 ),
HeatDDNum ( 0 ),
CoolDDNum ( 0 ),
SysCoolCoinSpaceSens( 0.0 ),
SysHeatCoinSpaceSens( 0.0 )
{}

};
Expand Down
13 changes: 12 additions & 1 deletion src/EnergyPlus/FanCoilUnits.cc
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@
// EnergyPlus Headers
#include <FanCoilUnits.hh>
#include <BranchNodeConnections.hh>
#include <DataAirSystems.hh>
#include <DataEnvironment.hh>
#include <DataHeatBalance.hh>
#include <DataHeatBalFanSys.hh>
Expand All @@ -79,6 +80,7 @@
#include <OutputProcessor.hh>
#include <PlantUtilities.hh>
#include <Psychrometrics.hh>
#include <ReportCoilSelection.hh>
#include <ReportSizingManager.hh>
#include <ScheduleManager.hh>
#include <SingleDuct.hh>
Expand Down Expand Up @@ -927,6 +929,15 @@ namespace FanCoilUnits {
SetupOutputVariable( "Fan Coil Availability Status", OutputProcessor::Unit::None, FanCoil( FanCoilNum ).AvailStatus, "System", "Average", FanCoil( FanCoilNum ).Name );
}

for ( FanCoilNum = 1; FanCoilNum <= NumFanCoils; ++FanCoilNum ) {
if ( FanCoil( FanCoilNum ).FanType_Num == DataHVACGlobals::FanType_SystemModelObject ) {
coilSelectionReportObj->setCoilSupplyFanInfo( FanCoil( FanCoilNum ).CCoilName , FanCoil( FanCoilNum ).CCoilType, FanCoil( FanCoilNum ).FanName, DataAirSystems::objectVectorOOFanSystemModel , FanCoil( FanCoilNum ).FanIndex );
coilSelectionReportObj->setCoilSupplyFanInfo( FanCoil( FanCoilNum ).HCoilName , FanCoil( FanCoilNum ).HCoilType, FanCoil( FanCoilNum ).FanName, DataAirSystems::objectVectorOOFanSystemModel , FanCoil( FanCoilNum ).FanIndex );
} else {
coilSelectionReportObj->setCoilSupplyFanInfo( FanCoil( FanCoilNum ).CCoilName , FanCoil( FanCoilNum ).CCoilType, FanCoil( FanCoilNum ).FanName, DataAirSystems::structArrayLegacyFanModels , FanCoil( FanCoilNum ).FanIndex );
coilSelectionReportObj->setCoilSupplyFanInfo( FanCoil( FanCoilNum ).HCoilName , FanCoil( FanCoilNum ).HCoilType, FanCoil( FanCoilNum ).FanName, DataAirSystems::structArrayLegacyFanModels , FanCoil( FanCoilNum ).FanIndex );
}
}
}

void
Expand Down Expand Up @@ -1802,7 +1813,7 @@ namespace FanCoilUnits {
FanCoil( FanCoilNum ).DesZoneCoolingLoad = -1.0 * FanCoil( FanCoilNum ).DesCoolingLoad;
FanCoil( FanCoilNum ).DesZoneHeatingLoad = FanCoil( FanCoilNum ).DesHeatingLoad;

}
}
}

} // if ( CurZoneEqNum > 0 )
Expand Down
41 changes: 38 additions & 3 deletions src/EnergyPlus/HVACDXSystem.cc
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@
#include <HVACDXSystem.hh>
#include <BranchNodeConnections.hh>
#include <DataAirLoop.hh>
#include <DataAirSystems.hh> //coil report
#include <DataEnvironment.hh>
#include <DataHeatBalance.hh>
#include <DataHVACGlobals.hh>
Expand All @@ -63,15 +64,18 @@
#include <DataPrecisionGlobals.hh>
#include <DXCoils.hh>
#include <EMSManager.hh>
#include <Fans.hh> //coil report
#include <FaultsManager.hh>
#include <General.hh>
#include <GeneralRoutines.hh>
#include <HVACFan.hh> //coil report
#include <HVACHXAssistedCoolingCoil.hh>
#include <InputProcessor.hh>
#include <NodeInputManager.hh>
#include <OutputProcessor.hh>
#include <PackagedThermalStorageCoil.hh>
#include <Psychrometrics.hh>
#include <ReportCoilSelection.hh> //coil report
#include <ScheduleManager.hh>
#include <UtilityRoutines.hh>
#include <VariableSpeedCoils.hh>
Expand Down Expand Up @@ -619,7 +623,11 @@ namespace HVACDXSystem {
// considered as as 100% DOAS DX cooling coil
if ( DXCoolingSystem( DXCoolSysNum ).ISHundredPercentDOASDXCoil ) {
// set the system DX Coil application type to the child DX coil
SetDXCoilTypeData( DXCoolingSystem( DXCoolSysNum ).CoolingCoilName );
if ( ! ( DXCoolingSystem( DXCoolSysNum ).CoolingCoilType_Num == Coil_CoolingAirToAirVariableSpeed ) ) {
Copy link
Contributor

Choose a reason for hiding this comment

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

interesting syntax

SetDXCoilTypeData( DXCoolingSystem( DXCoolSysNum ).CoolingCoilName );
} else {
ShowWarningError( "CoilSystem:Cooling:DX named " + DXCoolingSystem( DXCoolSysNum ).Name + " entered with both variable speed DX coil and outdoor air mode set to YES, however VS coil model does not have a special outdoor air mode" );
}
}
// DOAS DX Cooling Coil Leaving Minimum Air Temperature
if ( NumNums > 0 ) {
Expand Down Expand Up @@ -775,6 +783,32 @@ namespace HVACDXSystem {
MySetPointCheckFlag = false;
}

if ( ! DXCoolingSystem( DXSystemNum ).VSCoilFanInfoSet && AirLoopNum > 0 ) {
if ( DXCoolingSystem( DXSystemNum ).CoolingCoilType_Num == Coil_CoolingAirToAirVariableSpeed ) {

switch ( DataAirSystems::PrimaryAirSystem( AirLoopNum ).supFanModelTypeEnum ){
case DataAirSystems::structArrayLegacyFanModels: {
int SupFanNum = DataAirSystems::PrimaryAirSystem( AirLoopNum ).SupFanNum;
if ( SupFanNum > 0 ) {
coilSelectionReportObj->setCoilSupplyFanInfo( DXCoolingSystem( DXSystemNum ).CoolingCoilName, DXCoolingSystem( DXSystemNum ).CoolingCoilType, Fans::Fan( DataAirSystems::PrimaryAirSystem( AirLoopNum ).SupFanNum ).FanName, DataAirSystems::structArrayLegacyFanModels, DataAirSystems::PrimaryAirSystem( AirLoopNum ).SupFanNum );
}

break;
}
case DataAirSystems::objectVectorOOFanSystemModel: {
if ( DataAirSystems::PrimaryAirSystem( AirLoopNum ).supFanVecIndex >= 0 ) {
coilSelectionReportObj->setCoilSupplyFanInfo( DXCoolingSystem( DXSystemNum ).CoolingCoilName, DXCoolingSystem( DXSystemNum ).CoolingCoilType, HVACFan::fanObjs[ DataAirSystems::PrimaryAirSystem( AirLoopNum ).supFanVecIndex ]->name, DataAirSystems::objectVectorOOFanSystemModel, DataAirSystems::PrimaryAirSystem( AirLoopNum ).supFanVecIndex );
}
break;
}
case DataAirSystems::fanModelTypeNotYetSet: {
// do nothing
break;
}
}
DXCoolingSystem( DXSystemNum ).VSCoilFanInfoSet = true;
}
} // else if ( ) on OA system ??
// These initializations are done every iteration
if ( AirLoopNum == -1 ) { // This IF-TEHN routine is just for ZoneHVAC:OUTDOORAIRUNIT
OutNode = DXCoolingSystem( DXSystemNum ).DXCoolingCoilOutletNodeNum;
Expand Down Expand Up @@ -2890,8 +2924,9 @@ namespace HVACDXSystem {
if ( NumDXSystem > 0 ) {
DXCoolSysNum = FindItemInList( DXCoilSysName, DXCoolingSystem );
if ( DXCoolSysNum > 0 && DXCoolingSystem( DXCoolSysNum ).ISHundredPercentDOASDXCoil ) {
//DXCoolingSystem(DXCoolSysNum)%ISHundredPercentDOASDXCoil = .TRUE.
SetDXCoilTypeData( DXCoolingSystem( DXCoolSysNum ).CoolingCoilName );
if ( ! ( DXCoolingSystem( DXCoolSysNum ).CoolingCoilType_Num == Coil_CoolingAirToAirVariableSpeed ) ) {
SetDXCoilTypeData( DXCoolingSystem( DXCoolSysNum ).CoolingCoilName );
}
}
}

Expand Down
6 changes: 5 additions & 1 deletion src/EnergyPlus/HVACDXSystem.hh
Original file line number Diff line number Diff line change
Expand Up @@ -189,6 +189,8 @@ namespace HVACDXSystem {
int FaultyCoilSATIndex; // Index of the fault object corresponding to the coil
Real64 FaultyCoilSATOffset; // Coil SAT sensor offset

bool VSCoilFanInfoSet; // flag to indicate if Coil System has set fan info in VS DX coil model

// Default Constructor
DXCoolingConditions() :
SchedPtr( 0 ),
Expand Down Expand Up @@ -253,7 +255,9 @@ namespace HVACDXSystem {
TESOpMode( 0 ),
FaultyCoilSATFlag( false ),
FaultyCoilSATIndex( 0 ),
FaultyCoilSATOffset( 0.0 )
FaultyCoilSATOffset( 0.0 ),
VSCoilFanInfoSet( false )

{}

};
Expand Down
7 changes: 6 additions & 1 deletion src/EnergyPlus/HVACUnitaryBypassVAV.cc
Original file line number Diff line number Diff line change
Expand Up @@ -421,7 +421,12 @@ namespace HVACUnitaryBypassVAV {
}

Real64 locFanElecPower = 0.0;
locFanElecPower = Fans::GetFanPower( CBVAV( CBVAVNum ).FanIndex );
if ( CBVAV( CBVAVNum ).FanType_Num == DataHVACGlobals::FanType_SystemModelObject ) {
locFanElecPower = HVACFan::fanObjs[ CBVAV( CBVAVNum ).FanIndex ]->fanPower();
} else {
locFanElecPower = Fans::GetFanPower( CBVAV( CBVAVNum ).FanIndex );
}

CBVAV( CBVAVNum ).ElecPower = locFanElecPower + DXElecCoolingPower + HeatingPower;

}
Expand Down