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

Outdoor Air Reset for Domestic Water Heater Supply Water Setpoint

asked 2017-09-26 20:02:44 -0500

updated 2017-10-12 18:01:02 -0500

Please help me determine what I'm doing wrong in my EnergyManagementSystem implementation of outdoor air reset for the supply water setpoint of my central domestic water heater. I started with the WaterHeaterDHWPlantLoop example IDF file. I tried using SetpointManager:OutdoorAirReset first, but couldn't get that to work.

Below is an excerpt from my IDF file. The simulation runs without errors, but the EMS code doesn't change the supply water setpoint.

EnergyManagementSystem:Program,
  myTempManager,       !- Name
  SET myTempControl=(-2/3)*OutdoorTemp+64.81,   !- Program Line 1
  IF myTempControl>54.444, !- Program Line 2
  SET myTempControl=54.444,!- A4
  ENDIF,           !- A5
  IF myTempControl<48.8888,!- A6
  SET myTempControl=48.8888,  !- A7
  ENDIF;           !- A8

EnergyManagementSystem:ProgramCallingManager,
  myEMS Custom Controls,   !- Name
  AfterPredictorAfterHVACManagers,  !- EnergyPlus Model Calling Point
  myTempManager;       !- Program Name 1

Output:EnergyManagementSystem,
  Verbose,         !- Actuator Availability Dictionary Reporting
  Verbose,         !- Internal Variable Availability Dictionary Reporting
  Verbose;         !- EMS Runtime Language Debug Output Level

Output:Variable,*,Site Outdoor Air Drybulb Temperature ,Timestep;
Output:Variable,*,Water Heater Use Side Outlet Temperature ,Timestep;

EnergyManagementSystem:Sensor,
  OutdoorTemp,       !- Name
  Environment,       !- Output:Variable or Output:Meter Index Key Name
  Site Outdoor Air Drybulb Temperature ;  !- Output:Variable or Output:Meter Name

SetpointManager:Scheduled,
  Manager,         !- Name
  Temperature,       !- Control Variable
  Hot Water Set Point Temp Schedule,  !- Schedule Name
  Water Heater Use Loop Outlet Node;  !- Setpoint Node or NodeList Name

EnergyManagementSystem:Actuator,
  myTempControl,       !- Name
  WATER HEATER USE LOOP OUTLET NODE,  !- Actuated Component Unique Name
  System Node Setpoint,   !- Actuated Component Type
  Temperature Setpoint;   !- Actuated Component Control Type

RunPeriod,
  ,             !- Name
  1,             !- Begin Month
  1,             !- Begin Day of Month
  12,             !- End Month
  31,             !- End Day of Month
  UseWeatherFile,       !- Day of Week for Start Day
  Yes,           !- Use Weather File Holidays and Special Days
  Yes,           !- Use Weather File Daylight Saving Period
  No,             !- Apply Weekend Holiday Rule
  Yes,           !- Use Weather File Rain Indicators
  Yes;           !- Use Weather File Snow Indicators

SimulationControl,
  NO,             !- Do Zone Sizing Calculation
  NO,             !- Do System Sizing Calculation
  NO,             !- Do Plant Sizing Calculation
  NO,             !- Run Simulation for Sizing Periods
  YES;           !- Run Simulation for Weather File Run Periods

Site:WaterMainsTemperature,
  CORRELATION,       !- Calculation Method
  ,             !- Temperature Schedule Name
  16.8166666666667,     !- Annual Average Outdoor Air Temperature {C}
  6.3;           !- Maximum Difference In Monthly Average Outdoor Air Temperatures {deltaC}

ScheduleTypeLimits,
  Any Number;         !- Name

Schedule:Compact,
  Ambient Temp Schedule,   !- Name
  Any Number,         !- Schedule Type Limits Name
  THROUGH: 12/31,       !- Field 1
  FOR: AllDays,       !- Field 2
  UNTIL: 24:00, 22.0;     !- Field 4

Schedule:Compact,
  Hot Water Set Point Temp Schedule,  !- Name
  Any Number,         !- Schedule Type Limits Name
  THROUGH: 12/31,       !- Field 1
  FOR: AllDays,       !- Field 2
  UNTIL: 24:00, 60;     !- Field 4

WaterHeater:Stratified,
  Water Heater,       !- Name
  Water Heater,       !- End-Use Subcategory
  0.1893,           !- Tank Volume {m3}
  1.4,           !- Tank Height {m}
  VerticalCylinder,     !- Tank Shape
  ,             !- Tank Perimeter {m}
  82.2222,         !- Maximum Temperature Limit {C}
  MasterSlave,       !- Heater Priority Control
  Hot Water Set Point Temp Schedule,  !- Heater 1 Setpoint Temperature Schedule Name
  2.0,           !- Heater 1 Deadband Temperature Difference {deltaC}
  4500,           !- Heater 1 Capacity {W}
  1.0,           !- Heater 1 Height {m}
  Hot Water Set Point Temp Schedule,  !- Heater 2 Setpoint Temperature Schedule Name
  5.0,           !- Heater 2 Deadband ...
(more)
edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted
2

answered 2017-09-27 02:29:30 -0500

Chandan Sharma's avatar

A workaround is as follows:

EnergyManagementSystem:Program, 
  myTempManager, !- Name 
  SET myTempControl=(-2/3)* OutdoorTemp + 64.81, !- Program Line 1 
  IF myTempControl>54.444, !- Program Line 2 
    SET myTempControl=54.444,!- A4 
  ELSEIF myTempControl<48.8888,!- A6 
    SET myTempControl=48.8888, !- A7 
  ELSE,
    SET myTempControl=null,
  ENDIF; !- A8 

EnergyManagementSystem:Actuator,
  myTempControl,           !- Name
  Hot Water Set Point Temp Schedule,             !- Actuated Component Unique Name
  Schedule:Compact,       !- Actuated Component Type
  Schedule Value;          !- Actuated Component Control Type

!EnergyManagementSystem:Actuator, 
!  myTempControl, !- Name 
!  WATER HEATER USE LOOP OUTLET NODE, !- Actuated Component Unique Name 
!  System Node Setpoint, !- Actuated Component Type 
!  Temperature Setpoint; !- Actuated Component Control Type

Subroutine CheckIfNodeSetPointManagedByEMS in E+ verifies that a specific node is managed by EMS. This is missing in module WaterThermalTanks.cc which models WaterHeater:Stratified object.

edit flag offensive delete link more

Comments

Thank you, Chandan. Your Actuator object recommendations fixed my problem.

I didn't implement your Program object recommendations, because I want my linear equation to calculate the setpoint between 48.8888 and 54.444 degrees C (as opposed to obviating it with null).

Bo White's avatar Bo White  ( 2017-09-27 10:32:45 -0500 )edit
0

answered 2017-09-27 07:13:49 -0500

The problem I see is that the EMS program is being called after the HVAC simulation. Try calling the EMS program before the HVAC simulation using AfterPredictorBeforeHVACManagers as the EnergyPlus Model Calling Point.

EnergyManagementSystem:ProgramCallingManager,
  myEMS Custom Controls, !- Name
  AfterPredictorAfterHVACManagers, !- EnergyPlus Model Calling Point
  myTempManager; !- Program Name 1
edit flag offensive delete link more

Comments

Thanks, rraustad. This change didn't modify my output, but I still implemented it.

Bo White's avatar Bo White  ( 2017-09-27 10:43:44 -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

1 follower

Stats

Asked: 2017-09-26 17:56:10 -0500

Seen: 240 times

Last updated: Sep 27 '17