openstudio-standards 0.2.16 → 0.2.17.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (181) hide show
  1. checksums.yaml +4 -4
  2. data/data/standards/manage_OpenStudio_Standards.rb +31 -4
  3. data/lib/openstudio-standards/btap/geometry.rb +1 -1
  4. data/lib/openstudio-standards/hvac_sizing/Siz.HeatingCoolingFuels.rb +354 -2
  5. data/lib/openstudio-standards/hvac_sizing/Siz.ThermalZone.rb +79 -0
  6. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.College.rb +1 -1
  7. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Laboratory.rb +1 -1
  8. data/lib/openstudio-standards/prototypes/common/do_not_edit_metaclasses.rb +3313 -0
  9. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Fan.rb +12 -0
  10. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.rb +3 -4
  11. data/lib/openstudio-standards/prototypes/common/objects/Prototype.SizingSystem.rb +1 -1
  12. data/lib/openstudio-standards/prototypes/common/objects/Prototype.hvac_systems.rb +167 -93
  13. data/lib/openstudio-standards/prototypes/common/objects/Prototype.utilities.rb +2 -4
  14. data/lib/openstudio-standards/prototypes/common/prototype_metaprogramming.rb +1 -0
  15. data/lib/openstudio-standards/refs/references.rb +3 -0
  16. data/lib/openstudio-standards/standards/Standards.AirLoopHVAC.rb +279 -6
  17. data/lib/openstudio-standards/standards/Standards.AirTerminalSingleDuctParallelPIUReheat.rb +50 -2
  18. data/lib/openstudio-standards/standards/Standards.ChillerElectricEIR.rb +4 -0
  19. data/lib/openstudio-standards/standards/Standards.CoilCoolingWaterToAirHeatPumpEquationFit.rb +0 -1
  20. data/lib/openstudio-standards/standards/Standards.Construction.rb +185 -3
  21. data/lib/openstudio-standards/standards/Standards.Fan.rb +14 -6
  22. data/lib/openstudio-standards/standards/Standards.HeatExchangerSensLat.rb +1 -0
  23. data/lib/openstudio-standards/standards/Standards.Model.rb +1751 -383
  24. data/lib/openstudio-standards/standards/Standards.PlanarSurface.rb +130 -9
  25. data/lib/openstudio-standards/standards/Standards.PlantLoop.rb +50 -3
  26. data/lib/openstudio-standards/standards/Standards.ScheduleCompact.rb +44 -0
  27. data/lib/openstudio-standards/standards/Standards.ScheduleConstant.rb +27 -0
  28. data/lib/openstudio-standards/standards/Standards.ScheduleRuleset.rb +543 -0
  29. data/lib/openstudio-standards/standards/Standards.Space.rb +665 -15
  30. data/lib/openstudio-standards/standards/Standards.SpaceType.rb +141 -4
  31. data/lib/openstudio-standards/standards/Standards.SubSurface.rb +2 -1
  32. data/lib/openstudio-standards/standards/Standards.Surface.rb +117 -0
  33. data/lib/openstudio-standards/standards/Standards.ThermalZone.rb +197 -49
  34. data/lib/openstudio-standards/standards/Standards.ZoneHVACComponent.rb +41 -0
  35. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.Model.rb +6 -8
  36. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/comstock_ashrae_90_1_2004/data/ashrae_90_1.schedules.json +45 -45
  37. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/comstock_ashrae_90_1_2004/data/comstock_ashrae_90_1_2004.spc_typ.json +7 -7
  38. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/comstock_ashrae_90_1_2007/data/ashrae_90_1.schedules.json +45 -45
  39. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/comstock_ashrae_90_1_2007/data/comstock_ashrae_90_1_2007.spc_typ.json +7 -7
  40. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/comstock_ashrae_90_1_2010/data/ashrae_90_1.schedules.json +45 -45
  41. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/comstock_ashrae_90_1_2010/data/comstock_ashrae_90_1_2010.spc_typ.json +9 -9
  42. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/comstock_ashrae_90_1_2013/data/ashrae_90_1.schedules.json +45 -45
  43. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/comstock_ashrae_90_1_2013/data/comstock_ashrae_90_1_2013.spc_typ.json +4 -4
  44. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/comstock_ashrae_90_1_2016/data/ashrae_90_1.schedules.json +45 -45
  45. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/comstock_ashrae_90_1_2016/data/comstock_ashrae_90_1_2016.spc_typ.json +5 -5
  46. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.AirLoopHVAC.rb +5 -5
  47. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/comstock_ashrae_90_1_2019/data/ashrae_90_1.schedules.json +45 -45
  48. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/comstock_ashrae_90_1_2019/data/comstock_ashrae_90_1_2019.spc_typ.json +5 -5
  49. data/lib/openstudio-standards/standards/ashrae_90_1/data/ashrae_90_1.constructions.json +2 -2
  50. data/lib/openstudio-standards/standards/ashrae_90_1/data/ashrae_90_1.fans.json +12 -0
  51. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/comstock_doe_ref_1980_2004/data/ashrae_90_1.schedules.json +45 -45
  52. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/comstock_doe_ref_1980_2004/data/comstock_doe_ref_1980_2004.spc_typ.json +10 -10
  53. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/comstock_doe_ref_pre_1980/data/ashrae_90_1.schedules.json +45 -45
  54. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/comstock_doe_ref_pre_1980/data/comstock_doe_ref_pre_1980.spc_typ.json +10 -10
  55. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.AirLoopHVAC.rb +1 -0
  56. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.AirLoopHVAC.rb +792 -0
  57. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.AirTerminalSingleDuctParallelPIUReheat.rb +10 -0
  58. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.AirTerminalSingleDuctVAVReheat.rb +31 -0
  59. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.BoilerHotWater.rb +91 -0
  60. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.ChillerElectricEIR.rb +84 -0
  61. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilCoolingDXSingleSpeed.rb +145 -0
  62. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilCoolingDXTwoSpeed.rb +106 -0
  63. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilDX.rb +71 -0
  64. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilHeatingDXSingleSpeed.rb +194 -0
  65. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilHeatingGas.rb +120 -0
  66. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoolingTower.rb +110 -0
  67. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoolingTowerVariableSpeed.rb +5 -0
  68. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.Fan.rb +73 -0
  69. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.FanConstantVolume.rb +5 -0
  70. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.FanOnOff.rb +5 -0
  71. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.FanVariableVolume.rb +24 -0
  72. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.FanZoneExhaust.rb +5 -0
  73. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.HeatExchangerSensLat.rb +55 -0
  74. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.Model.rb +3045 -0
  75. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.PlanarSurface.rb +187 -0
  76. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.PlantLoop.rb +450 -0
  77. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.Space.rb +106 -0
  78. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.SpaceType.rb +666 -0
  79. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.Surface.rb +54 -0
  80. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.ThermalZone.rb +168 -0
  81. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.ZoneHVACComponent.rb +132 -0
  82. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.rb +239 -0
  83. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/ashrae_90_1_prm_2019.Model.rb +176 -0
  84. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/ashrae_90_1_prm_2019.rb +25 -0
  85. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.boilers.json +52 -0
  86. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.chillers.json +112 -0
  87. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.climate_zone_sets.json +210 -0
  88. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.construction_properties.json +10384 -0
  89. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.construction_sets.json +133 -0
  90. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.furnaces.json +43 -0
  91. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.heat_pumps.json +119 -0
  92. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.heat_pumps_heating.json +130 -0
  93. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.heat_rejection.json +13 -0
  94. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.lpd_space_type.json +568 -0
  95. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.motors.json +264 -0
  96. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.prm_baseline_hvac.json +439 -0
  97. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.prm_constructions.json +685 -0
  98. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.prm_economizers.json +213 -0
  99. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.prm_ext_ltg.json +32 -0
  100. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.prm_heat_type.json +136 -0
  101. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.prm_hvac_bldg_type.json +32 -0
  102. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.prm_interior_lighting.json +1837 -0
  103. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.prm_swh_bldg_type.json +184 -0
  104. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.prm_wwr_bldg_type.json +84 -0
  105. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.unitary_acs.json +148 -0
  106. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.water_heaters.json +157 -0
  107. data/lib/openstudio-standards/standards/ashrae_90_1_prm/data/ashrae_90_1_prm.climate_zone_sets.json +210 -0
  108. data/lib/openstudio-standards/standards/ashrae_90_1_prm/data/ashrae_90_1_prm.curves.json +18329 -0
  109. data/lib/openstudio-standards/standards/ashrae_90_1_prm/data/ashrae_90_1_prm.fans.json +340 -0
  110. data/lib/openstudio-standards/standards/ashrae_90_1_prm/data/ashrae_90_1_prm.materials.json +49924 -0
  111. data/lib/openstudio-standards/standards/ashrae_90_1_prm/docs/baseline_building_rotation_exception.md +44 -0
  112. data/lib/openstudio-standards/standards/ashrae_90_1_prm/docs/check_pump_power_and_control.md +71 -0
  113. data/lib/openstudio-standards/standards/ashrae_90_1_prm/docs/dcv.md +68 -0
  114. data/lib/openstudio-standards/standards/ashrae_90_1_prm/docs/dcv_implementation.png +0 -0
  115. data/lib/openstudio-standards/standards/ashrae_90_1_prm/docs/elevators.md +14 -0
  116. data/lib/openstudio-standards/standards/ashrae_90_1_prm/docs/exhaust_air_energy_recovery.md +36 -0
  117. data/lib/openstudio-standards/standards/ashrae_90_1_prm/docs/f_c_factors.md +19 -0
  118. data/lib/openstudio-standards/standards/ashrae_90_1_prm/docs/fan_power_credits.md +15 -0
  119. data/lib/openstudio-standards/standards/ashrae_90_1_prm/docs/preheat_coil.md +59 -0
  120. data/lib/openstudio-standards/standards/ashrae_90_1_prm/docs/pump_power_control.md +46 -0
  121. data/lib/openstudio-standards/standards/ashrae_90_1_prm/docs/return_air_type.md +31 -0
  122. data/lib/openstudio-standards/standards/ashrae_90_1_prm/docs/set_baseline_wwr.md +191 -0
  123. data/lib/openstudio-standards/standards/ashrae_90_1_prm/docs/set_hw_and_chw_supply_water_temp_reset_control.md +24 -0
  124. data/lib/openstudio-standards/standards/ashrae_90_1_prm/docs/set_num_boilers_chillers_towers.md +49 -0
  125. data/lib/openstudio-standards/standards/ashrae_90_1_prm/docs/set_plug_load_measures.md +80 -0
  126. data/lib/openstudio-standards/standards/ashrae_90_1_prm/docs/set_space_lpd.md +73 -0
  127. data/lib/openstudio-standards/standards/ashrae_90_1_prm/docs/unenclosed_and_unconditioned_spaces.md +11 -0
  128. data/lib/openstudio-standards/standards/ashrae_90_1_prm/docs/unmet_load_hours.md +20 -0
  129. data/lib/openstudio-standards/standards/ashrae_90_1_prm/docs/vav_parallel_piu_terminals_fan_control.md +23 -0
  130. data/lib/openstudio-standards/standards/ashrae_90_1_prm/docs/vav_terminals_min_flow_setpoint.md +21 -0
  131. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_csv/userdata_airloop_hvac.csv +1 -0
  132. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_csv/userdata_airloop_hvac_doas.csv +1 -0
  133. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_csv/userdata_building.csv +1 -0
  134. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_csv/userdata_design_specification_outdoor_air.csv +1 -0
  135. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_csv/userdata_electric_equipment.csv +1 -0
  136. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_csv/userdata_exterior_lights.csv +1 -0
  137. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_csv/userdata_gas_equipment.csv +1 -0
  138. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_csv/userdata_lights.csv +1 -0
  139. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_csv/userdata_space.csv +1 -0
  140. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_csv/userdata_spacetype.csv +1 -0
  141. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_csv/userdata_thermal_zone.csv +1 -0
  142. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_csv/userdata_wateruse_connections.csv +1 -0
  143. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_csv/userdata_wateruse_equipment.csv +1 -0
  144. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_csv/userdata_wateruse_equipment_definition.csv +1 -0
  145. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_csv/userdata_zone_hvac.csv +1 -0
  146. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_csv/userdata_zone_infiltration.csv +1 -0
  147. data/lib/openstudio-standards/standards/cbes/data/cbes.fans.json +12 -0
  148. data/lib/openstudio-standards/standards/deer/data/deer.fans.json +12 -0
  149. data/lib/openstudio-standards/standards/necb/ECMS/data/heat_pumps.json +1 -1
  150. data/lib/openstudio-standards/standards/necb/ECMS/data/heat_pumps_heating.json +1 -1
  151. data/lib/openstudio-standards/standards/necb/ECMS/data/unitary_acs.json +24 -11
  152. data/lib/openstudio-standards/standards/necb/ECMS/erv.rb +13 -15
  153. data/lib/openstudio-standards/standards/necb/NECB2011/data/province_map.json +17 -0
  154. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_3_and_8_multi_speed.rb +1 -1
  155. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_3_and_8_single_speed.rb +1 -1
  156. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_4.rb +2 -2
  157. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_6.rb +6 -5
  158. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_systems.rb +3 -2
  159. data/lib/openstudio-standards/standards/necb/NECB2011/necb_2011.rb +2 -3
  160. data/lib/openstudio-standards/standards/necb/NECB2020/data/chillers.json +2 -2
  161. data/lib/openstudio-standards/standards/necb/NECB2020/data/space_types.json +33 -924
  162. data/lib/openstudio-standards/standards/necb/NECB2020/data/unitary_acs.json +15 -15
  163. data/lib/openstudio-standards/standards/necb/common/btap_data.rb +135 -29
  164. data/lib/openstudio-standards/standards/necb/common/btap_datapoint.rb +16 -4
  165. data/lib/openstudio-standards/standards/necb/common/neb_end_use_prices.csv +40 -42
  166. data/lib/openstudio-standards/standards/necb/common/necb_reference_runs.csv +1 -1
  167. data/lib/openstudio-standards/standards/necb/common/space_type_upgrade_map.json +89 -89
  168. data/lib/openstudio-standards/utilities/array.rb +11 -0
  169. data/lib/openstudio-standards/utilities/logging.rb +48 -0
  170. data/lib/openstudio-standards/utilities/object_info.rb +20 -0
  171. data/lib/openstudio-standards/utilities/schedule_translator.rb +348 -0
  172. data/lib/openstudio-standards/utilities/sqlfile.rb +68 -0
  173. data/lib/openstudio-standards/version.rb +2 -2
  174. data/lib/openstudio-standards/weather/Weather.Model.rb +42 -55
  175. data/lib/openstudio-standards/weather/Weather.stat_file.rb +1 -1
  176. data/lib/openstudio-standards.rb +35 -1
  177. metadata +111 -6
  178. data/data/standards/OpenStudio_Standards-ashrae_90_1.xlsx +0 -0
  179. data/data/standards/OpenStudio_Standards-ashrae_90_1_28Jan2022.xlsx +0 -0
  180. data/data/standards/OpenStudio_Standards-ashrae_90_1_28_Jan2022_2.xlsx +0 -0
  181. data/data/standards/openstudio_standards_duplicates_log.csv +0 -143
