Module: SmallDataCenterLowITE
- Defined in:
- lib/openstudio-standards/prototypes/common/buildings/Prototype.SmallDataCenterLowITE.rb
Overview
Custom changes for the QuickServiceRestaurant prototype. These are changes that are inconsistent with other prototype building types.
Instance Method Summary collapse
-
#add_data_center_load(model) ⇒ Object
add IT equipment (ITE object) for data center building types Normal electric equipment has been added in model_add_load prior to this will replace with ITE object here.
- #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
Instance Method Details
#add_data_center_load(model) ⇒ Object
add IT equipment (ITE object) for data center building types Normal electric equipment has been added in model_add_load prior to this will replace with ITE object here
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 63 |
# File 'lib/openstudio-standards/prototypes/common/buildings/Prototype.SmallDataCenterLowITE.rb', line 20 def add_data_center_load(model) model.getSpaceTypes.each do |space_type| # Get the standards data space_type_properties = space_type_get_standards_data(space_type) elec_equip_have_info = false elec_equip_per_area = space_type_properties['electric_equipment_per_area'].to_f elec_equip_sch = space_type_properties['electric_equipment_schedule'] elec_equip_have_info = true unless elec_equip_per_area.zero? # The way ITE object is designed can't input the CPU load and IT fan power separately # calculation below is to indirectly address this total_power_input_per_area = elec_equip_per_area.to_f * (1 + 0.4) # assuming IT fan power is 0.4 of total CPU load it_fan_power_ratio = elec_equip_per_area.to_f * 0.4/total_power_input_per_area if (space_type.name.get.downcase.include?('computer')) || (space_type.name.get.downcase.include?('datacenter')) if elec_equip_have_info it_equipment_def = OpenStudio::Model::ElectricEquipmentITEAirCooledDefinition.new(model) it_equipment_def.setName("IT equipment def") it_equipment_def.setWattsperZoneFloorArea(OpenStudio.convert(total_power_input_per_area.to_f, 'W/ft^2', 'W/m^2').get) it_equipment_def.setDesignFanAirFlowRateperPowerInput(0.0001*(1-it_fan_power_ratio)) it_equipment_def.setDesignFanPowerInputFraction(it_fan_power_ratio) it_equipment_def.setDesignEnteringAirTemperature(27) # recommended SAT 18-27C, use the middle T as design it_equipment_def.setAirFlowCalculationMethod("FlowControlWithApproachTemperatures") # TODO Set the approach temperatures based on CFD simulation results it_equipment_def.setSupplyTemperatureDifference(8.9) # This is under fully open configuration assumption, based on the lookup table in scorecard it_equipment_def.setReturnTemperatureDifference(-7.2) # This is under fully open configuration assumption, based on the lookup table in scorecard it_equipment = OpenStudio::Model::ElectricEquipmentITEAirCooled.new(it_equipment_def) it_equipment.setSpaceType(space_type) it_equipment.setName("#{space_type.name.to_s} IT equipment") unless elec_equip_sch.nil? it_equipment.setDesignPowerInputSchedule(model_add_schedule(model, elec_equip_sch)) OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.SpaceType', "#{space_type.name} set Design Power Input Schedule to #{elec_equip_sch}.") end it_equipment.setCPULoadingSchedule(model.alwaysOnDiscreteSchedule) end end end # remove normal electric equipment model.getElectricEquipments.each(&:remove) end |
#model_custom_geometry_tweaks(building_type, climate_zone, prototype_input, model) ⇒ Object
71 72 73 74 |
# File 'lib/openstudio-standards/prototypes/common/buildings/Prototype.SmallDataCenterLowITE.rb', line 71 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
6 7 8 9 10 11 12 13 14 15 |
# File 'lib/openstudio-standards/prototypes/common/buildings/Prototype.SmallDataCenterLowITE.rb', line 6 def model_custom_hvac_tweaks(building_type, climate_zone, prototype_input, model) OpenStudio.logFree(OpenStudio::Info, 'openstudio.model.Model', 'Started building type specific adjustments') add_data_center_load(model) 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
66 67 68 69 |
# File 'lib/openstudio-standards/prototypes/common/buildings/Prototype.SmallDataCenterLowITE.rb', line 66 def model_custom_swh_tweaks(model, building_type, climate_zone, prototype_input) return true end |