openstudio-standards 0.8.3 → 0.8.5.rc1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (330) hide show
  1. checksums.yaml +4 -4
  2. data/data/geometry/ASHRAECollege.osm +30 -30
  3. data/data/geometry/ASHRAECourthouse.osm +22 -22
  4. data/data/geometry/ASHRAESmallOfficeDetailed.osm +2 -2
  5. data/data/geometry/DEER_Asm.osm +1 -1
  6. data/data/geometry/DEER_ECC.osm +1 -1
  7. data/data/geometry/DEER_EPr.osm +1 -1
  8. data/data/geometry/DEER_ERC.osm +1 -1
  9. data/data/geometry/DEER_ESe.osm +1 -1
  10. data/data/geometry/DEER_EUn.osm +1 -1
  11. data/data/geometry/DEER_Hsp.osm +1 -1
  12. data/data/geometry/DEER_Htl.osm +1 -1
  13. data/data/geometry/DEER_MBT.osm +1 -1
  14. data/data/geometry/DEER_MFm.osm +1 -1
  15. data/data/geometry/DEER_Nrs.osm +1 -1
  16. data/data/geometry/DEER_OfL.osm +1 -1
  17. data/data/geometry/DEER_OfS.osm +1 -1
  18. data/data/geometry/DEER_RFF.osm +1 -1
  19. data/data/geometry/DEER_RSD.osm +1 -1
  20. data/data/geometry/DEER_Rt3.osm +1 -1
  21. data/data/geometry/DEER_RtS.osm +1 -1
  22. data/data/standards/export_OpenStudio_libraries.rb +2 -3
  23. data/data/standards/test_performance_expected_dd_results.csv +42 -42
  24. data/lib/openstudio-standards/btap/NECB_building_types.csv +35 -0
  25. data/lib/openstudio-standards/btap/NECB_space_types.csv +109 -0
  26. data/lib/openstudio-standards/btap/activity.rb +480 -0
  27. data/lib/openstudio-standards/btap/attributes.rb +166 -0
  28. data/lib/openstudio-standards/btap/bridging.rb +561 -1402
  29. data/lib/openstudio-standards/btap/btap.rb +4 -2
  30. data/lib/openstudio-standards/btap/btap_test_helper.rb +86 -0
  31. data/lib/openstudio-standards/btap/carbon/btap_carbon.rb +177 -0
  32. data/lib/openstudio-standards/btap/common_paths.rb +81 -0
  33. data/lib/openstudio-standards/btap/common_resources/ConstructionProperties.csv +52 -0
  34. data/lib/openstudio-standards/btap/common_resources/Constructions.csv +37 -0
  35. data/lib/openstudio-standards/btap/common_resources/carbon_frame.csv +35 -0
  36. data/lib/openstudio-standards/btap/common_resources/carbon_glazing.csv +35 -0
  37. data/lib/openstudio-standards/btap/common_resources/carbon_opaque.csv +164 -0
  38. data/lib/openstudio-standards/btap/common_resources/construction_sets.csv +1270 -0
  39. data/lib/openstudio-standards/btap/common_resources/constructions_glazing.csv +121 -0
  40. data/lib/openstudio-standards/btap/common_resources/constructions_opaque.csv +2256 -0
  41. data/lib/openstudio-standards/btap/common_resources/costs.csv +1897 -0
  42. data/lib/openstudio-standards/btap/common_resources/costs_local_factors.csv +2315 -0
  43. data/lib/openstudio-standards/btap/common_resources/hvac_vent_ahu.csv +925 -0
  44. data/lib/openstudio-standards/btap/common_resources/lighting.csv +364 -0
  45. data/lib/openstudio-standards/btap/common_resources/lighting_sets.csv +2667 -0
  46. data/lib/openstudio-standards/btap/common_resources/locations.csv +75 -0
  47. data/lib/openstudio-standards/btap/common_resources/materials_glazing.csv +35 -0
  48. data/lib/openstudio-standards/btap/common_resources/materials_hvac.csv +1686 -0
  49. data/lib/openstudio-standards/btap/common_resources/materials_lighting.csv +267 -0
  50. data/lib/openstudio-standards/btap/common_resources/materials_opaque.csv +164 -0
  51. data/lib/openstudio-standards/btap/costing/README.md +502 -0
  52. data/lib/openstudio-standards/btap/costing/btap_costing.rb +469 -0
  53. data/lib/openstudio-standards/btap/costing/btap_measure_helper.rb +359 -0
  54. data/lib/openstudio-standards/btap/costing/btap_workflow.rb +117 -0
  55. data/lib/openstudio-standards/btap/costing/copy_test_results_files_to_expected_results.rb +11 -0
  56. data/lib/openstudio-standards/btap/costing/cost_building_from_file.rb +136 -0
  57. data/lib/openstudio-standards/btap/costing/costing_database_wrapper.rb +173 -0
  58. data/lib/openstudio-standards/btap/costing/daylighting_sensor_control_costing.rb +354 -0
  59. data/lib/openstudio-standards/btap/costing/dcv_costing.rb +314 -0
  60. data/lib/openstudio-standards/btap/costing/dummy.epw +8768 -0
  61. data/lib/openstudio-standards/btap/costing/dummy.osm +5320 -0
  62. data/lib/openstudio-standards/btap/costing/envelope_costing.rb +215 -0
  63. data/lib/openstudio-standards/btap/costing/heating_cooling_costing.rb +2584 -0
  64. data/lib/openstudio-standards/btap/costing/led_lighting_costing.rb +156 -0
  65. data/lib/openstudio-standards/btap/costing/lighting_costing.rb +209 -0
  66. data/lib/openstudio-standards/btap/costing/mech_sizing.json +502 -0
  67. data/lib/openstudio-standards/btap/costing/neb_end_use_prices.csv +42 -0
  68. data/lib/openstudio-standards/btap/costing/necb_2011_spacetype_info.csv +225 -0
  69. data/lib/openstudio-standards/btap/costing/necb_reference_runs.csv +28705 -0
  70. data/lib/openstudio-standards/btap/costing/nv_costing.rb +547 -0
  71. data/lib/openstudio-standards/btap/costing/parallel_tests.rb +92 -0
  72. data/lib/openstudio-standards/btap/costing/pv_ground_costing.rb +687 -0
  73. data/lib/openstudio-standards/btap/costing/shw_costing.rb +705 -0
  74. data/lib/openstudio-standards/btap/costing/test_list.txt +15 -0
  75. data/lib/openstudio-standards/btap/costing/test_run_all_test_locally.rb +27 -0
  76. data/lib/openstudio-standards/btap/costing/test_run_costing_tests.rb +80 -0
  77. data/lib/openstudio-standards/btap/costing/ventilation_costing.rb +2616 -0
  78. data/lib/openstudio-standards/btap/geometry.rb +86 -6
  79. data/lib/openstudio-standards/btap/structure.rb +657 -0
  80. data/lib/openstudio-standards/constructions/modify.rb +2 -1
  81. data/lib/openstudio-standards/create_typical/create_typical.rb +17 -33
  82. data/lib/openstudio-standards/create_typical/space_type_ratios.rb +36 -36
  83. data/lib/openstudio-standards/equipment/create_transformer.rb +104 -0
  84. data/lib/openstudio-standards/equipment/create_typical_equipment.rb +117 -0
  85. data/lib/openstudio-standards/equipment/data/electric_equipment_space_types.json +1514 -0
  86. data/lib/openstudio-standards/equipment/data/gas_equipment_space_types.json +227 -0
  87. data/lib/openstudio-standards/exterior_lighting/create.rb +22 -22
  88. data/lib/openstudio-standards/exterior_lighting/information.rb +3 -2
  89. data/lib/openstudio-standards/hvac/components/air_conditioner_vrf.rb +482 -0
  90. data/lib/openstudio-standards/hvac/components/air_terminal.rb +31 -0
  91. data/lib/openstudio-standards/hvac/components/boiler_hot_water.rb +163 -0
  92. data/lib/openstudio-standards/hvac/components/central_air_source_heat_pump.rb +220 -0
  93. data/lib/openstudio-standards/hvac/components/chiller.rb +25 -0
  94. data/lib/openstudio-standards/hvac/components/coil.rb +276 -0
  95. data/lib/openstudio-standards/hvac/components/coil_cooling_dx_multi_speed.rb +40 -0
  96. data/lib/openstudio-standards/hvac/components/coil_cooling_dx_single_speed.rb +300 -0
  97. data/lib/openstudio-standards/hvac/components/coil_cooling_dx_two_speed.rb +187 -0
  98. data/lib/openstudio-standards/hvac/components/coil_cooling_water.rb +80 -0
  99. data/lib/openstudio-standards/hvac/components/coil_cooling_water_to_air_heat_pump_equation_fit.rb +182 -0
  100. data/lib/openstudio-standards/hvac/components/coil_heating_dx_single_speed.rb +220 -0
  101. data/lib/openstudio-standards/hvac/components/coil_heating_electric.rb +56 -0
  102. data/lib/openstudio-standards/hvac/components/coil_heating_gas.rb +90 -0
  103. data/lib/openstudio-standards/hvac/components/coil_heating_gas_multi_stage.rb +33 -0
  104. data/lib/openstudio-standards/hvac/components/coil_heating_water.rb +98 -0
  105. data/lib/openstudio-standards/hvac/components/coil_heating_water_to_air_heat_pump_equation_fit.rb +147 -0
  106. data/lib/openstudio-standards/hvac/components/component.rb +39 -0
  107. data/lib/openstudio-standards/{standards/ashrae_90_1/data/ashrae_90_1.fans.json → hvac/components/data/fans.json} +6 -6
  108. data/lib/openstudio-standards/hvac/components/fan.rb +363 -0
  109. data/lib/openstudio-standards/hvac/components/heat_exchanger_air_to_air.rb +203 -0
  110. data/lib/openstudio-standards/hvac/components/pump.rb +181 -0
  111. data/lib/openstudio-standards/hvac/controls/radiant_system_controls.rb +594 -0
  112. data/lib/openstudio-standards/hvac/conversions.rb +222 -0
  113. data/lib/openstudio-standards/hvac/curves.rb +192 -0
  114. data/lib/openstudio-standards/hvac/helpers.rb +357 -0
  115. data/lib/openstudio-standards/hvac/setpoint_managers/information.rb +4 -4
  116. data/lib/openstudio-standards/interior_lighting/create_lights.rb +52 -0
  117. data/lib/openstudio-standards/interior_lighting/create_typical_interior_lighting.rb +254 -0
  118. data/lib/openstudio-standards/interior_lighting/data/convert_lighting_data.rb +249 -0
  119. data/lib/openstudio-standards/interior_lighting/data/lighting_space_types.csv +96 -0
  120. data/lib/openstudio-standards/interior_lighting/data/lighting_space_types.json +1429 -0
  121. data/lib/openstudio-standards/interior_lighting/data/lighting_technology.csv +46 -0
  122. data/lib/openstudio-standards/interior_lighting/data/lighting_technology.json +859 -0
  123. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.AirTerminalSingleDuctVAVReheat.rb +1 -1
  124. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.AirTerminalSingleDuctVAVReheat.rb +1 -1
  125. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.AirTerminalSingleDuctVAVReheat.rb +1 -1
  126. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.Model.rb +4 -4
  127. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.AirTerminalSingleDuctVAVReheat.rb +1 -1
  128. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.Model.rb +4 -4
  129. data/lib/openstudio-standards/prototypes/ashrae_90_1/nrel_nze_ready_2017/nrel_zne_ready_2017.AirTerminalSingleDuctVAVReheat.rb +1 -1
  130. data/lib/openstudio-standards/prototypes/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.AirTerminalSingleDuctVAVReheat.rb +1 -1
  131. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.HighRiseApartment.rb +6 -7
  132. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Hospital.rb +15 -15
  133. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeHotel.rb +4 -4
  134. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeOffice.rb +5 -5
  135. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.MediumOffice.rb +6 -6
  136. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Outpatient.rb +7 -7
  137. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.PrimarySchool.rb +4 -4
  138. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SecondarySchool.rb +6 -6
  139. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SmallOfficeDetailed.rb +5 -1
  140. data/lib/openstudio-standards/prototypes/common/data/prototype_space_type_map.json +2594 -0
  141. data/lib/openstudio-standards/prototypes/common/data/thermostat_schedule_lookup.json +2108 -0
  142. data/lib/openstudio-standards/prototypes/common/objects/Prototype.AirTerminalSingleDuctVAVReheat.rb +33 -0
  143. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Fan.rb +0 -140
  144. data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanConstantVolume.rb +1 -73
  145. data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanOnOff.rb +1 -69
  146. data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanVariableVolume.rb +0 -116
  147. data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanZoneExhaust.rb +0 -61
  148. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.hvac.rb +2 -2
  149. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.rb +128 -13
  150. data/lib/openstudio-standards/prototypes/common/objects/Prototype.hvac_systems.rb +606 -607
  151. data/lib/openstudio-standards/prototypes/common/prototype_space_type_map.rb +41 -0
  152. data/lib/openstudio-standards/prototypes/common/space_type_equipment_map.rb +184 -0
  153. data/lib/openstudio-standards/prototypes/common/space_type_thermostat_schedule_map.rb +116 -0
  154. data/lib/openstudio-standards/qaqc/hvac.rb +12 -12
  155. data/lib/openstudio-standards/refrigeration/create_compressor.rb +2 -5
  156. data/lib/openstudio-standards/refrigeration/data/refrigeration_compressors.csv +4 -4
  157. data/lib/openstudio-standards/service_water_heating/create_water_heater.rb +1 -2
  158. data/lib/openstudio-standards/service_water_heating/create_water_use.rb +5 -5
  159. data/lib/openstudio-standards/space_type/data/level_1_space_types.json +612 -0
  160. data/lib/openstudio-standards/space_type/standards_space_type.rb +53 -0
  161. data/lib/openstudio-standards/standards/Standards.AirConditionerVariableRefrigerantFlow.rb +8 -26
  162. data/lib/openstudio-standards/standards/Standards.AirLoopHVAC.rb +13 -13
  163. data/lib/openstudio-standards/standards/Standards.AirTerminalSingleDuctVAVReheat.rb +0 -24
  164. data/lib/openstudio-standards/standards/Standards.BoilerHotWater.rb +6 -43
  165. data/lib/openstudio-standards/standards/Standards.ChillerElectricEIR.rb +7 -24
  166. data/lib/openstudio-standards/standards/Standards.CoilCoolingDXMultiSpeed.rb +19 -44
  167. data/lib/openstudio-standards/standards/Standards.CoilCoolingDXSingleSpeed.rb +25 -50
  168. data/lib/openstudio-standards/standards/Standards.CoilCoolingDXTwoSpeed.rb +25 -33
  169. data/lib/openstudio-standards/standards/Standards.CoilCoolingWaterToAirHeatPumpEquationFit.rb +9 -22
  170. data/lib/openstudio-standards/standards/Standards.CoilDX.rb +15 -157
  171. data/lib/openstudio-standards/standards/Standards.CoilHeatingDXMultiSpeed.rb +2 -2
  172. data/lib/openstudio-standards/standards/Standards.CoilHeatingDXSingleSpeed.rb +18 -105
  173. data/lib/openstudio-standards/standards/Standards.CoilHeatingGas.rb +3 -23
  174. data/lib/openstudio-standards/standards/Standards.CoilHeatingGasMultiStage.rb +0 -24
  175. data/lib/openstudio-standards/standards/Standards.CoilHeatingWaterToAirHeatPumpEquationFit.rb +2 -86
  176. data/lib/openstudio-standards/standards/Standards.FanVariableVolume.rb +0 -107
  177. data/lib/openstudio-standards/standards/Standards.Model.rb +45 -20
  178. data/lib/openstudio-standards/standards/Standards.People.rb +113 -0
  179. data/lib/openstudio-standards/standards/Standards.PlantLoop.rb +11 -11
  180. data/lib/openstudio-standards/standards/Standards.Pump.rb +2 -147
  181. data/lib/openstudio-standards/standards/Standards.PumpVariableSpeed.rb +57 -41
  182. data/lib/openstudio-standards/standards/Standards.SpaceType.rb +30 -153
  183. data/lib/openstudio-standards/standards/Standards.Ventilation.rb +74 -0
  184. data/lib/openstudio-standards/standards/Standards.ZoneHVACComponent.rb +1 -1
  185. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.PlantLoop.rb +4 -4
  186. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.heat_pumps_heating.json +3 -3
  187. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.spc_typ.json +37 -112
  188. 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 +37 -102
  189. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.heat_pumps_heating.json +3 -3
  190. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.spc_typ.json +37 -112
  191. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.AirTerminalSingleDuctVAVReheat.rb +1 -1
  192. 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 +37 -37
  193. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.heat_pumps_heating.json +6 -6
  194. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.spc_typ.json +37 -37
  195. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.AirTerminalSingleDuctVAVReheat.rb +1 -1
  196. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.BoilerHotWater.rb +1 -1
  197. 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 +37 -102
  198. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.heat_pumps_heating.json +6 -6
  199. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.spc_typ.json +37 -37
  200. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.AirTerminalSingleDuctVAVReheat.rb +1 -1
  201. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.BoilerHotWater.rb +1 -1
  202. 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 +45 -109
  203. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.heat_pumps_heating.json +6 -6
  204. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.spc_typ.json +37 -37
  205. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.AirLoopHVAC.rb +1 -1
  206. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.AirTerminalSingleDuctVAVReheat.rb +1 -1
  207. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.BoilerHotWater.rb +1 -1
  208. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.CoilHeatingGas.rb +1 -1
  209. 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 +45 -109
  210. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.heat_pumps_heating.json +6 -6
  211. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.spc_typ.json +37 -37
  212. data/lib/openstudio-standards/standards/ashrae_90_1/data/ashrae_90_1.curves.json +0 -200
  213. 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 +37 -37
  214. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/data/doe_ref_1980_2004.spc_typ.json +37 -37
  215. 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 +37 -37
  216. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/data/doe_ref_pre_1980.spc_typ.json +37 -37
  217. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.AirTerminalSingleDuctVAVReheat.rb +1 -1
  218. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.PlantLoop.rb +5 -5
  219. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.AirTerminalSingleDuctVAVReheat.rb +1 -1
  220. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.PlantLoop.rb +5 -5
  221. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.AirLoopHVAC.rb +1 -1
  222. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.ChillerElectricEIR.rb +2 -2
  223. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilCoolingDXSingleSpeed.rb +2 -68
  224. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilCoolingDXTwoSpeed.rb +2 -35
  225. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilDX.rb +42 -0
  226. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilHeatingDXSingleSpeed.rb +5 -2
  227. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilHeatingGas.rb +2 -2
  228. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.Model.rb +2 -2
  229. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.PlantLoop.rb +3 -3
  230. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.SpaceType.rb +1 -1
  231. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/ashrae_90_1_prm_2019.Model.rb +1 -0
  232. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/ashrae_90_1_prm_2019_WaterHeaterMixed.rb +2 -4
  233. data/lib/openstudio-standards/standards/ashrae_90_1_prm/data/ashrae_90_1_prm.curves.json +0 -200
  234. data/lib/openstudio-standards/standards/ashrae_90_1_prm/data/ashrae_90_1_prm.fans.json +5 -5
  235. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_csv/ashrae_90_1_prm.UserData.rb +7 -1
  236. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_csv/userdata_enums.rb +0 -1
  237. data/lib/openstudio-standards/standards/cbes/data/cbes.curves.json +0 -200
  238. data/lib/openstudio-standards/standards/deer/data/deer.curves.json +0 -200
  239. data/lib/openstudio-standards/standards/necb/BTAPPRE1980/btap_pre1980.rb +21 -37
  240. data/lib/openstudio-standards/standards/necb/BTAPPRE1980/building_envelope.rb +12 -11
  241. data/lib/openstudio-standards/standards/necb/BTAPPRE1980/hvac_system_3_and_8_single_speed.rb +68 -27
  242. data/lib/openstudio-standards/standards/necb/BTAPPRE1980/hvac_system_4.rb +64 -25
  243. data/lib/openstudio-standards/standards/necb/BTAPPRE1980/hvac_system_6.rb +9 -14
  244. data/lib/openstudio-standards/standards/necb/BTAPPRE1980/hvac_systems.rb +4 -4
  245. data/lib/openstudio-standards/standards/necb/ECMS/ecms.rb +1 -1
  246. data/lib/openstudio-standards/standards/necb/ECMS/hvac_systems.rb +115 -112
  247. data/lib/openstudio-standards/standards/necb/NECB2011/autozone.rb +637 -249
  248. data/lib/openstudio-standards/standards/necb/NECB2011/beps_compliance_path.rb +16 -12
  249. data/lib/openstudio-standards/standards/necb/NECB2011/building_envelope.rb +799 -46
  250. data/lib/openstudio-standards/standards/necb/NECB2011/data/chillers.json +33 -51
  251. data/lib/openstudio-standards/standards/necb/NECB2011/data/constants.json +75 -7
  252. data/lib/openstudio-standards/standards/necb/NECB2011/data/fuel_type_sets.json +25 -1
  253. data/lib/openstudio-standards/standards/necb/NECB2011/data/geometry/HighriseApartmentMult.osm +14272 -0
  254. data/lib/openstudio-standards/standards/necb/NECB2011/data/heat_pumps_heating.json +21 -15
  255. data/lib/openstudio-standards/standards/necb/NECB2011/data/necb_2015_table_c1.json +1 -1
  256. data/lib/openstudio-standards/standards/necb/NECB2011/data/space_types.json +437 -437
  257. data/lib/openstudio-standards/standards/necb/NECB2011/data/systems.json +516 -0
  258. data/lib/openstudio-standards/standards/necb/NECB2011/data/systems_including_sys5.json +588 -0
  259. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_namer.rb +489 -0
  260. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_1_single_speed.rb +18 -6
  261. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_2_and_5.rb +48 -5
  262. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_3_and_8_multi_speed.rb +2 -2
  263. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_3_and_8_single_speed.rb +35 -27
  264. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_4.rb +34 -23
  265. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_6.rb +8 -6
  266. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_systems.rb +68 -150
  267. data/lib/openstudio-standards/standards/necb/NECB2011/necb_2011.rb +444 -134
  268. data/lib/openstudio-standards/standards/necb/NECB2011/system_fuels.rb +61 -1
  269. data/lib/openstudio-standards/standards/necb/NECB2015/data/heat_pumps_heating.json +10 -2
  270. data/lib/openstudio-standards/standards/necb/NECB2015/data/space_types.json +636 -636
  271. data/lib/openstudio-standards/standards/necb/NECB2015/data/unitary_acs.json +38 -38
  272. data/lib/openstudio-standards/standards/necb/NECB2015/hvac_systems.rb +17 -8
  273. data/lib/openstudio-standards/standards/necb/NECB2017/data/space_types.json +636 -636
  274. data/lib/openstudio-standards/standards/necb/NECB2020/data/chillers.json +71 -71
  275. data/lib/openstudio-standards/standards/necb/NECB2020/data/heat_pumps_heating.json +16 -6
  276. data/lib/openstudio-standards/standards/necb/NECB2020/data/unitary_acs.json +60 -61
  277. data/lib/openstudio-standards/standards/necb/NECB2020/service_water_heating.rb +30 -30
  278. data/lib/openstudio-standards/standards/necb/README.md +343 -0
  279. data/lib/openstudio-standards/standards/necb/common/btap_analysis.rb +79 -0
  280. data/lib/openstudio-standards/standards/necb/common/btap_data.rb +206 -32
  281. data/lib/openstudio-standards/standards/necb/common/btap_datapoint.rb +75 -43
  282. data/lib/openstudio-standards/standards/necb/common/eccc_electric_grid_intensity_20250311.csv +14 -0
  283. data/lib/openstudio-standards/standards/necb/common/nir_gas_grid_intensity_20250311.csv +14 -0
  284. data/lib/openstudio-standards/standards/necb/common/system_types.yaml +0 -0
  285. data/lib/openstudio-standards/thermal_zone/{thermal_zone.rb → information.rb} +12 -45
  286. data/lib/openstudio-standards/thermal_zone/thermostat_schedules.rb +152 -0
  287. data/lib/openstudio-standards/utilities/logging.rb +18 -14
  288. data/lib/openstudio-standards/version.rb +1 -1
  289. data/lib/openstudio-standards/weather/modify.rb +2 -2
  290. data/lib/openstudio-standards/weather/stat_file.rb +2 -2
  291. data/lib/openstudio-standards.rb +67 -38
  292. metadata +141 -50
  293. data/lib/openstudio-standards/hvac/components/create.rb +0 -169
  294. data/lib/openstudio-standards/hvac/components/modify.rb +0 -42
  295. data/lib/openstudio-standards/prototypes/common/objects/Prototype.AirConditionerVariableRefrigerantFlow.rb +0 -438
  296. data/lib/openstudio-standards/prototypes/common/objects/Prototype.BoilerHotWater.rb +0 -123
  297. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CentralAirSourceHeatPump.rb +0 -216
  298. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilCoolingDXSingleSpeed.rb +0 -273
  299. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilCoolingDXTwoSpeed.rb +0 -159
  300. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilCoolingWater.rb +0 -77
  301. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilCoolingWaterToAirHeatPumpEquationFit.rb +0 -154
  302. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingDXSingleSpeed.rb +0 -214
  303. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingElectric.rb +0 -53
  304. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingGas.rb +0 -72
  305. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingWater.rb +0 -95
  306. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingWaterToAirHeatPumpEquationFit.rb +0 -125
  307. data/lib/openstudio-standards/prototypes/common/objects/Prototype.ControllerWaterCoil.rb +0 -17
  308. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.transformers.rb +0 -90
  309. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Pump.rb +0 -4
  310. data/lib/openstudio-standards/prototypes/common/objects/Prototype.PumpVariableSpeed.rb +0 -70
  311. data/lib/openstudio-standards/prototypes/common/objects/Prototype.radiant_system_controls.rb +0 -590
  312. data/lib/openstudio-standards/prototypes/common/objects/Prototype.utilities.rb +0 -901
  313. data/lib/openstudio-standards/standards/Standards.FanConstantVolume.rb +0 -5
  314. data/lib/openstudio-standards/standards/Standards.FanOnOff.rb +0 -5
  315. data/lib/openstudio-standards/standards/Standards.FanZoneExhaust.rb +0 -5
  316. data/lib/openstudio-standards/standards/Standards.HeaderedPumpsConstantSpeed.rb +0 -5
  317. data/lib/openstudio-standards/standards/Standards.HeaderedPumpsVariableSpeed.rb +0 -55
  318. data/lib/openstudio-standards/standards/Standards.PumpConstantSpeed.rb +0 -5
  319. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.FanConstantVolume.rb +0 -5
  320. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.FanOnOff.rb +0 -5
  321. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.FanZoneExhaust.rb +0 -5
  322. data/lib/openstudio-standards/standards/cbes/data/cbes.fans.json +0 -328
  323. data/lib/openstudio-standards/standards/deer/data/deer.fans.json +0 -328
  324. /data/lib/openstudio-standards/{prototypes → standards}/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.PumpVariableSpeed.rb +0 -0
  325. /data/lib/openstudio-standards/{prototypes → standards}/ashrae_90_1/ashrae_90_1_2007/ashrae_90_1_2007.PumpVariableSpeed.rb +0 -0
  326. /data/lib/openstudio-standards/{prototypes → standards}/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.PumpVariableSpeed.rb +0 -0
  327. /data/lib/openstudio-standards/{prototypes → standards}/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.PumpVariableSpeed.rb +0 -0
  328. /data/lib/openstudio-standards/{prototypes → standards}/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.PumpVariableSpeed.rb +0 -0
  329. /data/lib/openstudio-standards/{prototypes → standards}/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.Pump.rb +0 -0
  330. /data/lib/openstudio-standards/{prototypes → standards}/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.PumpVariableSpeed.rb +0 -0
