Question-and-Answer Resource for the Building Energy Modeling Community
Get started with the Help page
Ask Your Question

Revision history [back]

The Determine_infiltration EMS program above is circular, leading to the high infiltration rate. This program is being called from BeginTimestepBeforePredictor. At that point, the sensors infil1M3 and infil2M3 hold the value of infiltration at the end of the prior timestep - they do not represent the unmodified infiltration rate for the current timestep. In fact, the infiltration rate for the current timestep has not been calculated yet. Use the Null value to set an actuator to take no action. This program results in reasonable infiltration rates.

EnergyManagementSystem:Program,
Determine_infiltration,  !- Name
SET ORIGINALINFIL1=INFIL1,  !- Program Line 1
SET ORIGINALINFIL2=INFIL2,  !- Program Line 2
IF VRFMODE > 0,          !- A4
SET infil1setM3=@min 0.0918 infil1M3,  !- A5
SET infil2setM3= @min 0.0918 infil2M3,  !- A6
elseif VRFMODE == 0,     !- A7
SET infil1setM3= Null,      !- A8
SET infil2setM3= Null,      !- A9
ENDIF;                   !- A10

Also, you should make a second EnergyManagementSystem:ProgramCallingManager object to call the Determine_DOAS program (not shown above) later in the simulation after the infiltration has been calculated using the impact of the first EMS program. Use calling point AfterPredictorBeforeHVACManagers or InsideHVACSystemIterationLoop. You may need to experiment to see which one gives the best result.