Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Dual operation type for two-speed evaporative fluid coolers in component setpoint based plant equipment operation #4254

Closed
lymereJ opened this issue Mar 23, 2021 · 1 comment · Fixed by #4256

Comments

@lymereJ
Copy link

lymereJ commented Mar 23, 2021

Issue overview

The forward translator appears to use a Dual operation type when two-speed evaporative fluid coolers are used in comp onement setpoint based plant equipment operation. I would except the forward translator to use a Cooling operation type for this type of equipment.

Current Behavior

This code (1) ...

model = OpenStudio::Model::Model.new()
heat_pump_water_loop = OpenStudio::Model::PlantLoop.new(model)
cooling_equipment = OpenStudio::Model::EvaporativeFluidCoolerTwoSpeed.new(model)
heat_pump_water_loop.addSupplyBranchForComponent(cooling_equipment)
cooling_equipment_stpt_manager = OpenStudio::Model::SetpointManagerScheduledDualSetpoint.new(model)
cooling_equipment_stpt_manager.addToNode(cooling_equipment.outletModelObject.get.to_Node.get)
translator = OpenStudio::OSVersion::VersionTranslator.new
trans = OpenStudio::EnergyPlus::ForwardTranslator.new
idf = trans.translateModel(model)
idf.save('./evap_test.idf', true)

... Generates the following IDF object:

PlantEquipmentOperation:ComponentSetpoint,
  Plant Loop 1 Setpoint Operation Scheme, !- Name
  EvaporativeFluidCooler:TwoSpeed,        !- Equipment Object Type 1
  Evaporative Fluid Cooler Two Speed 1,   !- Equipment Name 1
  Node 3,                                 !- Demand Calculation Node Name 1
  Node 7,                                 !- Setpoint Node Name 1
  Autosize,                               !- Component Flow Rate 1 {m3/s}
  Dual;                                   !- Operation Type 1

If we switch cooling_equipment = OpenStudio::Model::EvaporativeFluidCoolerTwoSpeed.new(model) to cooling_equipment = OpenStudio::Model::EvaporativeFluidCoolerSingleSpeed.new(model), the code generates the following IDF object which uses the expected operation type for an evaporative cooler.

PlantEquipmentOperation:ComponentSetpoint,
  Plant Loop 1 Setpoint Operation Scheme, !- Name
  EvaporativeFluidCooler:SingleSpeed,     !- Equipment Object Type 1
  Evaporative Fluid Cooler Single Speed 1, !- Equipment Name 1
  Node 3,                                 !- Demand Calculation Node Name 1
  Node 7,                                 !- Setpoint Node Name 1
  Autosize,                               !- Component Flow Rate 1 {m3/s}
  Cooling;                                !- Operation Type 1

Expected Behavior

I would expect (1) to generate the following IDF object:

PlantEquipmentOperation:ComponentSetpoint,
  Plant Loop 1 Setpoint Operation Scheme, !- Name
  EvaporativeFluidCooler:SingleSpeed,     !- Equipment Object Type 1
  Evaporative Fluid Cooler Single Speed 1, !- Equipment Name 1
  Node 3,                                 !- Demand Calculation Node Name 1
  Node 7,                                 !- Setpoint Node Name 1
  Autosize,                               !- Component Flow Rate 1 {m3/s}
  Cooling;                                !- Operation Type 1

Possible Solution

A very quick review of the code showed that the component type of single-speed evaporative coolers is defined here but the component type for two-speed evaporative coolesr isn't. It looks like Dual is used when type is not defined as COOLING or HEATING, see here. I'm not sure if this is the reason (not too familiar with this code base) and I'm not currently equipped to test any modifications.

Environment

Some additional details about your environment for this issue (if relevant):

  • Platform: Windows 10
  • Version of OpenStudio: 3.0.1

Context

Use of two-speed evaporative coolers in the openstudio-standards gem.

@lymereJ lymereJ added the Triage Issue needs to be assessed and labeled, further information on reported might be needed label Mar 23, 2021
@jmarrec jmarrec added component - IDF Translation severity - Minor Bug and removed Triage Issue needs to be assessed and labeled, further information on reported might be needed labels Mar 24, 2021
@jmarrec jmarrec self-assigned this Mar 24, 2021
@jmarrec
Copy link
Collaborator

jmarrec commented Mar 24, 2021

Thanks for the report @lymereJ and yes, you correctly identified the issue: it wasn't added, so it defaults to ComponentType::BOTH. It's been the case for at least 5 years too.

jmarrec added a commit that referenced this issue Mar 24, 2021
tijcolem added a commit that referenced this issue Apr 6, 2021
Fix #4254 - Set ComponentType::COOLING for EvaporativeFluidCoolerTwoSpeed
# for free to join this conversation on GitHub. Already have an account? # to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants