Revision history [back]
EnergyPlus output variables are updated at two time scales, zone timestep and HVAC timestep. Within EMS programs, one must be careful to use the proper calling point in order to update values at the correct timestep, and with custom output variables, these must align with the underlying values that are feeding into it.
In this case, the sensor variables for ACConsumption
are "Air System Electric Energy" and "Zone Packaged Terminal Heat Pump Electric Energy". These values both change at the HVAC timestep. You can check any output variable's update frequency by consulting the rdd output:
HVAC,Sum,Zone Packaged Terminal Heat Pump Electric Energy [J]
HVAC,Sum,Air System Electric Energy [J]
In the EMS program, the calling point is EndOfZoneTimestepBeforeZoneReporting and the new output variables are specified as ZoneTimestep. That's why you got good agreement with "Zone Mean Air Temperature" which is a zone timestep variable, but not with "Zone Air Temperature" which is a system timstep variable.
So, for this to work:
- For
EnergyManagementSystem:OutputVariable, ACConsumption
, change the "Update Frequency" to SystemTimestep. - For
EnergyManagementSystem:ProgramCallingManager, ACconsumptionProgram
, change the "EnergyPlus Model Calling Point" to EndOfSystemTimestepAfterHVACReporting.