1

Set Heating and Cooling availability schedule for Ideal load air system

Hi Everyone,

My objective is to control the heating and cooling availability schedule of zoneHvac:IdealAirLoadSystem. I take the following steps.

1) Define a heating and cooling availability on/off schedule in Schedule : Compact, set initial value to 1. 2) Use EMS sensor to get the zone temperature which is used late in EMS program 3) Define EMS Actuator to control heating and cooling availability schedule of IdealAirLoadSystem 4) Define the EMS program to activate the actuator

My Eplus objects are detailed below. I am not sure which calling point to use? No matter which calling point I choose the value of heating and cooling availability doesn't change from 1.

I'd appreciate any help.

Thanks

**Schedule:Compact,
    HeaAva,                  !- Name
    On/Off,                  !- Schedule Type Limits Name
    Through: 12/31,          !- Field 1
    For: Alldays,            !- Field 2
    Until: 24:00,            !- Field 3
    1;                       !- Field 4

Schedule:Compact,
    CooAva,                  !- Name
    On/Off,                  !- Schedule Type Limits Name
    Through: 12/31,          !- Field 1
    For: Alldays,            !- Field 2
    Until: 24:00,            !- Field 3
    1;                       !- Field 4

ZoneHVAC:IdealLoadsAirSystem,
    WestZoneIdealAir,        !- Name
    ,                        !- Availability Schedule Name
    Zone1Inlets,             !- Zone Supply Air Node Name
    ,                        !- Zone Exhaust Air Node Name
    ,                        !- System Inlet Air Node Name
    50,                      !- Maximum Heating Supply Air Temperature {C}
    13,                      !- Minimum Cooling Supply Air Temperature {C}
    0.015,                   !- Maximum Heating Supply Air Humidity Ratio {kgWater/kgDryAir}
    0.01,                    !- Minimum Cooling Supply Air Humidity Ratio {kgWater/kgDryAir}
    NoLimit,                 !- Heating Limit
    ,                        !- Maximum Heating Air Flow Rate {m3/s}
    ,                        !- Maximum Sensible Heating Capacity {W}
    NoLimit,                 !- Cooling Limit
    ,                        !- Maximum Cooling Air Flow Rate {m3/s}
    ,                        !- Maximum Total Cooling Capacity {W}
    HeaAva,                  !- Heating Availability Schedule Name
    CooAva,                  !- Cooling Availability Schedule Name
    ConstantSupplyHumidityRatio,  !- Dehumidification Control Type
    ,                        !- Cooling Sensible Heat Ratio {dimensionless}
    ConstantSupplyHumidityRatio,  !- Humidification Control Type
    ,                        !- Design Specification Outdoor Air Object Name
    ,                        !- Outdoor Air Inlet Node Name
    ,                        !- Demand Controlled Ventilation Type
    ,                        !- Outdoor Air Economizer Type
    ,                        !- Heat Recovery Type
    ,                        !- Sensible Heat Recovery Effectiveness {dimensionless}
    ;                        !- Latent Heat Recovery Effectiveness {dimensionless}**

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

EnergyManagementSystem:Sensor,
    ZoneTemp,                !- Name
    West Zone,               !- Output:Variable or Output:Meter Index Key Name
    Zone Mean Air Temperature ;  !- Output:Variable or Output:Meter Name


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

EnergyManagementSystem:Actuator,
    HeaAvaActuator,          !- Name
    HeaAva,                  !- Actuated Component Unique Name
    Schedule:Compact,        !- Actuated Component Type
    Schedule Value;          !- Actuated Component Control Type

EnergyManagementSystem:Actuator,
    CooAvaActuator,          !- Name
    CooAva,                  !- Actuated Component Unique Name
    Schedule:Compact,        !- Actuated Component Type
    Schedule Value;          !- Actuated Component Control Type


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

EnergyManagementSystem:ProgramCallingManager,
    myPrograms,              !- Name
    BeginTimestepBeforePredictor,  !- EnergyPlus Model Calling Point
    HeatingAvailabilityProgram,  !- Program Name 1
    CoolingAvailabilityProgram;  !- Program Name 2


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

EnergyManagementSystem:Program,
    HeatingAvailabilityProgram,  !- Name
    IF (ZoneTemp < 19 ),     !- Program Line 1
    SET HeaAva = 1,          !- Program Line 2
    ELSE,                    !- A4
    SET HeaAva = 0,          !- A5
    ENDIF;                   !- A6

EnergyManagementSystem:Program,
    CoolingAvailabilityProgram,  !- Name
    IF (ZoneTemp > 25 ),     !- Program Line 1
    SET CooAva = 1,          !- Program Line 2
    ELSE,                    !- A4
    SET CooAva = 0,          !- A5
    ENDIF;                   !- A6
nagpalh's avatar
75
nagpalh
asked 2019-03-26 09:27:30 -0500
__AmirRoth__'s avatar
4.4k
__AmirRoth__
updated 2019-03-29 10:10:33 -0500
edit flag offensive 0 remove flag close merge delete

Comments

add a comment see more comments

1 Answer

1

Your EMS program looks OK to me at first glance. The calling point can be any of the early calls to EMS:

BeginTimestepBeforePredictor
AfterPredictorBeforeHVACManagers
AfterPredictorAfterHVACManagers
InsideHVACSystemIterationLoop

Turn on EMS reporting so you can see what your program is doing:

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

Then after you run your simulation, look in the edd file. There is a lot of information. Note the "During Warmup" in the messages. This means that actual simulation has not started yet, it's just getting warmed up. Scroll down until you don't see this anymore to see what happens during the actual simulation.

rraustad's avatar
13.8k
rraustad
answered 2019-03-26 09:46:19 -0500
edit flag offensive 0 remove flag delete link

Comments

Thank you for your great suggestion. I checked the *.edd file. It seems that the EMS program is running absolutely as per the instruction i.e. HeaAva and CooAva are changing as per 'the if condition'. However, this does not reflect into the simulation; the value of HeaAva and CooAva is always same viz. equal to 1. Somehow, the initially defined schedule is being used not the new calculated one. This is why I am confused about the calling point.

Any suggestion?

nagpalh's avatar nagpalh (2019-03-27 05:04:15 -0500) edit

Oops, your actuator name is HeaAvaActuator, not HeaAva.

rraustad's avatar rraustad (2019-03-27 08:50:40 -0500) edit

Oh wait. It is HeaAva, so I am also confused.

rraustad's avatar rraustad (2019-03-27 08:51:17 -0500) edit

@MJWitte any thoughts?

rraustad's avatar rraustad (2019-03-27 08:51:58 -0500) edit

I think you need to use HeaAvaActuator = 1 (or 0) in your EMS program.

rraustad's avatar rraustad (2019-03-27 08:52:55 -0500) edit
add a comment see more comments