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

Modifying ERV exhaust inlet node in OpenStudio

asked 2017-06-30 09:35:37 -0500

jugonzal07's avatar

updated 2023-04-22 08:07:26 -0500

Hi all,

I'm working to implement an ERV whose exhaust inlet node equals an zone exhaust fan's outlet node. I'm modeling a kitchen space and hope to use this configuration to properly model heating energy savings.

In terms of the E+ model, I am able to directly modify the node (this E+ file runs successfully!):

HeatExchanger:AirToAir:SensibleAndLatent,
  AirLoop air_handlers-204_1_BLK 1,       !- Name
  Always On Discrete,                     !- Availability Schedule Name
  Autosize,                               !- Nominal Supply Air Flow Rate {m3/s}
  0.45,                                   !- Sensible Effectiveness at 100% Heating Air Flow
  0,                                      !- Latent Effectiveness at 100% Heating Air Flow 
  0.45,                                   !- Sensible Effectiveness at 75% Heating Air Flow
  0,                                      !- Latent Effectiveness at 75% Heating Air Flow
  0.45,                                   !- Sensible Effectiveness at 100% Cooling Air Flow
  0,                                      !- Latent Effectiveness at 100% Cooling Air Flow
  0.45,                                   !- Sensible Effectiveness at 75% Cooling Air Flow
  0,                                      !- Latent Effectiveness at 75% Cooling Air Flow
  Node 16,                                !- Supply Air Inlet Node Name
  Node 19,                                !- Supply Air Outlet Node Name
  <EXHAUST FAN OUTLET NODE>,        !- Exhaust Air Inlet Node Name <--**THIS NODE HERE**
  Node 17,                                !- Exhaust Air Outlet Node Name
  35,                                     !- Nominal Electric Power {W}
  Yes,                                    !- Supply Air Outlet Temperature Control
  Rotary,                                 !- Heat Exchanger Type
  None,                                   !- Frost Control Type
  -30.56,                                 !- Threshold Temperature {C}
  ,                                       !- Initial Defrost Time Fraction {dimensionless}
  ,                                       !- Rate of Defrost Time Fraction Increase {1/K}
  Yes;                                    !- Economizer Lockout

That said, OS handles these node references differently. It looks like instead of a node name, the OS HeatExchanger object references a node's outlet port (also equal to a connection's handle).

OS:HeatExchanger:AirToAir:SensibleAndLatent,
  {3cf38f75-7551-4431-8e27-85cba62e5f75}, !- Handle
  AirLoop air_handlers-204_1_BLK 1,       !- Name
  {8f9c4e1e-6e27-4b5e-b5bb-97b6c7dc597b}, !- Availability Schedule
  autosize,                               !- Nominal Supply Air Flow Rate {m3/s}
  0.45,                                   !- Sensible Effectiveness at 100% Heating Air Flow
  0,                                      !- Latent Effectiveness at 100% Heating Air Flow
  0.45,                                   !- Sensible Effectiveness at 75% Heating Air Flow
  0,                                      !- Latent Effectiveness at 75% Heating Air Flow
  0.45,                                   !- Sensible Effectiveness at 100% Cooling Air Flow
  0,                                      !- Latent Effectiveness at 100% Cooling Air Flow 
  0.45,                                   !- Sensible Effectiveness at 75% Cooling Air Flow 
  0,                                      !- Latent Effectiveness at 75% Cooling Air Flow 
  {4a5780b6-1ccf-4add-9e6c-c4e4cf23e05d}, !- Supply Air Inlet Node
  {54da889f-e930-4aad-8090-0a770e88347e}, !- Supply Air Outlet Node
  {e8a8d20f-d1b6-4541-88df-449b6891f310}, !- Exhaust Air Inlet Node
  {a10c8eec-febd-4425-8b9f-e3791be3697b}, !- Exhaust Air Outlet Node
  35,                                     !- Nominal Electric Power {W}
  Yes,                                    !- Supply Air Outlet Temperature Control
  Rotary,                                 !- Heat Exchanger Type
  None,                                   !- Frost Control Type
  -30.56,                                 !- Threshold Temperature {C}
  ,                                       !- Initial Defrost Time Fraction 
  ,                                       !- Rate of Defrost Time Fraction Increase {1/K}
  Yes;                                    !- Economizer Lockout

Anyone know how best to make an equivalent change in OS? Whenever I try to manually change the OS object to reference the appropriate node's outlet ports I get errors.

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
1

answered 2017-06-30 10:59:53 -0500

updated 2017-06-30 11:08:01 -0500

I would not try to make that connection in OpenStudio, for the reason that the whole node/port/connections are some black magic that you generally don't want to mess with.

Instead, I would use an EnergyPlus measure that gets the HeatExchanger object and writes the node name. Placed as an 'always run' measure, it will change the node reference when you run your simulation and everything should be good. If you've never written an EnergyPlus measure, this would be a pretty simple one to start with (see the getString and setString methods in the measure writer's guide).

Alternatively, if you just need the ERV on a single zone, you could consider using the ZoneHVAC:EnergyRecoveryVentilator object, which exists in OpenStudio (drag from the Library pane in Thermal Zone tab).

Edit: Oh, you already know about getting and setting strings - apologies! :)

edit flag offensive delete link more

Comments

Thanks so much for the reply Eric,

I feared if might be the case that this sort of thing isn't easily handled in OpenStudio. To give you some context, I was in the process of writing up a ruby script to add this functionality to a bigger code base that makes modifications via the OpenStudio SDK. Since I was struggling to do it via code, I attempted doing it manually and arrived at this issue.

We've been shying away from writing E+ measures for now as it would only add an additional layer of complexity (though it sounds great here!). Is this type of thing simply undoable in OS space?

jugonzal07's avatar jugonzal07  ( 2017-06-30 11:42:21 -0500 )edit
1

It might be undoable, I'm not sure exactly. I've had trouble using the SDK with OS:Connection objects, which I think you'd have to deal with. I'm pretty sure some of that stuff isn't even SWIG'd to ruby. @Kyle Benne is the ultimate authority.

ericringold's avatar ericringold  ( 2017-06-30 11:49:29 -0500 )edit
1

Manipulating the connection object directly is not something we support in the OpenStudio Model API. I think Eric is giving good advice to use an E+ Measure. I understand there is a bit of overhead in doing that, but I think once you get the idea, it will not be too bad if you are already writing Measures. I honestly didn't know that connecting the zone exhaust node to the ERV was a valid option. Maybe we can add a new OS APIs to do this in a convenient way.

Kyle Benne's avatar Kyle Benne  ( 2017-06-30 13:01:13 -0500 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Careers

Question Tools

1 follower

Stats

Asked: 2017-06-30 09:35:37 -0500

Seen: 510 times

Last updated: Jun 30 '17