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

How can I model SetpointManager:Warmest, with a variable Maximum Setpoint Temperature?

asked 2017-07-19 13:14:58 -0500

Molly Curtz's avatar

updated 2017-07-27 11:36:24 -0500

In Energy Plus, I would like to implement a load-based supply air temperature reset control for a multiple zone VAV system, where the maximum allowable reset supply air temperature varies with outside air temperature as shown in this figure: image description

The figure is from this ASHRAE journal article. And it is similar to the control sequence recommended in the Advanced Variable Air Volume System Design Guide (page 101).

The object SetpointManager:Warmest has a field for Maximum Setpoint Temperature that accepts a fixed value, not a schedule.

How can I implement this?

I noticed in the EMS Application Guide that there is an EMS actuator for System Node Setpoint with controlled component of Temperature Maximum Setpoint. Can I use this? Since the SetpointManager:Warmest seems to set both the supply air temperature setpoint at the node, as well as the supply air flow rate to each zone (as far as I could tell) I do not understand if this actuator could be used to effect the results of SetpointManager:Warmest and if so, what calling point to use it with.

If I have to use EMS to implement this control sequence, then: am I correct that I will need write an EMS program to set both the setpoint temperature at my fan outlet node to control the system supply air temperature, AND also set the flow rate for each and every zone served on the multiple zone system (based on the zone load and the system supply temp)?

edit retag flag offensive close merge delete

3 Answers

Sort by ยป oldest newest most voted

answered 2017-07-26 12:57:33 -0500

Molly Curtz's avatar

updated 2017-07-27 11:45:40 -0500

