You can limit the maximum OA fraction using the "Maximum Fraction of Outdoor Air Schedule" in the Controller:OutdoorAir
object attached to the AirLoopHVAC:OutdoorAirSystem
on the Airloop
.
Here is what this looks like in an OpenStudio Measure:
# Find the AirLoopHVAC:OutdoorAirSystem on the Airloop
# Find the Controller:OutdoorAir object on the OA system
# Set the Maximum Fraction of Outdoor Air Schedule to one
# that has night-time maximums set to the desired fraction.
air_loop.supplyComponents.each do |supply_component|
# Skip any supply component that isn't an AirLoopHVAC:OutdoorAirSystem
next if supply_component.to_AirLoopHVACOutdoorAirSystem.empty?
# Convert the supply component to a Controller:OutdoorAir
oa_system = supply_component.to_AirLoopHVACOutdoorAirSystem.get
# Get the OA controller that belongs to this OA system
controller_oa = oa_system.getControllerOutdoorAir
# Set the Maximum Fraction of Outdoor Air Schedule
controller_oa.setMaximumFractionofOutdoorAirSchedule(max_oa_frac_sch)
# Tell the user what happened
runner.registerInfo("Set the max OA fraction schedule for #{air_loop.name} to #{max_oa_frac_sch.name}.")
end