Hi all!
I am using the low-rise apartment reference building model from the DOE for some control experiments. The building has 18 zones, each equipped with an independent HVAC system consisting of an electric heating coil and a fan. I am utilizing the EnergyPlus Python API to run simulations and read meter/variable values. The simulation timestep is set to 15 minutes and the simulation is in a cold climate zone during winter (around -15 deg C outdoor).
I'm interested in monitoring the electricity consumption of the heating coils (average power or total energy per timestep) for each thermal zone.
However, I've encountered a problem: every time I lower a setpoint, the electricity energy of the heating coil decreases and then spikes up for one timestep before settling down again. This sudden increase in power output does not correspond with changes in the zone temperature, which remains around the new setpoint. This behavior seems unrealistic.
I suspect the issue might come from how I read the values in Python, particularly with the adaptive HVAC timestep duration that shortens when a setpoint is changed. I have tried several approaches, but none have resolved the issue. For example:
- Using the variable "Output:Variable,*,Heating Coil Electricity Energy, Timestep;" to read the total energy per timestep and divided it by the zone timestep duration to compute the average power (I also tried dividing by the system time step).
- Reading the "Zone Air System Sensible Heating Rate" of each zone directly as a proxy for the heating power.
Creating custom meters for each zone to compute the total electricity energy, not just using a variable:
Meter:Custom, Meter_Heating_Coil_Unit1_FrontRow_BottomFloor, !- Name Electricity, !- Resource Type Main electric heating coil_unit1_FrontRow_BottomFloor, !- Key Name 1 Heating Coil Electricity Energy; !- Output Variable or Meter Name 1
and
Output:Meter,
Meter_Heating_Coil_Unit1_FrontRow_BottomFloor, !- Meter Name
timestep;
One thing that reduces the spike is increasing the simulation time step to 30 minutes. It sort of "average out" the spike. However, decreasing the time step to 5 minutes makes thing worse.
In Python, I read the values using the callback "callback_end_zone_timestep_after_zone_reporting," which seems appropriate to capture the total amount of energy used per timestep.
My questions are:
Is this really indicative of how the heating coil operates, or is it a problem? If so, how can we explain this power spike? If it is indeed a problem, how can we accurately access each coil's consumption?
Please let me know if you need more information; I've tried to keep this brief.
Thanks a lot!
Vincent