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

Use EMS actuator in ideal loads

asked 2021-03-03 06:24:22 -0600

lobo's avatar

Hi,

I'm trying to use the EMS actuators to manually set the supply mass flow rate and supply air temperature in an

ZoneHVAC:IdealLoadsAirSystem.

Reading the EMS documentation on actuators I see I can edit the "Air Mass Flow Rate” and “Air Temperature”. I have so set sensors and actuators how you can see below. However, I see changes with respect to no actions only in the mass flow (mdot_ideal , mdot_sys ) rate and not in the system temperature (tair_sys). I have also tried to use this actuator

EnergyManagementSystem:Actuator,
    t_air_act,               !- Name
    NODE BLOCK1:ZONEWEST IN, !- Actuated Component Unique Name
    System Node Setpoint,    !- Actuated Component Type
    Temperature Setpoint;    !- Actuated Component Control Type

But no changes in the temperature as well. I want to do so in order to develop a model predictive control able to regulate both mass flow rate and inlet temperature.

EMS OBJECTS IN THE IDF

!-   ===========  ALL OBJECTS IN CLASS: ENERGYMANAGEMENTSYSTEM:ACTUATOR ===========
EnergyManagementSystem:Actuator,
    t_air_act,               !- Name
    BLOCK1:ZONEWEST IDEAL LOADS AIR, !- Actuated Component Unique Name
    Ideal Loads Air System,    !- Actuated Component Type
    Air Temperature;    !- Actuated Component Control Type

!-   ===========  ALL OBJECTS IN CLASS: ENERGYMANAGEMENTSYSTEM:SENSOR ===========

EnergyManagementSystem:Sensor,
    T_in,                    !- Name
    Block1:ZoneWest,         !- Output:Variable or Output:Meter Index Key Name
    Zone Mean Air Temperature;  !- Output:Variable or Output:Meter Name

EnergyManagementSystem:Sensor,
    mdot_ideal,              !- Name
    BLOCK1:ZONEWEST IDEAL LOADS AIR,  !- Output:Variable or Output:Meter Index Key Name
    Zone Ideal Loads Supply Air Mass Flow Rate;  !- Output:Variable or Output:Meter Name

EnergyManagementSystem:Sensor,
    heat_power,              !- Name
    DistrictHeating:Facility,!- Output:Variable or Output:Meter Index Key Name
    DistrictHeating:Facility;!- Output:Variable or Output:Meter Name

EnergyManagementSystem:Sensor,
    mdot_sys,                !- Name
    NODE BLOCK1:ZONEWEST ZONE,  !- Output:Variable or Output:Meter Index Key Name
    System Node Mass Flow Rate;  !- Output:Variable or Output:Meter Name

EnergyManagementSystem:Sensor,
    tair_sys,                !- Name
    NODE BLOCK1:ZONEWEST ZONE,  !- Output:Variable or Output:Meter Index Key Name
    System Node Temperature; !- Output:Variable or Output:Meter Name


!-   ===========  ALL OBJECTS IN CLASS: ENERGYMANAGEMENTSYSTEM:ACTUATOR ===========

EnergyManagementSystem:Actuator,
    MDOT_act,                !- Name
    BLOCK1:ZONEWEST IDEAL LOADS AIR,  !- Actuated Component Unique Name
    Ideal Loads Air System,  !- Actuated Component Type
    Air Mass Flow Rate;      !- Actuated Component Control Type

 EnergyManagementSystem:Actuator,
    t_air_act,               !- Name
    BLOCK1:ZONEWEST IDEAL LOADS AIR, !- Actuated Component Unique Name
    Ideal Loads Air System,    !- Actuated Component Type
    Air Temperature;    !- Actuated Component Control Type


!-   ===========  ALL OBJECTS IN CLASS: ENERGYMANAGEMENTSYSTEM:PROGRAMCALLINGMANAGER ===========

EnergyManagementSystem:ProgramCallingManager,
    sensorsTemp,             !- Name
    EndOfSystemTimestepBeforeHVACReporting,  !- EnergyPlus Model Calling Point
    getSensors;              !- Program Name 1

EnergyManagementSystem:ProgramCallingManager,
    act,                     !- Name
    BeginTimestepBeforePredictor,  !- EnergyPlus Model Calling Point
    setAct;                  !- Program Name 1


!-   ===========  ALL OBJECTS IN CLASS: ENERGYMANAGEMENTSYSTEM:PROGRAM ===========

EnergyManagementSystem:Program,
    getSensors,              !- Name
    ;                        !- Program Line 1

EnergyManagementSystem:Program,
    setAct,                  !- Name
    SET t_air_act = 17;      !- Program Line 1
    SET MDOT_act = 0.1 !- Program Line 2


!-   ===========  ALL OBJECTS IN CLASS: ENERGYMANAGEMENTSYSTEM:GLOBALVARIABLE ===========

EnergyManagementSystem:GlobalVariable,
    MDOTact;                 !- Erl Variable 1 Name


!-   ===========  ALL OBJECTS IN CLASS: ENERGYMANAGEMENTSYSTEM:OUTPUTVARIABLE ===========

EnergyManagementSystem:OutputVariable,
    T_in,                    !- Name
    T_in,                    !- EMS Variable Name
    Averaged,                !- Type of Data in Variable
    ZoneTimestep,            !- Update Frequency
    ,                        !- EMS Program or Subroutine Name
    C;                       !- Units

EnergyManagementSystem:OutputVariable,
    heat_power,              !- Name
    heat_power,              !- EMS Variable Name
    Summed,                  !- Type of Data in Variable
    ZoneTimestep,            !- Update Frequency
    ,                        !- EMS Program or ...
(more)
edit retag flag offensive close merge delete

Comments

1

Minor thing here, could be the position of the colon? That would exclude the following line of the EMS program.

EnergyManagementSystem:Program,
    setAct,                  !- Name
    SET t_air_act = 17**;**      !- Program Line 1
    SET MDOT_act = 0.1 !- Program Line 2
rafael.alonso's avatar rafael.alonso  ( 2021-03-05 08:10:46 -0600 )edit

for sure what rafael.alonso noted is an issue

Ag's avatar Ag  ( 2021-03-05 10:57:36 -0600 )edit

1 Answer

Sort by » oldest newest most voted
1

answered 2021-03-08 10:00:35 -0600

lobo's avatar

SOLVED!

Okay. I Have solved the issue in the tair_sys by changing:

EnergyManagementSystem:Sensor,
    tair_sys,                !- Name
    NODE BLOCK1:ZONEWEST ZONE,  !- Output:Variable or Output:Meter Index Key Name
    System Node Temperature; !- Output:Variable or Output:Meter Name

in

EnergyManagementSystem:Sensor,
    tair_sys,                !- Name
    NODE BLOCK1:ZONEWEST IN, !- Output:Variable or Output:Meter Index Key Name
    System Node Temperature; !- Output:Variable or Output:Meter Name

I can say more that in the 9.4 version the EMS actuators did take action if the zone load was zero and not in the 9.0 version. (https://github.com/NREL/EnergyPlus/is...)

tnx

edit flag offensive delete link more

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

2 followers

Stats

Asked: 2021-03-03 06:24:22 -0600

Seen: 203 times

Last updated: Mar 03 '21