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

Revision history [back]

We looked into adding a feature to EnergyPlus that would disaggregate fans/pumps into heating and cooling, but like @ericmartinpe says, it's no so simple. But if you have a simple HVAC system where there is only ever heating or cooling when the fan is running, you can use a small EMS program like so:

EnergyManagementSystem:Sensor,
  gshp_clg_coil_s,                        !- Name
  gshp clg coil,                          !- Output:Variable or Output:Meter Index Key Name
  Cooling Coil Electricity Energy;        !- Output:Variable or Output:Meter Name

EnergyManagementSystem:Program,
  gshp_pump_disaggregate_program,         !- Name
  Set gshp_pump_clg = 0,                  !- Program Line 1
  Set gshp_pump_htg = 0,                  !- Program Line 2
  If gshp_clg_coil_s > 0,                 !- Program Line 3
    Set gshp_pump_clg = gshp_pump_s,      !- Program Line 4
  Else,                                   !- Program Line 5
    Set gshp_pump_htg = gshp_pump_s,      !- Program Line 6
  EndIf;                                  !- Program Line 7

EnergyManagementSystem:OutputVariable,
  gshp pump clg disaggregate,             !- Name
  gshp_pump_clg,                          !- EMS Variable Name
  Summed,                                 !- Type of Data in Variable
  SystemTimestep,                         !- Update Frequency
  gshp_pump_disaggregate_program,         !- EMS Program or Subroutine Name
  J;                                      !- Units

EnergyManagementSystem:OutputVariable,
  gshp pump htg disaggregate,             !- Name
  gshp_pump_htg,                          !- EMS Variable Name
  Summed,                                 !- Type of Data in Variable
  SystemTimestep,                         !- Update Frequency
  gshp_pump_disaggregate_program,         !- EMS Program or Subroutine Name
  J;                                      !- Units

Output:Variable,
  *,                                      !- Key Value
  gshp pump clg disaggregate,             !- Variable Name
  runperiod;                              !- Reporting Frequency

Output:Variable,
  *,                                      !- Key Value
  gshp pump htg disaggregate,             !- Variable Name
  runperiod;                              !- Reporting Frequency

This will create two annual outputs -- in this example, one for ground source heat pump energy associated with heating and one for cooling.

We looked into adding a feature to EnergyPlus that would disaggregate fans/pumps into heating and cooling, but like @ericmartinpe says, it's no not so simple. But if you have a simple HVAC system where there is only ever heating or cooling when the fan is running, you can use a small EMS program like so:

EnergyManagementSystem:Sensor,
  gshp_clg_coil_s,                        !- Name
  gshp clg coil,                          !- Output:Variable or Output:Meter Index Key Name
  Cooling Coil Electricity Energy;        !- Output:Variable or Output:Meter Name

EnergyManagementSystem:Program,
  gshp_pump_disaggregate_program,         !- Name
  Set gshp_pump_clg = 0,                  !- Program Line 1
  Set gshp_pump_htg = 0,                  !- Program Line 2
  If gshp_clg_coil_s > 0,                 !- Program Line 3
    Set gshp_pump_clg = gshp_pump_s,      !- Program Line 4
  Else,                                   !- Program Line 5
    Set gshp_pump_htg = gshp_pump_s,      !- Program Line 6
  EndIf;                                  !- Program Line 7

EnergyManagementSystem:OutputVariable,
  gshp pump clg disaggregate,             !- Name
  gshp_pump_clg,                          !- EMS Variable Name
  Summed,                                 !- Type of Data in Variable
  SystemTimestep,                         !- Update Frequency
  gshp_pump_disaggregate_program,         !- EMS Program or Subroutine Name
  J;                                      !- Units

EnergyManagementSystem:OutputVariable,
  gshp pump htg disaggregate,             !- Name
  gshp_pump_htg,                          !- EMS Variable Name
  Summed,                                 !- Type of Data in Variable
  SystemTimestep,                         !- Update Frequency
  gshp_pump_disaggregate_program,         !- EMS Program or Subroutine Name
  J;                                      !- Units

Output:Variable,
  *,                                      !- Key Value
  gshp pump clg disaggregate,             !- Variable Name
  runperiod;                              !- Reporting Frequency

Output:Variable,
  *,                                      !- Key Value
  gshp pump htg disaggregate,             !- Variable Name
  runperiod;                              !- Reporting Frequency

This will create two annual outputs -- in this example, one for ground source heat pump energy associated with heating and one for cooling.

We looked into adding a feature to EnergyPlus that would disaggregate fans/pumps into heating and cooling, but like @ericmartinpe says, it's not so simple. But if you have a simple HVAC system where there is only ever heating or cooling when the fan is running, you can use a small EMS program like so:

EnergyManagementSystem:Sensor,
  gshp_clg_coil_s,                        !- Name
  gshp clg coil,                          !- Output:Variable or Output:Meter Index Key Name
  Cooling Coil Electricity Energy;        !- Output:Variable or Output:Meter Name

EnergyManagementSystem:Program,
  gshp_pump_disaggregate_program,         !- Name
  Set gshp_pump_clg = 0,                  !- Program Line 1
  Set gshp_pump_htg = 0,                  !- Program Line 2
  If gshp_clg_coil_s > 0,                 !- Program Line 3
    Set gshp_pump_clg = gshp_pump_s,      !- Program Line 4
  Else,                                   !- Program Line 5
    Set gshp_pump_htg = gshp_pump_s,      !- Program Line 6
  EndIf;                                  !- Program Line 7

EnergyManagementSystem:OutputVariable,
  gshp pump clg disaggregate,             !- Name
  gshp_pump_clg,                          !- EMS Variable Name
  Summed,                                 !- Type of Data in Variable
  SystemTimestep,                         !- Update Frequency
  gshp_pump_disaggregate_program,         !- EMS Program or Subroutine Name
  J;                                      !- Units

EnergyManagementSystem:OutputVariable,
  gshp pump htg disaggregate,             !- Name
  gshp_pump_htg,                          !- EMS Variable Name
  Summed,                                 !- Type of Data in Variable
  SystemTimestep,                         !- Update Frequency
  gshp_pump_disaggregate_program,         !- EMS Program or Subroutine Name
  J;                                      !- Units

Output:Variable,
  *,                                      !- Key Value
  gshp pump clg disaggregate,             !- Variable Name
  runperiod;                              !- Reporting Frequency

Output:Variable,
  *,                                      !- Key Value
  gshp pump htg disaggregate,             !- Variable Name
  runperiod;                              !- Reporting Frequency

This will create two annual outputs -- in this example, one for ground source heat GSHP pump energy associated with heating and one for pump energy associated with cooling.