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

# How to set deadband of themostat setpoint

Hello

I am trying to simulate the thermal load of a high-rise residence and I encountered a problem about thermostat setpoint in energyplus. The cooling setpoint should be 26 Celsius, while there is a three Celsus deadband of setpoint to turn on air conditioning. That means people will not turn on the air conditioning until indoor air temperature exceeding 29Celsus. Once they turn on the air conditioning, the indoor temperature will be maintained at 26 Celsius.

I checked the object ThermostatSetpoint:DualSetpoint and ZoneControl:Thermostat:StagedDualSetpoint in input-output-reference but it seems not working. I am so appreciated if anyone could provide any help.

edit retag close merge delete

Sort by » oldest newest most voted

The final input field of the ZoneControl:Thermostat object in EnergyPlus sets a Temperature Difference Between Cutout And Setpoint. This creates a temperature difference between the setpoint and the temperature when the equipment should turn off ("cutout" temperature). You can see an example applied to the cooling setpoint below.

2 - Single Cooling SetPoint
If ( MAT > ThermostatSetpoint:SingleCooling )
ThermostatSetpoint:SingleCooling = ThermostatSetpoint:SingleCooling - DeltaT
Else
No change
End If


As you can see, EnergyPlus will turn on cooling equipment when the indoor mean air temperature ($MAT$) is above the cooling setpoint. When that happens, the cooling equipment will "overcool" the zone down to the cutout temperature. The cutout temperature is equal to the setpoint temperature minus the temperature difference between cutout and setpoint ($DeltaT$).

This means that if you want the air conditioning to turn on when the indoor air temperature reaches 29 $^\circ{C}$, then that is the setpoint temperature value that should be used in the Cooling Setpoint Temperature Schedule Name referenced by the ThermostatSetpoint:DualSetpoint object. If you want the air conditioning to turn on until the indoor air temperature reaches 26 $^\circ{C}$, then that is the cutout temperature and you should set the Temperature Difference Between Cutout And Setpoint input to 3 $^\circ{C}$.

The ZoneControl:Thermostat:StagedDualSetpoint object is more complex with possible input fields for multiple stages of heating/cooling and throttling ranges of heating/cooling. It doesn't sound like that is what you want to simulate.

There is a very similar post on this topic for further reference.

UPDATE

If you want to only apply this cutout temperature to cooling and not heating, then you will need to replace the ZoneControl:Thermostat object with a ZoneControl:Thermostat:StagedDualSetpoint object. Instead of defining one cutout temperature difference applied to both heating and cooling, this object allows you to define a Heating Throttling Temperature Range separately from a Cooling Throttling Temperature Range. These have different impacts on the thermostat control in the zone, and are based on zone mean air temperature from the previous timestep:

2 - Single Cooling SetPoint
If ( MAT_previous_timestep > ThermostatSetpoint:SingleCooling )
ThermostatSetpoint:SingleCooling = ThermostatSetpoint:SingleCooling - 0.5 * Cooling Throttling Range
Else
ThermostatSetpoint:SingleCooling = ThermostatSetpoint:SingleCooling + 0.5 * Cooling Throttling Range
End If


This means that if you want the air conditioning to turn on when the indoor air temperature reaches 29 $^\circ{C}$ and turn off when the indoor air temperature is cooled to 26 $^\circ{C}$, then your cooling temperature setpoint should be the average (27.5 $^\circ{C}$) and the cooling throttling temperature range should be 3 $^\circ{C}$. If you want to maintain the same heating setpoint without a cutout or throttling range, then set the heating throttline temperature range to 0 $^\circ{C}$.

more

@Yiqing I've updated my answer to give more explanation. Hopefully that helps.

( 2020-07-28 09:52:25 -0500 )edit

Aaron, it works and many thanks for your kind help.

( 2020-07-28 11:42:44 -0500 )edit

May I ask one more question? As above mentioned, I input 3∘C at the object of temperature Difference Between Cutout And Setpoint. But in this way, this deadband is also applied to heating setpoint, while I hope it will be kept as the original heating setpoint. Do you have any ideas to keep heating setpoint unchanged?

( 2020-07-28 12:34:22 -0500 )edit

Since the cutoff temperature difference is an input for the ZoneControl:Thermostat object, you will need to create two to assign to the zone -- one for ThermostatSetpoint:SingleCooling with 3C cutoff difference, and a second for ThermostatSetpoint:SingleHeating with no cutoff difference. I'm not 100% sure that EnergyPlus will allow this, but it's worth a try.

( 2020-07-28 15:48:07 -0500 )edit

Yeah, I tried this method before, but energyplus did not allow assigning setpoint control twice.

( 2020-07-28 21:49:54 -0500 )edit