Module: MediumOffice
- Defined in:
- lib/openstudio-standards/prototypes/common/buildings/Prototype.MediumOffice.rb
Overview
Custom changes for the MediumOffice prototype. These are changes that are inconsistent with other prototype building types.
AirTerminalSingleDuctVAVReheat collapse
-
#air_loop_hvac_supply_air_temperature_reset_type(air_loop_hvac) ⇒ String
Type of SAT reset for this building type.
-
#air_terminal_single_duct_vav_reheat_apply_initial_prototype_damper_position(air_terminal_single_duct_vav_reheat, zone_oa_per_area) ⇒ Boolean
Set the initial minimum damper position based on OA rate of the space and the template.
Instance Method Summary collapse
-
#add_door_infiltration(climate_zone, model) ⇒ Boolean
add door infiltration.
- #model_custom_daylighting_tweaks(building_type, climate_zone, prototype_input, model) ⇒ Object
-
#model_custom_geometry_tweaks(model, building_type, climate_zone, prototype_input) ⇒ Boolean
geometry adjustments specific to the prototype model.
-
#model_custom_hvac_tweaks(model, building_type, climate_zone, prototype_input) ⇒ Boolean
hvac adjustments specific to the prototype model.
-
#model_custom_swh_tweaks(model, building_type, climate_zone, prototype_input) ⇒ Boolean
swh adjustments specific to the prototype model.
Instance Method Details
#add_door_infiltration(climate_zone, model) ⇒ Boolean
add door infiltration
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 |
# File 'lib/openstudio-standards/prototypes/common/buildings/Prototype.MediumOffice.rb', line 69 def add_door_infiltration(climate_zone, model) # add extra infiltration for entry door in m3/s (there is no attic in 'DOE Ref Pre-1980') return false if template == 'DOE Ref 1980-2004' || template == 'DOE Ref Pre-1980' entry_space = model.getSpaceByName('Perimeter_bot_ZN_1').get infiltration_entrydoor = OpenStudio::Model::SpaceInfiltrationDesignFlowRate.new(model) infiltration_entrydoor.setName('entry door Infiltration') infiltration_per_zone_entrydoor = 0 if template == '90.1-2004' infiltration_per_zone_entrydoor = 1.04300287 infiltration_entrydoor.setSchedule(model_add_schedule(model, 'OfficeMedium INFIL_Door_Opening_SCH')) elsif template == '90.1-2007' || template == '90.1-2010' || template == '90.1-2013' || template == '90.1-2016' || template == '90.1-2019' case climate_zone when 'ASHRAE 169-2006-0A', 'ASHRAE 169-2006-1A', 'ASHRAE 169-2006-0B', 'ASHRAE 169-2006-1B', 'ASHRAE 169-2006-2A', 'ASHRAE 169-2006-2B', 'ASHRAE 169-2013-0A', 'ASHRAE 169-2013-1A', 'ASHRAE 169-2013-0B', 'ASHRAE 169-2013-1B', 'ASHRAE 169-2013-2A', 'ASHRAE 169-2013-2B' infiltration_per_zone_entrydoor = 1.04300287 infiltration_entrydoor.setSchedule(model_add_schedule(model, 'OfficeMedium INFIL_Door_Opening_SCH')) else infiltration_per_zone_entrydoor = 0.678659786 infiltration_entrydoor.setSchedule(model_add_schedule(model, 'OfficeMedium INFIL_Door_Opening_SCH')) end end infiltration_entrydoor.setDesignFlowRate(infiltration_per_zone_entrydoor) infiltration_entrydoor.setSpace(entry_space) return true end |
#air_loop_hvac_supply_air_temperature_reset_type(air_loop_hvac) ⇒ String
Type of SAT reset for this building type
155 156 157 |
# File 'lib/openstudio-standards/prototypes/common/buildings/Prototype.MediumOffice.rb', line 155 def air_loop_hvac_supply_air_temperature_reset_type(air_loop_hvac) return 'oa' end |
#air_terminal_single_duct_vav_reheat_apply_initial_prototype_damper_position(air_terminal_single_duct_vav_reheat, zone_oa_per_area) ⇒ Boolean
Set the initial minimum damper position based on OA rate of the space and the template. Zones with low OA per area get lower initial guesses. Final position will be adjusted upward as necessary by Standards.AirLoopHVAC.apply_minimum_vav_damper_positions
142 143 144 145 146 147 148 149 |
# File 'lib/openstudio-standards/prototypes/common/buildings/Prototype.MediumOffice.rb', line 142 def air_terminal_single_duct_vav_reheat_apply_initial_prototype_damper_position(air_terminal_single_duct_vav_reheat, zone_oa_per_area) min_damper_position = template == '90.1-2010' || template == '90.1-2013' || template == '90.1-2016' || template == '90.1-2019' ? 0.2 : 0.3 # Set the minimum flow fraction air_terminal_single_duct_vav_reheat.setConstantMinimumAirFlowFraction(min_damper_position) return true end |
#model_custom_daylighting_tweaks(building_type, climate_zone, prototype_input, model) ⇒ Object
106 107 108 |
# File 'lib/openstudio-standards/prototypes/common/buildings/Prototype.MediumOffice.rb', line 106 def model_custom_daylighting_tweaks(building_type, climate_zone, prototype_input, model) return true end |
#model_custom_geometry_tweaks(model, building_type, climate_zone, prototype_input) ⇒ Boolean
geometry adjustments specific to the prototype model
128 129 130 131 132 |
# File 'lib/openstudio-standards/prototypes/common/buildings/Prototype.MediumOffice.rb', line 128 def model_custom_geometry_tweaks(model, building_type, climate_zone, prototype_input) # Set original building North axis OpenstudioStandards::Geometry.model_set_building_north_axis(model, 0.0) return true end |
#model_custom_hvac_tweaks(model, building_type, climate_zone, prototype_input) ⇒ Boolean
hvac adjustments specific to the prototype model
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/openstudio-standards/prototypes/common/buildings/Prototype.MediumOffice.rb', line 11 def model_custom_hvac_tweaks(model, building_type, climate_zone, prototype_input) OpenStudio.logFree(OpenStudio::Info, 'openstudio.model.Model', 'Started building type specific HVAC adjustments') # add transformer # efficiency based on a 45 kVA transformer case template when '90.1-2004', '90.1-2007' transformer_efficiency = 0.961 when '90.1-2010', '90.1-2013' transformer_efficiency = 0.977 when '90.1-2016', '90.1-2019' transformer_efficiency = 0.984 else transformer_efficiency = nil end return true if transformer_efficiency.nil? # Change to output variable name in E+ 9.4 (OS 3.1.0) excluded_interiorequip_variable = if model.version < OpenStudio::VersionString.new('3.1.0') 'Electric Equipment Electric Energy' else 'Electric Equipment Electricity Energy' end model_add_transformer(model, wired_lighting_frac: 0.0281, transformer_size: 45000, transformer_efficiency: transformer_efficiency, excluded_interiorequip_key: '2 Elevator Lift Motors', excluded_interiorequip_meter: excluded_interiorequip_variable) model.getSpaces.sort.each do |space| if space.name.get.to_s == 'Core_bottom' model_add_elevator(model, space, prototype_input['number_of_elevators'], prototype_input['elevator_type'], prototype_input['elevator_schedule'], prototype_input['elevator_fan_schedule'], prototype_input['elevator_fan_schedule'], building_type) end end OpenStudio.logFree(OpenStudio::Info, 'openstudio.model.Model', 'Finished building type specific adjustments') # add extra infiltration for entry door add_door_infiltration(climate_zone, model) OpenStudio.logFree(OpenStudio::Info, 'openstudio.model.Model', 'Added door infiltration') return true end |
#model_custom_swh_tweaks(model, building_type, climate_zone, prototype_input) ⇒ Boolean
swh adjustments specific to the prototype model
117 118 119 |
# File 'lib/openstudio-standards/prototypes/common/buildings/Prototype.MediumOffice.rb', line 117 def model_custom_swh_tweaks(model, building_type, climate_zone, prototype_input) return true end |