On/Off HVAC Dynamics Issue
Hello, I'm a new poster here although I've been using the forum for awhile. I've run into the issue of erratic zone temperature dynamics while using EMS to implement an On/Off Furnace control with a 1C deadband.
This program just changes the availability of the loop through a Scheduled AVM 1) to off if zone temperature is 0.5C over the setpoint and 2) to available if it is 0.5C below the setpoint. Only heating season is being simulated. The setpoint used for the program is 21C and the setpoint being imposed on the zones is 30C (to ensure the furnace is at capacity whenever it is on). The program works fine, but whenever the action changes, the two timesteps afterwards show a massive, unrealistic jump in zone temperature, only to slow their rate of change afterwards to a more normal pace. This happens despite constant heat losses from the envelope and infiltration.
It has showed severe oscillation in the explained setup. I think it may be a timestep issue somewhere because when I widen the deadband is when I see the rate of temperature change go back to normal (given a few more timesteps before it triggers the control action).
I'm working in OpenStudio, and am inputting this IDF text through the EP measure to do so:
EnergyManagementSystem:Sensor,
tzacq, !- Name
MasterZone, !- Output:Variable or Output:Meter Index Key Name
Zone Air Temperature; !- Output:Variable or Output:Meter Name
EnergyManagementSystem:Sensor,
tzsp, !Name
MyTzSP, ! Output:Variable Index Key Name
Schedule Value; ! Output:Variable or Output:Meter Name
EnergyManagementSystem:ProgramCallingManager,
Control Program, !- Name
EndOfZoneTimestepAfterZoneReporting, !- EnergyPlus Model Calling Point
controlprogram; !- Program Name 1
EnergyManagementSystem:Actuator,
HVACschavail, !- Name
ChangeMe, !- Component Name
Schedule:Year, !- Component Type
Schedule Value; !- Control Variable
EnergyManagementSystem:Program,
controlprogram, !- Name
SET diff = tzsp-tzacq,
IF (diff>=2),
SET HVACschavail = 1,
ELSEIF (diff<=(-2)),
SET HVACschavail = 0,
ENDIF;
Output:EnergyManagementSystem,
Verbose,
Verbose,
Verbose;
Here is the test case zone air temperature output with a 4C deadband instead for a day in January.
@morronini it looks like the image links that you provided aren't working. Can you share these with Dropbox or something similar?