-
Notifications
You must be signed in to change notification settings - Fork 389
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
Correct VAV maximum air flow fraction during reheat for heating dominated use cases #10763
base: develop
Are you sure you want to change the base?
Correct VAV maximum air flow fraction during reheat for heating dominated use cases #10763
Conversation
The defect file results are now:
|
Real64 heatingMaxFlow = (this->DamperHeatingAction == Action::ReverseWithLimits) | ||
? state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesHeatVolFlowMax | ||
: state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesHeatVolFlow; | ||
MaxAirVolFlowRateDes = max(state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesCoolVolFlow, heatingMaxFlow); |
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.
If ReverseWithLimits uses a different heating air flow rate from the zone design heating air flow rate then that flow rate should be used as the value for the VAV box heating air flow rate.
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.
Well, I was expecting DesHeatVolFlowMax to always be less than DesHeatVolFlow. For 5ZoneBoilerOutsideAirReset that's not the case. The diffs show that Zone 5 TU max air flow rate increased, I was only expecting decreases in max air flow rate for heating dominated zones. Zone cooling design air flow is greater than zone heating design air flow, but DesHeatVolFlowMax is larger than both of these.
// set the zone maximum heating supply air flow rate. This will be used for autosizing VAV terminal unit
// max heating flow rates
zsFinalSizing.DesHeatVolFlowMax = max(zsFinalSizing.DesHeatMaxAirFlow,
zsFinalSizing.DesHeatMaxAirFlow2,
max(zsFinalSizing.DesCoolVolFlow, zsFinalSizing.DesHeatVolFlow) * zsFinalSizing.DesHeatMaxAirFlowFrac);
zsFinalSizing.DesHeatMaxAirFlow2 = zsFinalSizing.DesHeatMaxAirFlowPerArea * floorArea * zoneMult;
= 0.002032 * 182.49 * 1 = 0.37082
N8 , \field Maximum Flow Fraction During Reheat
\type real
\autosizable
\default autosize
\note Used only when Reheat Coil Object Type = Coil:Heating:Water and Damper Heating Action = ReverseWithLimits
\note When autocalculating, the maximum flow fraction is set to the ratio of
\note 0.002032 m3/s-m2 (0.4 cfm/sqft) multiplied by the zone floor area and the
\note Maximum Air Flow Rate.
\note This optional field limits the maximum flow allowed in reheat mode.
\note At no time will the maximum flow rate calculated here exceed the value of
\note Maximum Air Flow Rate.
So is DesHeatVolFlowMax just an upper limit? or is it the expected heating air flow rate?
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.
So, since DesHeatVolFlowMax looks like a limit and not a flow rate, maybe I should change this line and line 3224 to?:
Real64 heatingMaxFlow = (DesHeatVolFlowMax > DesHeatVolFlow) ? state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesHeatVolFlow :
state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesHeatVolFlowMax);
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.
Based on this discussion I changed to treat DesHeatVolFlowMax as an upper limit. This should still correct the issue and result in fewer diffs.
MaxHeatAirVolFlowRateDes = state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesHeatVolFlowMax; | ||
} else { | ||
MaxHeatAirVolFlowRateDes = state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesHeatVolFlow; | ||
} |
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.
Below at line 3224, ReverseWithLimits uses DesHeatVolFlowMax. That value should also be used here.
3224: MaxAirVolFlowRateDuringReheatDes = state.dataSize->TermUnitFinalZoneSizing(state.dataSize->CurTermUnitSizingNum).DesHeatVolFlowMax;
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.
As discussed above, these 2 areas of code, above (2937) and below (3231), were changed to use DesHeatVolFlowMax as a limit.
|
|
It turns out this does correct a reporting issue (5ZoneAutoDXVAV).
ReverseWithLimits will operate up to the zone design heating air flow unless that flow exceeds the maximum limit. In the past the maximum limit was used to calculate the maximum reheat fraction. This change only uses the maximum reheat flow rate if it actually limits the design heating air flow rate. In this case the maximum reheat fraction is 0.10362 m3/s / 0.46734 m3/s = 0.2217229 <- correct answer and 0.10362 m3/s / 99.16 m2 = 0.001049778 m3/s/m2 <- correct answer |
|
Defect file results after latest change to use DesHeatVolFlowMax as a limit, not a flow rate:
|
expectedMaxAirVolFractionDuringReheat = state->dataSize->TermUnitFinalZoneSizing(1).DesHeatVolFlowMax / thisSys.MaxAirVolFlowRate; | ||
EXPECT_EQ(expectedZoneMinAirFracDes, thisSys.ZoneMinAirFracDes); | ||
EXPECT_EQ(1.0, thisSys.MaxAirVolFractionDuringReheat); | ||
EXPECT_EQ(expectedMaxAirVolFractionDuringReheat, thisSys.MaxAirVolFractionDuringReheat); |
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.
Added 3 new tests for maximum air flow fraction during reheat to this unit test.
I changed the defect file to use Damper Heating Action = Reverse and get expected results regarding the Maximum Flow Fraction during Reheat and the air flow rate used to size the heating coil.
|
Pull request overview
NOTE: ENHANCEMENTS MUST FOLLOW A SUBMISSION PROCESS INCLUDING A FEATURE PROPOSAL AND DESIGN DOCUMENT PRIOR TO SUBMITTING CODE
Pull Request Author
Add to this list or remove from it as applicable. This is a simple templated set of guidelines.
Reviewer
This will not be exhaustively relevant to every PR.