Class: DOERefPre1980
- Defined in:
- lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.rb,
lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.Model.rb,
lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.PlantLoop.rb,
lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.AirLoopHVAC.rb,
lib/openstudio-standards/prototypes/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.hvac_systems.rb,
lib/openstudio-standards/prototypes/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.refrigeration.rb,
lib/openstudio-standards/prototypes/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.CoilHeatingGas.rb,
lib/openstudio-standards/prototypes/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.Model.elevators.rb,
lib/openstudio-standards/prototypes/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.AirTerminalSingleDuctVAVReheat.rb
Overview
This class holds methods that apply the “standard” assumptions used in the DOE Pre-1980 Reference Buildings to a given model.
Direct Known Subclasses
DOERefPre1980FullServiceRestaurant, DOERefPre1980HighriseApartment, DOERefPre1980Hospital, DOERefPre1980LargeHotel, DOERefPre1980LargeOffice, DOERefPre1980MediumOffice, DOERefPre1980MidriseApartment, DOERefPre1980Outpatient, DOERefPre1980PrimarySchool, DOERefPre1980QuickServiceRestaurant, DOERefPre1980RetailStandalone, DOERefPre1980RetailStripmall, DOERefPre1980SecondarySchool, DOERefPre1980SmallHotel, DOERefPre1980SmallOffice, DOERefPre1980SuperMarket, DOERefPre1980Warehouse, DOERefPre1980_Prototype
Constant Summary collapse
- @@template =
rubocop:disable Style/ClassVars
'DOE Ref Pre-1980'
Constants inherited from Standard
Instance Attribute Summary collapse
-
#template ⇒ Object
readonly
Returns the value of attribute template.
Attributes inherited from Standard
#space_multiplier_map, #standards_data
Model collapse
-
#model_apply_infiltration_standard(model) ⇒ Bool
Apply the air leakage requirements to the model.
-
#model_get_climate_zone_set_from_list(model, possible_climate_zone_sets) ⇒ Object
Determine which climate zone to use.
PlantLoop collapse
-
#plant_loop_supply_water_temperature_reset_required?(plant_loop) ⇒ Boolean
Determine if temperature reset is required.
AirLoopHVAC collapse
-
#air_loop_hvac_apply_multizone_vav_outdoor_air_sizing(air_loop_hvac) ⇒ Bool
Apply multizone vav outdoor air method and adjust multizone VAV damper positions.
-
#air_loop_hvac_static_pressure_reset_required?(air_loop_hvac, has_ddc) ⇒ Boolean
Determine if static pressure reset is required for this system.
-
#air_loop_hvac_vav_damper_action(air_loop_hvac) ⇒ String
Determine whether the VAV damper control is single maximum or dual maximum control.
hvac_systems collapse
-
#model_swh_pump_type(model, building_type) ⇒ String
Determine the type of SWH pump that a model will have.
refrigeration collapse
-
#model_walkin_freezer_latent_case_credit_curve(model) ⇒ Object
Determine the latent case credit curve to use for walkins.
CoilHeatingGas collapse
-
#coil_heating_gas_apply_prototype_efficiency(coil_heating_gas) ⇒ Object
Updates the efficiency of some gas heating coils per the prototype assumptions.
elevators collapse
-
#model_add_elevator(model, space, number_of_elevators, elevator_type, elevator_schedule, elevator_fan_schedule, elevator_lights_schedule, building_type = nil) ⇒ OpenStudio::Model::ElectricEquipment
Add an elevator the the specified space.
-
#model_elevator_lift_power(model, elevator_type, building_type) ⇒ Object
Determines the power required by an individual elevator of a given type.
AirTerminalSingleDuctVAVReheat collapse
-
#air_terminal_single_duct_vav_reheat_apply_initial_prototype_damper_position(air_terminal_single_duct_vav_reheat, building_type, zone_oa_per_area) ⇒ Bool
Set the initial minimum damper position based on OA rate of the space and the template.
Instance Method Summary collapse
-
#initialize ⇒ DOERefPre1980
constructor
A new instance of DOERefPre1980.
Methods inherited from ASHRAE901
#fan_variable_volume_part_load_fan_power_limitation_capacity_limit, #fan_variable_volume_part_load_fan_power_limitation_hp_limit
Methods inherited from Standard
#adjust_infiltration_to_lower_pressure, #adjust_infiltration_to_prototype_building_conditions, #afue_to_thermal_eff, #air_loop_hvac_add_motorized_oa_damper, #air_loop_hvac_adjust_minimum_vav_damper_positions, #air_loop_hvac_adjust_minimum_vav_damper_positions_outpatient, #air_loop_hvac_allowable_system_brake_horsepower, #air_loop_hvac_apply_baseline_fan_pressure_rise, #air_loop_hvac_apply_economizer_integration, #air_loop_hvac_apply_economizer_limits, #air_loop_hvac_apply_energy_recovery_ventilator, #air_loop_hvac_apply_maximum_reheat_temperature, #air_loop_hvac_apply_minimum_vav_damper_positions, #air_loop_hvac_apply_prm_baseline_controls, #air_loop_hvac_apply_prm_baseline_economizer, #air_loop_hvac_apply_prm_baseline_fan_power, #air_loop_hvac_apply_prm_sizing_temperatures, #air_loop_hvac_apply_single_zone_controls, #air_loop_hvac_apply_standard_controls, #air_loop_hvac_apply_vav_damper_action, #air_loop_hvac_data_center_area_served, #air_loop_hvac_dcv_required_when_erv, #air_loop_hvac_demand_control_ventilation_limits, #air_loop_hvac_demand_control_ventilation_required?, #air_loop_hvac_disable_multizone_vav_optimization, #air_loop_hvac_dx_cooling?, #air_loop_hvac_economizer?, #air_loop_hvac_economizer_limits, #air_loop_hvac_economizer_required?, #air_loop_hvac_economizer_type_allowable?, #air_loop_hvac_enable_demand_control_ventilation, #air_loop_hvac_enable_multizone_vav_optimization, #air_loop_hvac_enable_supply_air_temperature_reset_delta, #air_loop_hvac_enable_supply_air_temperature_reset_outdoor_temperature, #air_loop_hvac_enable_supply_air_temperature_reset_warmest_zone, #air_loop_hvac_enable_unoccupied_fan_shutoff, #air_loop_hvac_energy_recovery?, #air_loop_hvac_energy_recovery_ventilator_flow_limit, #air_loop_hvac_energy_recovery_ventilator_required?, #air_loop_hvac_fan_power_limitation_pressure_drop_adjustment_brake_horsepower, #air_loop_hvac_find_design_supply_air_flow_rate, #air_loop_hvac_floor_area_served, #air_loop_hvac_floor_area_served_exterior_zones, #air_loop_hvac_floor_area_served_interior_zones, #air_loop_hvac_get_occupancy_schedule, #air_loop_hvac_integrated_economizer_required?, #air_loop_hvac_motorized_oa_damper_limits, #air_loop_hvac_motorized_oa_damper_required?, #air_loop_hvac_multi_stage_dx_cooling?, #air_loop_hvac_multizone_vav_optimization_required?, #air_loop_hvac_multizone_vav_system?, #air_loop_hvac_prm_baseline_economizer_required?, #air_loop_hvac_prm_economizer_type_and_limits, #air_loop_hvac_remove_motorized_oa_damper, #air_loop_hvac_single_zone_controls_num_stages, #air_loop_hvac_supply_air_temperature_reset_required?, #air_loop_hvac_supply_return_exhaust_relief_fans, #air_loop_hvac_system_fan_brake_horsepower, #air_loop_hvac_system_multiplier, #air_loop_hvac_terminal_reheat?, #air_loop_hvac_total_cooling_capacity, #air_loop_hvac_unoccupied_fan_shutoff_required?, #air_loop_hvac_vav_system?, #air_terminal_single_duct_parallel_piu_reheat_apply_prm_baseline_fan_power, #air_terminal_single_duct_vav_reheat_apply_minimum_damper_position, #air_terminal_single_duct_vav_reheat_minimum_damper_position, #air_terminal_single_duct_vav_reheat_reheat_type, #air_terminal_single_duct_vav_reheat_set_heating_cap, #boiler_hot_water_apply_efficiency_and_curves, #boiler_hot_water_find_capacity, #boiler_hot_water_find_search_criteria, #boiler_hot_water_standard_minimum_thermal_efficiency, build, #building_story_floor_multiplier, #building_story_minimum_z_value, #chiller_electric_eir_apply_efficiency_and_curves, #chiller_electric_eir_find_capacity, #chiller_electric_eir_find_search_criteria, #chiller_electric_eir_standard_minimum_full_load_efficiency, #coil_cooling_dx_multi_speed_apply_efficiency_and_curves, #coil_cooling_dx_single_speed_apply_efficiency_and_curves, #coil_cooling_dx_single_speed_find_capacity, #coil_cooling_dx_single_speed_standard_minimum_cop, #coil_cooling_dx_two_speed_apply_efficiency_and_curves, #coil_cooling_dx_two_speed_find_capacity, #coil_cooling_dx_two_speed_standard_minimum_cop, #coil_heating_dx_multi_speed_apply_efficiency_and_curves, #coil_heating_dx_single_speed_apply_efficiency_and_curves, #coil_heating_dx_single_speed_find_capacity, #coil_heating_dx_single_speed_standard_minimum_cop, #coil_heating_gas_multi_stage_apply_efficiency_and_curves, #combustion_eff_to_thermal_eff, #construction_calculated_solar_heat_gain_coefficient, #construction_calculated_u_factor, #construction_calculated_visible_transmittance, #construction_set_glazing_shgc, #construction_set_glazing_u_value, #construction_set_slab_f_factor, #construction_set_u_value, #construction_set_underground_wall_c_factor, #construction_simple_glazing?, #controller_water_coil_set_convergence_limits, #convert_curve_biquadratic, #cooling_tower_single_speed_apply_efficiency_and_curves, #cooling_tower_two_speed_apply_efficiency_and_curves, #cooling_tower_variable_speed_apply_efficiency_and_curves, #cop_heating_to_cop_heating_no_fan, #cop_to_eer, #cop_to_kw_per_ton, #cop_to_seer, #create_curve_bicubic, #create_curve_biquadratic, #create_curve_cubic, #create_curve_exponent, #create_curve_quadratic, #define_space_multiplier, #eer_to_cop, #fan_constant_volume_airloop_fan_pressure_rise, #fan_constant_volume_apply_prototype_fan_pressure_rise, #fan_on_off_airloop_or_unitary_fan_pressure_rise, #fan_on_off_apply_prototype_fan_pressure_rise, #fan_variable_volume_airloop_fan_pressure_rise, #fan_variable_volume_apply_prototype_fan_pressure_rise, #fan_variable_volume_cooling_system_type, #fan_variable_volume_part_load_fan_power_limitation?, #fan_variable_volume_part_load_fan_power_limitation_capacity_limit, #fan_variable_volume_part_load_fan_power_limitation_hp_limit, #fan_variable_volume_set_control_type, #fan_zone_exhaust_apply_prototype_fan_pressure_rise, #film_coefficients_r_value, #headered_pumps_variable_speed_set_control_type, #heat_exchanger_air_to_air_sensible_and_latent_apply_efficiency, #heat_exchanger_air_to_air_sensible_and_latent_apply_prototype_nominal_electric_power, #heat_exchanger_air_to_air_sensible_and_latent_minimum_efficiency, #heating_design_outdoor_temperatures, #hspf_to_cop_heating_no_fan, #intialize, #kw_per_ton_to_cop, #load_hvac_map, #load_standards_database, #model_add_baseboard, #model_add_booster_swh_end_uses, #model_add_cav, #model_add_central_air_source_heat_pump, #model_add_chw_loop, #model_add_constant_schedule_ruleset, #model_add_construction, #model_add_construction_set, #model_add_curve, #model_add_cw_loop, #model_add_data_center_hvac, #model_add_data_center_load, #model_add_daylighting_controls, #model_add_design_days_and_weather_file, #model_add_district_ambient_loop, #model_add_doas, #model_add_elevators, #model_add_evap_cooler, #model_add_exhaust_fan, #model_add_four_pipe_fan_coil, #model_add_furnace_central_ac, #model_add_ground_hx_loop, #model_add_ground_temperatures, #model_add_high_temp_radiant, #model_add_hp_loop, #model_add_hvac, #model_add_hvac_system, #model_add_hw_loop, #model_add_ideal_air_loads, #model_add_material, #model_add_prm_baseline_system, #model_add_prm_construction_set, #model_add_psz_ac, #model_add_psz_vav, #model_add_ptac, #model_add_pthp, #model_add_pvav, #model_add_pvav_pfp_boxes, #model_add_refrigeration, #model_add_refrigeration_case, #model_add_refrigeration_compressor, #model_add_refrigeration_system, #model_add_refrigeration_walkin, #model_add_schedule, #model_add_split_ac, #model_add_swh, #model_add_swh_booster, #model_add_swh_end_uses, #model_add_swh_end_uses_by_space, #model_add_swh_loop, #model_add_typical_exterior_lights, #model_add_typical_swh, #model_add_unitheater, #model_add_vav_pfp_boxes, #model_add_vav_reheat, #model_add_water_heater, #model_add_water_source_hp, #model_add_window_ac, #model_add_zone_erv, #model_add_zone_ventilation, #model_apply_hvac_efficiency_standard, #model_apply_multizone_vav_outdoor_air_sizing, #model_apply_prm_baseline_skylight_to_roof_ratio, #model_apply_prm_baseline_window_to_wall_ratio, #model_apply_prm_construction_types, #model_apply_prm_sizing_parameters, #model_apply_standard_constructions, #model_assign_spaces_to_stories, #model_attach_water_fixtures_to_spaces?, #model_baseline_system_vav_fan_type, #model_create_exterior_lighting_area_length_count_hash, #model_create_prm_baseline_building, #model_create_prm_baseline_building_requires_vlt_sizing_run, #model_create_space_type_hash, #model_create_story_hash, #model_cw_loop_cooling_tower_fan_type, #model_differentiate_primary_secondary_thermal_zones, #model_effective_num_stories, #model_elevator_fan_pwr, #model_elevator_lighting_pct_incandescent, #model_eliminate_outlier_zones, #model_find_and_add_construction, #model_find_ashrae_hot_water_demand, #model_find_climate_zone_set, #model_find_constructions, #model_find_icc_iecc_2015_hot_water_demand, #model_find_icc_iecc_2015_internal_loads, #model_find_object, #model_find_objects, #model_find_prototype_floor_area, #model_find_target_eui, #model_find_target_eui_by_end_use, #model_find_water_heater_capacity_volume_and_parasitic, #model_get_baseline_system_type_by_zone, #model_get_building_climate_zone_and_building_type, #model_get_construction_properties, #model_get_full_weather_file_path, #model_get_lookup_name, #model_get_or_add_ambient_water_loop, #model_get_or_add_chilled_water_loop, #model_get_or_add_ground_hx_loop, #model_get_or_add_heat_pump_loop, #model_get_or_add_hot_water_loop, #model_get_story_for_nominal_z_coordinate, #model_group_zones_by_story, #model_make_name, #model_num_stories_spanned, #model_prm_baseline_system_change_fuel_type, #model_prm_baseline_system_group_minimum_area, #model_prm_baseline_system_groups, #model_prm_baseline_system_number, #model_prm_baseline_system_type, #model_prm_skylight_to_roof_ratio_limit, #model_process_results_for_datapoint, #model_remap_office, #model_remove_external_shading_devices, #model_remove_prm_hvac, #model_residential_and_nonresidential_floor_areas, #model_typical_hvac_system_type, #model_validate_standards_spacetypes_in_model, #model_zones_with_occ_and_fuel_type, #planar_surface_apply_standard_construction, #plant_loop_apply_prm_baseline_chilled_water_pumping_type, #plant_loop_apply_prm_baseline_chilled_water_temperatures, #plant_loop_apply_prm_baseline_condenser_water_pumping_type, #plant_loop_apply_prm_baseline_condenser_water_temperatures, #plant_loop_apply_prm_baseline_hot_water_pumping_type, #plant_loop_apply_prm_baseline_hot_water_temperatures, #plant_loop_apply_prm_baseline_pump_power, #plant_loop_apply_prm_baseline_pumping_type, #plant_loop_apply_prm_baseline_temperatures, #plant_loop_apply_prm_number_of_boilers, #plant_loop_apply_prm_number_of_chillers, #plant_loop_apply_prm_number_of_cooling_towers, #plant_loop_apply_standard_controls, #plant_loop_enable_supply_water_temperature_reset, #plant_loop_find_maximum_loop_flow_rate, #plant_loop_prm_baseline_condenser_water_temperatures, #plant_loop_swh_loop?, #plant_loop_swh_system_type, #plant_loop_total_cooling_capacity, #plant_loop_total_floor_area_served, #plant_loop_total_heating_capacity, #plant_loop_total_rated_w_per_gpm, #plant_loop_variable_flow_system?, #pump_variable_speed_set_control_type, register_standard, #safe_load_model, #safe_load_sql, #schedule_compact_annual_min_max_value, #schedule_constant_annual_equivalent_full_load_hrs, #schedule_constant_annual_min_max_value, #schedule_ruleset_annual_equivalent_full_load_hrs, #schedule_ruleset_annual_hours_above_value, #schedule_ruleset_annual_min_max_value, #seer_to_cop_cooling_no_fan, #space_add_daylighting_controls, #space_apply_infiltration_rate, #space_conditioning_category, #space_cooled?, #space_daylighted_area_window_width, #space_daylighted_areas, #space_daylighting_control_required?, #space_daylighting_fractions_and_windows, #space_design_internal_load, #space_exterior_wall_and_roof_and_subsurface_area, #space_exterior_wall_and_window_area, #space_get_adjacent_space_with_most_shared_wall_area, #space_get_adjacent_spaces_with_shared_wall_areas, #space_heated?, #space_infiltration_rate_75_pa, #space_plenum?, #space_residential?, #space_sidelighting_effective_aperture, #space_skylight_effective_aperture, #space_type_apply_internal_load_schedules, #space_type_apply_internal_loads, #space_type_apply_rendering_color, #space_type_get_construction_properties, #space_type_get_standards_data, #strip_model, #sub_surface_component_infiltration_rate, #sub_surface_reduce_area_by_percent_by_raising_sill, #sub_surface_reduce_area_by_percent_by_shrinking_toward_centroid, #sub_surface_vertical_rectangle?, #surface_component_infiltration_rate, #thermal_eff_to_afue, #thermal_eff_to_comb_eff, #thermal_zone_add_exhaust, #thermal_zone_add_exhaust_fan_dcv, #thermal_zone_add_unconditioned_thermostat, #thermal_zone_apply_prm_baseline_supply_temperatures, #thermal_zone_conditioning_category, #thermal_zone_convert_oa_req_to_per_area, #thermal_zone_cooled?, #thermal_zone_demand_control_ventilation_limits, #thermal_zone_demand_control_ventilation_required?, #thermal_zone_design_internal_load, #thermal_zone_exhaust_fan_dcv_required?, #thermal_zone_floor_area_with_zone_multipliers, #thermal_zone_fossil_hybrid_or_purchased_heat?, #thermal_zone_fossil_or_electric_type, #thermal_zone_get_adjacent_zones_with_shared_wall_areas, #thermal_zone_get_occupancy_schedule, #thermal_zone_heated?, #thermal_zone_infer_system_type, #thermal_zone_majority_space_type, #thermal_zone_mixed_heating_fuel?, #thermal_zone_occupancy_type, #thermal_zone_outdoor_airflow_rate, #thermal_zone_outdoor_airflow_rate_per_area, #thermal_zone_plenum?, #thermal_zone_prm_baseline_cooling_design_supply_temperature, #thermal_zone_prm_baseline_heating_design_supply_temperature, #thermal_zone_residential?, #water_heater_mixed_apply_efficiency, #water_heater_mixed_apply_prm_baseline_fuel_type, #water_heater_mixed_find_capacity, #zone_hvac_component_apply_prm_baseline_fan_power
Methods included from PrototypeFan
#prototype_fan_apply_prototype_fan_efficiency
Methods included from CoilDX
#coil_dx_find_search_criteria, #coil_dx_heat_pump?, #coil_dx_heating_type, #coil_dx_subcategory
Methods included from CoolingTower
#cooling_tower_apply_minimum_power_per_flow, #cooling_tower_apply_minimum_power_per_flow_gpm_limit
Methods included from Pump
#pump_apply_prm_pressure_rise_and_motor_efficiency, #pump_apply_standard_minimum_motor_efficiency, #pump_brake_horsepower, #pump_motor_horsepower, #pump_pumppower, #pump_rated_w_per_gpm, #pump_standard_minimum_motor_efficiency_and_size
Methods included from Fan
#fan_adjust_pressure_rise_to_meet_fan_power, #fan_apply_standard_minimum_motor_efficiency, #fan_baseline_impeller_efficiency, #fan_brake_horsepower, #fan_change_impeller_efficiency, #fan_change_motor_efficiency, #fan_fanpower, #fan_motor_horsepower, #fan_rated_w_per_cfm, #fan_small_fan?, #fan_standard_minimum_motor_efficiency_and_size
Constructor Details
#initialize ⇒ DOERefPre1980
Returns a new instance of DOERefPre1980.
9 10 11 12 13 |
# File 'lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.rb', line 9 def initialize super() @template = @@template load_standards_database end |
Instance Attribute Details
#template ⇒ Object (readonly)
Returns the value of attribute template.
7 8 9 |
# File 'lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.rb', line 7 def template @template end |
Instance Method Details
#air_loop_hvac_apply_multizone_vav_outdoor_air_sizing(air_loop_hvac) ⇒ Bool
enable damper position adjustment for legacy IDFS
Apply multizone vav outdoor air method and adjust multizone VAV damper positions. Currently doesn’t do anything for the DOE prototype buildings.
10 11 12 13 14 |
# File 'lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.AirLoopHVAC.rb', line 10 def air_loop_hvac_apply_multizone_vav_outdoor_air_sizing(air_loop_hvac) # TODO: enable damper position adjustment for legacy IDFS OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.AirLoopHVAC', 'Damper positions not modified for DOE Ref Pre-1980 or DOE Ref 1980-2004 vintages.') return true end |
#air_loop_hvac_static_pressure_reset_required?(air_loop_hvac, has_ddc) ⇒ Boolean
Instead of requiring the input of whether a system has DDC control of VAV terminals or not, determine this from the system itself. This may require additional information be added to the OpenStudio data model.
Determine if static pressure reset is required for this system. Not required by DOE Pre-1980.
over VAV terminals. return [Bool] returns true if static pressure reset is required, false if not
26 27 28 29 |
# File 'lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.AirLoopHVAC.rb', line 26 def air_loop_hvac_static_pressure_reset_required?(air_loop_hvac, has_ddc) sp_reset_required = false return sp_reset_required end |
#air_loop_hvac_vav_damper_action(air_loop_hvac) ⇒ String
Determine whether the VAV damper control is single maximum or dual maximum control. Single Maximum for DOE Ref Pre-1980.
35 36 37 38 |
# File 'lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.AirLoopHVAC.rb', line 35 def air_loop_hvac_vav_damper_action(air_loop_hvac) damper_action = 'Single Maximum' return damper_action end |
#air_terminal_single_duct_vav_reheat_apply_initial_prototype_damper_position(air_terminal_single_duct_vav_reheat, building_type, zone_oa_per_area) ⇒ Bool
remove exception where older vintages don’t have minimum positions adjusted.
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
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 |
# File 'lib/openstudio-standards/prototypes/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.AirTerminalSingleDuctVAVReheat.rb', line 12 def air_terminal_single_duct_vav_reheat_apply_initial_prototype_damper_position(air_terminal_single_duct_vav_reheat, building_type, zone_oa_per_area) vav_name = air_terminal_single_duct_vav_reheat.name.get min_damper_position = if building_type == 'Outpatient' && vav_name.include?('Floor 1') 1 elsif building_type == 'Hospital' && vav_name.include?('PatRoom') 1 elsif building_type == 'Hospital' && vav_name.include?('OR') 1 elsif building_type == 'Hospital' && vav_name.include?('ICU') 1 elsif building_type == 'Hospital' && vav_name.include?('Lab') 1 elsif building_type == 'Hospital' && vav_name.include?('ER') 1 elsif building_type == 'Hospital' && vav_name.include?('Kitchen') 1 elsif building_type == 'Hospital' && vav_name.include?('NurseStn') 0.3 else 0.3 end air_terminal_single_duct_vav_reheat.setConstantMinimumAirFlowFraction(min_damper_position) return true end |
#coil_heating_gas_apply_prototype_efficiency(coil_heating_gas) ⇒ Object
Refactor: remove inconsistency in logic; all coils should be lower efficiency
Updates the efficiency of some gas heating coils per the prototype assumptions. Sets heating coils inside PSZ-AC systems to 78% efficiency per the older vintages.
9 10 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 |
# File 'lib/openstudio-standards/prototypes/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.CoilHeatingGas.rb', line 9 def coil_heating_gas_apply_prototype_efficiency(coil_heating_gas) # Only modify coils in PSZ-AC units name_patterns = ['PSZ-AC Gas Htg Coil', 'ZN HVAC_', 'PSZ-AC_2-7 Gas Htg', 'PSZ-AC_2-5 Gas Htg', 'PSZ-AC_1-6 Gas Htg', 'PSZ-AC-1 Gas Htg', 'PSZ-AC-2 Gas Htg', 'PSZ-AC-3 Gas Htg', 'PSZ-AC-4 Gas Htg', 'PSZ-AC-5 Gas Htg', 'PSZ-AC_3-7 Gas Htg', 'PSZ-AC_2-6 Gas Htg', 'PSZ-AC_5-9 Gas Htg', 'PSZ-AC_1-5 Gas Htg', 'PSZ-AC_4-8 Gas Htg', 'PSZ-AC_1 Gas Htg', 'PSZ-AC_2 Gas Htg', 'PSZ-AC_3 Gas Htg', 'PSZ-AC_4 Gas Htg', 'PSZ-AC_5 Gas Htg', 'PSZ-AC_6 Gas Htg', 'PSZ-AC_7 Gas Htg', 'PSZ-AC_8 Gas Htg', 'PSZ-AC_9 Gas Htg', 'PSZ-AC_10 Gas Htg'] name_patterns.each do |pattern| if coil_heating_gas.name.get.include?(pattern) coil_heating_gas.setGasBurnerEfficiency(0.78) end end return true end |
#model_add_elevator(model, space, number_of_elevators, elevator_type, elevator_schedule, elevator_fan_schedule, elevator_lights_schedule, building_type = nil) ⇒ OpenStudio::Model::ElectricEquipment
Inconsistency. Older vintages don’t have lights or fans
Add an elevator the the specified space
to assign the elevators to. Traction, Hydraulic in elevators, which is not realistic.
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 63 64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/openstudio-standards/prototypes/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.Model.elevators.rb', line 18 def model_add_elevator(model, space, number_of_elevators, elevator_type, elevator_schedule, elevator_fan_schedule, elevator_lights_schedule, building_type = nil) # Lift motor assumptions lift_pwr_w = model_elevator_lift_power(model, elevator_type, building_type) # Size assumptions length_ft = 6.66 width_ft = 4.25 height_ft = 8.0 area_ft2 = length_ft * width_ft volume_ft3 = area_ft2 * height_ft # Ventilation assumptions vent_rate_acm = 1 # air changes per minute vent_rate_cfm = volume_ft3 / vent_rate_acm vent_pwr_w = model_elevator_fan_pwr(model, vent_rate_cfm) # Heating fraction radiant assumptions elec_equip_frac_radiant = 0.5 # Lighting assumptions design_ltg_lm_per_ft2 = 30 light_loss_factor = 0.75 pct_incandescent = model_elevator_lighting_pct_incandescent(model) pct_led = 1.0 - pct_incandescent incandescent_efficacy_lm_per_w = 10.0 led_efficacy_lm_per_w = 35.0 target_ltg_lm_per_ft2 = design_ltg_lm_per_ft2 / light_loss_factor # 40 target_ltg_lm = target_ltg_lm_per_ft2 * area_ft2 # 1132.2 lm_incandescent = target_ltg_lm * pct_incandescent # 792.54 lm_led = target_ltg_lm * pct_led # 339.66 w_incandescent = lm_incandescent / incandescent_efficacy_lm_per_w # 79.254 w_led = lm_led / led_efficacy_lm_per_w # 9.7 lighting_pwr_w = w_incandescent + w_led # Elevator lift motor elevator_definition = OpenStudio::Model::ElectricEquipmentDefinition.new(model) elevator_definition.setName('Elevator Lift Motor') elevator_definition.setDesignLevel(lift_pwr_w) elevator_definition.setFractionRadiant(elec_equip_frac_radiant) elevator_equipment = OpenStudio::Model::ElectricEquipment.new(elevator_definition) elevator_equipment.setName("#{number_of_elevators.round} Elevator Lift Motors") elevator_sch = model_add_schedule(model, elevator_schedule) elevator_equipment.setSchedule(elevator_sch) elevator_equipment.setSpace(space) elevator_equipment.setMultiplier(number_of_elevators) return elevator_equipment end |
#model_apply_infiltration_standard(model) ⇒ Bool
This infiltration method is not used by the Reference
Apply the air leakage requirements to the model. “For ‘DOE Ref Pre-1980’ and ‘DOE Ref 1980-2004’, infiltration rates are not defined using this method, no changes are actually made to the model.
base infiltration rates off of. buildings, fix this inconsistency.
13 14 15 16 17 18 19 20 |
# File 'lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.Model.rb', line 13 def model_apply_infiltration_standard(model) # Set the infiltration rate at each space model.getSpaces.sort.each do |space| space_apply_infiltration_rate(space) end return true end |
#model_elevator_lift_power(model, elevator_type, building_type) ⇒ Object
Determines the power required by an individual elevator of a given type. Values used by the older vintages are slightly higher than those used by the DOE prototypes. Traction, Hydraulic
82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 |
# File 'lib/openstudio-standards/prototypes/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.Model.elevators.rb', line 82 def model_elevator_lift_power(model, elevator_type, building_type) lift_pwr_w = 0 if elevator_type == 'Traction' lift_pwr_w = 18_537.0 elsif elevator_type == 'Hydraulic' lift_pwr_w = if building_type == 'MidriseApartment' 16_055.0 else 14_610.0 end else lift_pwr_w = 14_610.0 OpenStudio.logFree(OpenStudio::Warn, 'openstudio.model.Model', "Elevator type '#{elevator_type}', not recognized, will assume Hydraulic elevator, #{lift_pwr_w} W.") end return lift_pwr_w end |
#model_get_climate_zone_set_from_list(model, possible_climate_zone_sets) ⇒ Object
Determine which climate zone to use. For Pre-1980 and 1980-2004, use the most specific climate zone set. For example, 2A and 2 both contain 2A, so use 2A.
25 26 27 28 |
# File 'lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.Model.rb', line 25 def model_get_climate_zone_set_from_list(model, possible_climate_zone_sets) climate_zone_set = possible_climate_zone_sets.sort.last return climate_zone_set end |
#model_swh_pump_type(model, building_type) ⇒ String
Determine the type of SWH pump that a model will have.
7 8 9 10 11 12 13 14 |
# File 'lib/openstudio-standards/prototypes/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.hvac_systems.rb', line 7 def model_swh_pump_type(model, building_type) swh_pump_type = if building_type == 'Medium Office' 'ConstantSpeed' else 'VariableSpeed' end return swh_pump_type end |
#model_walkin_freezer_latent_case_credit_curve(model) ⇒ Object
Should probably use the model_add_refrigeration_walkin
Determine the latent case credit curve to use for walkins. and lookups from the spreadsheet instead of hard-coded values.
8 9 10 11 |
# File 'lib/openstudio-standards/prototypes/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.refrigeration.rb', line 8 def model_walkin_freezer_latent_case_credit_curve(model) latent_case_credit_curve_name = 'Single Shelf Horizontal Latent Energy Multiplier_Pre2004' return latent_case_credit_curve_name end |
#plant_loop_supply_water_temperature_reset_required?(plant_loop) ⇒ Boolean
Determine if temperature reset is required. Not required for the older DOE buildings.
6 7 8 9 |
# File 'lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.PlantLoop.rb', line 6 def plant_loop_supply_water_temperature_reset_required?(plant_loop) reset_required = false return reset_required end |