Module: Laboratory
- Defined in:
- lib/openstudio-standards/prototypes/common/buildings/Prototype.Laboratory.rb
Overview
Custom changes for the Laboratory prototype. These are changes that are inconsistent with other prototype building types.
Instance Method Summary collapse
- #adjust_doas_sizing_system(model) ⇒ Object
- #model_custom_geometry_tweaks(building_type, climate_zone, prototype_input, model) ⇒ Object
- #model_custom_hvac_tweaks(building_type, climate_zone, prototype_input, model) ⇒ Object
- #model_custom_swh_tweaks(model, building_type, climate_zone, prototype_input) ⇒ Object
-
#model_modify_oa_controller(model) ⇒ Object
lab zones don’t have economizer, the air flow rate is determined by the ventilation requirement.
-
#reset_fume_hood_oa(model) ⇒ Object
For fume hood, the OA rate varies with the fume hood schedule So add “Proportional Control Minimum Outdoor Air Flow Rate Schedule” at the mean time, modify “Outdoor Air Method” to “ProportionalControlBasedOnDesignOARate” in Controller:MechanicalVentilation of the DOAS.
- #set_oa_control_for_lab_terminals(model) ⇒ Object
Instance Method Details
#adjust_doas_sizing_system(model) ⇒ Object
38 39 40 41 42 43 44 45 46 |
# File 'lib/openstudio-standards/prototypes/common/buildings/Prototype.Laboratory.rb', line 38 def adjust_doas_sizing_system(model) model.getAirLoopHVACs.each do |air_loop| if air_loop.name.to_s.include? 'OA' # system sizing sizing_system = air_loop.sizingSystem sizing_system.setTypeofLoadtoSizeOn('Sensible') end end end |
#model_custom_geometry_tweaks(building_type, climate_zone, prototype_input, model) ⇒ Object
72 73 74 |
# File 'lib/openstudio-standards/prototypes/common/buildings/Prototype.Laboratory.rb', line 72 def model_custom_geometry_tweaks(building_type, climate_zone, prototype_input, model) return true end |
#model_custom_hvac_tweaks(building_type, climate_zone, prototype_input, model) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/openstudio-standards/prototypes/common/buildings/Prototype.Laboratory.rb', line 5 def model_custom_hvac_tweaks(building_type, climate_zone, prototype_input, model) OpenStudio.logFree(OpenStudio::Info, 'openstudio.model.Model', 'Started building type specific adjustments') reset_fume_hood_oa(model) adjust_doas_sizing_system(model) set_oa_control_for_lab_terminals(model) # TODO # # Add exhaust fan to fume hood zone # search_criteria = ... # fume_hood_space = model_find_object(standards_data['Space Types'], search_criteria) # fume_hood_zone_volume = fume_hood_space.getVolume... # flow_rate_fume_hood = fume_hood_zone_volume * fume_hood_space['Ventilation_Air_Changes...'] # model_add_exhaust_fan(model, thermal_zones, flow_rate=flow_rate_fume_hood, flow_fraction_schedule_name='Lab_FumeHood_Sch') OpenStudio.logFree(OpenStudio::Info, 'openstudio.model.Model', 'Finished building type specific adjustments') return true end |
#model_custom_swh_tweaks(model, building_type, climate_zone, prototype_input) ⇒ Object
68 69 70 |
# File 'lib/openstudio-standards/prototypes/common/buildings/Prototype.Laboratory.rb', line 68 def model_custom_swh_tweaks(model, building_type, climate_zone, prototype_input) return true end |
#model_modify_oa_controller(model) ⇒ Object
lab zones don’t have economizer, the air flow rate is determined by the ventilation requirement
58 59 60 61 62 63 64 65 66 |
# File 'lib/openstudio-standards/prototypes/common/buildings/Prototype.Laboratory.rb', line 58 def model_modify_oa_controller(model) model.getAirLoopHVACs.sort.each do |air_loop| oa_sys = air_loop.airLoopHVACOutdoorAirSystem.get oa_control = oa_sys.getControllerOutdoorAir if air_loop.name.get.include?('DOAS') oa_control.setEconomizerControlType('NoEconomizer') end end end |
#reset_fume_hood_oa(model) ⇒ Object
For fume hood, the OA rate varies with the fume hood schedule So add “Proportional Control Minimum Outdoor Air Flow Rate Schedule” at the mean time, modify “Outdoor Air Method” to “ProportionalControlBasedOnDesignOARate” in Controller:MechanicalVentilation of the DOAS
28 29 30 31 32 33 34 35 36 |
# File 'lib/openstudio-standards/prototypes/common/buildings/Prototype.Laboratory.rb', line 28 def reset_fume_hood_oa(model) fume_hood_spaces = [] model.getSpaces.each do |space| next unless space.name.get.to_s.include? 'fumehood' ventilation = space.designSpecificationOutdoorAir.get ventilation.setOutdoorAirFlowRateFractionSchedule(model_add_schedule(model, 'Lab_FumeHood_Sch')) end end |
#set_oa_control_for_lab_terminals(model) ⇒ Object
48 49 50 51 52 53 54 55 |
# File 'lib/openstudio-standards/prototypes/common/buildings/Prototype.Laboratory.rb', line 48 def set_oa_control_for_lab_terminals(model) model.getAirTerminalSingleDuctVAVReheats.sort.each do |air_terminal| air_terminal_name = air_terminal.name.get if air_terminal_name.include?('Lab') air_terminal.setControlForOutdoorAir(true) end end end |