@@ -0,0 +1,44 @@
1
+ Check if the baseline model is exempted from the orientation requirements
2
+
3
+ # ASHRAE 90.1-2019
4
+ - G3.1 (5) Orientation. The *baseline building performance* shall be generated by simulating the *building* with its actual *orientation* and again after rotating the entire *building* 90, 180, and 270 degrees, then averaging the results. The *building* shall be modeled so that it does not shade itself.
5
+
6
+ - G3.1 (5) Orientation Exceptions:
7
+ - If it can be demonstrated to the satisfaction of the *rating authority* that the *building orientation* is dictated by site considerations.
8
+ - *Buildings* where the *vertical fenestration area* on each *orientation* varies by less than 5%
9
+
10
+ # Code Requirement Interpretation
11
+ The code requires the baseline building performance to be the average value of the model facing four different orientations (0, 90, 180, 270).
12
+
13
+ Exception shall be applied when site consideration approved by rating authority or the vertical fenestration area on each orientation varies by less than 5%.
14
+
15
+ # Implementation Methodology
16
+ At beginning of the baseline generation, a method `run_all_orientations` is called to flag the rotation.
17
+
18
+ The `run_all_orientations` function implements the logics as followings:
19
+ - Default value from `run_all_orients`.
20
+ - Check fenestration area variances at each orientation - if any of the combination has a variation that is greater than 5%, then set the flag to true
21
+ - Check user data from `userdata_building`. If the `is_rotation_exmpted` data is available, override the previous flag.
22
+
23
+ ## Key Ruby Methods
24
+ `run_all_orientations`
25
+
26
+ ## Test Case Documentation
27
+
28
+ ### Test case 1:
29
+ - Prototype: Small Office
30
+ - User data folder: N/A
31
+ - Summary:
32
+ The case will require rotation on four orientations.
33
+
34
+ ### Test case 2:
35
+ - Prototype: Small Office
36
+ - User data folder: N/A
37
+ - Summary:
38
+ This case have 40% wwr on four orientations, rotation is still required.
39
+
40
+ ### Test case 3:
41
+ - Prototype: Small Office
42
+ - User data folder: *userdata_bro_01*
43
+ - Summary:
44
+ This case have have identical fenestration area for four orientation and user data set to exempt.
@@ -0,0 +1,71 @@
1
+ # Pump power and control
2
+
3
+ ## Code requirements
4
+ G3.1.3.5: Hot-water pumps
5
+ The baseline building design hot-water pump power shall be **19 W/gpm**. The pumping
6
+ system shall be modeled as primary-only with continuous variable flow and a minimum
7
+ of 25% of the design flow rate. Hot-water systems serving **120,000 ft2** or more shall be
8
+ modeled with variable-speed drives, and systems serving less than **120,000 ft2** shall be
9
+ modeled as riding the pump curve.
10
+
11
+ Exception to G3.1.3.5:
12
+ The pump power for systems using purchased heat shall be **14 W/gpm**.
13
+
14
+ G3.1.3.10 Chilled-Water Pumps (System 7, 8, 11, 12 and 13)
15
+ Chilled-water systems shall be modeled as primary/secondary systems with constant-flow
16
+ primary loop and variable-flow secondary loop. For systems with cooling capacity
17
+ of **300 tons or more**, the secondary pump shall be modeled with variable-speed drives
18
+ and a minimum flow of 25% of the design flow rate. For systems with **less than 300 tons**
19
+ cooling capacity, the secondary pump shall be modeled as riding the pump curve. The baseline building constant-volume primary pump power shall be modeled as **9 W/gpm**,
20
+ and the variable-flow secondary pump power shall be modeled as **13 W/gpm** at design
21
+ conditions. For computer room systems using System 11 with an integrated fluid economizer,
22
+ the baseline building design primary chilled-water pump power shall be increased
23
+ by **3 W/gpm** for flow associated with the fluid economizer.
24
+
25
+ Exception to G3.1.3.10
26
+ For systems using purchased chilled water, the building distribution pump shall be modeled
27
+ with variable-speed drive, a minimum flow of 25% of the design flow rate, and a pump power
28
+ of **16 W/gpm**.
29
+
30
+ G3.1.3.11 Heat Rejection (Systems 7, 8, 11, 12 and 13)
31
+ The baseline building design condenser-water pump power shall be **19 W/gpm** and modeled as constant volume.
32
+ For computer room systems using System 11 with an integrated fluid economizer, the baseline building design condenser-water-pump power shall be increased by **3 W/gpm** for flow associated with the fluid economizer.
33
+ Each chiller shall be modeled with separate condenser-water and chilled-water pumps interlocked to operate with the associated chiller.
34
+
35
+ #### key functions
36
+ ashrae_90_1_prm.PlantLoop.rb: plant_loop_apply_prm_baseline_pump_power
37
+ Standards.PlantLoop.rb: plant_loop_apply_prm_baseline_pumping_type
38
+ - Sub-function: plant_loop_apply_prm_baseline_hot_water_pumping_type
39
+ - Sub-function: plant_loop_apply_prm_baseline_chilled_water_pumping_type
40
+ - Sub-function: plant_loop_apply_prm_baseline_condenser_water_pumping_type
41
+
42
+ #### Parameters:
43
+ Pump power constants set in PlantLoop class:
44
+ ```ruby
45
+ HOT_WATER_PUMP_POWER = 19 # W/gpm
46
+ HOT_WATER_DISTRICT_PUMP_POWER = 14 # W/gpm
47
+ CHILLED_WATER_PRIMARY_PUMP_POWER = 9 # W/gpm
48
+ CHILLED_WATER_SECONDARY_PUMP_POWER = 13 # W/gpm
49
+ CHILLED_WATER_DISTRICT_PUMP_POWER = 16 # W/gpm
50
+ CONDENSER_WATER_PUMP_POWER = 19 # W/gpm
51
+ ```
52
+ Pump curve coefficients used to defining the pump type
53
+ ```ruby
54
+ when 'Riding Curve'
55
+ coeff_a = 0.0
56
+ coeff_b = 3.2485
57
+ coeff_c = -4.7443
58
+ coeff_d = 2.5294
59
+ when 'VSD No Reset'
60
+ coeff_a = 0.0
61
+ coeff_b = 0.5726
62
+ coeff_c = -0.301
63
+ coeff_d = 0.7347
64
+ ```
65
+
66
+ ### Limitations
67
+
68
+ - The code implemented a primary and secondary loop configuration for chilled water loop. The primary loop has chiller at the supply side and a perfect heat exchanger at the demand side. The secondary loop has the heat exchanger at the supply side and coils at the demand side. In this configuration, each chiller will interlock with a pump. However, the pump operation strategy is not implemented yet.
69
+ - The integrated water economizer for system type 11 is not implemented.
70
+
71
+ ### PRM-RM
@@ -0,0 +1,68 @@
1
+ # DCV for Appendix G baseline generation
2
+
3
+ Xuechen (Jerry) Lei, PNNL
4
+ Update: 06/29/2022
5
+
6
+ ## Code requirements
7
+
8
+ ### 90.1-2019
9
+
10
+ #### 6.4.3.8 Ventilation Controls for High-Occupancy Areas
11
+
12
+ Demand control ventilation (DCV) is required for spaces larger than 500 ft<sup>2</sup> and with a design occupancy for ventilation of >= 25 ppl/kft<sup>2</sup> of floor area and served by systems with one or more of the following:
13
+
14
+ - a. Air economizer
15
+ - b. Automatic modulating control of outdoor air damper
16
+ - c. **Design outdoor airflow greater than 3000 cfm**
17
+
18
+ Exceptions to 6.4.3.8
19
+
20
+ 1. Systems with exhaust air energy recovery complying with, and where required by, Section 6.5.6.1.
21
+ 2. Multiple-zone systems without DDC of individual zones communicating with a central control panel.
22
+ 3. **Systems with a design outdoor airflow less than 750 cfm.**
23
+ 4. Spaces where >75% of the space design outdoor airflow is required for makeup air that is exhausted from the space or transfer air that is required for makeup air that is exhausted from other spaces.
24
+ 5. Spaces with one of the following occupancy categories as defined in ASHRAE Standard 62.1: correctional cells, daycare sickrooms, science labs, barbers, beauty and nail salons, and bowling alley seating.
25
+
26
+ **Note that in most cases, such systems will always have economizer. As a result, the deciding conditions for DCV mandate are mostly: 1. > 500 ft<sup>2</sup>; 2. >= 25 ppl/kft<sup>2</sup>; and 3. design outdoor airflow > 750 cfm.**
27
+
28
+ #### G3.1.2.5 Ventilation
29
+
30
+ Minimum ventilation system outdoor air intake flow shall be the same for the proposed design and baseline building design.
31
+
32
+ Exception to G3.1.2.5
33
+
34
+ 1. When modeling demand control ventilation in the proposed design in systems with outdoor air capacity less than or equal to 3000 cfm serving areas with an average design capacity of **100 people per 1000 ft<sup>2</sup> or less.**
35
+ 2. ...
36
+
37
+ **We checked with 90.1 committee that in this exception, the relationship between the two conditions should be "or".**
38
+
39
+ ### PRM-RM
40
+
41
+ #### 3.5.5.4 Minimum Outdoor Air Ventilation Rate
42
+
43
+ | | |
44
+ | ------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
45
+ | Applicability | All HVAC zones |
46
+ | Definition | The minimum quantity of outdoor ventilation air that must be provided to the space when it is occupied |
47
+ | Units | cfm or cfm/ft² |
48
+ | Input | Restrictions As designed |
49
+ | Baseline | Building Minimum ventilation system outdoor air intake flow shall be the same for the proposed and baseline building designs. Except in the following conditions: |
50
+
51
+ - Demand control ventilation shall not be modeled in zones served by systems with outdoor air less than 3000 cfm **and** occupant density of 100 people per 1000 ft<sup>2</sup> or less.
52
+ - ...
53
+
54
+ **According to the clarification in previous section, the 'and' in above exception should also be 'or'.**
55
+
56
+ ## Code requirements interpretation
57
+
58
+ The high level idea behind Appendix G DCV requirements is: if DCV is not required per 90.1 Section 6.4.3.8, but the proposed model has it, then Appendix G wants to credit the DCV-introduced energy saving by removing DCV in the baseline model.
59
+
60
+ If the space has conditions such as a high occupancy density (>= 25 ppl/kft<sup>2</sup>) and high design outdoor airflow (>= 3000 cfm), then according to 90.1 6.4.3.8, DCV is mandatory. In this case (i.e. DCV is mandatory according to 90.1 6.4.3.8), Appendix G baseline and proposed model should both have DCV. As a result, energy savings caused by DCV is not credited for Appendix G. One thing to note is, "both having DCV" is based on exception 1, however, the conditions specified for high occupancy density (>= 100 ppl/kft<sup>2</sup>) in this exception is different from 90.1 6.4.3.8 (>= 25 ppl/kft<sup>2</sup>), and other conditions used to unsatisfy this exception (outdoor air less than 3000 cfm or occupant density of 100 people per 1000 ft<sup>2</sup> or less) is different from the conditions to require mandatory DCV in 90.1 6.4.3.8. As a result, there may be a case where DCV is mandatory per 90.1, but Exception 1 of Appendix G 3.1.2.5 is not met. For instance, when design OA flow is 3500 cfm and occupant density is 50 ppl/kft<sup>2</sup>, DCV is mandatory according to 90.1 6.4.3.8, while according to PRM-RM, DCV shall not be modeled.
61
+
62
+ If the space is not required to have DCV according to 90.1 6.4.3.8, but the proposed model has DCV, then we would like to credit the energy savings of DCV for the proposed model under appendix G. To make this happen, we would delete the DCV in the baseline model. The condition difference in the above bullet also has impact here. For instance, due to satisfying exception of 90.1 6.4.3.8, DCV is not required, and in the meantime, because of a large design OA flow of 4000 cfm, exception 1 of Appendix G 3.1.2.5 is not met, so baseline and proposed model need to have the same ventilation OA flow. In such a case, whether DCV is implemented in the proposed model or not, we will keep baseline the same (do nothing for baseline). If DCV is mandatory but not implemented in the proposed model, an error will be raised.
63
+
64
+ For the five exceptions of 90.1 6.4.3.8, we will not implement the checking of them under Appendix G. Instead, we will ask the user to provide such information of if the model meets any exception for not having mandatory DCV.
65
+
66
+ ## Implementation design summary diagram
67
+
68
+ ![Appendix G DCV implementation diagram](./dcv_implementation.png)
@@ -0,0 +1,14 @@
1
+ Elevators
2
+
3
+ # ASHRAE 90.1-2019
4
+ ## Section G3.1.16 Elevators
5
+ Where the proposed design includes elevators, the baseline building design shall be modeled to include the elevator cab motor, ventilation fans, and lighting power. The elevator motor use shall be modeled with the same schedule as the proposed design. When included in the proposed design, the baseline elevator cab ventilation fan shall be 0.33 W/cfm and the lighting power density shall be 3.14 W/ft2; both operate continuously.
6
+
7
+ # Code Requirement Interpretation
8
+ The code requirement is straightforward, so are the exception.
9
+
10
+ # Implementation
11
+ The characteristics of the proposed model elevator(s) are provided by the user using the user data CSV file which includes the each elevator car weight, rated load, counter weight of the car, speed of the car, number of stories served by the elevator, the number of similar elevators, the floor area occupied the elevator, and the ventilation flow rate. The BHP and elevator power are calculated according to Section G3.1.16, the baseline elevator power is used in place of the proposed one (which can be through an electric equipment object or an exterior equipment fuel object). Process loads such as ventilation and lighting are modeled separately and as they are supposed to be modeled as operating continuously.
12
+
13
+ # Key Ruby Methods
14
+ - `model_add_prm_elevators`: Add baseline elevators based on user data
@@ -0,0 +1,36 @@
1
+ Exhaust Air Energy Recovery
2
+
3
+ # ASHRAE 90.1-2019
4
+ ## Section G3.1.2.10 Exhaust Air Energy Recovery
5
+
6
+ Individual fan systems that have both a design supply air capacity of 5000 cfm or greater and have a minimum design outdoor air supply of 70% or greater shall have an energy recovery system with at least 50% enthalpy recovery ratio. Fifty percent enthalpy recovery ratio shall mean a change in the enthalpy of the outdoor air supply equal to 50% of the difference between the outdoor air and return air at design conditions. Provision shall be made to bypass or control the heat recovery system to permit air economizer operation, where applicable.
7
+
8
+ If any of these exceptions apply, exhaust air energy recovery shall not be included in the baseline
9
+ building design:
10
+ 1. Systems serving spaces that are not cooled and that are heated to less than 60°F.
11
+ 2. Systems exhausting toxic, flammable, or corrosive fumes or paint or dust. This exception
12
+ shall only be used if exhaust air energy recovery is not used in the proposed design.
13
+ 3. Commercial kitchen hoods (grease) classified as Type 1 by NFPA 96. This exception shall
14
+ only be used if exhaust air energy recovery is not used in the proposed design.
15
+ 4. Heating systems in Climate Zones 0 through 3.
16
+ 5. Cooling systems in Climate Zones 3C, 4C, 5B, 5C, 6B, 7, and 8.
17
+ 6. Where the largest exhaust source is less than 75% of the design outdoor airflow. This exception
18
+ shall only be used if exhaust air energy recovery is not used in the proposed design.
19
+ 7. Systems requiring dehumidification that employ energy recovery in series with the cooling
20
+ coil. This exception shall only be used if exhaust air energy recovery and series-style
21
+ energy recovery coils are not used in the proposed design.
22
+
23
+ # Code Requirement Interpretation
24
+ The code requirement is straightforward, so are the exception.
25
+
26
+ # Implementation
27
+ The requirement poses one main challenge: EnergyPlus/OpenStudio doesn't support enthalpy recovery ratio (ERR) as a modeling input, so the effectiveness associated with a specific enthalpy recovery ratio have to be determined. There is no direct conversion from ERR to effectiveness as the ERR depends on specific design conditions which are not prescribed either by the rating standard or 90.1. PNNL did some preliminary research using data from one manufacturer to derive reasonable effectiveness values from the code required 50% ERR. The findings were implemented in OpenStudio-Standards through this [pull request](https://github.com/NREL/openstudio-standards/pull/1165) when adding 90.1-2019 version of the prototype building models. The same regressions were used to make generated baseline model comply with this requirement.
28
+
29
+ Exception 1 is automatically handled by checking the thermostats of all zones served by an air loop, if at least one of them is heated to less than 60F, an ERV is not modeled in the baseline model. Exception 2, 3, 6, and 7 are handled through user data inputs. Exception 5 is ignored since all baseline models in Appendix G are modeled as cooled. Exception 4 is automatically handled by code and relates to heating and ventilation only systems in hot climate zones.
30
+
31
+ # Key Ruby Methods
32
+ - `air_loop_hvac_apply_energy_recovery_ventilator_efficiency`: Set effectiveness value of an ERV's heat exchanger
33
+ - `air_loop_hvac_energy_recovery_ventilator_flow_limit`: Determine the airflow limits that govern whether or not an ERV is required (this is where the exceptions are evaluated, if none apply the limit is set to 5000 cfm)
34
+ - `heat_exchanger_air_to_air_sensible_and_latent_minimum_effectiveness`: Defines the minimum sensible and latent effectiveness of the heat exchanger
35
+ - `heat_exchanger_air_to_air_sensible_and_latent_design_conditions`: Determine the heat exchanger design conditions for a specific climate zones
36
+ - `heat_exchanger_air_to_air_sensible_and_latent_enthalpy_recovery_ratio`: Determine the required enthalpy recovery ratio (currently defaulted to 0.5)
@@ -0,0 +1,19 @@
1
+ F/C-factors
2
+
3
+ # ASHRAE 90.1-2019
4
+ See F- and C-factor requirements from Table G3.4-1 through -8.
5
+
6
+ # Implementation
7
+
8
+ # Key Ruby Methods
9
+ ## Existing
10
+ * `model_add_construction`: this method creates a construction from the openstudio standards dataset, it was modified to create the appropriate F/C factor construction objects instead of regular constructions
11
+ * `model_find_and_add_construction`: this method helps find a particular construction and add it to the model after modifying the insulation value if necessary; it was modified to accept a another argument, `surface` which can be used for surface specific construction such as F/C-factor constructions
12
+ * `model_apply_prm_construction_types` this method goes through the default construction sets and hard-assigned constructions and clone the existing constructions and set their intended surface type and standards construction type per the PRM; The code did not cover all pertinent outside boundary condition which prevented the creation of correct assignment of constructions to surface with specific outside boundary conditions
13
+ * `model_apply_standard_constructions`: this method applies the standard construction to each surface in the model, based on the construction type currently assigned; missing outside boundary condition type related to ground surfaces were added
14
+ ## New
15
+ * `construction_set_surface_slab_f_factor`: set the surface specific F-factor parameters of a construction
16
+ * `construction_set_surface_underground_wall_c_factor`: set the surface specific C-factor parameters of a construction
17
+ * `model_update_ground_temperature_profile`: update ground temperature profile based on the weather file specified in the model
18
+ * `model_add_design_days_and_weather_file`: the content of this method was used in multiple other method, so, in order to avoid code duplicate, it was moved to this method which adds the design days and weather file for the specified climate zone
19
+
@@ -0,0 +1,15 @@
1
+ Fan Power Credits
2
+
3
+ # ASHRAE 90.1-2019
4
+ Note 1 and 2 under Table G3.1.2.9 indicate that the baseline fan brake horsepower adjustment factor, A, is calculated according to Section 6.5.3.1.1 using the pressure-drop adjustment from the proposed design and the design flow rate of the baseline building system. The pressure-drop adjustment for evaporative coolers or heat recovery devices that are not required in the baseline system by Section G3.1.2.10.
5
+
6
+ # Code Requirement Interpretation
7
+ Section 6.5.3.1.1 include credits but also deductions. Following an internal discussion we concluded that the intent of Appendix G should be to base the deduction on the baseline building design and not the proposed design.
8
+
9
+ # Implementation
10
+ Fan power credits are provided by the user via the `userdata_airloop_hvac.csv` and `userdata_zone_hvac.csv` files. The deductions are only applicable to system 6 and 8 and are handled in the code in `air_loop_hvac_fan_power_limitation_pressure_drop_adjustment_brake_horsepower()`. Credits and deduction are stored as an `additionaProperty` at the `ThermalZone` and `AirLoopHVAC` level. The baseline fan power credits/deductions are calculated for each zone as follows: Az = sum(PD_sum * CFM_d_baseline/4131), where CFM_d_baseline is the baseline __zone__ design air flow and PD_sum. The system A is obtained by summing all the zone Az.
11
+
12
+ # Key Ruby Methods
13
+ * `thermal_zone_get_fan_power_limitations()`: calculate the fan power credits/deductions for a zone
14
+ * `air_loop_hvac_fan_power_limitation_pressure_drop_adjustment_brake_horsepower`: calculate the fan power limitation pressure drop adjustment (expressed in terms of BHP)
15
+ * `handle_zone_hvac_user_input_data`: use the user-defined CSV files to assign fan power credits to each zone
@@ -0,0 +1,59 @@
1
+ Preheat coil requirements
2
+
3
+ # ASHRAE 90.1-2019
4
+
5
+ G3.1.3.7 Preheat Coils (System 5 through 8)
6
+ The baseline system shall be modeled with a preheat coil controlled to a fixed set point of 20F less than the design room heating temperature set point.
7
+
8
+ # PRM-Reference Manual:
9
+ For baseline system 5 through 8, the baseline will be modeled with preheat coil controlled to a fixed setpoint 20 F less than the design zone heating temperature setpoint. If there are multiple zone heating setpoints, the preheat setpoint will be determined by the zone with the highest heating temperature setpoint.
10
+
11
+ The preheat coil capacity will be oversized by 25%. Sizing calculation shall be based on the heating design day and cooling design day conditions, as defined in Section 3.1.5 of this document. Oversizing would be carried out at zone level where the sizing parameters would be applied to the zone design's heating coil loads.
12
+
13
+ The heating source for baseline system 5 and 7 will be hydronic. Buildings with baseline system 6 and 8 will be modeled with electric resistance preheat coils.
14
+
15
+ The coil efficiency is not applicable to electric coils
16
+
17
+ # Requirement change:
18
+ ## ASHRAE 90.1-2013 Appendix G:
19
+ G3.1.2.4 Preheat Coils: If the HVAC system in the proposed design has a preheat coil and a preheat coil can be modeled in the baseline system, the baseline system shall be modeled with a preheat coil controlled in the same manner as the proposed design.
20
+
21
+ ## ASHRAE 90.1-2016, 2019 Appendix G:
22
+ G3.1.3.19: System 5 through 8, The baseline system shall be modeled with a preheat coil controlled to a fixed setpoint 20F less than the design room heating temperature set point.
23
+
24
+ # Key Ruby Methods
25
+
26
+ *Standards.Model.rb*
27
+ ```ruby
28
+ # Template method for adding a setpoint manager for a coil control logic to a heating coil.
29
+ # ASHRAE 90.1-2019 Appendix G.
30
+ def model_set_central_preheat_coil_spm(model, thermal_zones, coil)
31
+ return true
32
+ end
33
+ ```
34
+ This implementation is overriden in the subclass *ashrae_90_1_prm.Model.rb*
35
+
36
+ ```ruby
37
+ def model_set_central_preheat_coil_spm(model, thermal_zones, coil)
38
+ # below is the sudo code
39
+ coil_name = coil.name.get.to_s
40
+
41
+ max_heat_setpoint = 0.0
42
+ thermalZone.each do |zone|
43
+ # Get the thermalstat heating setpoint of each zone
44
+ # Reset the max_heat_setpoint if a zone has a higher heating setpoint value
45
+ end
46
+
47
+ max_heat_setpoint_f = convert(max_heat_setpoint, 'C', 'F')
48
+ preheat_setpoint_f = max_heat_setpoint_f - 20 # required to be 20F lower than the max heat setpoint
49
+ preheat_setpoint_c = convert(preheat_setpoint_f, 'F', 'C')
50
+
51
+ schedule = add_constant_schedule(preheat_setpoint_c)
52
+
53
+ # add a new_setpointManager_scheduled
54
+ # add the schedule to the new setpoint manager scheduled.
55
+ # add the new setpoint manager to the coil.
56
+ end
57
+ ```
58
+
59
+ Currently, the method is only being called when executing system type 5, 6, 7, and 8 generation routines.
@@ -0,0 +1,46 @@
1
+ Pump power and control requirements
2
+
3
+ # ASHRAE 90.1-2019
4
+
5
+ ## G3.1.3.5 Hot-Water Pumps
6
+ The baseline building design hot-water pump power shall be 19 W/gpm. The pumping system shall be modeled as primary-only with continuous variable flow and a minimum of 25% of the design flow rate. Hot-water systems serving 120,000 ft2or more shall be modeled with variable-speed drives, and systems serving less than 120,000 ft2 shall be modeled as riding the pump curve.
7
+
8
+ ### Exception to G3.1.3.5
9
+ The pump power for systems using purchased heat shall be 14 W/gpm.
10
+
11
+ ## G3.1.3.10 Chilled-Water Pumps (Systems 7, 8, 11, 12, and 13)
12
+ Chilled-water systems shall be modeled as primary/secondary systems with constantflow primary loop and variable-flow secondary loop. For systems with cooling capacity of 300 tons or more, the secondary pump shall be modeled with variable-speed drives and a minimum flow of 25% of the design flow rate. For systems with less than 300 tons cooling capacity, the secondary pump shall be modeled as riding the pump curve. The baseline building constant-volume primary pump power shall be modeled as 9 W/gpm, and the variable-flow secondary pump power shall be modeled as 13 W/gpm at design conditions. For computer room systems using System 11 with an integrated fluid economizer, the baseline building design primary chilled-water pump power shall be increased by 3 W/gpm for flow associated with the fluid economizer.
13
+
14
+ ### Exception to G3.1.3.10
15
+ For systems using purchased chilled water, the building distribution pump shall be modeled with variable-speed drive, a minimum flow of 25% of the design flow rate, and a pump power of 16 W/gpm.
16
+
17
+ ## G3.1.3.11 Heat Rejection (Systems 7, 8, 11, 12, and 13)
18
+ The baseline building design condenser-water pump power shall be 19W/gpm and modeled as constant volume. For computer room systems using System 11 with an integrated fluid economizer, the baseline building design condenser water-pump power shall be increased by 3W/gpm for flow associated with the fluid economizer.
19
+ Each chiller shall be modeled with separate condenser-water and chilled-water pumps interlocked to operate with the associated chiller.
20
+
21
+ # Requirement change:
22
+ ## ASHRAE 90.1-2013 Appendix G:
23
+ ### G3.1.3.5 Hot-Water Pumps:
24
+ The baseline building design hot-water pump power shall be 19 W/gpm. The pumping system shall be modeled as primary-only with continuous variable flow. Hot-water systems serving 120,000 ft2 or more shall be modeled with variable-speed drives, and systems serving less than 120,000 ft2 shall be modeled as riding the pump curve.
25
+
26
+ Exceptions: The pump power for systems using purchased heat shall be 14 W/gpm.
27
+
28
+ ### G3.1.3.10 Chilled-Water Pumps (System 7, 8 and 11)
29
+ The baseline building design pump power shall be 22 W/gpm. Chilled-water systems with a cooling capacity of 300 tons or more shall be modeled as primary/secondary systems with variable-speed drives on the secondary pumping loop. Chilled-water pumps in systems serving less than 300 tons cooling capacity shall be modeled as a primary/secondary systems with secondary pump riding the pump curve. For computer room systems using System 11 with an integrated water-side economizer, the baseline building design primary chilled-water pump power shall be increased 5 W/gpm for flow associated with the water-side economizer.
30
+
31
+ Exceptions: The pump power for systems using purchased chilled water shall be 16 W/gpm.
32
+
33
+ ### G3.1.3.11 Heat Reject (System 7, 8, 9, 12, and 13)
34
+ The baseline building design condenser-water pump power shall be 19 W/gpm. For computer room systems using System 11 with an integrated water-side economizer, the baseline building design condenser water-pump power shall be increased 5 W/gpm for flow associated with the water-side economizer. Each chiller shall be modeled with separate condenser water and chilled-water pumps interlocked to operate with the associated chiller.
35
+
36
+ ## ASHRAE 90.1-2016, 2019 Appendix G:
37
+ G3.1.3.19: System 5 through 8, The baseline system shall be modeled with a preheat coil controlled to a fixed setpoint 20F less than the design room heating temperature set point.
38
+
39
+ # Key Ruby Methods
40
+
41
+ *Standards.Model.rb*
42
+ ```ruby
43
+ plant_loop_apply_prm_baseline_pump_power()
44
+ plant_loop_apply_prm_baseline_pumping_type()
45
+ ```
46
+ ```
@@ -0,0 +1,31 @@
1
+ Return Air Type
2
+
3
+ # ASHRAE 90.1-2019 PRM Reference Manual
4
+ For baseline building systems 1 and 2, the return air path shall be direct-to-unit. For baseline building systems 3 through 8 and 11 through 13 and when the proposed design is direct-to-unit, the baseline building shall be ducted return, otherwise the baseline building return air path shall be the same as proposed design.
5
+
6
+ # Implementation
7
+ For each zone:
8
+
9
+ * Retrieve the type of return used by the HVAC system serving the zone
10
+ * If the zone is served by air loops
11
+ * ignore air loop-based DOAS
12
+ * if air loop uses a return plenum -> return_plenum
13
+ * if air loop uses a return path -> ducted_return
14
+ * If the zone is served by zonal systems
15
+ * direct-to-unit since zonal systems cannot be connected to return plenum objects
16
+ * Using additional properties, set the type of return as one of the following: return_plenum, ducted_return, direct-to-unit
17
+ * Using additional properties, set the name of the plenum zone used when return_plenum is specified
18
+
19
+ Once the systems have been created:
20
+
21
+ * Using the zone design air flow rate and previously added additional properties determine the dominant return air configuration (the most dominant ones being the one with the most air flow)
22
+ * All system are by default assumed to be ducted_return/direct-to-unit (using the zone mixer object) but if return_plenum ends up being the dominant one, pass the appropriate argument to the method creating the systems
23
+
24
+ To simplify reporting at that point, use `ducted_return_or_direct_to_unit` and `return_plenum` as the additional property field.
25
+
26
+ # Key Ruby Methods
27
+ ## New
28
+ * `model_determine_baseline_return_air_type`: determine the baseline return air type associated with each zone
29
+ * `model_identify_return_air_type`: identify the return air type associated with each thermal zone
30
+ * `air_loop_hvac_return_air_plenum`: determine if the air loop has a return air plenum
31
+
@@ -0,0 +1,191 @@
1
+ Set window to wall ratio in the baseline model
2
+
3
+ # ASHRAE 90.1-2019
4
+ - G3.1 (5) Baseline c: Vertical Fenestration Areas: For building area types included in the Table G3.1.1-1, vertical fenestration areas for new buildings and additions shall equal that in Table G3.1.1-1 based on the area of gross above-grade walls that separate conditioned spaces and semiheated spaces from the exterior.
5
+ - G3.1 (5) Baseline c: Where a building has multiple building area types, each type shall use the values in the table.
6
+ - G3.1 (5) Baseline c: The vertical fenestration shall be distributed on each face of the building in the same proportion as in the proposed design.
7
+ - G3.1 (5) Baseline c: For building areas not shown in Table G3.1.1-1, vertical fenestration areas for new building and additions shall equal that in the proposed design or 40% of gross above-grade wall area, whichever is smaller, and shall be distributed on each face of the building in the same proportions in the proposed design.
8
+ - G3.1 (5) Baseline c: ([addendum_l](https://www.ashrae.org/file%20library/technical%20resources/standards%20and%20guidelines/standards%20addenda/90_1_2019_l_20201030.pdf)): If this would cause the combined vertical fenestration and opaque door area on a given face to exceed the gross above-grade wall area on that face, then the vertical fenestration area on other faces shall be increased in proportion to the gross above-grade wall area of these faces such that the total baseline building vertical fenestration area is equal to that calculated following Table G3.1.1.-1.
9
+ - G3.1 (5) Baseline c: The fenestration area for an existing building shall equal the existing fenestration area prior to the proposed work and shall be distributed on each face of the building in the same proportions as the existing building.
10
+
11
+ # Code Requirement Interpretation
12
+ 1. Fenestration area shall be calculated based on the area of gross above-grade walls that separate conditioned spaces and semiheated spaces from the exterior
13
+ 2. If the window to wall ratio building type (wwr_building_type) can be found in Table G3.1.1-1, then the baseline window to wall ratio shall equal to the values specified in the table by proportionally decrease or increase the fenestration area.
14
+ 3. If the wwr_building_type cannot be found in the Table or it is other type, the baseline window to wall ratio shall equal to 40% or proposed window to wall ratio, whichever is smaller.
15
+ 4. Multiple wwr_building_types in a building shall use the values in the table correspondingly.
16
+ 5. If the fenestration area increase exceeds the host wall surfaces, then the residual shall be distributed to the other wall surfaces proportionally to its wall surface area
17
+ 6. Existing building shall remain the fenestration area the same as the existing fenestration area prior to the proposed work
18
+
19
+ # Implementation Methodology
20
+ - For `space_group` in `wwr_building_type`
21
+ - calculate total wall area `wall_m2 = calculate_wall_area(space_group)`
22
+ - calculate total wall area of walls has fenestration subsurfaces `fene_only_wall_m2 = calculate_fene_only_wall_area(space_group)`
23
+ - calculate total window area `wind_m2 = calculate_total_wind_area(space_group)`
24
+ - get the window to wall ratio (wwr) limit from Table 3.1.1-1 `wwr_lim = table_3.1.1-1(wwr_building_type)`
25
+ - calculate multiplier `multiplier = wwr_lim / (wind_m2 / wall_m2)`
26
+ - For `space` in `space_group`:
27
+ - For `surface` in `space.surfaces` where `surface_boundary_condition == 'Outdoor' && surfaceType=='Wall'`:
28
+ - set reduction ratio `reduction_ratio = 1.0`
29
+ - calculate the window to wall ratio of the surface `surface_wwr = get_wwr_of_a_surface`
30
+ - if reduction is requested `multiplier < 1.0`
31
+ - reduction ratio is set to `1.0 - multiplier`
32
+ - call function to shrink the fenestration towards centroid `sub_surface_reduce_area_by_percent_by_shrinking_toward_centroid`
33
+ - elsif `wwr_building_type == 'all others'`
34
+ - reduction ratio set to `1.0`
35
+ - do nothing
36
+ - else
37
+ - calculate maximum fenestration area that wall surfaces with fenestration can reach `max_wwr = fene_only_wall_m2 * 0.9 / wall_m2` (Note: 90% wwr is the upper limit for each surface in OpenStudio standard)
38
+ - if the wwr limit is greater than max wwr `max_wwr < wwr_lim`
39
+ - if the surface has no fenestration `if surface_wwr == 0` (Note: In this case, it is required to add new fenestration to the surface)
40
+ - Add window to the surface by a calculated ratio `surface.setWindowToWallRatio(1.0 + (wwr_lim*wall_m2 - max_wwr*wall_m2)/(wall_m2-fene_only_wall_m2))`
41
+ - else: (Note: In this case, it is required to maximize the fenestration area in this surface to 90% wwr)
42
+ - Set window to wall ratio to 90% `surface.setWindowToWallRatio(0.9)`
43
+ else
44
+ - if the surface has no fenestration `if surface_wwr == 0`
45
+ - Do nothing
46
+ - else:
47
+ - Set a new window to wall ratio to the surface `surface.setWindowToWallRatio(surface_wwr * multiplier)`
48
+
49
+ ## Key Ruby Methods
50
+ The function `get_wwr_reduction_ratio` implements the logic for calculating the reduction ratio `reduction_ratio` and `surface_adjust_fenestration_in_a_surface` implements the logics to adjust the window to wall ratio for a surface
51
+
52
+ The implementation of both functions can be found in the `ashrae_90_1_prm.Model.rb`
53
+
54
+ ## Notes:
55
+ The function works well with cases where WWR reduction is needed. For WWR increase to meet Table G3.1.1-1 values, the function's limitation is listed below:
56
+ 1. The function will remove all windows in the surface then add a new window to meet the required WWR.
57
+ 2. The function will keep the existing doors but there could be cases the location of door overlaps with the new window.
58
+
59
+ In addition, when increasing the WWR requires adding windows to surfaces with no windows, the function will not adding any windows to spaces tagged as plenum and/or used as a AirLoopSupplyPlenum or AirLoopReturnPlenum.
60
+
61
+ ## Test Case Documentation
62
+
63
+ ### Test case 1:
64
+ - Prototype: Small Office
65
+ - User data folder: */userdata_default_test*
66
+ - Summary:
67
+
68
+ The target WWR is 19% and the test prototype has WWR of 21.20%.
69
+
70
+ A regular WWR reduction shall be applied in this case to set the WWR in the baseline model to 19%.
71
+
72
+ ### Test case 2:
73
+ - Prototype: Small Office - WWR adjusted.
74
+ - User data folder: */userdata_default_test*
75
+ - Summary:
76
+ -
77
+ Test prototype:
78
+
79
+ | | Total | North | East | South | West |
80
+ |-----------------------|--------|-------|-------|-------|-------|
81
+ | Wall Area (m2) | 281.51 | 84.45 | 56.30 | 84.45 | 56.30 |
82
+ | Window Area (m2) | 28.15 | 8.44 | 5.63 | 8.44 | 5.63 |
83
+ | Window-Wall Ratio (%) | 10% | 10% | 10% | 10% | 10% |
84
+
85
+ The target WWR is 19%. The test prototype has WWR of 10% (10% for every surface).
86
+
87
+ A regular WWR increase shall be applied in this case to set the WWR in the baseline model to 19% for every surface.
88
+
89
+ Baseline:
90
+
91
+ | | Total | North | East | South | West |
92
+ |-----------------------|--------|-------|-------|-------|-------|
93
+ | Wall Area (m2) | 281.51 | 84.45 | 56.30 | 84.45 | 56.30 |
94
+ | Window Area (m2) | 53.49 | 16.05 | 10.70 | 16.05 | 10.70 |
95
+ | Window-Wall Ratio (%) | 19% | 19% | 19% | 19% | 19% |
96
+
97
+ ### Test case 3:
98
+ - Prototype: Small Office - WWR adjusted.
99
+ - User data folder: */userdata_default_test*
100
+ - Summary:
101
+
102
+ Test prototype:
103
+
104
+ | | Total | North | East | South | West |
105
+ |-----------------------|--------|-------|-------|-------|-------|
106
+ | Wall Area (m2) | 281.51 | 84.45 | 56.30 | 84.45 | 56.30 |
107
+ | Window Area (m2) | 5.63 | 0.0 | 0.0 | 0.0 | 5.63 |
108
+ | Window-Wall Ratio (%) | 2% | 0% | 0% | 0% | 10% |
109
+
110
+ In this case, the WWR shall be increased to 19% however, the maximum WWR by expanding windows in West facade only is 17.7%, about 1.3% smaller than the required by the code.
111
+ The function shall increase the rest facades proportionally to meet the overall 19% WWR target.
112
+
113
+ Baseline:
114
+
115
+ | | Total | North | East | South | West |
116
+ |-----------------------|--------|-------|-------|-------|-------|
117
+ | Wall Area (m2) | 281.51 | 84.45 | 56.30 | 84.45 | 56.30 |
118
+ | Window Area (m2) | 53.49 | 1.06 | 0.7 | 1.06 | 50.67 |
119
+ | Window-Wall Ratio (%) | 19% | 1.25% | 1.25% | 1.25% | 90% |
120
+
121
+ ### Test Case 4
122
+ - Prototype: Mid Apartment
123
+ - User data folder: */userdata_default_test*
124
+ - Summary:
125
+
126
+ Test prototype:
127
+
128
+ | | Total | North | East | South | West |
129
+ |-----------------------|---------|--------|--------|--------|--------|
130
+ | Wall Area (m2) | 1542.06 | 564.80 | 206.23 | 564.80 | 206.23 |
131
+ | Window Area (m2) | 306.92 | 112.97 | 43.82 | 112.97 | 37.16 |
132
+ | Window-Wall Ratio (%) | 19.9% | 20% | 21.25% | 20% | 18.02% |
133
+
134
+ The test prototype WWR is 19.9%. Based on code, Mid-apartment shall be `Other` building window to wall ratio type so in the baseline, it should have 40% WWR or its proposed design whichever is smaller.
135
+
136
+ Baseline:
137
+
138
+ | | Total | North | East | South | West |
139
+ |-----------------------|---------|--------|--------|--------|--------|
140
+ | Wall Area (m2) | 1542.06 | 564.80 | 206.23 | 564.80 | 206.23 |
141
+ | Window Area (m2) | 308.41 | 112.97 | 44.74 | 113.54 | 37.16 |
142
+ | Window-Wall Ratio (%) | 20% | 20% | 21.7% | 20.1% | 18.02% |
143
+
144
+ In this case, a 0.1% tolerance is applied.
145
+
146
+ ### Test Case 5
147
+ - Prototype: Mid Apartment - WWR adjusted
148
+ - User data folder: */userdata_default_test*
149
+ - Summary:
150
+
151
+ Test prototype:
152
+
153
+ | | Total | North | East | South | West |
154
+ |-----------------------|---------|--------|--------|--------|--------|
155
+ | Wall Area (m2) | 1542.06 | 564.80 | 206.23 | 564.80 | 206.23 |
156
+ | Window Area (m2) | 750.59 | 282.40 | 92.90 | 282.40 | 92.90 |
157
+ | Window-Wall Ratio (%) | 50% | 50% | 50% | 50% | 50% |
158
+
159
+ The test prototype WWR is 50%. Based on code, Mid-apartment shall be `Other` building window to wall ratio type so in the baseline, it should have 40% WWR or its proposed design whichever is smaller.
160
+
161
+ Baseline:
162
+
163
+ | | Total | North | East | South | West |
164
+ |-----------------------|---------|--------|--------|--------|--------|
165
+ | Wall Area (m2) | 1542.06 | 564.80 | 206.23 | 564.80 | 206.23 |
166
+ | Window Area (m2) | 616.84 | 225.92 | 87.02 | 229.58 | 74.32 |
167
+ | Window-Wall Ratio (%) | 40% | 40% | 42.20% | 40.65% | 36.04% |
168
+
169
+
170
+ ### Test Case 6
171
+ - Prototype: Medium Office - WWR adjusted
172
+ - User data folder: */userdata_default_test*
173
+ - Summary:
174
+
175
+ Test prototype:
176
+
177
+ | | Total | North | East | South | West |
178
+ |-----------------------|---------|--------|--------|--------|--------|
179
+ | Wall Area (m2) | 1977.67 | 593.30 | 395.53 | 593.30 | 395.53 |
180
+ | Window Area (m2) | 27.38 | 0.0 | 27.38 | 0.0 | 0.0 |
181
+ | Window-Wall Ratio (%) | 1.38% | 0% | 6.92% | 0% | 0% |
182
+
183
+ The test prototype has WWR of 1.38%. The target WWR is 31%. The building has plenums so this test case shall increase the window to wall ratio to 31% by adding more windows to the rest facades and in the meantime, avoids adding new windows to the plenum surfaces
184
+
185
+ Baseline:
186
+
187
+ | | Total | North | East | South | West |
188
+ |-----------------------|---------|--------|--------|--------|--------|
189
+ | Wall Area (m2) | 1977.67 | 593.30 | 395.53 | 593.30 | 395.53 |
190
+ | Window Area (m2) | 613.08 | 137.48 | 246.45 | 137.49 | 91.66 |
191
+ | Window-Wall Ratio (%) | 31% | 23.17% | 62.31% | 23.17% | 23.17% |
@@ -0,0 +1,24 @@
1
+ Apply water supply temperature reset control to hot water loop and chilled water loop.
2
+
3
+ # ASHRAE 90.1-2019
4
+
5
+ G3.1.3.4 Hot-Water Supply Temperature Reset (Sys 1, 5 ,7, 11, and 12)
6
+
7
+ Hot-water supply temperature shall be reset based on outdoor dry-bulb temperature using the following schedule: 180F at 20F and below, 150F at 50F and above and ramped linearly between 180F and 150F at temperature between 20F and 50F.
8
+
9
+ Exception G3.1.3.4: Systems served by purchased heat
10
+
11
+ G3.1.3.8: Chilled-Water Supply Temperature Reset (Sys 7, 8, 11, 12 and 13)
12
+
13
+ Chilled-water supply temperature shall be reset based on outdoor dry-bulb temperature using the following schedule: 44F at 80F and above, 54F at 60F and below, and ramped linearly between 44F and 54F at temperature between 80F and 60F.
14
+
15
+ Exception G3.1.3.9:
16
+ If the baseline chilled-water system serves a computer room HVAC system, the supply chilled-water temperature shall be reset higher based on the HVAC system requiring the most cooling; i.e., the chilled-water set point is reset higher until one cooling-coil valve is nearly wide open. The maximum reset chilled-water supply temperature shall be 54F
17
+ Systems served by purchased chilled water.
18
+
19
+
20
+ # Key Ruby Methods
21
+
22
+ ## plant_loop_enable_supply_water_temperature_reset(plant_loop)
23
+ Search and identify the hot water loops and chilled water loops (exclude district systems).
24
+ Add SetpointManagerOutdoorAirReset to the loops.