-
Notifications
You must be signed in to change notification settings - Fork 448
Add support for variable speed coils for SingleZoneVAV
control type in AirLoopHVAC:UnitarySystem
#11142
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
base: develop
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code walkthrough:
} else if (this->m_SimASHRAEModel && this->m_SimASHRAEModelOn) { | ||
state.dataUnitarySystems->CompOnMassFlow = this->m_HeatMassFlowRate[this->m_NumOfSpeedHeating]; | ||
state.dataUnitarySystems->CompOnFlowRatio = this->m_MSHeatingSpeedRatio[this->m_NumOfSpeedHeating]; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Set the "compressor on" flow rate (and associated variable) to be the highest cooling/heating speed. This is only done when doing the SZVAV calculation. Changes below are similar.
|
||
state->dataGlobal->BeginEnvrnFlag = true; | ||
|
||
// Test for zone 1 - Heating |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add new unit test and check all operating "zones" of the SZVAV control strategy for both heating and cooling operation.
add_simulation_test(IDF_FILE _5ZoneAirCooled_annual.idf EPW_FILE USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw ANNUAL_SIMULATION) | ||
add_simulation_test(IDF_FILE _5ZoneAirCooled_LeapYear_annual.idf EPW_FILE MadeUpLeapYear.epw ANNUAL_SIMULATION) | ||
add_simulation_test(IDF_FILE UnitarySystem_MultiSpeedDX_EconoStaging.idf EPW_FILE USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw ANNUAL_SIMULATION) | ||
add_simulation_test(IDF_FILE UnitarySystem_VariableSpeedDX_SZVAV.idf EPW_FILE USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw ANNUAL_SIMULATION) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add new example file; Results shown in the PR are generated from this file.
bool m_ValidASHRAEHeatCoil = false; | ||
bool m_SimASHRAEModel = false; // flag denoting that ASHRAE model (SZVAV) should be used | ||
bool m_SimASHRAEModel = false; // flag denoting that ASHRAE model (SZVAV) should be used | ||
bool m_SimASHRAEModelOn = false; // flag denoting that the SZVAV calculation is active |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
New flag to denote that the SZVAV calculation are being performed. This allows the initial calls to calcUnitarySystemToLoad
in controlUnitarySystemOutput
to not be based on the SZVAV flow rates, for example when determining which speed to pick to meet the load.
if (this->m_SimASHRAEModel) { | ||
this->m_HeatingCycRatio = PartLoadRatio; | ||
this->m_HeatingSpeedRatio = 1.0; | ||
} else if (this->m_SingleMode == 0) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Single mode-like operation for SZVAV calcs.
if (this->m_SimASHRAEModel) { | ||
CoilPLR = PartLoadRatio; | ||
} else if (this->m_CoolingSpeedNum > 1) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Passing the actual PLR when running the SZVAV control strategy.
Results from the example file: Cooling Operation
Heating Operation
|
@lymereJ @Myoldmopar it has been 33 days since this pull request was last updated. |
" Coil:Cooling:DX:VariableSpeed,", | ||
" Sys 2 Furnace DX Cool Cooling Coil, !- Name", | ||
" Sys 2 Furnace DX Cool Mixed Air Outlet, !- Indoor Air Inlet Node Name", | ||
" Sys 2 Furnace DX Cool Cooling Coil Outlet, !- Indoor Air Outlet Node Name", | ||
" 3, !- Number of Speeds {dimensionless}", | ||
" 3, !- Nominal Speed Level {dimensionless}", | ||
" 3513.72009, !- Gross Rated Total Cooling Capacity At Selected Nominal Speed Level {W}", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not the most critical issue, but can you cleanup the comment alignment a bit here to help with readability?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@mitchute, done!
We'll try this one more time. It builds fine locally on my Arm64 Mac. |
Pull request overview
Addresses #10866: the EMS code developed by TRANE was similar to the
calcSZVAVModel
routine already implemented in EnergyPlus and available through theSingleZoneVAV
control type forAirLoopHVAC:UnitarySystem
objects. TRANE requested that we add support for variable speed coil objects.Description of the purpose of this PR
The
SingleZoneVAV
control type forAirLoopHVAC:UnitarySystem
currently only supportsCoil:Cooling/Heating:Water
orCoil:Cooling/Heating:DX:SingleSpeed
coil objects. This new feature add support forCoil:Cooling/Heating:DX:VariableSpeed
.Pull Request Author
Reviewer