Natural ventilation vs Mechanical ventilation using ladybug 1.2

Dear ladybug community,

I am using the latest version of ladybug which has a bit different components than the previous version regarding ventilation.
I have created the two following scenario:

  • natural ventilation (windows), no cooling and with the infiltration rate of an average building;
  • mechanical ventilation, no cooling and with the infiltration rate of an airtight building.

I have set the cooling setpoint to 60 degrees to ensure that there won’t be cooling through the year.

Does adding an input on “vent_per_person” make the system switch to a mechanical ventilation system?

thank you for your advices!



Yes, you will see mechanical ventilation in both scenarios. Even if you don’t add an input to vent_per_person, by default a certain amount of mechanical ventilation will occur even with an extremely high cooling setpoint in order to satisfy the fresh air requirements of your building program. The raw fresh air still needs to be conditioned[1] so the mechanical ventilation will impact your building’s thermal energy balance, even if you have specified no cooling.

You should be able to eliminate all mechanical ventilation by manually setting all ventilation requirements to zero (per person, per area etc).

Note that natural ventilation will only impact your zone thermal loads by default, it isn’t connected to the fresh air requirements. Thus it will have no impact on the fresh-air brought through your mechanical ventilation load.

[1] Specifically, with the ideal loads air system, outdoor air is mixed with return air, and the mixed air is then conditioned to meet zone humidity and temperature setpoints.

1 Like

Hi Saeranvasanthakumar!
Thank you for your reply, I tried both setups as shown above and it dramatically increases the energy use of the building compared to a scenario without any ventilation component.
Therefore, I wonder what are the default settings of a honeybee model if you don’t add any component on ventilation control, vent_per_floor? Does it consider the building as naturally ventilated with all the default values shown on the components?


I’m not sure I understand your study, the screenshot to me seems different from what you are describing. Specifically:

  • Both models have natural ventilation, and as explained in my previous post, there is a default quantity of ventilation that occurs to satisfy fresh air requirements. So it’s not a natural ventilation versus mechanical ventilation study.
  • the infiltration rate per exterior area doesn’t seem to be different, both buildings are set to 0.0001 m3/m2/s

So the only difference is that the first model uses a default value for the ventilation rate per person, and the second model uses 0.01 m3/s per person.

Is my understanding correct? I assume you mean the second study when you refer to the model that has a dramatic increase in energy, and if so, I believe it’s simply because the ventilation per person you have entered is higher then the default (which I think is zero[1]). To answer your question (and confirm my assumption), you can use the HB Deconstruct Ventilation to check the default values Ladybug assumes.

[1] honeybee-grasshopper-energy/HB at master · ladybug-tools/honeybee-grasshopper-energy · GitHub

Sorry for the misunderstanding! I attached the three different scenarios to the model below.

  • default scenario (without any ventilation component) gives a result of 95 kwh/m2 natural gas consumption
  • scenario 1 and 2 (when adding the ventilation window based and vent_per_person) give the results of 363 and 476 kWh/m2 natural gas consumption.

This is the reason of my question, what are the default settings of “default scenario” and why the natural gas consumption is dramatically lower then when you specify the natural ventilation and vent_per_floor?

Thank you for your help, very appreciated :slight_smile: (120.9 KB)

You can find any default settings by using the HB Deconstruct ... components, where “…” is replaced by whatever you are seeking to parse (i.e Ventilation, Setpoints, Program etc). So, as I mentioned previously, to find the default ventilation values, use the HB Deconstruct Ventilation component.

Natural ventilation can increase gas consumption (relative to the baseline) if the ventilation controls aren’t tuned properly to prevent cold air from triggering the mechanical cooling. Your minimum outdoor temperature of 12 C for natural ventilation is too low and lowering indoor temperatures past your heating setpoint, even with your minimum indoor temperature of 22 for natural ventilation. Check your room air temperature and setpoint (HB Deconstruct Setpoints) to verify this yourself. Tuning ventilation control parameters isn’t easy, and sometimes requires trial and error before getting energy savings from natural ventilation.

As for why the natural gas consumption increases even more with the vent_per_floor parameter, as I said in my previous post, it’s because you are increasing the fresh air requirement on top of your inefficient natural ventilation. More fresh air, means more air needs to be mechanically conditioned, which in turn requires more natural gas consumption.



Since I was looking for the same possibility, to switch of mechanical ventilation, I’d like to share my approach to this topic.

I also realized there is always a mechanical simulation occurring.
And I can see the point in having the need for a basic ventilation.
Wrapping our self in plastic or what else without leaving a hole to breathe just doesn’t make sense.

But in case of simulation a logic step by step approach to the part of ventilation, for me, would be like
Creating a Building -

  • the amount of infiltration caused by weak spots due to the construction.
  • ventilation caused by the people using the construction (windows, doors).
  • adding elektro-mechanical and or heating devices to aid or maybe even avoid the influence of people in case of ventilation.

The last step is mostly interwoven with ventilation but not necessarily (electrical radiators). Maybe it should be split into heating without need of extra air and heating/cooling with the need of mechanical ventilation?

Being asked to simulate a building without mechanical ventilation I like to know, if there is a way on the level doing it with Honeybee or if it needs more effort?


Yes, you can eliminate mechanical ventilation easily with Honeybee. I mentioned how to do this in the first post, but perhaps I wasn’t clear. It requires two steps because mechanical ventilation is used to both satisfy fresh air requirements[1] and (in air based systems) to condition the air to maintain a temperature setpoint. To eliminate the former, you can set the ventilation component parameters to zero (ventilation_per_person etc). To eliminate the latter, you can set the temperature setpoints to a really extreme number so that it’s never reached by the room. You will have to do some exploring to identify which components achieves this, I’m away from my computer and can’t look it up at the moment, but it’s fairly straightforward.

