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

1st pass on using air distribution effectiveness in OA calculation #9678

Draft
wants to merge 3 commits into
base: develop
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 8 additions & 2 deletions src/EnergyPlus/SingleDuct.cc
Original file line number Diff line number Diff line change
Expand Up @@ -2923,11 +2923,17 @@ void SingleDuctAirTerminal::SizeSys(EnergyPlusData &state)

auto &TermUnitSizing(state.dataSize->TermUnitSizing);

if (state.dataSize->ZoneSizingRunDone && state.dataSize->CurTermUnitSizingNum > 0) {
this->ADEffHeating = state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).ZoneADEffHeating;
this->ADEffCooling = state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).ZoneADEffCooling;
}

if (this->MaxAirVolFlowRate == AutoSize) {
IsAutoSize = true;
}

if (state.dataSize->CurTermUnitSizingNum > 0) {

if (!IsAutoSize && !state.dataSize->ZoneSizingRunDone) { // simulation continue
if (this->MaxAirVolFlowRate > 0.0) {
BaseSizer::reportSizerOutput(
Expand Down Expand Up @@ -3914,7 +3920,7 @@ void SingleDuctAirTerminal::SimVAV(EnergyPlusData &state, bool const FirstHVACIt

// calculate supply air flow rate based on user specified OA requirement
this->CalcOAMassFlow(state, MassFlowBasedOnOA, AirLoopOAFrac);
MassFlow = max(MassFlow, MassFlowBasedOnOA);
MassFlow = max(MassFlow, MassFlowBasedOnOA/this->ADEffCooling);

// used for normal acting damper
state.dataSingleDuct->MinMassAirFlowSDAT = max(state.dataSingleDuct->MinMassAirFlowSDAT, MassFlowBasedOnOA);
Expand Down Expand Up @@ -3952,7 +3958,7 @@ void SingleDuctAirTerminal::SimVAV(EnergyPlusData &state, bool const FirstHVACIt

// calculate supply air flow rate based on user specified OA requirement
this->CalcOAMassFlow(state, MassFlowBasedOnOA, AirLoopOAFrac);
MassFlow = max(MassFlow, MassFlowBasedOnOA);
MassFlow = max(MassFlow, MassFlowBasedOnOA/this->ADEffHeating);

// Check to see if the flow is < the Min or > the Max air Fraction to the zone; then set to min or max
if (MassFlow <= this->sd_airterminalInlet.AirMassFlowRateMinAvail) {
Expand Down
3 changes: 3 additions & 0 deletions src/EnergyPlus/SingleDuct.hh
Original file line number Diff line number Diff line change
Expand Up @@ -197,6 +197,9 @@ namespace SingleDuct {
bool NoOAFlowInputFromUser; // avoids OA calculation if no input specified by user
int OARequirementsPtr; // - Index to DesignSpecification:OutdoorAir object
int AirLoopNum;
Real64 ADEff = 1.0; // DesignSpecification:AirDistributionEffectiveness
Real64 ADEffHeating = 1.0; // DesignSpecification:AirDistributionEffectiveness
Real64 ADEffCooling = 1.0; // DesignSpecification:AirDistributionEffectiveness
PlantLocation HWplantLoc; // plant topology, Component location
std::string ZoneHVACUnitType; // type of Zone HVAC unit for air terminal mixer units
std::string ZoneHVACUnitName; // name of Zone HVAC unit for air terminal mixer units
Expand Down
Loading