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

fan coil unit control with setpoint deadband

asked 2020-01-02 20:36:40 -0500

Yingying Tai's avatar

updated 2023-06-16 13:32:13 -0500

I am modeling a typical FCU system with chilled water plant using one of the DOE commercial reference buildings at EnergyPlus v9.0.1. As far as I know, if the zone temperature is within the deadband([Tset-1/2deadband, Tset+1/2deadband]), the fan coil unit would be turned off temporarily. The valve of the FCU would not be opened until the zone temperature is beyond the Tset+1/2*deadband(If I do not take it wrong......). It is such a common control strategy, right? The zone temperature setpoint I set was 24 Celsius at the occupancy hours with ThermostatSetpoint:SingleCooling. I thought the zone air temperature would fluctuate between 23.5 degree and 24.5 degree with 1 degree deadband. But there seems to be some problems in my simulation.
I have tried to set theTemperature Difference Between Cutout and Setpoint as 0.5 degree in the classZoneControl:Thermostat(For more details, please refer to I/O Reference).

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

But the Zone Air Temperature in my simulation results showed that the lower limit of the zone air temperature was 23.5 degree but it never reached 24 or 24.5 degree as I thought it should have been.
Then I tried to add a new object in ZoneControl:Thermostat:StagedDualSetpoint. As I/O Reference said:

"...When the zone temperature at the previous time step is above the cooling temperature setpoint, the zone cooling setpoint will be set to the cooling temperature setpoint - 0.5 * cooling throttling temperature range. Otherwise, the zone cooling setpoint will be set to the cooling temperature setpoint + 0.5 * cooling throttling temperature range...."

I set the Cooling Throttling Temperature Range as 1 deltaC and Stage 1 Cooling Temperature Offset as 0.5 deltaC. There are two main questions. First, the ZoneControl:Thermostat:StagedDualSetpoint seems not applicable to FCU systems. There was a warning like this:

* Warning * ZoneControl:Thermostat:StagedDualSetpoint is applicable to only selected HVAC objects which are missing from input. Model should include one or more of the following objects:
* ~~~ * AirLoopHVAC:UnitaryHeatPump:AirToAir:MultiSpeed, AirLoopHVAC:UnitarySystem, * ~~~ * SetpointManager:SingleZone:OneStageCooling, and/or SetpointManager:SingleZone:OneStageHeating.

But it seemed not interfere the simulation and the simulation continued. I ignored the warning and inspected the results. This time the zone air temperature fluctuated with the lower limit of 24.5 degree but still did not reached 24 degree either.
How can I set the deadband for the control of FCU? Do I need to use EMS to set this control strategy for each thermostat? Do you have any ideas? I would be really appreciated if any of you could give me some advice. Thank you very much~

edit retag flag offensive close merge delete

Comments

@Yingying Tai were you able to resolve this issue? If not, could you include a link to your IDF or add the object text to your post?

Aaron Boranian's avatar Aaron Boranian  ( 2020-07-28 08:32:59 -0500 )edit

* Warning * ZoneControl:Thermostat:StagedDualSetpoint is applicable to only selected HVAC objects which are missing from input. Model should include one or more of the following objects:
* ~~~ * AirLoopHVAC:UnitaryHeatPump:AirToAir:MultiSpeed, AirLoopHVAC:UnitarySystem, * ~~~ * SetpointManager:SingleZone:OneStageCooling, and/or SetpointManager:SingleZone:OneStageHeating.

We still see this warning in EnergyPlus V23-1-0.

@Aaron Boranian Is this warning correct? Or is ZoneControl:Thermostat:StagedDualSetpoint applicable to any HVAC objects?

Keigo's avatar Keigo  ( 2023-06-16 10:27:28 -0500 )edit

2 Answers

Sort by » oldest newest most voted
2

answered 2023-06-17 02:04:16 -0500

Keigo's avatar

updated 2023-11-08 04:16:28 -0500

I think what @Yingying Tai wants to model is as follows.

image description

I also want to model the thermostat control because it is specified in ANSI/ASHRAE/IES Standard 90.1 Performance Rating Method Reference Manual.

image description

However, as @Aaron Boranian answered, ZoneControl:Thermostat:StagedDualSetpoint has limited applicability. It is not for all types of HVAC system. Then, another option is to use Temperature Difference Between Cutout and Setpoint in ZoneControl:Thermostat, but the problem is that Temperature Difference Between Cutout and Setpoint does not have a deadband above a cooling setpoint. The thermostat control would be as follows. That's not what @Yingying Tai and I expect.

image description

I'm thinking of one makeshift. Temperature Difference Between Cutout and Setpoint is set to 1deltaºC, and ThermostatSetpoint:SingleCooling is changed from 24ºC to 24.5ºC. Then, the thermostat control would be as follows. It's pretty much what @Yingying Tai and I expect, but there is another problem. For unmet hours, Tolerance for Time Cooling Setpoint Not Met is based on the thermostat setpoint, so the setting below would report so many unmet hours.

image description

Tolerance for Time Cooling Setpoint Not Met needs to be set to 1deltaºC as follows.

image description


Nov 2023

I revised the second chart. The range of "Tolerance for Time Cooling Setpoint Not Met" was incorrect.

edit flag offensive delete link more
1

answered 2023-06-16 13:09:28 -0500

@Keigo @Yingying Tai

It looks like in the EnergyPlus source code, this warning is triggered by the following code:

    } // loop over NumStageControlledZones
    if ((inputProcessor->getNumObjectsFound(state, "AirLoopHVAC:UnitaryHeatPump:AirToAir:MultiSpeed") == 0) &&
        (inputProcessor->getNumObjectsFound(state, "AirLoopHVAC:UnitarySystem") == 0) &&
        (inputProcessor->getNumObjectsFound(state, "SetpointManager:SingleZone:OneStageCooling") == 0) &&
        (inputProcessor->getNumObjectsFound(state, "SetpointManager:SingleZone:OneStageHeating") == 0)) {
        ShowWarningError(state, format("{} is applicable to only selected HVAC objects which are missing from input.", cCurrentModuleObject));
        ShowContinueError(state, "Model should include one or more of the following objects:  ");
        ShowContinueError(state, "AirLoopHVAC:UnitaryHeatPump:AirToAir:MultiSpeed, AirLoopHVAC:UnitarySystem, ");
        ShowContinueError(
            state, "SetpointManager:SingleZone:OneStageCooling, and/or SetpointManager:SingleZone:OneStageHeating. The simulation continues...");
    }

Essentially, if the model is missing all four object types mentioned in the warning, then the ZoneControl:Thermostat:StagedDualSetpoint object type will not work. However, if you have even one of those mentioned object types, then it should work. In other words, a model should correctly apply the staged dual setpoint thermostat to an air system with:

  • An AirLoopHVAC:UnitaryHeatPump:AirToAir:MultiSpeed object, regardless of setpoint manager
  • An AirLoopHVAC:UnitarySystem object, regardless of setpoint manager
  • Any AirLoopHVAC object, as long as SetpointManager:SingleZone:OneStageCooling or SetpointManager:SingleZone:OneStageHeating objects are used
edit flag offensive delete link more

Comments

Thank you for your answer. I/O Reference states that SetpointManager:SingleZone:OneStageCooling is used for CoilSystem:Cooling:DX. Then, ZoneControl:Thermostat:StagedDualSetpoint has very limited applicability.

Keigo's avatar Keigo  ( 2023-06-16 18:59:10 -0500 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Careers

Question Tools

2 followers

Stats

Asked: 2020-01-02 20:36:40 -0500

Seen: 1,076 times

Last updated: Nov 08 '23