I think I got this working using EMS. Here is what I did in a Test file:

  1. I used the expanded IDF from the Example file "HVAC Template- 5ZoneVAVWaterCooled" as a starting point.

  2. I put in an SPM:Warmest instead of the SPM:Scheduled in the example file (with min SP 12.78C and max SP 18.33C)

  3. I used the calling point "AfterPredictorAfterHVACManagers" for my EMS program. With this calling point, the SPM:Warmest is executed prior to the EMS program being executed.

  4. My EMS program does these things:

    a. Senses the SP values on the fan outlet node that was established by SPM:Warmest

    b. Based on the current OAT value, determines a new SP for the fan outlet node as follows: For OAT >=18.33: SP=12.78C; For OAT<=12.78: SP:maintain at value established by SPM:Warmest; For OAT between 12.78 and 18.33: SP= MINIMUM of (SPM:Warmest value, Ramped limit value calculated as: (15.56-(0.5*(OAT-12.78))))

    c. Establishes new SP values for the mixed air outlet, and for the cooling coil outlet, based on the new Fan Outlet SP, (as would normally be done by the SPM:MixedAir, and as demonstrated in Example 1 of the EMS Application Guide. This is needed to override the values that SPM:MixedAir has already set at these nodes when the setpoint managers executed.

In my question, I had mentioned that I was concerned that the SPM:Warmest was also setting flow rates to the zone, but this is not the case. E+ is handling calculation of the zone flow rates subsequent to my EMS program.

Here is a graph comparing results from the file created in Step #2 (SPM:Warmest) with my modified file using EMS to impose a variable Maximum reset limit based on OAT. Graph shows several warm OAT days in August. (I used the SFO weather file.):

image description

The results from the file with the OAT based max reset limit show the EMS is forcing the supply SP and supply air temp down to 12.78 as desired, when OAT (ORANGE line) is above 18.33. This is resulting in lower SAT (BROWN line), lower airflows (PINK line) compared to the original SPM:Warmest results which show higher SAT(BLUE line), higher airflows (DARK GREEN line).

@Aaron Boranian, @Chandan Sharma: you both had suggested that I should use a SPM:Scheduled in order to override setpoints. My approach seems like it is working. Am I overlooking a pitfall? Please let me know if so!

Here is the EMS:

    EMS-based Setpoint Managers,  !- Name                                                               
    AfterPredictorAfterHVACManagers,  !- EnergyPlus Model Calling Point                                 
    VAV_1_Setpoint;     !- Program Name 1                                                               

    OAT,           !- Name                                                                              
    *,  !- Output:Variable or Output:Meter Index Key Name                                               
    Site Outdoor Air Drybulb Temperature;  !- [C] Output:Variable or Output:Meter Name                  

    Warmest,                 !- Name                                                                    
    VAV Sys 1 Supply Fan Outlet,!- Output:Variable or Output:Meter Index Key Name                       
    System Node Setpoint Temperature; !- [C] Output:Variable or Output:Meter Name                       

    T_VAV1FanIn ...
edit flag offensive delete link more


@Molly Curtz well done! My suggestion was to apply an actuator to override the schedule value referenced by the systemSPM:Scheduled because it was used in combination with a SPM:MixedAir. When I tried to override the setpoint temperature at the supply outlet, the "upstream" components (OA mixer, coils, fan) were still being told to operate according to the temperature schedule value. When I manually implemented setpoints at each component, like you mention in step 4C, then it worked correctly. It ended up being easier and cleaner to just override the schedule value.

Aaron Boranian's avatar Aaron Boranian  ( 2017-07-27 10:54:56 -0500 )edit

@Aaron Boranian: Cool, thanks. I really appreciate your input. Since I wanted to utilize the result of the SPM:Warmest in my program, letting E+ calculate that for me was easier. In order to do this with a SPM:Scheduled I would have needed to calculate on my own the "warmest" SP needed in my EMS program. That would require sensing all of the zone loads and temps to use as inputs in that calc.

Molly Curtz's avatar Molly Curtz  ( 2017-07-27 11:20:24 -0500 )edit

answered 2017-07-20 16:58:50 -0500

Since you are modeling a central VAV system, I assume that you are using a SetpointManager:MixedAir object to account for mixing of outdoor air and heat added to the supply air from the central fan. We have found that if you want to use EMS to override setpoints, it's best to do the following:

  1. assign a SetpointManager:Scheduled object to control the last supply node after the VAV system and reference a schedule of a constant temperature value (say 55F)
  2. assign a SetpointManager:MixedAir object to account for OA mixing and central fan heat addition upstream from the last supply node
  3. use an EMS actuator to override the value of the schedule referenced by the SPM:Scheduled object

The combination of SPM:Scheduled and EMS will essentially replace the SPM:Warmest and SPM:OutdoorAirReset objects. The reasoning for overriding the schedule value is because during each timestep, EnergyPlus determines schedule values before setpoint and availability control.

If Chandan's approach doesn't work, the EMS components will be much more involved to reset SAT and update supply flow properly. One possible strategy for defining the "worst case" scenario in a zone is the case when the zone air temperature exceeds cooling thermostat setpoint by 1F. For that case, you could force the VAV SAT to the low value of 55F. To do this, you will need to:

  1. Create sensors to measure zone air temperature, cooling setpoint temperature, and predicted sensible cooling load
  2. Create sensor to measure OA DB
  3. Create actuators to override SAT schedule value and supply fan flow rate
  4. Create program and subroutine to:
    • compare OA DB to the high (65F) and low (55) values
    • compare zone air temperature to cooling setpoint temperature to determine "worst case" scenario that triggers reset
    • override SAT schedule actuator according to combination of those two comparisons
    • override fan flow rate actuator according to SAT and predicted sensible cooling load

To override setpoint operation, be sure to choose a Program Calling Point before "AfterPredictorAfterHVACManagers" in order for the actuator to override behavior in the current timestep instead of the following timestep. Also, be mindful that EMS sensors use output variable values from the previous timestep.

edit flag offensive delete link more


Hi @Aaron Boranian! Thanks for your reply. When you say: " The reasoning for overriding the schedule value is because...determined schedule values before setpoint and availability control"...Are you saying that If I use the SPM:Scheduled approach the zone airflow rates for connected zones will be subsequently calculated for me by E+ and I won't need to calculate and set them via EMS?

Molly Curtz's avatar Molly Curtz  ( 2017-07-20 17:55:42 -0500 )edit

I was really hoping that there would be a way to override the maximum allowed SP at the node via the "Temperature Maximum Setpoint" mentioned in Section 5.1.1 of the EMS Application Guide. But I looked at a test model today and when I report the output variable "System Node Setpoint High Temperature" for my fan outlet node (which I presume is the same thing as Maximum), it just has values "-999" for all hours, so it appears this actuator can not be used as I had hoped.

Molly Curtz's avatar Molly Curtz  ( 2017-07-20 18:03:07 -0500 )edit

Hi @Molly Curtz! You make a good point, because overriding the schedule SHOULD then inform the SPM what temperature to meet, which SHOULD then be reflected in the calculated flow rate required to meet the load. If that is the case, then you wouldn't need to manually calculate fan flow like I suggested. However, we all know that EnergyPlus doesn't operate as we expect it to :)

