|
50 | 50 |
|
51 | 51 | // EnergyPlus Headers
|
52 | 52 | #include <EnergyPlus/AirLoopHVACDOAS.hh>
|
| 53 | +#include <EnergyPlus/Autosizing/Base.hh> |
53 | 54 | #include <EnergyPlus/BranchNodeConnections.hh>
|
54 | 55 | #include <EnergyPlus/Data/EnergyPlusData.hh>
|
55 | 56 | #include <EnergyPlus/DataAirLoop.hh>
|
@@ -980,32 +981,35 @@ namespace AirLoopHVACDOAS {
|
980 | 981 |
|
981 | 982 | void AirLoopDOAS::SizingAirLoopDOAS(EnergyPlusData &state)
|
982 | 983 | {
|
983 |
| - Real64 sizingMassFlow = 0; |
| 984 | + Real64 sizingVolumeFlow = 0; |
984 | 985 |
|
985 | 986 | for (int AirLoop = 1; AirLoop <= this->NumOfAirLoops; AirLoop++) {
|
986 | 987 | int AirLoopNum = this->m_AirLoopNum[AirLoop - 1];
|
987 | 988 | this->m_OACtrlNum.push_back(state.dataAirLoop->AirLoopControlInfo(AirLoopNum).OACtrlNum);
|
988 | 989 |
|
989 | 990 | if (this->m_OACtrlNum[AirLoop - 1] > 0) {
|
990 |
| - sizingMassFlow += state.dataMixedAir->OAController(this->m_OACtrlNum[AirLoop - 1]).MaxOA; |
| 991 | + sizingVolumeFlow += |
| 992 | + state.dataMixedAir->OAController(this->m_OACtrlNum[AirLoop - 1]).MaxOA; // this is a volume flow rate not a mass flow rate |
991 | 993 | }
|
992 | 994 | }
|
993 |
| - this->SizingMassFlow = sizingMassFlow; |
| 995 | + this->SizingMassFlow = sizingVolumeFlow * state.dataEnvrn->StdRhoAir; |
| 996 | + |
| 997 | + BaseSizer::reportSizerOutput(state, "AirLoopHVAC:DedicatedOutdoorAirSystem", this->Name, "Design Volume Flow Rate [m3/s]", sizingVolumeFlow); |
994 | 998 | this->GetDesignDayConditions(state);
|
995 | 999 |
|
996 |
| - if (this->m_FanIndex > 0 && this->m_FanTypeNum == SimAirServingZones::CompType::Fan_System_Object) { |
997 |
| - state.dataFans->fans(this->m_FanIndex)->maxAirFlowRate = sizingMassFlow / state.dataEnvrn->StdRhoAir; |
998 |
| - state.dataLoopNodes->Node(this->m_FanInletNodeNum).MassFlowRateMaxAvail = sizingMassFlow; |
999 |
| - state.dataLoopNodes->Node(this->m_FanOutletNodeNum).MassFlowRateMaxAvail = sizingMassFlow; |
1000 |
| - state.dataLoopNodes->Node(this->m_FanOutletNodeNum).MassFlowRateMax = sizingMassFlow; |
| 1000 | + if (this->m_FanIndex > -1 && this->m_FanTypeNum == SimAirServingZones::CompType::Fan_System_Object) { |
| 1001 | + state.dataFans->fans(this->m_FanIndex)->maxAirFlowRate = sizingVolumeFlow; |
| 1002 | + state.dataLoopNodes->Node(this->m_FanInletNodeNum).MassFlowRateMaxAvail = this->SizingMassFlow; |
| 1003 | + state.dataLoopNodes->Node(this->m_FanOutletNodeNum).MassFlowRateMaxAvail = this->SizingMassFlow; |
| 1004 | + state.dataLoopNodes->Node(this->m_FanOutletNodeNum).MassFlowRateMax = this->SizingMassFlow; |
1001 | 1005 | }
|
1002 | 1006 | if (this->m_FanIndex > 0 && this->m_FanTypeNum == SimAirServingZones::CompType::Fan_ComponentModel) {
|
1003 |
| - state.dataFans->fans(this->m_FanIndex)->maxAirFlowRate = sizingMassFlow / state.dataEnvrn->StdRhoAir; |
| 1007 | + state.dataFans->fans(this->m_FanIndex)->maxAirFlowRate = sizingVolumeFlow; |
1004 | 1008 | state.dataFans->fans(this->m_FanIndex)->minAirFlowRate = 0.0;
|
1005 |
| - state.dataFans->fans(this->m_FanIndex)->maxAirMassFlowRate = sizingMassFlow; |
1006 |
| - state.dataLoopNodes->Node(this->m_FanInletNodeNum).MassFlowRateMaxAvail = sizingMassFlow; |
1007 |
| - state.dataLoopNodes->Node(this->m_FanOutletNodeNum).MassFlowRateMaxAvail = sizingMassFlow; |
1008 |
| - state.dataLoopNodes->Node(this->m_FanOutletNodeNum).MassFlowRateMax = sizingMassFlow; |
| 1009 | + state.dataFans->fans(this->m_FanIndex)->maxAirMassFlowRate = this->SizingMassFlow; |
| 1010 | + state.dataLoopNodes->Node(this->m_FanInletNodeNum).MassFlowRateMaxAvail = this->SizingMassFlow; |
| 1011 | + state.dataLoopNodes->Node(this->m_FanOutletNodeNum).MassFlowRateMaxAvail = this->SizingMassFlow; |
| 1012 | + state.dataLoopNodes->Node(this->m_FanOutletNodeNum).MassFlowRateMax = this->SizingMassFlow; |
1009 | 1013 | }
|
1010 | 1014 |
|
1011 | 1015 | state.dataSize->CurSysNum = state.dataHVACGlobal->NumPrimaryAirSys + this->m_AirLoopDOASNum + 1;
|
@@ -1044,6 +1048,21 @@ namespace AirLoopHVACDOAS {
|
1044 | 1048 | }
|
1045 | 1049 | }
|
1046 | 1050 | }
|
| 1051 | + |
| 1052 | + BaseSizer::reportSizerOutput( |
| 1053 | + state, "AirLoopHVAC:DedicatedOutdoorAirSystem", this->Name, "Design Cooling Outdoor Air Temperature [C]", this->SizingCoolOATemp); |
| 1054 | + BaseSizer::reportSizerOutput(state, |
| 1055 | + "AirLoopHVAC:DedicatedOutdoorAirSystem", |
| 1056 | + this->Name, |
| 1057 | + "Design Cooling Outdoor Air Humidity Ratio [kgWater/kgDryAir]", |
| 1058 | + this->SizingCoolOAHumRat); |
| 1059 | + BaseSizer::reportSizerOutput( |
| 1060 | + state, "AirLoopHVAC:DedicatedOutdoorAirSystem", this->Name, "Design Heating Outdoor Air Temperature [C]", this->HeatOutTemp); |
| 1061 | + BaseSizer::reportSizerOutput(state, |
| 1062 | + "AirLoopHVAC:DedicatedOutdoorAirSystem", |
| 1063 | + this->Name, |
| 1064 | + "Design Heating Outdoor Air Humidity Ratio [kgWater/kgDryAir]", |
| 1065 | + this->HeatOutHumRat); |
1047 | 1066 | }
|
1048 | 1067 |
|
1049 | 1068 | void CheckConvergence(EnergyPlusData &state)
|
|
0 commit comments