Mechanical Ventilation doesn't follow occupancy

Hello everyone,
I’ve been strugling the last past days on the ventilation of a building (secondary school). Thanks to this forum I’ve resolved most of my issues but still have some interrogations about mechanical ventilation :

I understood that mechanical ventilation is based on these inputs :

  • OccupancySchedules
  • Ventilation per area
  • Number of persons per area
  • Ventilation per person
    When there are people in the building, the ventilation based on the occupancy is set on. Otherwise it’s the ventilation per area.
    For the moment I’m working with ideal loads by the way.

So this is my strategy for the school :

  • For people health, I’ve put a high rate of ventilation per person (25 m3/h-pers)
  • When nobody is in the building (night and weekend), I’d like to stop the mechanical ventilation (or set to epsilon). So I’ve set to zero the ventilation rate per area

For any reasons, the ventilation keep on working on night and weekends…
Why doesn’t the ventilation follow the occupancy of the building ? Is there a parameter I’ve missed ?

So I had the idea to use the VentilationSchedule input of the SetEpZoneSchedule. And finally it starts working. I create a csv schedule with a ventilation rate at day, and another at night and weekend. But I can’t find what should be the unit of the schedule … Futhermore, I don’t know if the ventilation rate in the schedule should be in m3/s or m3/s-m2 or even ACH.

Here is my GH file, I hope it’s not too consequent. If needed I may simplify it : (777.1 KB)

Here are my Mechanical Ventilation Loads with and without the schedule connected (according to the values, I may have a unit issue…) :



@EmmanuelR ,

Good question and sorry for the late response. It seems that what you are actually after is not a change in the minimum ventilation requirement, which is a constant value and is the reason why you don’t see the ventilation changing if you only change the ventilation per person and per area.

Rather, you actually want to model demand controlled ventilation, where the amount of ventilation air is dynamically adjusted based on the occupancy of the room (essentially mimicking how a CO2 sensor would adjust the ventilation air). The setting for this is on the HVAC system components and you can set it up like this:

You will see that you then get ventilation behaving as you expect:

Note that you can also dynamically adjust the ventilation with a schedule as you have done here but this is more useful when the schedule for ventilation does not depend on the number of occupants in the room (like in a laboratory, for example).


Thank you Chris !

It indeed resolved my problem. But actually if I wanted to set my mechanical ventilation with a schedule, what sould have been the unit of the schedule ? m3/s-m2 or ACH or even m3/s ?

I couldn’t have the info in the component infos.

Thanks again,

@EmmanuelR ,
The units in the ventilation schedule are fractional (between 0 and 1). These values get multiplied by either the sum of ventilationPerArea and ventilationPerPerson (by default). As you can see on the Set EnergyPlus Zone Load component, these values are in m3/s-m2 and m3/person respectively.

1 Like