@@ -1,216 +0,0 @@
1
- class Standard
2
- # @!group Central Air Source Heat Pump
3
-
4
- # Prototype CentralAirSourceHeatPump object using PlantComponentUserDefined
5
- #
6
- # @param model [OpenStudio::Model::Model] OpenStudio model object
7
- # @param hot_water_loop [<OpenStudio::Model::PlantLoop>] a hot water loop served by the central air source heat pump
8
- # @param name [String] the name of the central air source heat pump, or nil in which case it will be defaulted
9
- # @param cop [Double] air source heat pump rated cop
10
- # @return [OpenStudio::Model::PlantComponentUserDefined] a plant component representing the air source heat pump
11
- # @todo update curve to better calculate based on the rated cop
12
- # @todo refactor to use the new EnergyPlus central air source heat pump object when it becomes available
13
- # set hot_water_loop to an optional keyword argument, and add input keyword arguments for other characteristics
14
- def create_central_air_source_heat_pump(model,
15
- hot_water_loop,
16
- name: nil,
17
- cop: 3.65)
18
-
19
- # create the PlantComponentUserDefined object as a proxy for the Central Air Source Heat Pump
20
- plant_comp = OpenStudio::Model::PlantComponentUserDefined.new(model)
21
- if name.nil?
22
- if hot_water_loop.nil?
23
- name = 'Central Air Source Heat Pump'
24
- else
25
- name = "#{hot_water_loop.name} Central Air Source Heat Pump"
26
- end
27
- end
28
-
29
- # change equipment name for EMS validity
30
- plant_comp.setName(ems_friendly_name(name))
31
-
32
- # set plant component properties
33
- plant_comp.setPlantLoadingMode('MeetsLoadWithNominalCapacityHiOutLimit')
34
- plant_comp.setPlantLoopFlowRequestMode('NeedsFlowIfLoopOn')
35
-
36
- # plant design volume flow rate internal variable
37
- vdot_des_int_var = OpenStudio::Model::EnergyManagementSystemInternalVariable.new(model, 'Plant Design Volume Flow Rate')
38
- vdot_des_int_var.setName("#{plant_comp.name}_Vdot_Des_Int_Var")
39
- vdot_des_int_var.setInternalDataIndexKeyName(hot_water_loop.handle.to_s)
40
-
41
- # inlet temperature internal variable
42
- tin_int_var = OpenStudio::Model::EnergyManagementSystemInternalVariable.new(model, 'Inlet Temperature for Plant Connection 1')
43
- tin_int_var.setName("#{plant_comp.name}_Tin_Int_Var")
44
- tin_int_var.setInternalDataIndexKeyName(plant_comp.handle.to_s)
45
-
46
- # inlet mass flow rate internal variable
47
- mdot_int_var = OpenStudio::Model::EnergyManagementSystemInternalVariable.new(model, 'Inlet Mass Flow Rate for Plant Connection 1')
48
- mdot_int_var.setName("#{plant_comp.name}_Mdot_Int_Var")
49
- mdot_int_var.setInternalDataIndexKeyName(plant_comp.handle.to_s)
50
-
51
- # inlet specific heat internal variable
52
- cp_int_var = OpenStudio::Model::EnergyManagementSystemInternalVariable.new(model, 'Inlet Specific Heat for Plant Connection 1')
53
- cp_int_var.setName("#{plant_comp.name}_Cp_Int_Var")
54
- cp_int_var.setInternalDataIndexKeyName(plant_comp.handle.to_s)
55
-
56
- # inlet density internal variable
57
- rho_int_var = OpenStudio::Model::EnergyManagementSystemInternalVariable.new(model, 'Inlet Density for Plant Connection 1')
58
- rho_int_var.setName("#{plant_comp.name}_rho_Int_Var")
59
- rho_int_var.setInternalDataIndexKeyName(plant_comp.handle.to_s)
60
-
61
- # load request internal variable
62
- load_int_var = OpenStudio::Model::EnergyManagementSystemInternalVariable.new(model, 'Load Request for Plant Connection 1')
63
- load_int_var.setName("#{plant_comp.name}_Load_Int_Var")
64
- load_int_var.setInternalDataIndexKeyName(plant_comp.handle.to_s)
65
-
66
- # supply outlet node setpoint temperature sensor
67
- setpt_mgr_sch_sen = OpenStudio::Model::EnergyManagementSystemSensor.new(model, 'Schedule Value')
68
- setpt_mgr_sch_sen.setName("#{plant_comp.name}_Setpt_Mgr_Temp_Sen")
69
- hot_water_loop.supplyOutletNode.setpointManagers.each do |m|
70
- if m.to_SetpointManagerScheduled.is_initialized
71
- setpt_mgr_sch_sen.setKeyName(m.to_SetpointManagerScheduled.get.schedule.name.to_s)
72
- end
73
- end
74
-
75
- # outdoor air drybulb temperature sensor
76
- oa_dbt_sen = OpenStudio::Model::EnergyManagementSystemSensor.new(model, 'Site Outdoor Air Drybulb Temperature')
77
- oa_dbt_sen.setName("#{plant_comp.name}_OA_DBT_Sen")
78
- oa_dbt_sen.setKeyName('Environment')
79
-
80
- # minimum mass flow rate actuator
81
- mdot_min_act = plant_comp.minimumMassFlowRateActuator.get
82
- mdot_min_act.setName("#{plant_comp.name}_Mdot_Min_Act")
83
-
84
- # maximum mass flow rate actuator
85
- mdot_max_act = plant_comp.maximumMassFlowRateActuator.get
86
- mdot_max_act.setName("#{plant_comp.name}_Mdot_Max_Act")
87
-
88
- # design flow rate actuator
89
- vdot_des_act = plant_comp.designVolumeFlowRateActuator.get
90
- vdot_des_act.setName("#{plant_comp.name}_Vdot_Des_Act")
91
-
92
- # minimum loading capacity actuator
93
- cap_min_act = plant_comp.minimumLoadingCapacityActuator.get
94
- cap_min_act.setName("#{plant_comp.name}_Cap_Min_Act")
95
-
96
- # maximum loading capacity actuator
97
- cap_max_act = plant_comp.maximumLoadingCapacityActuator.get
98
- cap_max_act.setName("#{plant_comp.name}_Cap_Max_Act")
99
-
100
- # optimal loading capacity actuator
101
- cap_opt_act = plant_comp.optimalLoadingCapacityActuator.get
102
- cap_opt_act.setName("#{plant_comp.name}_Cap_Opt_Act")
103
-
104
- # outlet temperature actuator
105
- tout_act = plant_comp.outletTemperatureActuator.get
106
- tout_act.setName("#{plant_comp.name}_Tout_Act")
107
-
108
- # mass flow rate actuator
109
- mdot_req_act = plant_comp.massFlowRateActuator.get
110
- mdot_req_act.setName("#{plant_comp.name}_Mdot_Req_Act")
111
-
112
- # heat pump COP curve
113
- constant_coeff = 1.932 + (cop - 3.65)
114
- hp_cop_curve = OpenStudio::Model::CurveQuadratic.new(model)
115
- hp_cop_curve.setCoefficient1Constant(constant_coeff)
116
- hp_cop_curve.setCoefficient2x(0.227674286)
117
- hp_cop_curve.setCoefficient3xPOW2(-0.007313143)
118
- hp_cop_curve.setMinimumValueofx(1.67)
119
- hp_cop_curve.setMaximumValueofx(12.78)
120
- hp_cop_curve.setInputUnitTypeforX('Temperature')
121
- hp_cop_curve.setOutputUnitType('Dimensionless')
122
-
123
- # heat pump COP curve index variable
124
- hp_cop_curve_idx_var = OpenStudio::Model::EnergyManagementSystemCurveOrTableIndexVariable.new(model, hp_cop_curve)
125
-
126
- # high outlet temperature limit actuator
127
- tout_max_act = OpenStudio::Model::EnergyManagementSystemActuator.new(plant_comp, 'Plant Connection 1', 'High Outlet Temperature Limit')
128
- tout_max_act.setName("#{plant_comp.name}_Tout_Max_Act")
129
-
130
- # init program
131
- init_pgrm = plant_comp.plantInitializationProgram.get
132
- init_pgrm.setName("#{plant_comp.name}_Init_Pgrm")
133
- init_pgrm_body = <<-EMS
134
- SET Loop_Exit_Temp = #{hot_water_loop.sizingPlant.designLoopExitTemperature}
135
- SET Loop_Delta_Temp = #{hot_water_loop.sizingPlant.loopDesignTemperatureDifference}
136
- SET Cp = @CPHW Loop_Exit_Temp
137
- SET rho = @RhoH2O Loop_Exit_Temp
138
- SET #{vdot_des_act.handle} = #{vdot_des_int_var.handle}
139
- SET #{mdot_min_act.handle} = 0
140
- SET Mdot_Max = #{vdot_des_int_var.handle} * rho
141
- SET #{mdot_max_act.handle} = Mdot_Max
142
- SET Cap = Mdot_Max * Cp * Loop_Delta_Temp
143
- SET #{cap_min_act.handle} = 0
144
- SET #{cap_max_act.handle} = Cap
145
- SET #{cap_opt_act.handle} = 1 * Cap
146
- EMS
147
- init_pgrm.setBody(init_pgrm_body)
148
-
149
- # sim program
150
- sim_pgrm = plant_comp.plantSimulationProgram.get
151
- sim_pgrm.setName("#{plant_comp.name}_Sim_Pgrm")
152
- sim_pgrm_body = <<-EMS
153
- SET tmp = #{load_int_var.handle}
154
- SET tmp = #{tin_int_var.handle}
155
- SET tmp = #{mdot_int_var.handle}
156
- SET #{tout_max_act.handle} = 75.0
157
- IF #{load_int_var.handle} == 0
158
- SET #{tout_act.handle} = #{tin_int_var.handle}
159
- SET #{mdot_req_act.handle} = 0
160
- SET Elec = 0
161
- RETURN
162
- ENDIF
163
- IF #{load_int_var.handle} >= #{cap_max_act.handle}
164
- SET Qdot = #{cap_max_act.handle}
165
- SET Mdot = #{mdot_max_act.handle}
166
- SET #{mdot_req_act.handle} = Mdot
167
- SET #{tout_act.handle} = (Qdot / (Mdot * #{cp_int_var.handle})) + #{tin_int_var.handle}
168
- IF #{tout_act.handle} > #{tout_max_act.handle}
169
- SET #{tout_act.handle} = #{tout_max_act.handle}
170
- SET Qdot = Mdot * #{cp_int_var.handle} * (#{tout_act.handle} - #{tin_int_var.handle})
171
- ENDIF
172
- ELSE
173
- SET Qdot = #{load_int_var.handle}
174
- SET #{tout_act.handle} = #{setpt_mgr_sch_sen.handle}
175
- SET Mdot = Qdot / (#{cp_int_var.handle} * (#{tout_act.handle} - #{tin_int_var.handle}))
176
- SET #{mdot_req_act.handle} = Mdot
177
- ENDIF
178
- SET Tdb = #{oa_dbt_sen.handle}
179
- SET COP = @CurveValue #{hp_cop_curve_idx_var.handle} Tdb
180
- SET EIR = 1 / COP
181
- SET Pwr = Qdot * EIR
182
- SET Elec = Pwr * SystemTimestep * 3600
183
- EMS
184
- sim_pgrm.setBody(sim_pgrm_body)
185
-
186
- # init program calling manager
187
- init_mgr = plant_comp.plantInitializationProgramCallingManager.get
188
- init_mgr.setName("#{plant_comp.name}_Init_Pgrm_Mgr")
189
-
190
- # sim program calling manager
191
- sim_mgr = plant_comp.plantSimulationProgramCallingManager.get
192
- sim_mgr.setName("#{plant_comp.name}_Sim_Pgrm_Mgr")
193
-
194
- # metered output variable
195
- elec_mtr_out_var = OpenStudio::Model::EnergyManagementSystemMeteredOutputVariable.new(model, "#{plant_comp.name} Electricity Consumption")
196
- elec_mtr_out_var.setName("#{plant_comp.name} Electricity Consumption")
197
- elec_mtr_out_var.setEMSVariableName('Elec')
198
- elec_mtr_out_var.setUpdateFrequency('SystemTimestep')
199
- elec_mtr_out_var.setString(4, sim_pgrm.handle.to_s)
200
- elec_mtr_out_var.setResourceType('Electricity')
201
- elec_mtr_out_var.setGroupType('HVAC')
202
- elec_mtr_out_var.setEndUseCategory('Heating')
203
- elec_mtr_out_var.setEndUseSubcategory('')
204
- elec_mtr_out_var.setUnits('J')
205
-
206
- # add to supply side of hot water loop if specified
207
- hot_water_loop.addSupplyBranchForComponent(plant_comp) unless hot_water_loop.nil?
208
-
209
- # add operation scheme
210
- htg_op_scheme = OpenStudio::Model::PlantEquipmentOperationHeatingLoad.new(model)
211
- htg_op_scheme.addEquipment(1000000000, plant_comp)
212
- hot_water_loop.setPlantEquipmentOperationHeatingLoad(htg_op_scheme)
213
-
214
- return plant_comp
215
- end
216
- end
@@ -1,273 +0,0 @@
1
- class Standard
2
- # @!group CoilCoolingDXSingleSpeed
3
-
4
- # Prototype CoilCoolingDXSingleSpeed object
5
- # Enters in default curves for coil by type of coil
6
- #
7
- # @param model [OpenStudio::Model::Model] OpenStudio model object
8
- # @param air_loop_node [<OpenStudio::Model::Node>] the coil will be placed on this node of the air loop
9
- # @param name [String] the name of the system, or nil in which case it will be defaulted
10
- # @param schedule [String] name of the availability schedule, or [<OpenStudio::Model::Schedule>] Schedule object, or nil in which case default to always on
11
- # @param type [String] the type of single speed DX coil to reference the correct curve set
12
- # @param cop [Double] rated cooling coefficient of performance
13
- # @return [OpenStudio::Model::CoilCoolingDXTwoSpeed] the DX cooling coil
14
- def create_coil_cooling_dx_single_speed(model,
15
- air_loop_node: nil,
16
- name: '1spd DX Clg Coil',
17
- schedule: nil,
18
- type: nil,
19
- cop: nil)
20
-
21
- clg_coil = OpenStudio::Model::CoilCoolingDXSingleSpeed.new(model)
22
-
23
- # add to air loop if specified
24
- clg_coil.addToNode(air_loop_node) unless air_loop_node.nil?
25
-
26
- # set coil name
27
- clg_coil.setName(name)
28
-
29
- # set coil availability schedule
30
- if schedule.nil?
31
- # default always on
32
- coil_availability_schedule = model.alwaysOnDiscreteSchedule
33
- elsif schedule.instance_of?(String)
34
- coil_availability_schedule = model_add_schedule(model, schedule)
35
-
36
- if coil_availability_schedule.nil? && schedule == 'alwaysOffDiscreteSchedule'
37
- coil_availability_schedule = model.alwaysOffDiscreteSchedule
38
- elsif coil_availability_schedule.nil?
39
- coil_availability_schedule = model.alwaysOnDiscreteSchedule
40
- end
41
- elsif !schedule.to_Schedule.empty?
42
- coil_availability_schedule = schedule
43
- end
44
- clg_coil.setAvailabilitySchedule(coil_availability_schedule)
45
-
46
- # set coil cop
47
- clg_coil.setRatedCOP(cop) unless cop.nil?
48
-
49
- clg_cap_f_of_temp = nil
50
- clg_cap_f_of_flow = nil
51
- clg_energy_input_ratio_f_of_temp = nil
52
- clg_energy_input_ratio_f_of_flow = nil
53
- clg_part_load_ratio = nil
54
-
55
- # curve sets
56
- case type
57
- when 'OS default'
58
- # use OS defaults
59
-
60
- when 'Heat Pump'
61
- # "PSZ-AC_Unitary_PackagecoolCapFT"
62
- clg_cap_f_of_temp = OpenStudio::Model::CurveBiquadratic.new(model)
63
- clg_cap_f_of_temp.setCoefficient1Constant(0.766956)
64
- clg_cap_f_of_temp.setCoefficient2x(0.0107756)
65
- clg_cap_f_of_temp.setCoefficient3xPOW2(-0.0000414703)
66
- clg_cap_f_of_temp.setCoefficient4y(0.00134961)
67
- clg_cap_f_of_temp.setCoefficient5yPOW2(-0.000261144)
68
- clg_cap_f_of_temp.setCoefficient6xTIMESY(0.000457488)
69
- clg_cap_f_of_temp.setMinimumValueofx(12.78)
70
- clg_cap_f_of_temp.setMaximumValueofx(23.89)
71
- clg_cap_f_of_temp.setMinimumValueofy(21.1)
72
- clg_cap_f_of_temp.setMaximumValueofy(46.1)
73
-
74
- clg_cap_f_of_flow = OpenStudio::Model::CurveQuadratic.new(model)
75
- clg_cap_f_of_flow.setCoefficient1Constant(0.8)
76
- clg_cap_f_of_flow.setCoefficient2x(0.2)
77
- clg_cap_f_of_flow.setCoefficient3xPOW2(0.0)
78
- clg_cap_f_of_flow.setMinimumValueofx(0.5)
79
- clg_cap_f_of_flow.setMaximumValueofx(1.5)
80
-
81
- clg_energy_input_ratio_f_of_temp = OpenStudio::Model::CurveBiquadratic.new(model)
82
- clg_energy_input_ratio_f_of_temp.setCoefficient1Constant(0.297145)
83
- clg_energy_input_ratio_f_of_temp.setCoefficient2x(0.0430933)
84
- clg_energy_input_ratio_f_of_temp.setCoefficient3xPOW2(-0.000748766)
85
- clg_energy_input_ratio_f_of_temp.setCoefficient4y(0.00597727)
86
- clg_energy_input_ratio_f_of_temp.setCoefficient5yPOW2(0.000482112)
87
- clg_energy_input_ratio_f_of_temp.setCoefficient6xTIMESY(-0.000956448)
88
- clg_energy_input_ratio_f_of_temp.setMinimumValueofx(12.78)
89
- clg_energy_input_ratio_f_of_temp.setMaximumValueofx(23.89)
90
- clg_energy_input_ratio_f_of_temp.setMinimumValueofy(21.1)
91
- clg_energy_input_ratio_f_of_temp.setMaximumValueofy(46.1)
92
-
93
- clg_energy_input_ratio_f_of_flow = OpenStudio::Model::CurveQuadratic.new(model)
94
- clg_energy_input_ratio_f_of_flow.setCoefficient1Constant(1.156)
95
- clg_energy_input_ratio_f_of_flow.setCoefficient2x(-0.1816)
96
- clg_energy_input_ratio_f_of_flow.setCoefficient3xPOW2(0.0256)
97
- clg_energy_input_ratio_f_of_flow.setMinimumValueofx(0.5)
98
- clg_energy_input_ratio_f_of_flow.setMaximumValueofx(1.5)
99
-
100
- clg_part_load_ratio = OpenStudio::Model::CurveQuadratic.new(model)
101
- clg_part_load_ratio.setCoefficient1Constant(0.85)
102
- clg_part_load_ratio.setCoefficient2x(0.15)
103
- clg_part_load_ratio.setCoefficient3xPOW2(0.0)
104
- clg_part_load_ratio.setMinimumValueofx(0.0)
105
- clg_part_load_ratio.setMaximumValueofx(1.0)
106
-
107
- when 'PSZ-AC'
108
- # Defaults to "DOE Ref DX Clg Coil Cool-Cap-fT"
109
- clg_cap_f_of_temp = OpenStudio::Model::CurveBiquadratic.new(model)
110
- clg_cap_f_of_temp.setCoefficient1Constant(0.9712123)
111
- clg_cap_f_of_temp.setCoefficient2x(-0.015275502)
112
- clg_cap_f_of_temp.setCoefficient3xPOW2(0.0014434524)
113
- clg_cap_f_of_temp.setCoefficient4y(-0.00039321)
114
- clg_cap_f_of_temp.setCoefficient5yPOW2(-0.0000068364)
115
- clg_cap_f_of_temp.setCoefficient6xTIMESY(-0.0002905956)
116
- clg_cap_f_of_temp.setMinimumValueofx(-100.0)
117
- clg_cap_f_of_temp.setMaximumValueofx(100.0)
118
- clg_cap_f_of_temp.setMinimumValueofy(-100.0)
119
- clg_cap_f_of_temp.setMaximumValueofy(100.0)
120
-
121
- clg_cap_f_of_flow = OpenStudio::Model::CurveQuadratic.new(model)
122
- clg_cap_f_of_flow.setCoefficient1Constant(1.0)
123
- clg_cap_f_of_flow.setCoefficient2x(0.0)
124
- clg_cap_f_of_flow.setCoefficient3xPOW2(0.0)
125
- clg_cap_f_of_flow.setMinimumValueofx(-100.0)
126
- clg_cap_f_of_flow.setMaximumValueofx(100.0)
127
-
128
- # "DOE Ref DX Clg Coil Cool-EIR-fT",
129
- clg_energy_input_ratio_f_of_temp = OpenStudio::Model::CurveBiquadratic.new(model)
130
- clg_energy_input_ratio_f_of_temp.setCoefficient1Constant(0.28687133)
131
- clg_energy_input_ratio_f_of_temp.setCoefficient2x(0.023902164)
132
- clg_energy_input_ratio_f_of_temp.setCoefficient3xPOW2(-0.000810648)
133
- clg_energy_input_ratio_f_of_temp.setCoefficient4y(0.013458546)
134
- clg_energy_input_ratio_f_of_temp.setCoefficient5yPOW2(0.0003389364)
135
- clg_energy_input_ratio_f_of_temp.setCoefficient6xTIMESY(-0.0004870044)
136
- clg_energy_input_ratio_f_of_temp.setMinimumValueofx(-100.0)
137
- clg_energy_input_ratio_f_of_temp.setMaximumValueofx(100.0)
138
- clg_energy_input_ratio_f_of_temp.setMinimumValueofy(-100.0)
139
- clg_energy_input_ratio_f_of_temp.setMaximumValueofy(100.0)
140
-
141
- clg_energy_input_ratio_f_of_flow = OpenStudio::Model::CurveQuadratic.new(model)
142
- clg_energy_input_ratio_f_of_flow.setCoefficient1Constant(1.0)
143
- clg_energy_input_ratio_f_of_flow.setCoefficient2x(0.0)
144
- clg_energy_input_ratio_f_of_flow.setCoefficient3xPOW2(0.0)
145
- clg_energy_input_ratio_f_of_flow.setMinimumValueofx(-100.0)
146
- clg_energy_input_ratio_f_of_flow.setMaximumValueofx(100.0)
147
-
148
- # "DOE Ref DX Clg Coil Cool-PLF-fPLR"
149
- clg_part_load_ratio = OpenStudio::Model::CurveQuadratic.new(model)
150
- clg_part_load_ratio.setCoefficient1Constant(0.90949556)
151
- clg_part_load_ratio.setCoefficient2x(0.09864773)
152
- clg_part_load_ratio.setCoefficient3xPOW2(-0.00819488)
153
- clg_part_load_ratio.setMinimumValueofx(0.0)
154
- clg_part_load_ratio.setMaximumValueofx(1.0)
155
- clg_part_load_ratio.setMinimumCurveOutput(0.7)
156
- clg_part_load_ratio.setMaximumCurveOutput(1.0)
157
-
158
- when 'Window AC'
159
- # Performance curves
160
- # From Frigidaire 10.7 EER unit in Winkler et. al. Lab Testing of Window ACs (2013)
161
- # @note These coefficients are in SI UNITS
162
- cool_cap_ft_coeffs_si = [0.6405, 0.01568, 0.0004531, 0.001615, -0.0001825, 0.00006614]
163
- cool_eir_ft_coeffs_si = [2.287, -0.1732, 0.004745, 0.01662, 0.000484, -0.001306]
164
- cool_cap_fflow_coeffs = [0.887, 0.1128, 0]
165
- cool_eir_fflow_coeffs = [1.763, -0.6081, 0]
166
- cool_plf_fplr_coeffs = [0.78, 0.22, 0]
167
-
168
- # Make the curves
169
- clg_cap_f_of_temp = create_curve_biquadratic(model, cool_cap_ft_coeffs_si, 'RoomAC-Cap-fT', 0, 100, 0, 100, nil, nil)
170
- clg_cap_f_of_flow = create_curve_quadratic(model, cool_cap_fflow_coeffs, 'RoomAC-Cap-fFF', 0, 2, 0, 2, is_dimensionless = true)
171
- clg_energy_input_ratio_f_of_temp = create_curve_biquadratic(model, cool_eir_ft_coeffs_si, 'RoomAC-EIR-fT', 0, 100, 0, 100, nil, nil)
172
- clg_energy_input_ratio_f_of_flow = create_curve_quadratic(model, cool_eir_fflow_coeffs, 'RoomAC-EIR-fFF', 0, 2, 0, 2, is_dimensionless = true)
173
- clg_part_load_ratio = create_curve_quadratic(model, cool_plf_fplr_coeffs, 'RoomAC-PLF-fPLR', 0, 1, 0, 1, is_dimensionless = true)
174
-
175
- when 'Residential Central AC'
176
- # Performance curves
177
- # These coefficients are in IP UNITS
178
- cool_cap_ft_coeffs_ip = [3.670270705, -0.098652414, 0.000955906, 0.006552414, -0.0000156, -0.000131877]
179
- cool_eir_ft_coeffs_ip = [-3.302695861, 0.137871531, -0.001056996, -0.012573945, 0.000214638, -0.000145054]
180
- cool_cap_fflow_coeffs = [0.718605468, 0.410099989, -0.128705457]
181
- cool_eir_fflow_coeffs = [1.32299905, -0.477711207, 0.154712157]
182
- cool_plf_fplr_coeffs = [0.8, 0.2, 0]
183
-
184
- # Convert coefficients from IP to SI
185
- cool_cap_ft_coeffs_si = convert_curve_biquadratic(cool_cap_ft_coeffs_ip)
186
- cool_eir_ft_coeffs_si = convert_curve_biquadratic(cool_eir_ft_coeffs_ip)
187
-
188
- # Make the curves
189
- clg_cap_f_of_temp = create_curve_biquadratic(model, cool_cap_ft_coeffs_si, 'AC-Cap-fT', 0, 100, 0, 100, nil, nil)
190
- clg_cap_f_of_flow = create_curve_quadratic(model, cool_cap_fflow_coeffs, 'AC-Cap-fFF', 0, 2, 0, 2, is_dimensionless = true)
191
- clg_energy_input_ratio_f_of_temp = create_curve_biquadratic(model, cool_eir_ft_coeffs_si, 'AC-EIR-fT', 0, 100, 0, 100, nil, nil)
192
- clg_energy_input_ratio_f_of_flow = create_curve_quadratic(model, cool_eir_fflow_coeffs, 'AC-EIR-fFF', 0, 2, 0, 2, is_dimensionless = true)
193
- clg_part_load_ratio = create_curve_quadratic(model, cool_plf_fplr_coeffs, 'AC-PLF-fPLR', 0, 1, 0, 1, is_dimensionless = true)
194
-
195
- when 'Residential Central ASHP'
196
- # Performance curves
197
- # These coefficients are in IP UNITS
198
- cool_cap_ft_coeffs_ip = [3.68637657, -0.098352478, 0.000956357, 0.005838141, -0.0000127, -0.000131702]
199
- cool_eir_ft_coeffs_ip = [-3.437356399, 0.136656369, -0.001049231, -0.0079378, 0.000185435, -0.0001441]
200
- cool_cap_fflow_coeffs = [0.718664047, 0.41797409, -0.136638137]
201
- cool_eir_fflow_coeffs = [1.143487507, -0.13943972, -0.004047787]
202
- cool_plf_fplr_coeffs = [0.8, 0.2, 0]
203
-
204
- # Convert coefficients from IP to SI
205
- cool_cap_ft_coeffs_si = convert_curve_biquadratic(cool_cap_ft_coeffs_ip)
206
- cool_eir_ft_coeffs_si = convert_curve_biquadratic(cool_eir_ft_coeffs_ip)
207
-
208
- # Make the curves
209
- clg_cap_f_of_temp = create_curve_biquadratic(model, cool_cap_ft_coeffs_si, 'Cool-Cap-fT', 0, 100, 0, 100, nil, nil)
210
- clg_cap_f_of_flow = create_curve_quadratic(model, cool_cap_fflow_coeffs, 'Cool-Cap-fFF', 0, 2, 0, 2, is_dimensionless = true)
211
- clg_energy_input_ratio_f_of_temp = create_curve_biquadratic(model, cool_eir_ft_coeffs_si, 'Cool-EIR-fT', 0, 100, 0, 100, nil, nil)
212
- clg_energy_input_ratio_f_of_flow = create_curve_quadratic(model, cool_eir_fflow_coeffs, 'Cool-EIR-fFF', 0, 2, 0, 2, is_dimensionless = true)
213
- clg_part_load_ratio = create_curve_quadratic(model, cool_plf_fplr_coeffs, 'Cool-PLF-fPLR', 0, 1, 0, 1, is_dimensionless = true)
214
-
215
- else # default curve set, type == 'Split AC' || 'PTAC'
216
- clg_cap_f_of_temp = OpenStudio::Model::CurveBiquadratic.new(model)
217
- clg_cap_f_of_temp.setCoefficient1Constant(0.942587793)
218
- clg_cap_f_of_temp.setCoefficient2x(0.009543347)
219
- clg_cap_f_of_temp.setCoefficient3xPOW2(0.00068377)
220
- clg_cap_f_of_temp.setCoefficient4y(-0.011042676)
221
- clg_cap_f_of_temp.setCoefficient5yPOW2(0.000005249)
222
- clg_cap_f_of_temp.setCoefficient6xTIMESY(-0.00000972)
223
- clg_cap_f_of_temp.setMinimumValueofx(12.77778)
224
- clg_cap_f_of_temp.setMaximumValueofx(23.88889)
225
- clg_cap_f_of_temp.setMinimumValueofy(23.88889)
226
- clg_cap_f_of_temp.setMaximumValueofy(46.11111)
227
-
228
- clg_cap_f_of_flow = OpenStudio::Model::CurveQuadratic.new(model)
229
- clg_cap_f_of_flow.setCoefficient1Constant(0.8)
230
- clg_cap_f_of_flow.setCoefficient2x(0.2)
231
- clg_cap_f_of_flow.setCoefficient3xPOW2(0)
232
- clg_cap_f_of_flow.setMinimumValueofx(0.5)
233
- clg_cap_f_of_flow.setMaximumValueofx(1.5)
234
-
235
- clg_energy_input_ratio_f_of_temp = OpenStudio::Model::CurveBiquadratic.new(model)
236
- clg_energy_input_ratio_f_of_temp.setCoefficient1Constant(0.342414409)
237
- clg_energy_input_ratio_f_of_temp.setCoefficient2x(0.034885008)
238
- clg_energy_input_ratio_f_of_temp.setCoefficient3xPOW2(-0.0006237)
239
- clg_energy_input_ratio_f_of_temp.setCoefficient4y(0.004977216)
240
- clg_energy_input_ratio_f_of_temp.setCoefficient5yPOW2(0.000437951)
241
- clg_energy_input_ratio_f_of_temp.setCoefficient6xTIMESY(-0.000728028)
242
- clg_energy_input_ratio_f_of_temp.setMinimumValueofx(12.77778)
243
- clg_energy_input_ratio_f_of_temp.setMaximumValueofx(23.88889)
244
- clg_energy_input_ratio_f_of_temp.setMinimumValueofy(23.88889)
245
- clg_energy_input_ratio_f_of_temp.setMaximumValueofy(46.11111)
246
-
247
- clg_energy_input_ratio_f_of_flow = OpenStudio::Model::CurveQuadratic.new(model)
248
- clg_energy_input_ratio_f_of_flow.setCoefficient1Constant(1.1552)
249
- clg_energy_input_ratio_f_of_flow.setCoefficient2x(-0.1808)
250
- clg_energy_input_ratio_f_of_flow.setCoefficient3xPOW2(0.0256)
251
- clg_energy_input_ratio_f_of_flow.setMinimumValueofx(0.5)
252
- clg_energy_input_ratio_f_of_flow.setMaximumValueofx(1.5)
253
-
254
- clg_part_load_ratio = OpenStudio::Model::CurveQuadratic.new(model)
255
- clg_part_load_ratio.setCoefficient1Constant(0.85)
256
- clg_part_load_ratio.setCoefficient2x(0.15)
257
- clg_part_load_ratio.setCoefficient3xPOW2(0.0)
258
- clg_part_load_ratio.setMinimumValueofx(0.0)
259
- clg_part_load_ratio.setMaximumValueofx(1.0)
260
- clg_part_load_ratio.setMinimumCurveOutput(0.7)
261
- clg_part_load_ratio.setMaximumCurveOutput(1.0)
262
-
263
- end
264
-
265
- clg_coil.setTotalCoolingCapacityFunctionOfTemperatureCurve(clg_cap_f_of_temp) unless clg_cap_f_of_temp.nil?
266
- clg_coil.setTotalCoolingCapacityFunctionOfFlowFractionCurve(clg_cap_f_of_flow) unless clg_cap_f_of_flow.nil?
267
- clg_coil.setEnergyInputRatioFunctionOfTemperatureCurve(clg_energy_input_ratio_f_of_temp) unless clg_energy_input_ratio_f_of_temp.nil?
268
- clg_coil.setEnergyInputRatioFunctionOfFlowFractionCurve(clg_energy_input_ratio_f_of_flow) unless clg_energy_input_ratio_f_of_flow.nil?
269
- clg_coil.setPartLoadFractionCorrelationCurve(clg_part_load_ratio) unless clg_part_load_ratio.nil?
270
-
271
- return clg_coil
272
- end
273
- end
@@ -1,159 +0,0 @@
1
- class Standard
2
- # @!group CoilCoolingDXTwoSpeed
3
-
4
- # Prototype CoilCoolingDXTwoSpeed object
5
- # Enters in default curves for coil by type of coil
6
- #
7
- # @param model [OpenStudio::Model::Model] OpenStudio model object
8
- # @param air_loop_node [<OpenStudio::Model::Node>] the coil will be placed on this node of the air loop
9
- # @param name [String] the name of the system, or nil in which case it will be defaulted
10
- # @param schedule [String] name of the availability schedule, or [<OpenStudio::Model::Schedule>] Schedule object, or nil in which case default to always on
11
- # @param type [String] the type of two speed DX coil to reference the correct curve set
12
- # @return [OpenStudio::Model::CoilCoolingDXTwoSpeed] the DX cooling coil
13
- def create_coil_cooling_dx_two_speed(model,
14
- air_loop_node: nil,
15
- name: '2spd DX Clg Coil',
16
- schedule: nil,
17
- type: nil)
18
-
19
- clg_coil = OpenStudio::Model::CoilCoolingDXTwoSpeed.new(model)
20
-
21
- # add to air loop if specified
22
- clg_coil.addToNode(air_loop_node) unless air_loop_node.nil?
23
-
24
- # set coil name
25
- clg_coil.setName(name)
26
-
27
- # set coil availability schedule
28
- if schedule.nil?
29
- # default always on
30
- coil_availability_schedule = model.alwaysOnDiscreteSchedule
31
- elsif schedule.instance_of?(String)
32
- coil_availability_schedule = model_add_schedule(model, schedule)
33
-
34
- if coil_availability_schedule.nil? && schedule == 'alwaysOffDiscreteSchedule'
35
- coil_availability_schedule = model.alwaysOffDiscreteSchedule
36
- elsif coil_availability_schedule.nil?
37
- coil_availability_schedule = model.alwaysOnDiscreteSchedule
38
- end
39
- elsif !schedule.to_Schedule.empty?
40
- coil_availability_schedule = schedule
41
- end
42
- clg_coil.setAvailabilitySchedule(coil_availability_schedule)
43
-
44
- clg_cap_f_of_temp = nil
45
- clg_cap_f_of_flow = nil
46
- clg_energy_input_ratio_f_of_temp = nil
47
- clg_energy_input_ratio_f_of_flow = nil
48
- clg_part_load_ratio = nil
49
- clg_cap_f_of_temp_low_spd = nil
50
- clg_energy_input_ratio_f_of_temp_low_spd = nil
51
-
52
- # curve sets
53
- if type == 'OS default'
54
- # use OS defaults
55
- elsif type == 'Residential Minisplit HP'
56
- # Performance curves
57
- # These coefficients are in SI units
58
- cool_cap_ft_coeffs_si = [0.7531983499655835, 0.003618193903031667, 0.0, 0.006574385031351544, -6.87181191015432e-05, 0.0]
59
- cool_eir_ft_coeffs_si = [-0.06376924779982301, -0.0013360593470367282, 1.413060577993827e-05, 0.019433076486584752, -4.91395947154321e-05, -4.909341249475308e-05]
60
- cool_cap_fflow_coeffs = [1, 0, 0]
61
- cool_eir_fflow_coeffs = [1, 0, 0]
62
- cool_plf_fplr_coeffs = [0.89, 0.11, 0]
63
-
64
- # Make the curves
65
- clg_cap_f_of_temp = create_curve_biquadratic(model, cool_cap_ft_coeffs_si, 'Cool-Cap-fT', 0, 100, 0, 100, nil, nil)
66
- clg_cap_f_of_flow = create_curve_quadratic(model, cool_cap_fflow_coeffs, 'Cool-Cap-fFF', 0, 2, 0, 2, is_dimensionless = true)
67
- clg_energy_input_ratio_f_of_temp = create_curve_biquadratic(model, cool_eir_ft_coeffs_si, 'Cool-EIR-fT', 0, 100, 0, 100, nil, nil)
68
- clg_energy_input_ratio_f_of_flow = create_curve_quadratic(model, cool_eir_fflow_coeffs, 'Cool-EIR-fFF', 0, 2, 0, 2, is_dimensionless = true)
69
- clg_part_load_ratio = create_curve_quadratic(model, cool_plf_fplr_coeffs, 'Cool-PLF-fPLR', 0, 1, 0, 1, is_dimensionless = true)
70
- clg_cap_f_of_temp_low_spd = create_curve_biquadratic(model, cool_cap_ft_coeffs_si, 'Cool-Cap-fT', 0, 100, 0, 100, nil, nil)
71
- clg_energy_input_ratio_f_of_temp_low_spd = create_curve_biquadratic(model, cool_eir_ft_coeffs_si, 'Cool-EIR-fT', 0, 100, 0, 100, nil, nil)
72
- clg_coil.setRatedLowSpeedSensibleHeatRatio(0.73)
73
- clg_coil.setCondenserType('AirCooled')
74
- else # default curve set, type == 'PSZ-AC' || 'Split AC' || 'PTAC'
75
- clg_cap_f_of_temp = OpenStudio::Model::CurveBiquadratic.new(model)
76
- clg_cap_f_of_temp.setCoefficient1Constant(0.42415)
77
- clg_cap_f_of_temp.setCoefficient2x(0.04426)
78
- clg_cap_f_of_temp.setCoefficient3xPOW2(-0.00042)
79
- clg_cap_f_of_temp.setCoefficient4y(0.00333)
80
- clg_cap_f_of_temp.setCoefficient5yPOW2(-0.00008)
81
- clg_cap_f_of_temp.setCoefficient6xTIMESY(-0.00021)
82
- clg_cap_f_of_temp.setMinimumValueofx(17.0)
83
- clg_cap_f_of_temp.setMaximumValueofx(22.0)
84
- clg_cap_f_of_temp.setMinimumValueofy(13.0)
85
- clg_cap_f_of_temp.setMaximumValueofy(46.0)
86
-
87
- clg_cap_f_of_flow = OpenStudio::Model::CurveQuadratic.new(model)
88
- clg_cap_f_of_flow.setCoefficient1Constant(0.77136)
89
- clg_cap_f_of_flow.setCoefficient2x(0.34053)
90
- clg_cap_f_of_flow.setCoefficient3xPOW2(-0.11088)
91
- clg_cap_f_of_flow.setMinimumValueofx(0.75918)
92
- clg_cap_f_of_flow.setMaximumValueofx(1.13877)
93
-
94
- clg_energy_input_ratio_f_of_temp = OpenStudio::Model::CurveBiquadratic.new(model)
95
- clg_energy_input_ratio_f_of_temp.setCoefficient1Constant(1.23649)
96
- clg_energy_input_ratio_f_of_temp.setCoefficient2x(-0.02431)
97
- clg_energy_input_ratio_f_of_temp.setCoefficient3xPOW2(0.00057)
98
- clg_energy_input_ratio_f_of_temp.setCoefficient4y(-0.01434)
99
- clg_energy_input_ratio_f_of_temp.setCoefficient5yPOW2(0.00063)
100
- clg_energy_input_ratio_f_of_temp.setCoefficient6xTIMESY(-0.00038)
101
- clg_energy_input_ratio_f_of_temp.setMinimumValueofx(17.0)
102
- clg_energy_input_ratio_f_of_temp.setMaximumValueofx(22.0)
103
- clg_energy_input_ratio_f_of_temp.setMinimumValueofy(13.0)
104
- clg_energy_input_ratio_f_of_temp.setMaximumValueofy(46.0)
105
-
106
- clg_energy_input_ratio_f_of_flow = OpenStudio::Model::CurveQuadratic.new(model)
107
- clg_energy_input_ratio_f_of_flow.setCoefficient1Constant(1.20550)
108
- clg_energy_input_ratio_f_of_flow.setCoefficient2x(-0.32953)
109
- clg_energy_input_ratio_f_of_flow.setCoefficient3xPOW2(0.12308)
110
- clg_energy_input_ratio_f_of_flow.setMinimumValueofx(0.75918)
111
- clg_energy_input_ratio_f_of_flow.setMaximumValueofx(1.13877)
112
-
113
- clg_part_load_ratio = OpenStudio::Model::CurveQuadratic.new(model)
114
- clg_part_load_ratio.setCoefficient1Constant(0.77100)
115
- clg_part_load_ratio.setCoefficient2x(0.22900)
116
- clg_part_load_ratio.setCoefficient3xPOW2(0.0)
117
- clg_part_load_ratio.setMinimumValueofx(0.0)
118
- clg_part_load_ratio.setMaximumValueofx(1.0)
119
-
120
- clg_cap_f_of_temp_low_spd = OpenStudio::Model::CurveBiquadratic.new(model)
121
- clg_cap_f_of_temp_low_spd.setCoefficient1Constant(0.42415)
122
- clg_cap_f_of_temp_low_spd.setCoefficient2x(0.04426)
123
- clg_cap_f_of_temp_low_spd.setCoefficient3xPOW2(-0.00042)
124
- clg_cap_f_of_temp_low_spd.setCoefficient4y(0.00333)
125
- clg_cap_f_of_temp_low_spd.setCoefficient5yPOW2(-0.00008)
126
- clg_cap_f_of_temp_low_spd.setCoefficient6xTIMESY(-0.00021)
127
- clg_cap_f_of_temp_low_spd.setMinimumValueofx(17.0)
128
- clg_cap_f_of_temp_low_spd.setMaximumValueofx(22.0)
129
- clg_cap_f_of_temp_low_spd.setMinimumValueofy(13.0)
130
- clg_cap_f_of_temp_low_spd.setMaximumValueofy(46.0)
131
-
132
- clg_energy_input_ratio_f_of_temp_low_spd = OpenStudio::Model::CurveBiquadratic.new(model)
133
- clg_energy_input_ratio_f_of_temp_low_spd.setCoefficient1Constant(1.23649)
134
- clg_energy_input_ratio_f_of_temp_low_spd.setCoefficient2x(-0.02431)
135
- clg_energy_input_ratio_f_of_temp_low_spd.setCoefficient3xPOW2(0.00057)
136
- clg_energy_input_ratio_f_of_temp_low_spd.setCoefficient4y(-0.01434)
137
- clg_energy_input_ratio_f_of_temp_low_spd.setCoefficient5yPOW2(0.00063)
138
- clg_energy_input_ratio_f_of_temp_low_spd.setCoefficient6xTIMESY(-0.00038)
139
- clg_energy_input_ratio_f_of_temp_low_spd.setMinimumValueofx(17.0)
140
- clg_energy_input_ratio_f_of_temp_low_spd.setMaximumValueofx(22.0)
141
- clg_energy_input_ratio_f_of_temp_low_spd.setMinimumValueofy(13.0)
142
- clg_energy_input_ratio_f_of_temp_low_spd.setMaximumValueofy(46.0)
143
-
144
- clg_coil.setRatedLowSpeedSensibleHeatRatio(OpenStudio::OptionalDouble.new(0.69))
145
- clg_coil.setBasinHeaterCapacity(10)
146
- clg_coil.setBasinHeaterSetpointTemperature(2.0)
147
- end
148
-
149
- clg_coil.setTotalCoolingCapacityFunctionOfTemperatureCurve(clg_cap_f_of_temp) unless clg_cap_f_of_temp.nil?
150
- clg_coil.setTotalCoolingCapacityFunctionOfFlowFractionCurve(clg_cap_f_of_flow) unless clg_cap_f_of_flow.nil?
151
- clg_coil.setEnergyInputRatioFunctionOfTemperatureCurve(clg_energy_input_ratio_f_of_temp) unless clg_energy_input_ratio_f_of_temp.nil?
152
- clg_coil.setEnergyInputRatioFunctionOfFlowFractionCurve(clg_energy_input_ratio_f_of_flow) unless clg_energy_input_ratio_f_of_flow.nil?
153
- clg_coil.setPartLoadFractionCorrelationCurve(clg_part_load_ratio) unless clg_part_load_ratio.nil?
154
- clg_coil.setLowSpeedTotalCoolingCapacityFunctionOfTemperatureCurve(clg_cap_f_of_temp_low_spd) unless clg_cap_f_of_temp_low_spd.nil?
155
- clg_coil.setLowSpeedEnergyInputRatioFunctionOfTemperatureCurve(clg_energy_input_ratio_f_of_temp_low_spd) unless clg_energy_input_ratio_f_of_temp_low_spd.nil?
156
-
157
- return clg_coil
158
- end
159
- end