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

EMS - Control the heating electric power used

asked 2020-09-16 10:15:44 -0600

FKABILL's avatar

updated 2020-09-16 11:55:04 -0600

Hi everyone, I'm a new poster and I'm having trouble implementing an EMS controller.

I have an HVAC system (Low temp radiant electric), for which I implemented an ON/OFF controller.

To switch on and off the system I used the scheduled thermostat set point temperature which is ruled by the EMS. If the temperature goes higher than a certain value, then the EMS override a new set point temperature to 0°C, so that the system is switched off.

What I'd like to know is if anyone knows a way to control the heating capacity with the EMS, more precisely the percentage of the total capacity used ( e.g. if 19°C < Air Temp. < 20 °C then use 50% of the total capacity )

Thank you in advance for the help!

Below the txt:

ZoneHVAC:LowTemperatureRadiant:Electric,

IR_Living_1,             !- Name
On 24/7,                 !- Availability Schedule Name
Block1XGroundFloor:LivingRoom,  !- Zone Name
Block1XGroundFloor:LivingRoom_Ceiling_1_0_0_0_0_2_Subsurface,  !- Surface Name or Radiant Surface Group Name
HeatingDesignCapacity,   !- Heating Design Capacity Method
240,                     !- Heating Design Capacity {W}
,                        !- Heating Design Capacity Per Floor Area {W/m2}
1,                       !- Fraction of Autosized Heating Design Capacity

EnergyManagementSystem:Sensor,

Livingroom_Tair,         !- Name
Block1XGroundFloor:LivingRoom,  !- Output:Variable or Output:Meter Index Key Name
Zone Mean Air Temperature;  !- Output:Variable or Output:Meter Name

EnergyManagementSystem:Actuator,

EMS_Heat_Living_Override,!- Name
EMS_Heat_Living,         !- Actuated Component Unique Name
Schedule:Constant,       !- Actuated Component Type
Schedule Value;          !- Actuated Component Control Type

EnergyManagementSystem:ProgramCallingManager,

Living_Setpoint,         !- Name
BeginTimestepBeforePredictor,  !- EnergyPlus Model Calling Point
Living_HeatingProgram;   !- Program Name 1

EnergyManagementSystem:Program,

Living_HeatingProgram,   !- Name
IF Livingroom_Tair < 19.5,  !- Program Line 1
Set EMS_Heat_Living_Override = 50,  !- Program Line 2
ELSEIF Livingroom_Tair >= 20.2,  !- A4
Set EMS_Heat_Living_Override = 0,  !- A5
ENDIF;                   !- A6
edit retag flag offensive close merge delete

2 Answers

Sort by » oldest newest most voted
1

answered 2020-09-16 12:41:02 -0600

First off, your EMS Actuator should change the second input field for Actuated Component Unique Name. EMS_Heat_Living is incorrect, this should match with the name of the schedule object that sets the thermostat heating setpoint temperature that you want to override.

Normally, you would use an EMS internal variable to be associated with a static parameter that is set once at the beginning of the simulation (such as radiant panel heating capacity). However, EnergyPlus can only work with a pre-set list of internal variables, and the heating capacity of low-temp electric radiant panels isn't one of them (water flow rates through low-temp hydronic radiant panels does). It looks like your radiant heating capacity is set to 240 $W$ in the first object you pasted, so your EMS program would need to set the EMS actuator to fractions of that maximum for the different ranges of zone mean air temperature. You should also be sure to account for situations in the IF / ELSE logic of the EMS program where you DO want full capacity (see below).

EnergyManagementSystem:Program,
  Living_HeatingProgram,   !- Name
  IF Livingroom_Tair < 19.5,  !- Program Line 1
  Set EMS_Heat_Living_Override = 240,  !- Program Line 2
  ELSEIF Livingroom_Tair < 20.2,  !- Program Line 3
  Set EMS_Heat_Living_Override = 0.50 * 240,  !- Program Line 4
  ELSEIF Livingroom_Tair >= 20.2,  !- A5
  Set EMS_Heat_Living_Override = 0,  !- A6
  ENDIF;                   !- A7

This would be a discrete control approach where heating capacity is only 0%, 50%, or 100%. You can alter program line 4 to use continuous linear interpolation to set capacity based upon mean air temperature, like so.

  Set EMS_Heat_Living_Override = 240 * (1 - (Livingroom_Tair - 19.5) / (20.2 - 19.5)),  !- Program Line 4
edit flag offensive delete link more
1

answered 2020-09-17 02:52:16 -0600

FKABILL's avatar

Hi Aaron and thanks for the answer!

About the Actuated Component Unique Name, I guess I didn't explain my self well since accidentally I didn't include the hole input for the radiant panel, in which i set the heating schedule on EMS_Heat_Living and which I'm copying below

ZoneHVAC:LowTemperatureRadiant:Electric,

Panel_1,             !- Name
On 24/7,                 !- Availability Schedule Name
LivingRoom,  !- Zone Name
FloorSubsurface,  !- Surface Name or Radiant Surface Group Name
HeatingDesignCapacity,   !- Heating Design Capacity Method
240,                     !- Heating Design Capacity {W}
,                        !- Heating Design Capacity Per Floor Area {W/m2}
1,                       !- Fraction of Autosized Heating Design Capacity
MeanAirTemperature,      !- Temperature Control Type
0.5,                     !- Heating Throttling Range {deltaC}
EMS_Heat_Living;         !- Heating Setpoint Temperature Schedule Name

EnergyManagementSystem:Program,

Living_HeatingProgram,   !- Name
IF Livingroom_Tair < 19.5,  !- Program Line 1
Set EMS_Heat_Living_Override = 50,  !- Program Line 2
ELSEIF Livingroom_Tair >= 20.2,  !- A4
Set EMS_Heat_Living_Override = 0,  !- A5
ENDIF;                   !- A6

EMS_Heat_Living is a Constant Schedule for the set point temperature that I created. Should it be fine like this?

I understand what you say about the fraction of capacity, but that should work if I'd be able to modify the capacity directly and considering what said about the internal variables for the EMS I thought that wasn't possible.

My first goal using the EMS was to control the amount of power released by the panel. Setting the set point temperature with the EMS on 50°C makes the system release full power (240 W), which I checked on the eso file. Then the set point temperature is set to 0°C to turn off the system. I know this could sound odd, but I didn't find any other solution to control the power usage and actually in this way it works just like an ON/OFF controller.

edit flag offensive delete link more

Comments

@FKABILL I'm glad that my answer was helpful. Since this isn't really an answer to your original question, could you instead update your original question post to add or edit this information?

Aaron Boranian's avatar Aaron Boranian  ( 2020-09-17 08:40:11 -0600 )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

Careers

Question Tools

3 followers

Stats

Asked: 2020-09-16 08:01:25 -0600

Seen: 451 times

Last updated: Sep 17 '20