5

How to set an EMS Actuator to values from a Schedule:File object?

I have an actuator in EnergyPlus and would like to set the value of that actuator to a value obtained from a CSV file at every time step.

I figured I can use SCHEDULE:FILE to read in the values and use an ENERGYMANAGEMENTSYSTEM:SENSOR to map those to a EMS variable.

Do I then create a ENERGYMANAGEMENTSYSTEM:PROGRAM to write the value from one place to another? (it seems a bit verbose...)

daren-thomas's avatar
51
daren-thomas
asked 2015-05-05 09:02:25 -0500
Aaron Boranian's avatar
14.1k
Aaron Boranian
updated 2023-09-11 16:18:13 -0500
edit flag offensive 0 remove flag close merge delete

Comments

add a comment see more comments

3 Answers

3

You might be able to assign a schedule value directly to the EMS actuator.

Schedule:File,
    SchName,  !- Name
    ... (all associated Schedule:File object's fields)

EnergyManagementSystem:Actuator,
   YourActuatorName,   
   SchName,       
   Schedule:File,     
   Schedule Value;
Ivan Korolija's avatar
911
Ivan Korolija
answered 2015-05-05 11:15:08 -0500, updated 2015-05-05 11:15:34 -0500
edit flag offensive 0 remove flag delete link

Comments

add a comment see more comments
2

Yes, you need a small EMS program with a line that sets the actuator equal to the sensor.

Archmage's avatar
7.2k
Archmage
answered 2015-05-05 18:36:42 -0500
edit flag offensive 0 remove flag delete link

Comments

add a comment see more comments
1

Ivan's answer is misleading. Schedule:File should be a Sensor, not an Actuator. Some parameters you want to override in Schedule:File should be Actuators.

One example. I wanted to override the Outdoor Air Drybulb Temperature for building surfaces with Schedule:File for some reason. In such cases, the EMS program looks like this:

Schedule:File,
    Surface_Temp_Hourly_Profile,  !- Name
    ,                        !- Schedule Type Limits Name
    C:\Project\Project_XXXXX\Surface_Temp_Hourly_Profile.csv,  !- File Name
    2,                       !- Column Number
    1,                       !- Rows to Skip at Top
    8760,                    !- Number of Hours of Data
    Comma,                   !- Column Separator
    No,                      !- Interpolate to Timestep
    60;                      !- Minutes per Item

EnergyManagementSystem:Sensor,
    Surface_Temp_Hourly_Profile_Sensor,  !- Name
    Surface_Temp_Hourly_Profile,  !- Output:Variable or Output:Meter Index Key Name
    Schedule Value ;         !- Output:Variable or Output:Meter Name

EnergyManagementSystem:Actuator,
    Surface_OA_Temp_2to50F_Office_1_Floor,  !- Name
    2to50F_Office_1_Floor,  !- Actuated Component Unique Name
    Surface,                 !- Actuated Component Type
    Outdoor Air Drybulb Temperature;  !- Actuated Component Control Type

EnergyManagementSystem:ProgramCallingManager,
    EMS_PCM_Surface_OA_Temp_Override,  !- Name
    InsideHVACSystemIterationLoop,  !- EnergyPlus Model Calling Point
    EMS_Program_Surface_OA_Temp_Override;  !- Program Name 1

EnergyManagementSystem:Program,
    EMS_Program_Surface_OA_Temp_Override,  !- Name
    SET Surface_OA_Temp_2to50F_Office_1_Floor = Surface_Temp_Hourly_Profile_Sensor;  !- Program Line 1

Output:EnergyManagementSystem,
    Verbose,                 !- Actuator Availability Dictionary Reporting
    Verbose,                 !- Internal Variable Availability Dictionary Reporting
    ErrorsOnly;              !- EMS Runtime Language Debug Output Level
Keigo's avatar
4k
Keigo
answered 2023-09-10 03:57:50 -0500
edit flag offensive 0 remove flag delete link

Comments

add a comment see more comments