NREL / EnergyPlus

EnergyPlus™ is a whole building energy simulation program that engineers, architects, and researchers use to model both energy consumption and water use in buildings.
https://energyplus.net
Other
1.1k stars 384 forks source link

Air Distribution Unit (ADU) simple air leakage model uses a constant leakage flow rate regardless of the air terminal type #10110

Closed Nigusse closed 11 months ago

Nigusse commented 1 year ago

Issue overview

Air Distribution Unit (ADU) simple air leakage model uses a constant leakage flow rate regardless of the air terminal type. The upstream air-leakage mass flow rate calculation should be proportional to the maximum available flow for CV air terminal types. The current code results in a higher leakage rate than the user-specified fraction for a CV system.

Details

Some additional details for this issue (if relevant):

Checklist

Add to this list or remove from it as applicable. This is a simple templated set of guidelines.

Nigusse commented 1 year ago

See current and expected supply air flow rates based on a defect file for an AirLoop serving a single zone.

ADU_LeakageModel

Nigusse commented 1 year ago

Current code: MassFlowRateUpStreamLeakMax = max(state.dataDefineEquipment->AirDistUnit(AirDistUnitNum).UpStreamLeakFrac * state.dataLoopNodes->Node(InNodeNum).MassFlowRateMax * DesFlowRatio, 0.0);

This code should have been:

MassFlowRateUpStreamLeakMax = max(state.dataDefineEquipment->AirDistUnit(AirDistUnitNum).UpStreamLeakFrac * state.dataLoopNodes->Node(InNodeNum).MassFlowRateMaxAvail * DesFlowRatio, 0.0);

Air Distribution Unit inlet node's maximum mass flow rate can differ from the maximum available. The maximum available flow rate is set based on the Minimum Turndown Ratio specified at SetpointManager:WarmestTemperatureFlow object but the current code calculates upstream leakage rate based on the Maximum Flow, which is often different from the maximum available flow.

rraustad commented 1 year ago

It looks to me like you can remove all references to DesFlowRatio elsewhere in code and simply use:

state.dataDefineEquipment->AirDistUnit(AirDistUnitNum).UpStreamLeakFrac * state.dataLoopNodes->Node(InNodeNum).MassFlowRateMaxAvail