Application Guide for EMS — EnergyPlus 8.2

<< Prev | Table of Contents | Next >>

Example 12. Variable Refrigerant Flow System Override[LINK]

Problem Statement[LINK]

The variable refrigerant flow heat pump air conditioner has several available thermostat control options. These operation control schemes may not provide the type of control desired. How can we use a simple EMS addition to an input file that can override the specified thermostat control logic and set an alternate mode of operation?

EMS Design Discussion[LINK]

Depending on the type of thermostat control logic, the EnergyPlus program will review the loads in each zone, the number of zones in cooling or heating, the deviation from set point temperature, etc. to determine the mode of operation for the heat pump condenser. Alternate control logic may be developed to more accurately reflect the operation of a specific manufacturers product, or investigate other control techniques. This control logic may be added to an input file and used as the operating control logic of the heat pump.

This simple example shows how to use EMS actuators to SET the operating mode and cause a specific terminal unit to operate at a specified part-load ratio (PLR). When setting the terminal unit PLR, the terminal unit will turn on only if the condenser is allowed to operate according to the minimum and maximum outdoor temperature limits.

EMS Input Objects[LINK]

The main input objects that implement this example are the variable refrigerant flow actuators that control the VRF system and specific terminal unit. Note that the terminal unit PLR can be controlled without controlling the mode of the VRF condenser, however, the specific terminal unit will operate in whatever mode the existing operation control scheme chooses. This example program simply “sets” the operating mode and PLR, other more complex control algorithms can be developed by the user as needed.

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

EnergyManagementSystem:ProgramCallingManager,
  VRF OnOff Management,     !- Name
  InsideHVACSystemIterationLoop,  !- EnergyPlus Model Calling Point
  VRFControl;               !- Program Name 1

EnergyManagementSystem:Program,
  VRFControl,               !- Name
  SET VRF_Actuator_OnOff = VRF_Status_Heating, !- Program Line 2
  SET VRF_TerminalUnit1_PLR = 0.5;

EnergyManagementSystem:Actuator,
  VRF_Actuator_OnOff,       !- Name
  VRF Heat Pump,            !- Actuated Component Unique Name
  Variable Refrigerant Flow Heat Pump,      !- Actuated Component Type
  Operating Mode;           !- Actuated Component Control Type

EnergyManagementSystem:Actuator,
  VRF_TerminalUnit1_PLR,    !- Name
  TU1,                      !- Actuated Component Unique Name
  Variable Refrigerant Flow Terminal Unit,  !- Actuated Component Type
  Part Load Ratio;          !- Actuated Component Control Type

EnergyManagementSystem:OutputVariable,
  Erl VRF Control Status,   !- Name
  VRF_Actuator_OnOff,       !- EMS Variable Name
  Averaged,                 !- Type of Data in Variable
  SystemTimeStep;           !- Update Frequency

Output:Variable,*,Erl VRF Control Status, detailed;
Output:Variable,*,VRF Heat Pump Operating Mode, detailed;
Output:Variable,*,Cooling Coil Runtime Fraction, detailed;
Output:Variable,*,Heating Coil Runtime Fraction, detailed;

EnergyManagementSystem:ProgramCallingManager,
  Init VRF Control Mode Constants,  !- Name
  BeginNewEnvironment,           !- EnergyPlus Model Calling Point
  InitializeVRFControlModes;     !- Program Name 1

EnergyManagementSystem:Program,
  InitializeVRFControlModes,     !- Name
  Set VRF_Status_Off = 0.0,      !- Program Line 1
  Set VRF_Status_Cooling = 1.0,  !- Program Line 2
  Set VRF_Status_Heating = 2.0;  !- Program Line 3

EnergyManagementSystem:GlobalVariable,
  VRF_Status_Off,                !- Erl Variable 1 Name
  VRF_Status_Cooling,            !- Erl Variable 2 Name
  VRF_Status_Heating;            !- Erl Variable 3 Name