First time here? Check out the Help page!

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

Outside Air -Ideal Loads

asked 6 years ago

PY's avatar

updated 6 years ago

I need the hourly outdoor-air flow for my buildings. Normally I export my hourly data to an excel sheet with a measure. For the outside air, I tried to use Output:Variable,*,Zone Ideal Loads Outdoor Air Mass Flow Rate,hourly; !- HVAC Average [kg/s], but the excel file is full of zeros. The same with Zone Ideal Loads Outdoor Air Sensible Heating Rate.

My ratios of outdoor air is defined in the space types in OS:DesignSpecification:OutdoorAir, with the Sum method and they are not zeros (of course) neither is the schedule.

Does anyone know how I can have access to this data ?

Preview: (hide)

Comments

Do you have a thermostat defined for your zones? (optionally: can you upload your model somewhere and add a link in your question?)

Julien Marrec's avatar Julien Marrec  ( 6 years ago )

Yes I have thermostat in my model. The other Output Variables like Zone Ideal Loads Zone Total Heating Energy, are okay.

PY's avatar PY  ( 6 years ago )

So, I think you're requesting the right variable Zone Ideal Loads Outdoor Air Mass Flow Rate, so there must be something else at play here, your model would help troubleshooting.

Julien Marrec's avatar Julien Marrec  ( 6 years ago )

Check the resulting IDF file, to ensure the ZoneHVAC:IdealLoadsAirSystem does have its Design Specification Outdoor Air Object Name set correctly too.

Julien Marrec's avatar Julien Marrec  ( 6 years ago )

2 Answers

Sort by » oldest newest most voted
5

answered 6 years ago

updated Oct 18

sashadf1's avatar

Short story: if you have clicked on "Use Ideal Air Loads" in the OS App next to the thermal Zone, you will want to request Zone Ventilation Mass Flow Rate [kg/s] instead, as it uses a ZoneVentilation:DesignFlowRate to mimic the DSOA, all output variables available for this object are here


I dug into the source code. There are two different thing that could be happening:

  • If you clicked on a ThermalZone checkbox in the OS App to enable Ideal Air Loads (meaning zone.setUseIdealAirLoads(true) behind the scenes), you'll end up with an HVACTemplate:Zone:IdealLoadsAirSystem which will get expanded by E+ as a ZoneHVAC:IdealLoadsAirSystem by E+, but it won't have the DesignSpecific:OutdoorAir (DSOA) object. Instead, a ZoneVentilation:DesignFlowRate object is created to match the DSOA, so you can request the output variable Zone Ventilation Mass Flow Rate [kg/s]
  • If you use the API, you can explicitly create a ZoneHVACIdealLoadsAirSystem and assign that as an actual equipment to the thermal Zone, and in this case the DSOA will be gotten and properly translated, and you can use the Output variable Zone Ideal Loads Outdoor Air Mass Flow Rate

Source:


Proof in action

Initial setup

In [1]:
# Create an Example model (1 Zone, 4 spaces, 1 spaceType)
m = OpenStudio::Model::exampleModel()
# It has one zone, connected to a AirLoopHVAC, we remove it
m.getAirLoopHVACs[0].remove

# Create a DSOA and assign to the only space Type in the model
space_type = m.getSpaceTypes[0]
dsoa = DesignSpecificationOutdoorAir.new(m)
dsoa.setOutdoorAirFlowAirChangesperHour(0.6)
dsoa.setName("DSOA 0.6 ACH")

Using an explicit ZoneHVACIdealLoadsAirSystem

In [2]:
# We create a ZoneHVACIdealLoadsAirSystem and add it to the thermal Zone
i = OpenStudio::Model::ZoneHVACIdealLoadsAirSystem.new(m)
i.addToThermalZone(z)


In [3]: puts i # Notice DSOA is empty...
Out[3]:
OS:ZoneHVAC:IdealLoadsAirSystem,
  {03253713-01e8-44d8-a6a9-ea3509fdcbe0}, !- Handle
  Zone HVAC Ideal Loads Air System 1,     !- Name
  ,                                       !- Availability Schedule Name
  {79065160-831c-4d50-97bb-a32156865d3d}, !- Zone Supply Air Node Name
  {846003a5-290c-490b-8623-3e59384f5dd3}, !- Zone Exhaust Air Node Name
  ,                                       !- Maximum Heating Supply Air Temperature {C}
  ,                                       !- Minimum Cooling Supply Air Temperature {C}
  ,                                       !- Maximum Heating Supply Air Humidity Ratio {kg-H2O/kg-air}
  ,                                       !- Minimum Cooling Supply Air Humidity Ratio {kg-H2O/kg-air}
  ,                                       !- Heating Limit
  ,                                       !- Maximum Heating Air Flow Rate {m3/s}
  ,                                       !- Maximum Sensible Heating Capacity {W}
  ,                                       !- Cooling Limit
  ,                                       !- Maximum Cooling Air Flow Rate {m3/s}
  ,                                       !- Maximum Total Cooling Capacity {W}
  ,                                       !- Heating Availability Schedule Name
  ,                                       !- Cooling Availability Schedule Name
  ,                                       !- Dehumidification Control Type
  ,                                       !- Cooling Sensible Heat Ratio {dimensionless}
  ,                                       !- Humidification Control Type
  ,                                       !- Design Specification Outdoor Air Object Name
  ,                                       !- Demand Controlled Ventilation Type
  ,                                       !- Outdoor Air Economizer Type
  ,                                       !- Heat Recovery Type
  ,                                       !- Sensible Heat Recovery Effectiveness {dimensionless}
  ;                                       !- Latent Heat Recovery Effectiveness {dimensionless}