[1] Not all building programs have this. Single family residential, for example, usually can fufill fresh air requirements solely through infiltration.

Yes you are right, it can be done with the HB Apply Loads Values component.
Like shown in the attached picture

But at the moment I wonder why the amounts are added up in the Thermal Loads Chart?

I mean if you are living in a rusty shag the amount infiltration is most likely the thing that matters.
In a fairly good environment it might be natural ventilation.
With a modern HVAC it’s what’s mechanically delivered.

I’m asking because in the currently used European EN 12831 only the highest amount is taken of these loads? Does this apply for the honeybee/EP+ context as well?

Single family residential? Where is this located in honeybee?

Many questions I know. Thank you for your help.


Hopefully I’m understanding you’re post correctly, but I would say the ventilation amounts are like that because the energy model in HB is typically built to follow some standard (i.e. ASHRAE Standard 90.1) defined when assigning various templates (i.e program types, constructions etc). How you use it depends on your building code, but usually the standard defines one type of baseline minimum you have to meet.

This of course is a prescriptive approach that limits the flexibility in optimizing the energy performance of the building, which sounds like what you are critiquing in the posts above. That’s why there’s also performance compliance paths, that give more flexibility in building design (like for example, assumptions behind ventilation loads) as long as you can demonstrate through simulation that it performs better than the baseline minimum built prescriptively.

So if you can prove through simulation that you don’t need mechanical ventilation because of your building’s natural ventilation, then you don’t need to follow that assumption.

I’m asking because in the currently used European EN 12831 only the highest amount is taken of these loads? Does this apply for the honeybee/EP+ context as well?

If I’m interpreting this question correctly, HB takes the sum of the different ventilation inputs to calculate the overall flow rate. If I recall correctly, this is what is defined by the ASHRAE 55 Thermal Comfort standard. But you can incorporate the European standard assumption easily.

Single family residential? Where is this located in honeybee?

I’m not sure if HB has a single family residential program type.

I just wanted to note that a simpler way to eliminate both of these at once is to set conditioned_ to False when you create the room:

The minimum ventilation standard used for almost all of the programs in Honeybee is ASHRAE 62.1, which is primarily concerned with specifying the minimum fresh air so that people cannot smell one another in the same space (yes, it’s a weird criterion but I guess it’s what everyone could agree on). Saeran is correct that it’s the sum of the ventilation per floor area and ventilation per person that is used to dictate the minimum ventilation of a particular program.

The only big exceptions to the use of ASHRAE 62.1 are the hospital programs, where ventilation is driven by a standard of infection control, and laboratories, where ventilation is driven by a standard of minimum concentrations of toxic chemicals. Admittedly, I forget the name of these standards but I think they might not come from ASHRAE.

There’s no single family residential template in honeybee’s energy standards or the DoE commercial reference buildings from which all the honeybee programs are derived. The midrise apartment is a pretty good standard proxy, though.

1 Like

Good catch, I got my standards completely mixed up!

Hi @SaeranVasanthakumar ,
I did some test runs around the mechanical ventilation, and here is my findings (I’m in the tropics, so the fresh air is always bad for cooling energy, the default economizer is always a pitfall): in the HB Annual Loads’ energy balance output, the Mechanical Ventilation is the amount of cooling load, both sensible and latent, on the coil that cools the fresh air to the off-coil temperature. So the parameters affecting the Mechanical Ventilation are the ventilation requirements and supply air temperature (cool_temp of the HB IdealAir component). The Mechanical Ventilation doesn’t include the fan energy to bring in the fresh air. Is my finding correct?
Btw, do you know where I can find any documentation that explains the ladybug 1.2 components? It’s quite a lot of work if I have to run tests to figure out the meaning of all the components.
Thank you.


Yes, your findings are correct. Ladybug has constantly updated documentation for it’s code[1] that explains the underlying logic, you can find the link to any library documentation referenced in the github repo for each Ladybug package[2].

However you will usually need to visit the underlying simulation engine documentation to understand the component behavior in detail. In this case, for example, all thermal energy balances are derived with an ideal loads air system (ZoneHVAC:IdealLoadsAirSystem object). The EP Engineering reference for this system provides a decent breakdown of what’s happening[3].

The documentation goes through the actual control logic of the system over time, and personally I find a lot of it unnecessary for reasoning about energy optimization/balances. By compressing the time axis and applying conservation of energy you can represent the entire process in one formula, as a function of the latent/sensible energy associated with return/supply air ratios:

\begin{align} \dot{Q}_{air} = &\lbrack \dot{m}_{OA} C_p (T_{OA} - T_{SA}) + \dot{m}_{OA} \Delta{H_{cond}} (W_{OA} - W_{SA})) \rbrack + \\ &\lbrack \dot{m}_{RA} C_p (T_{RA} - T_{SA}) + \dot{m}_{RA} \Delta{H_{cond}} (W_{RA} - W_{SA})) \rbrack \end{align}

In simple english, this means the thermal energy of conditioned air is equal to the sum of the sensible and latent energy associated with the mass flow rate of outdoor air and return air and their temperature/humidity difference from the incoming supply air.

The formula is loosely based on this excellent paper[4]. At some point I worked out the derivation from the EP Engineering reference formulas, which proves they are equivalent. I’ll try and write it up at some point in one of these forum posts, since there’s always so much confusion about the ideal loads system.

[1] Welcome to Honeybee Energy’s documentation! — honeybee energy documentation
[2] Ladybug Tools · GitHub
[3] Ideal Loads Air System: Engineering Reference — EnergyPlus 9.5
[4] A fresh (air) look at ventilation for COVID-19: Estimating the global energy savings potential of coupling natural ventilation with novel radiant cooling strategies

1 Like