I would do EXTENSIVE testing before and after implementing EMS to make sure the model behaves as you expect it to. That means generating output variables for node flow, node temp, node setpoint temp, etc.

Aaron Boranian's avatar Aaron Boranian  ( 2017-07-20 18:04:17 -0500 )edit

If I follow the second approach you outline in #1 to #4, then I think I have to use AirTerminal:SingleDuct:UserDefined, instead of my current AirTerminal:SingleDuct:VAV:Reheat, and so I'd also have to set up and control reheat coils with EMS...yikes.

Molly Curtz's avatar Molly Curtz  ( 2017-07-20 18:14:25 -0500 )edit

It would be so easy if I could just override the MaxSetTemp each time the SPM:Warmest is called.

Molly Curtz's avatar Molly Curtz  ( 2017-07-20 18:19:29 -0500 )edit

answered 2017-07-19 15:12:44 -0500

updated 2017-07-26 15:20:01 -0500

You should be able model this supply air temperature reset based on the outside air temp using the object SetpointManager:OutdoorAirReset

EnergyPlus I/O ref guide has clear description as to how this object works and of each of the input fields. Did you try this already?

edit flag offensive delete link more


Hi @rsunnam. Thanks, but what I want to implement is a load-based SAT reset with a variable maximum reset temp value that is determined by the OAT. It is not just an OAT based reset of the SAT.

Molly Curtz's avatar Molly Curtz  ( 2017-07-19 15:17:16 -0500 )edit

Hi @Molly Curtz , could you explain the control sequence that determines the SAT SP?

rsunnam's avatar rsunnam  ( 2017-07-19 15:58:45 -0500 )edit

SAT is determined based on the requirements of the worst case (highest load zone) exactly as described in the I/O Reference for SetpointManager:Warmest (green shaded region in graphic). AND, the maximum allowable SAT reset temperature varies with OAT as shown in the graphic. Thus: For OAT greater than 65F: SAT SP is constant at 55F. For OAT in the range of 55F to 65F: SAT SP is reset based on worst case zone but max reset temp ramps linearly between 60F(at OAT of 55F) and 55F(at OAT of 65F). For OAT less than 55F: SAT SP is reset based on the worst case zone with a max reset temp of 60F.

Molly Curtz's avatar Molly Curtz  ( 2017-07-19 16:07:37 -0500 )edit

I will edit my question to clarify!

Molly Curtz's avatar Molly Curtz  ( 2017-07-19 17:04:31 -0500 )edit

I can't think of an simple/elegant solution. If you are looking for EMS code, Chandan's response seems to be a good starting point. You would need to add additional conditions to adjust the SAT SP at each timestep to just meet the load of the worst zone.

Stepping back, is this a real-life control sequence or a study? If the intent is to save energy using this SP reset in a real life system, I am trying to think of the impact that varying flow rates would have on the overall energy usage.

rsunnam's avatar rsunnam  ( 2017-07-20 13:32:49 -0500 )edit

Your Answer

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

Add Answer

Training Workshops


Question Tools



Asked: 2017-07-19 13:14:58 -0500

Seen: 820 times

Last updated: Jul 27 '17