In [4]:
# Translate to E+
w = ft.translateModel(m)
# Show result
puts w.getObjectsByType("ZoneHVAC:IdealLoadsAirSystem".to_IddObjectType)

Out[4]:
ZoneHVAC:IdealLoadsAirSystem,
  Zone HVAC Ideal Loads Air System 1,     !- Name
  ,                                       !- Availability Schedule Name
  Node 3,                                 !- Zone Supply Air Node Name
  Node 2 ...
(more)
Preview: (hide)
link

Comments

I opened two issues on github on this topic #3100 and #3101 FYI. These are feature requests, so use the "+1" feature as you see fit.

Julien Marrec's avatar Julien Marrec  ( 6 years ago )

You're right, a ZoneVentilation:DesignFlowRate object is created. However, the schedule does not seem to apply to each flow rate. Flow Rate Per Person is okay but Flow Rate Per Zone Floor Area is always on.Then Zone Ventilation Mass Flow Rate [kg/s] is inacurate.

I'm not familiar with the API, (it's on my to-do list) so I can't implement your solution but thanks a lot.

PY's avatar PY  ( 6 years ago )
Julien Marrec's avatar Julien Marrec  ( 6 years ago )

In case you find C++ hard to read: Basically if your DSOA Outdoor Air Method is "Max", it creates a single ZV corresponding to the max of FlowPerPerson, FlowPerArea, ACH or Flow (the 4 possible methods)

If "Sum", then it's going to create one ZV for each of the 4 "methods" where the value isn't zero.

ZV schedule is alwaysOn (=1) for ACH, Flow, or FlowPerArea, For FlowPerPerson, it's the Actual "People Schedule" for that zone IF there are actually people in your zone (otherwise no ZV)

Julien Marrec's avatar Julien Marrec  ( 6 years ago )

I think this behavior is perhaps what you want.

What OpenStudio does right now amounts to enabling Demand Controlled Ventilation (DCV), because it actually tracks the real people occupation at each timestep. Which is something you might or might not want...

This is indeed what ASHRAE 62.1 tells you to do. FlowPerArea is always on, that's to meant to remove inherent building contaminants (think paint VOCs, etc), while the FlowPerPerson would depend on the occupation because it's meant to remove the people's contaminants (CO2 generated by people etc).

Julien Marrec's avatar Julien Marrec  ( 6 years ago )
2

answered 6 years ago

updated 6 years ago

If you select to have your zones modeled with ideal air loads in OpenStudio, at runtime OpenStudio will add in ZoneHVAC:IdealLoadsAirSystem objects to your zones, but most of the fields for the objects will be left blank. One of those blank fields is the Design Specification Outdoor Air Object Name which tells ideal air loads what ventilation rate to use. So the default is to assume no ventilation.

You need to use an EnergyPlus measure to link your Design Specification Outdoor Air definitions in your spaces/spacetypes with the field in the Ideal Loads Air System object.

The Ideal Loads Options measure on BCL will do that for you and will also optionally include all the output variables you may want.

Preview: (hide)
link

Comments

(FYI: This can be done using an OpenStudio measure, see my answer)

Julien Marrec's avatar Julien Marrec  ( 6 years ago )

Thank you for the measure.

I tried to use it. I selected Use Individual Zone Design Outdoor but the excel file is still full of zeros. When I open the E+ file, there is nothing specified in Design Specification Outdoor Air Object Name. Besides, I can't open the in.idf file with IDF Editor, it seems that the measure create a problem (Too many fiedls for Object: Meter:Custom)

PY's avatar PY  ( 6 years ago )

How many zones do you have in your model? If you have many and request several output variables for each one you can exceed the amount that you can view in the IDF Editor. You could uncheck the box in the measure that makes these meters and make your own meters for only a few specific zones to avoid going over the limit.

What do you see for the Zone Ideal Loads Outdoor Air Mass Flow Rate variables in DView? Still zero? Did you make sure the schedule for your design specification outdoor air objects is non-zero?

mdahlhausen's avatar mdahlhausen  ( 6 years ago )

I have 96 Zones. I unchecked the box in the measure and it's fine now. There is nothing in DView, the value is 0 throughout the year. I checked the schedule for my design specification outdoor air objects and it's 1 from 8 am to 9pm and null elsewhere.

PY's avatar PY  ( 6 years ago )

Can you post a link to your model or send me a link? I'd like to make sure there isn't an issue with the measure.

mdahlhausen's avatar mdahlhausen  ( 6 years ago )

Your Answer

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

Add Answer

Training Workshops

Careers

Question Tools

3 followers

Stats

Asked: 6 years ago

Seen: 993 times

Last updated: Oct 29 '24