openstudio-standards 0.8.2 → 0.8.3

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 (71) hide show
  1. checksums.yaml +4 -4
  2. data/data/standards/OpenStudio_Standards-ashrae_90_1-ALL-comstock(space_types).xlsx +0 -0
  3. data/data/standards/openstudio_standards_duplicates_log.csv +7962 -0
  4. data/lib/openstudio-standards/refrigeration/create_case.rb +58 -21
  5. data/lib/openstudio-standards/refrigeration/create_typical_refrigeration.rb +4 -2
  6. data/lib/openstudio-standards/refrigeration/create_walkin.rb +57 -22
  7. data/lib/openstudio-standards/refrigeration/data/refrigerated_cases.csv +31 -31
  8. data/lib/openstudio-standards/refrigeration/data/refrigerated_walkins.csv +76 -76
  9. data/lib/openstudio-standards/service_water_heating/create_typical.rb +10 -10
  10. data/lib/openstudio-standards/service_water_heating/create_water_heater.rb +10 -0
  11. data/lib/openstudio-standards/service_water_heating/create_water_heating_loop.rb +16 -3
  12. data/lib/openstudio-standards/service_water_heating/data/convert_data.rb +9 -9
  13. data/lib/openstudio-standards/service_water_heating/data/typical_water_use_equipment.csv +49 -49
  14. data/lib/openstudio-standards/service_water_heating/data/typical_water_use_equipment.json +159 -159
  15. data/lib/openstudio-standards/standards/Standards.CoilCoolingDXMultiSpeed.rb +7 -18
  16. data/lib/openstudio-standards/standards/Standards.CoilCoolingDXSingleSpeed.rb +10 -20
  17. data/lib/openstudio-standards/standards/Standards.CoilCoolingDXTwoSpeed.rb +6 -15
  18. data/lib/openstudio-standards/standards/Standards.CoilCoolingWaterToAirHeatPumpEquationFit.rb +5 -6
  19. data/lib/openstudio-standards/standards/Standards.CoilDX.rb +93 -43
  20. data/lib/openstudio-standards/standards/Standards.CoilHeatingDXMultiSpeed.rb +5 -5
  21. data/lib/openstudio-standards/standards/Standards.CoilHeatingDXSingleSpeed.rb +135 -37
  22. data/lib/openstudio-standards/standards/Standards.CoilHeatingWaterToAirHeatPumpEquationFit.rb +2 -2
  23. data/lib/openstudio-standards/standards/Standards.Model.rb +9 -4
  24. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.computer_room_acs.json +302 -140
  25. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.heat_pumps.json +648 -326
  26. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.heat_pumps_heating.json +371 -90
  27. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.water_heaters.json +66 -22
  28. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.computer_room_acs.json +302 -140
  29. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.heat_pumps.json +1012 -296
  30. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.heat_pumps_heating.json +443 -79
  31. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.water_heaters.json +66 -22
  32. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.computer_room_acs.json +302 -140
  33. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.heat_pumps.json +672 -306
  34. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.heat_pumps_heating.json +354 -74
  35. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.water_heaters.json +72 -24
  36. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.computer_room_acs.json +302 -140
  37. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.energy_recovery.json +8 -8
  38. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.heat_pumps.json +930 -604
  39. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.heat_pumps_heating.json +415 -111
  40. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.water_heaters.json +72 -24
  41. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.computer_room_acs.json +602 -140
  42. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.heat_pumps.json +1005 -333
  43. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.heat_pumps_heating.json +642 -88
  44. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.water_heaters.json +78 -26
  45. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.computer_room_acs.json +722 -140
  46. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.heat_pumps.json +1741 -426
  47. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.heat_pumps_heating.json +1108 -111
  48. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.water_heaters.json +186 -62
  49. data/lib/openstudio-standards/standards/ashrae_90_1/data/ashrae_90_1.schedules.json +62 -232
  50. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilCoolingDXSingleSpeed.rb +2 -3
  51. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilCoolingDXTwoSpeed.rb +1 -1
  52. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilDX.rb +7 -18
  53. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilHeatingDXSingleSpeed.rb +9 -7
  54. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilHeatingGas.rb +1 -1
  55. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.heat_pumps.json +154 -69
  56. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.heat_pumps_heating.json +72 -72
  57. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.water_heaters.json +382 -295
  58. data/lib/openstudio-standards/standards/deer/data/deer.schedules.json +62 -232
  59. data/lib/openstudio-standards/standards/necb/BTAPPRE1980/data/heat_pumps.json +16 -0
  60. data/lib/openstudio-standards/standards/necb/BTAPPRE1980/data/heat_pumps_heating.json +6 -0
  61. data/lib/openstudio-standards/standards/necb/NECB2011/data/heat_pumps.json +16 -0
  62. data/lib/openstudio-standards/standards/necb/NECB2011/data/heat_pumps_heating.json +6 -0
  63. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_systems.rb +1 -1
  64. data/lib/openstudio-standards/standards/necb/NECB2011/necb_2011.rb +2 -2
  65. data/lib/openstudio-standards/standards/necb/NECB2015/data/heat_pumps.json +16 -0
  66. data/lib/openstudio-standards/standards/necb/NECB2015/data/heat_pumps_heating.json +8 -0
  67. data/lib/openstudio-standards/standards/necb/NECB2020/data/heat_pumps.json +20 -0
  68. data/lib/openstudio-standards/standards/necb/NECB2020/data/heat_pumps_heating.json +10 -0
  69. data/lib/openstudio-standards/utilities/simulation.rb +3 -2
  70. data/lib/openstudio-standards/version.rb +1 -1
  71. metadata +5 -3
@@ -7,10 +7,7 @@ class Standard
7
7
  # @param sql_db_vars_map [Hash] hash map
8
8
  # @return [Hash] hash of coil objects
9
9
  def coil_cooling_dx_multi_speed_apply_efficiency_and_curves(coil_cooling_dx_multi_speed, sql_db_vars_map)
10
- successfully_set_all_properties = true
11
-
12
- # Define the criteria to find the chiller properties
13
- # in the hvac standards data set.
10
+ # Define the criteria to find the cooling coil properties in the hvac standards data set.
14
11
  search_criteria = {}
15
12
  search_criteria['template'] = template
16
13
  cooling_type = coil_cooling_dx_multi_speed.condenserType
@@ -68,8 +65,7 @@ class Standard
68
65
  capacity_w = coil_cooling_dx_multi_speed.autosizedSpeed4GrossRatedTotalCoolingCapacity.get
69
66
  else
70
67
  OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.CoilCoolingDXMultiSpeed', "For #{coil_cooling_dx_multi_speed.name} capacity is not available, cannot apply efficiency standard.")
71
- successfully_set_all_properties = false
72
- return successfully_set_all_properties
68
+ return false
73
69
  end
74
70
 
75
71
  # Volume flow rate
@@ -105,9 +101,8 @@ class Standard
105
101
 
106
102
  # Check to make sure properties were found
107
103
  if ac_props.nil?
108
- OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.CoilCoolingDXMultiSpeed', "For #{coil_cooling_dx_multi_speed.name}, cannot find efficiency info using #{search_criteria}, cannot apply efficiency standard.")
109
- successfully_set_all_properties = false
110
- return successfully_set_all_properties
104
+ OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.CoilCoolingDXMultiSpeed', "For #{coil_cooling_dx_multi_speed.name}, cannot find efficiency info using #{search_criteria} and capacity #{capacity_btu_per_hr} btu/hr, cannot apply efficiency standard.")
105
+ return false
111
106
  end
112
107
 
113
108
  # Make the COOL-CAP-FT curve
@@ -124,7 +119,6 @@ class Standard
124
119
  end
125
120
  else
126
121
  OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.CoilCoolingDXMultiSpeed', "For #{coil_cooling_dx_multi_speed.name}, cannot find cool_cap_ft curve, will not be set.")
127
- successfully_set_all_properties = false
128
122
  end
129
123
 
130
124
  # Make the COOL-CAP-FFLOW curve
@@ -132,7 +126,7 @@ class Standard
132
126
  if ac_props['cool_cap_fflow']
133
127
  cool_cap_fflow = model_add_curve(coil_coolingcoil_cooling_dx_multi_speed_dx_two_speed.model, ac_props['cool_cap_fflow'])
134
128
  else
135
- cool_cap_fflow_curve_name = coil_dx_cap_fff(coil_cooling_dx_multi_speed)
129
+ cool_cap_fflow_curve_name = coil_dx_cap_fflow(coil_cooling_dx_multi_speed)
136
130
  cool_cap_fflow = model_add_curve(coil_cooling_dx_multi_speed.model, cool_cap_fflow_curve_name)
137
131
  end
138
132
  if cool_cap_fflow
@@ -141,7 +135,6 @@ class Standard
141
135
  end
142
136
  else
143
137
  OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.CoilCoolingDXMultiSpeed', "For #{coil_cooling_dx_multi_speed.name}, cannot find cool_cap_fflow curve, will not be set.")
144
- successfully_set_all_properties = false
145
138
  end
146
139
 
147
140
  # Make the COOL-EIR-FT curve
@@ -158,7 +151,6 @@ class Standard
158
151
  end
159
152
  else
160
153
  OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.CoilCoolingDXMultiSpeed', "For #{coil_cooling_dx_multi_speed.name}, cannot find cool_eir_ft curve, will not be set.")
161
- successfully_set_all_properties = false
162
154
  end
163
155
 
164
156
  # Make the COOL-EIR-FFLOW curve
@@ -166,7 +158,7 @@ class Standard
166
158
  if ac_props['cool_eir_fflow']
167
159
  cool_eir_fflow = model_add_curve(coil_cooling_dx_multi_speed.model, ac_props['cool_eir_fflow'])
168
160
  else
169
- cool_eir_fflow_curve_name = coil_dx_eir_fff(coil_cooling_dx_multi_speed)
161
+ cool_eir_fflow_curve_name = coil_dx_eir_fflow(coil_cooling_dx_multi_speed)
170
162
  cool_eir_fflow = model_add_curve(coil_cooling_dx_multi_speed.model, cool_eir_fflow_curve_name)
171
163
  end
172
164
  if cool_eir_fflow
@@ -175,7 +167,6 @@ class Standard
175
167
  end
176
168
  else
177
169
  OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.CoilCoolingDXMultiSpeed', "For #{coil_cooling_dx_multi_speed.name}, cannot find cool_eir_fflow curve, will not be set.")
178
- successfully_set_all_properties = false
179
170
  end
180
171
 
181
172
  # Make the COOL-PLF-FPLR curve
@@ -192,7 +183,6 @@ class Standard
192
183
  end
193
184
  else
194
185
  OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.CoilCoolingDXMultiSpeed', "For #{coil_cooling_dx_multi_speed.name}, cannot find cool_plf_fplr curve, will not be set.")
195
- successfully_set_all_properties = false
196
186
  end
197
187
 
198
188
  # Get the minimum efficiency standards
@@ -249,8 +239,7 @@ class Standard
249
239
  capacity_w = coil_cooling_dx_multi_speed.stages[3].autosizedGrossRatedTotalCoolingCapacity.get
250
240
  else
251
241
  OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.CoilCoolingDXMultiSpeed', "For #{coil_cooling_dx_multi_speed.name} capacity is not available, cannot apply efficiency standard.")
252
- successfully_set_all_properties = false
253
- return successfully_set_all_properties
242
+ return false
254
243
  end
255
244
 
256
245
  return capacity_w
@@ -64,8 +64,8 @@ class Standard
64
64
  (template == 'BTAP1980TO2010'))
65
65
  if search_criteria.keys.include?('equipment_type')
66
66
  equipment_type = search_criteria['equipment_type']
67
- if equipment_type == 'PTAC'
68
- search_criteria['application'] = coil_dx_ptac_application(coil_cooling_dx_single_speed)
67
+ if ['PTAC', 'PTHP'].include?(equipment_type) && template.include?('90.1')
68
+ search_criteria['application'] = coil_dx_packaged_terminal_application(coil_cooling_dx_single_speed)
69
69
  end
70
70
  elsif !coil_dx_heat_pump?(coil_cooling_dx_single_speed)
71
71
  search_criteria['equipment_type'] = 'Air Conditioners'
@@ -83,12 +83,10 @@ class Standard
83
83
  # Lookup efficiencies depending on whether it is a unitary AC or a heat pump
84
84
  ac_props = nil
85
85
  ac_props = model_find_object(database, search_criteria, capacity_btu_per_hr, Date.today)
86
-
87
86
  # Check to make sure properties were found
88
87
  if ac_props.nil?
89
- OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.CoilCoolingDXSingleSpeed', "For #{coil_cooling_dx_single_speed.name}, cannot find efficiency info using #{search_criteria}, cannot apply efficiency standard.")
90
- successfully_set_all_properties = false
91
- return successfully_set_all_properties
88
+ OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.CoilCoolingDXSingleSpeed', "For #{coil_cooling_dx_single_speed.name}, cannot find efficiency info using #{search_criteria} and capacity #{capacity_btu_per_hr} btu/hr, cannot apply efficiency standard.")
89
+ return false
92
90
  end
93
91
 
94
92
  # Get the minimum efficiency standards
@@ -97,7 +95,7 @@ class Standard
97
95
  # If PTHP, use equations if coefficients are specified
98
96
  pthp_eer_coeff_1 = ac_props['pthp_eer_coefficient_1']
99
97
  pthp_eer_coeff_2 = ac_props['pthp_eer_coefficient_2']
100
- if sub_category == 'PTHP' && !pthp_eer_coeff_1.nil? && !pthp_eer_coeff_2.nil?
98
+ if equipment_type == 'PTHP' && !pthp_eer_coeff_1.nil? && !pthp_eer_coeff_2.nil?
101
99
  # TABLE 6.8.1D
102
100
  # EER = pthp_eer_coeff_1 - (pthp_eer_coeff_2 * Cap / 1000)
103
101
  # Note c: Cap means the rated cooling capacity of the product in Btu/h.
@@ -223,8 +221,6 @@ class Standard
223
221
  # @param necb_ref_hp [Boolean] for compatability with NECB ruleset only.
224
222
  # @return [Hash] hash of coil objects
225
223
  def coil_cooling_dx_single_speed_apply_efficiency_and_curves(coil_cooling_dx_single_speed, sql_db_vars_map, necb_ref_hp = false)
226
- successfully_set_all_properties = true
227
-
228
224
  # Get efficiencies data depending on whether it is a unitary AC or a heat pump
229
225
  coil_efficiency_data = if coil_dx_heat_pump?(coil_cooling_dx_single_speed)
230
226
  standards_data['heat_pumps']
@@ -241,8 +237,8 @@ class Standard
241
237
  (template == 'BTAP1980TO2010'))
242
238
  if search_criteria.keys.include?('equipment_type')
243
239
  equipment_type = search_criteria['equipment_type']
244
- if equipment_type == 'PTAC'
245
- search_criteria['application'] = coil_dx_ptac_application(coil_cooling_dx_single_speed)
240
+ if ['PTAC', 'PTHP'].include?(equipment_type) && template.include?('90.1')
241
+ search_criteria['application'] = coil_dx_packaged_terminal_application(coil_cooling_dx_single_speed)
246
242
  end
247
243
  elsif !coil_dx_heat_pump?(coil_cooling_dx_single_speed)
248
244
  search_criteria['equipment_type'] = 'Air Conditioners'
@@ -262,8 +258,7 @@ class Standard
262
258
 
263
259
  # Check to make sure properties were found
264
260
  if ac_props.nil?
265
- OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.CoilCoolingDXSingleSpeed', "For #{coil_cooling_dx_single_speed.name}, cannot find efficiency info using #{search_criteria}, cannot apply efficiency standard.")
266
- successfully_set_all_properties = false
261
+ OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.CoilCoolingDXSingleSpeed', "For #{coil_cooling_dx_single_speed.name}, cannot find efficiency info using #{search_criteria} and capacity #{capacity_btu_per_hr} btu/hr, cannot apply efficiency standard.")
267
262
  return sql_db_vars_map
268
263
  end
269
264
 
@@ -280,7 +275,6 @@ class Standard
280
275
  coil_cooling_dx_single_speed.setTotalCoolingCapacityFunctionOfTemperatureCurve(cool_cap_ft)
281
276
  else
282
277
  OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.CoilCoolingDXSingleSpeed', "For #{coil_cooling_dx_single_speed.name}, cannot find cool_cap_ft curve, will not be set.")
283
- successfully_set_all_properties = false
284
278
  end
285
279
 
286
280
  # Make the COOL-CAP-FFLOW curve
@@ -288,14 +282,13 @@ class Standard
288
282
  if ac_props['cool_cap_fflow']
289
283
  cool_cap_fflow = model_add_curve(coil_cooling_dx_single_speed.model, ac_props['cool_cap_fflow'])
290
284
  else
291
- cool_cap_fflow_curve_name = coil_dx_cap_fff(coil_cooling_dx_single_speed, equipment_type_field)
285
+ cool_cap_fflow_curve_name = coil_dx_cap_fflow(coil_cooling_dx_single_speed, equipment_type_field)
292
286
  cool_cap_fflow = model_add_curve(coil_cooling_dx_single_speed.model, cool_cap_fflow_curve_name)
293
287
  end
294
288
  if cool_cap_fflow
295
289
  coil_cooling_dx_single_speed.setTotalCoolingCapacityFunctionOfFlowFractionCurve(cool_cap_fflow)
296
290
  else
297
291
  OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.CoilCoolingDXSingleSpeed', "For #{coil_cooling_dx_single_speed.name}, cannot find cool_cap_fflow curve, will not be set.")
298
- successfully_set_all_properties = false
299
292
  end
300
293
 
301
294
  # Make the COOL-EIR-FT curve
@@ -310,7 +303,6 @@ class Standard
310
303
  coil_cooling_dx_single_speed.setEnergyInputRatioFunctionOfTemperatureCurve(cool_eir_ft)
311
304
  else
312
305
  OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.CoilCoolingDXSingleSpeed', "For #{coil_cooling_dx_single_speed.name}, cannot find cool_eir_ft curve, will not be set.")
313
- successfully_set_all_properties = false
314
306
  end
315
307
 
316
308
  # Make the COOL-EIR-FFLOW curve
@@ -318,14 +310,13 @@ class Standard
318
310
  if ac_props['cool_eir_fflow']
319
311
  cool_eir_fflow = model_add_curve(coil_cooling_dx_single_speed.model, ac_props['cool_eir_fflow'])
320
312
  else
321
- cool_eir_fflow_curve_name = coil_dx_eir_fff(coil_cooling_dx_single_speed, equipment_type_field)
313
+ cool_eir_fflow_curve_name = coil_dx_eir_fflow(coil_cooling_dx_single_speed, equipment_type_field)
322
314
  cool_eir_fflow = model_add_curve(coil_cooling_dx_single_speed.model, cool_eir_fflow_curve_name)
323
315
  end
324
316
  if cool_eir_fflow
325
317
  coil_cooling_dx_single_speed.setEnergyInputRatioFunctionOfFlowFractionCurve(cool_eir_fflow)
326
318
  else
327
319
  OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.CoilCoolingDXSingleSpeed', "For #{coil_cooling_dx_single_speed.name}, cannot find cool_eir_fflow curve, will not be set.")
328
- successfully_set_all_properties = false
329
320
  end
330
321
 
331
322
  # Make the COOL-PLF-FPLR curve
@@ -340,7 +331,6 @@ class Standard
340
331
  coil_cooling_dx_single_speed.setPartLoadFractionCorrelationCurve(cool_plf_fplr)
341
332
  else
342
333
  OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.CoilCoolingDXSingleSpeed', "For #{coil_cooling_dx_single_speed.name}, cannot find cool_plf_fplr curve, will not be set.")
343
- successfully_set_all_properties = false
344
334
  end
345
335
 
346
336
  # Preserve the original name
@@ -57,9 +57,8 @@ class Standard
57
57
 
58
58
  # Check to make sure properties were found
59
59
  if ac_props.nil?
60
- OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.CoilCoolingDXTwoSpeed', "For #{coil_cooling_dx_two_speed.name}, cannot find efficiency info using #{search_criteria}, cannot apply efficiency standard.")
61
- successfully_set_all_properties = false
62
- return successfully_set_all_properties
60
+ OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.CoilCoolingDXTwoSpeed', "For #{coil_cooling_dx_two_speed.name}, cannot find efficiency info using #{search_criteria} and capacity #{capacity_btu_per_hr} btu/hr, cannot apply efficiency standard.")
61
+ return false
63
62
  end
64
63
 
65
64
  # Get the minimum efficiency standards
@@ -67,7 +66,7 @@ class Standard
67
66
 
68
67
  # Check to make sure properties were found
69
68
  if ac_props.nil?
70
- OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.CoilCoolingDXTwoSpeed', "For #{coil_cooling_dx_two_speed.name}, cannot find efficiency info using #{search_criteria}, cannot apply efficiency standard.")
69
+ OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.CoilCoolingDXTwoSpeed', "For #{coil_cooling_dx_two_speed.name}, cannot find efficiency info using #{search_criteria} and capacity #{capacity_btu_per_hr} btu/hr, cannot apply efficiency standard.")
71
70
  return cop # value of nil
72
71
  end
73
72
 
@@ -143,8 +142,6 @@ class Standard
143
142
  # @param sql_db_vars_map [Hash] hash map
144
143
  # @return [Hash] hash of coil objects
145
144
  def coil_cooling_dx_two_speed_apply_efficiency_and_curves(coil_cooling_dx_two_speed, sql_db_vars_map)
146
- successfully_set_all_properties = true
147
-
148
145
  # Get the search criteria
149
146
  search_criteria = coil_dx_find_search_criteria(coil_cooling_dx_two_speed)
150
147
 
@@ -176,8 +173,7 @@ class Standard
176
173
 
177
174
  # Check to make sure properties were found
178
175
  if ac_props.nil?
179
- OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.CoilCoolingDXTwoSpeed', "For #{coil_cooling_dx_two_speed.name}, cannot find efficiency info using #{search_criteria}, cannot apply efficiency standard.")
180
- successfully_set_all_properties = false
176
+ OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.CoilCoolingDXTwoSpeed', "For #{coil_cooling_dx_two_speed.name}, cannot find efficiency info using #{search_criteria} and capacity #{capacity_btu_per_hr} btu/hr, cannot apply efficiency standard.")
181
177
  return sql_db_vars_map
182
178
  end
183
179
 
@@ -194,7 +190,6 @@ class Standard
194
190
  coil_cooling_dx_two_speed.setLowSpeedTotalCoolingCapacityFunctionOfTemperatureCurve(cool_cap_ft)
195
191
  else
196
192
  OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.CoilCoolingDXTwoSpeed', "For #{coil_cooling_dx_two_speed.name}, cannot find cool_cap_ft curve, will not be set.")
197
- successfully_set_all_properties = false
198
193
  end
199
194
 
200
195
  # Make the total COOL-CAP-FFLOW curve
@@ -202,14 +197,13 @@ class Standard
202
197
  if ac_props['cool_cap_fflow']
203
198
  cool_cap_fflow = model_add_curve(coil_cooling_dx_two_speed.model, ac_props['cool_cap_fflow'])
204
199
  else
205
- cool_cap_fflow_curve_name = coil_dx_cap_fff(coil_cooling_dx_two_speed)
200
+ cool_cap_fflow_curve_name = coil_dx_cap_fflow(coil_cooling_dx_two_speed)
206
201
  cool_cap_fflow = model_add_curve(coil_cooling_dx_two_speed.model, cool_cap_fflow_curve_name)
207
202
  end
208
203
  if cool_cap_fflow
209
204
  coil_cooling_dx_two_speed.setTotalCoolingCapacityFunctionOfFlowFractionCurve(cool_cap_fflow)
210
205
  else
211
206
  OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.CoilCoolingDXTwoSpeed', "For #{coil_cooling_dx_two_speed.name}, cannot find cool_cap_fflow curve, will not be set.")
212
- successfully_set_all_properties = false
213
207
  end
214
208
 
215
209
  # Make the COOL-EIR-FT curve
@@ -225,7 +219,6 @@ class Standard
225
219
  coil_cooling_dx_two_speed.setLowSpeedEnergyInputRatioFunctionOfTemperatureCurve(cool_eir_ft)
226
220
  else
227
221
  OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.CoilCoolingDXTwoSpeed', "For #{coil_cooling_dx_two_speed.name}, cannot find cool_eir_ft curve, will not be set.")
228
- successfully_set_all_properties = false
229
222
  end
230
223
 
231
224
  # Make the COOL-EIR-FFLOW curve
@@ -233,14 +226,13 @@ class Standard
233
226
  if ac_props['cool_eir_fflow']
234
227
  cool_eir_fflow = model_add_curve(coil_cooling_dx_two_speed.model, ac_props['cool_eir_fflow'])
235
228
  else
236
- cool_eir_fflow_curve_name = coil_dx_eir_fff(coil_cooling_dx_two_speed)
229
+ cool_eir_fflow_curve_name = coil_dx_eir_fflow(coil_cooling_dx_two_speed)
237
230
  cool_eir_fflow = model_add_curve(coil_cooling_dx_two_speed.model, cool_eir_fflow_curve_name)
238
231
  end
239
232
  if cool_eir_fflow
240
233
  coil_cooling_dx_two_speed.setEnergyInputRatioFunctionOfFlowFractionCurve(cool_eir_fflow)
241
234
  else
242
235
  OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.CoilCoolingDXTwoSpeed', "For #{coil_cooling_dx_two_speed.name}, cannot find cool_eir_fflow curve, will not be set.")
243
- successfully_set_all_properties = false
244
236
  end
245
237
 
246
238
  # Make the COOL-PLF-FPLR curve
@@ -255,7 +247,6 @@ class Standard
255
247
  coil_cooling_dx_two_speed.setPartLoadFractionCorrelationCurve(cool_plf_fplr)
256
248
  else
257
249
  OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.CoilCoolingDXTwoSpeed', "For #{coil_cooling_dx_two_speed.name}, cannot find cool_plf_fplr curve, will not be set.")
258
- successfully_set_all_properties = false
259
250
  end
260
251
 
261
252
  # Preserve the original name
@@ -29,11 +29,10 @@ class Standard
29
29
  search_criteria['template'] = template
30
30
  if computer_room_air_conditioner
31
31
  search_criteria['cooling_type'] = 'WaterCooled'
32
- search_criteria['heating_type'] = 'All Other'
33
- search_criteria['subcategory'] = 'CRAC'
32
+ search_criteria['standard_model'] = 'Downflow units'
34
33
  cooling_type = search_criteria['cooling_type']
35
- heating_type = search_criteria['heating_type']
36
- sub_category = search_criteria['subcategory']
34
+ heating_type = 'All Other'
35
+ sub_category = 'CRAC'
37
36
  end
38
37
  capacity_w = coil_cooling_water_to_air_heat_pump_find_capacity(coil_cooling_water_to_air_heat_pump)
39
38
  capacity_btu_per_hr = OpenStudio.convert(capacity_w, 'W', 'Btu/hr').get
@@ -61,7 +60,7 @@ class Standard
61
60
 
62
61
  # Check to make sure properties were found
63
62
  if coil_props.nil?
64
- OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.CoilCoolingWaterToAirHeatPumpEquationFit', "For #{coil_cooling_water_to_air_heat_pump.name}, cannot find efficiency info using #{search_criteria}, cannot apply efficiency standard.")
63
+ OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.CoilCoolingWaterToAirHeatPumpEquationFit', "For #{coil_cooling_water_to_air_heat_pump.name}, cannot find efficiency info using #{search_criteria} and capacity #{capacity_btu_per_hr} btu/hr, cannot apply efficiency standard.")
65
64
  successfully_set_all_properties = false
66
65
  return successfully_set_all_properties
67
66
  end
@@ -129,7 +128,7 @@ class Standard
129
128
  matching_objects = model_find_objects(standards_data['water_source_heat_pumps'], search_criteria, nil, Date.today)
130
129
  if matching_objects.empty?
131
130
  # This proves that the search_criteria has issue finding the correct coil prop
132
- OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.CoilCoolingWaterToAirHeatPumpEquationFit', "For #{coil_cooling_water_to_air_heat_pump.name}, cannot find efficiency info using #{search_criteria}, cannot apply efficiency standard.")
131
+ OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.CoilCoolingWaterToAirHeatPumpEquationFit', "For #{coil_cooling_water_to_air_heat_pump.name}, cannot find efficiency info using #{search_criteria} and capacity #{capacity_btu_per_hr} btu/hr, cannot apply efficiency standard.")
133
132
  return sql_db_vars_map
134
133
  end
135
134
  end
@@ -26,22 +26,12 @@ module CoilDX
26
26
  sub_category = 'CRAC'
27
27
  end
28
28
 
29
- if coil_dx.airLoopHVAC.empty? && coil_dx.containingZoneHVACComponent.is_initialized
30
- containing_comp = coil_dx.containingZoneHVACComponent.get
31
- # PTHP
32
- if containing_comp.to_ZoneHVACPackagedTerminalHeatPump.is_initialized
33
- sub_category = 'PTHP'
34
- end
35
- # @todo Add other zone hvac systems
36
- end
37
-
38
29
  return sub_category
39
30
  end
40
31
 
41
32
  # Determine if it is a heat pump
42
33
  #
43
- # @param coil_dx [OpenStudio::Model::StraightComponent] coil cooling object, allowable types:
44
- # CoilCoolingDXSingleSpeed, CoilCoolingDXTwoSpeed, CoilCoolingDXMultiSpeed
34
+ # @param coil_dx [OpenStudio::Model::StraightComponent] coil cooling object
45
35
  # @return [Boolean] returns true if it is a heat pump, false if not
46
36
  def coil_dx_heat_pump?(coil_dx)
47
37
  heat_pump = false
@@ -83,7 +73,7 @@ module CoilDX
83
73
  def coil_dx_heating_type(coil_dx, necb_ref_hp = false)
84
74
  htg_type = nil
85
75
 
86
- # If Unitary or Zone HVAC
76
+ # If Unitary or Zone HVAC (could be a unitary system on an air loop)
87
77
  if coil_dx.airLoopHVAC.empty?
88
78
  if coil_dx.containingHVACComponent.is_initialized
89
79
  containing_comp = coil_dx.containingHVACComponent.get
@@ -97,7 +87,7 @@ module CoilDX
97
87
  htg_coil = htg_coil.get
98
88
  if htg_coil.to_CoilHeatingElectric.is_initialized || htg_coil.to_CoilHeatingDXMultiSpeed.is_initialized
99
89
  htg_type = 'Electric Resistance or None'
100
- elsif htg_coil.to_CoilHeatingGas.is_initialized || htg_coil.to_CoilHeatingGasMultiStage.is_initialized
90
+ elsif htg_coil.to_CoilHeatingGas.is_initialized || htg_coil.to_CoilHeatingGasMultiStage.is_initialized || htg_coil.to_CoilHeatingWater.is_initialized
101
91
  htg_type = 'All Other'
102
92
  end
103
93
  else
@@ -108,7 +98,7 @@ module CoilDX
108
98
  supp_htg_coil = containing_comp.to_AirLoopHVACUnitaryHeatPumpAirToAirMultiSpeed.get.supplementalHeatingCoil
109
99
  if htg_coil.to_CoilHeatingDXMultiSpeed.is_initialized || supp_htg_coil.to_CoilHeatingElectric.is_initialized
110
100
  htg_type = 'Electric Resistance or None'
111
- elsif htg_coil.to_CoilHeatingGasMultiStage.is_initialized || htg_coil.to_CoilHeatingGas.is_initialized
101
+ elsif htg_coil.to_CoilHeatingGas.is_initialized || htg_coil.to_CoilHeatingGasMultiStage.is_initialized || htg_coil.to_CoilHeatingWater.is_initialized
112
102
  htg_type = 'All Other'
113
103
  end
114
104
  end
@@ -120,7 +110,7 @@ module CoilDX
120
110
  htg_coil = containing_comp.to_ZoneHVACPackagedTerminalAirConditioner.get.heatingCoil
121
111
  if htg_coil.to_CoilHeatingElectric.is_initialized
122
112
  htg_type = 'Electric Resistance or None'
123
- elsif htg_coil.to_CoilHeatingWater.is_initialized || htg_coil.to_CoilHeatingGas.is_initialized
113
+ elsif htg_coil.to_CoilHeatingGas.is_initialized || htg_coil.to_CoilHeatingGasMultiStage.is_initialized || htg_coil.to_CoilHeatingWater.is_initialized
124
114
  htg_type = 'All Other'
125
115
  end
126
116
  # PTHP
@@ -171,6 +161,7 @@ module CoilDX
171
161
  search_criteria = {}
172
162
  search_criteria['template'] = template
173
163
 
164
+ # Cooling type
174
165
  search_criteria['cooling_type'] = case coil_dx.iddObjectType.valueName.to_s
175
166
  when 'OS_Coil_Cooling_DX_SingleSpeed',
176
167
  'OS_Coil_Cooling_DX_TwoSpeed',
@@ -182,24 +173,20 @@ module CoilDX
182
173
  'AirCooled'
183
174
  end
184
175
 
185
- # Get the coil_dx_subcategory(coil_dx)
176
+ # Subcategory
186
177
  search_criteria['subcategory'] = coil_dx_subcategory(coil_dx)
187
178
 
188
179
  # Add the heating type to the search criteria
189
- htg_type = coil_dx_heating_type(coil_dx, necb_ref_hp)
190
- unless htg_type.nil?
191
- search_criteria['heating_type'] = htg_type
192
- end
193
-
194
- # The heating side of unitary heat pumps don't have a heating type as part of the search
195
- if coil_dx.to_CoilHeatingDXSingleSpeed.is_initialized &&
196
- coil_dx_heat_pump?(coil_dx) &&
197
- coil_dx.airLoopHVAC.empty? && coil_dx.containingHVACComponent.is_initialized
198
- containing_comp = coil_dx.containingHVACComponent.get
199
- if containing_comp.to_AirLoopHVACUnitaryHeatPumpAirToAir.is_initialized
200
- search_criteria['heating_type'] = nil
180
+ case coil_dx.iddObjectType.valueName.to_s
181
+ when 'OS_Coil_Cooling_DX_SingleSpeed',
182
+ 'OS_Coil_Cooling_DX_TwoSpeed',
183
+ 'OS_Coil_Cooling_DX_VariableSpeed',
184
+ 'OS_Coil_Cooling_DX_MultiSpeed',
185
+ 'OS_AirConditioner_VariableRefrigerantFlow'
186
+ htg_type = coil_dx_heating_type(coil_dx, necb_ref_hp)
187
+ unless htg_type.nil?
188
+ search_criteria['heating_type'] = htg_type
201
189
  end
202
- # @todo Add other unitary systems
203
190
  end
204
191
 
205
192
  # Get the equipment type
@@ -214,6 +201,13 @@ module CoilDX
214
201
  search_criteria['heating_type'] = nil
215
202
  end
216
203
  end
204
+ # PTHP
205
+ if containing_comp.to_ZoneHVACPackagedTerminalHeatPump.is_initialized && !((template == 'NECB2011') || (template == 'NECB2015') || (template == 'NECB2017') || (template == 'NECB2020') || (template == 'BTAPPRE1980') ||
206
+ (template == 'BTAP1980TO2010'))
207
+ search_criteria['subcategory'] = nil
208
+ search_criteria['heating_type'] = nil
209
+ search_criteria['equipment_type'] = 'PTHP'
210
+ end
217
211
  end
218
212
 
219
213
  return search_criteria
@@ -224,25 +218,47 @@ module CoilDX
224
218
  # @param coil_dx [OpenStudio::Model::StraightComponent] coil cooling object, allowable types:
225
219
  # CoilCoolingDXSingleSpeed, CoilCoolingDXTwoSpeed, CoilCoolingDXMultiSpeed
226
220
  # @return [String] PTAC application
227
- def coil_dx_ptac_application(coil_dx)
228
- case template
229
- when '90.1-2004', '90.1-2007'
221
+ def coil_dx_packaged_terminal_application(coil_dx)
222
+ if template.include?('90.1-2004') || template.include?('90.1-2007')
230
223
  return 'New Construction'
231
- when '90.1-2010', '90.1-2013', '90.1-2016', '90.1-2019'
224
+ else # '90.1-2010', '90.1-2013', '90.1-2016', '90.1-2019', others
232
225
  return 'Standard Size'
233
226
  end
234
227
  end
235
228
 
229
+ # Determine what electric power phase value should be used for efficiency lookups for DX coils
230
+ #
231
+ # @param coil_dx [OpenStudio::Model::StraightComponent] coil cooling object, allowable types:
232
+ # CoilCoolingDXSingleSpeed, CoilCoolingDXTwoSpeed, CoilCoolingDXMultiSpeed
233
+ # @return [String] Electric power phase
234
+ def coil_dx_electric_power_phase(coil_dx)
235
+ case template
236
+ when '90.1-2019', '90.1-2016'
237
+ return 3
238
+ else
239
+ return nil
240
+ end
241
+ end
242
+
236
243
  # Determine what capacity curve to use to represent the change of the coil's capacity as a function of changes in temperatures
237
244
  #
238
245
  # @param coil_dx [OpenStudio::Model::StraightComponent] coil cooling object, allowable types:
239
246
  # CoilCoolingDXSingleSpeed, CoilCoolingDXTwoSpeed, CoilCoolingDXMultiSpeed
240
247
  # @param equipment_type [String] Type of equipment
241
- # @return [String] PTAC application
242
- def coil_dx_cap_ft(coil_dx, equipment_type = 'Air Conditioners')
248
+ # @param heating [Boolean] Specify if the curve to return is for heating operation
249
+ # @return [String] Curve name
250
+ def coil_dx_cap_ft(coil_dx, equipment_type = 'Air Conditioners', heating = false)
243
251
  case equipment_type
244
252
  when 'PTAC'
245
253
  return 'PSZ-Fine Storage DX Coil Cap-FT'
254
+ when 'PSZ-AC', 'Air Conditioners'
255
+ return 'CoilClgDXQRatio_fTwbToadbSI'
256
+ when 'PTHP'
257
+ return 'DXHEAT-NECB2011-REF-CAPFT'
258
+ when 'PSZ-HP', 'Heat Pumps'
259
+ return 'HPACHeatCapFT' if heating
260
+
261
+ return 'HPACCoolCapFT'
246
262
  else
247
263
  return 'CoilClgDXQRatio_fTwbToadbSI'
248
264
  end
@@ -253,11 +269,20 @@ module CoilDX
253
269
  # @param coil_dx [OpenStudio::Model::StraightComponent] coil cooling object, allowable types:
254
270
  # CoilCoolingDXSingleSpeed, CoilCoolingDXTwoSpeed, CoilCoolingDXMultiSpeed
255
271
  # @param equipment_type [String] Type of equipment
256
- # @return [String] PTAC application
257
- def coil_dx_cap_fff(coil_dx, equipment_type = 'Air Conditioners')
272
+ # @param heating [Boolean] Specify if the curve to return is for heating operation
273
+ # @return [String] Curve name
274
+ def coil_dx_cap_fflow(coil_dx, equipment_type = 'Air Conditioners', heating = false)
258
275
  case equipment_type
259
276
  when 'PTAC'
260
277
  return 'DX Coil Cap-FF'
278
+ when 'PSZ-AC', 'Air Conditioners'
279
+ return 'CoilClgDXSnglQRatio_fCFMRatio'
280
+ when 'PTHP'
281
+ return 'DXHEAT-NECB2011-REF-CAPFFLOW'
282
+ when 'PSZ-HP', 'Heat Pumps'
283
+ return 'HPACHeatCapFFF' if heating
284
+
285
+ return 'HPACCoolCapFFF'
261
286
  else
262
287
  return 'CoilClgDXSnglQRatio_fCFMRatio'
263
288
  end
@@ -268,11 +293,20 @@ module CoilDX
268
293
  # @param coil_dx [OpenStudio::Model::StraightComponent] coil cooling object, allowable types:
269
294
  # CoilCoolingDXSingleSpeed, CoilCoolingDXTwoSpeed, CoilCoolingDXMultiSpeed
270
295
  # @param equipment_type [String] Type of equipment
271
- # @return [String] PTAC application
272
- def coil_dx_eir_ft(coil_dx, equipment_type = 'Air Conditioners')
296
+ # @param heating [Boolean] Specify if the curve to return is for heating operation
297
+ # @return [String] Curve name
298
+ def coil_dx_eir_ft(coil_dx, equipment_type = 'Air Conditioners', heating = false)
273
299
  case equipment_type
274
300
  when 'PTAC'
275
301
  return 'PSZ-AC DX Coil EIR-FT'
302
+ when 'PSZ-AC', 'Air Conditioners'
303
+ return 'CoilClgDXEIRRatio_fTwbToadbSI'
304
+ when 'PTHP'
305
+ return 'DXHEAT-NECB2011-REF-EIRFT'
306
+ when 'PSZ-HP', 'Heat Pumps'
307
+ return 'HPACHeatEIRFT' if heating
308
+
309
+ return 'HPACCoolEIRFT'
276
310
  else
277
311
  return 'CoilClgDXEIRRatio_fTwbToadbSI'
278
312
  end
@@ -283,11 +317,20 @@ module CoilDX
283
317
  # @param coil_dx [OpenStudio::Model::StraightComponent] coil cooling object, allowable types:
284
318
  # CoilCoolingDXSingleSpeed, CoilCoolingDXTwoSpeed, CoilCoolingDXMultiSpeed
285
319
  # @param equipment_type [String] Type of equipment
286
- # @return [String] PTAC application
287
- def coil_dx_eir_fff(coil_dx, equipment_type = 'Air Conditioners')
320
+ # @param heating [Boolean] Specify if the curve to return is for heating operation
321
+ # @return [String] Curve name
322
+ def coil_dx_eir_fflow(coil_dx, equipment_type = 'Air Conditioners', heating = false)
288
323
  case equipment_type
289
324
  when 'PTAC'
290
325
  return 'Split DX Coil EIR-FF'
326
+ when 'PSZ-AC', 'Air Conditioners'
327
+ return 'CoilClgDXSnglEIRRatio_fCFMRatio'
328
+ when 'PTHP'
329
+ return 'DXHEAT-NECB2011-REF-EIRFFLOW'
330
+ when 'PSZ-HP', 'Heat Pumps'
331
+ return 'HPACHeatEIRFFF' if heating
332
+
333
+ return 'HPACCoolEIRFFF'
291
334
  else
292
335
  return 'CoilClgDXSnglEIRRatio_fCFMRatio'
293
336
  end
@@ -298,11 +341,18 @@ module CoilDX
298
341
  # @param coil_dx [OpenStudio::Model::StraightComponent] coil cooling object, allowable types:
299
342
  # CoilCoolingDXSingleSpeed, CoilCoolingDXTwoSpeed, CoilCoolingDXMultiSpeed
300
343
  # @param equipment_type [String] Type of equipment
301
- # @return [String] PTAC application
302
- def coil_dx_plf_fplr(coil_dx, equipment_type = 'Air Conditioners')
344
+ # @param heating [Boolean] Specify if the curve to return is for heating operation
345
+ # @return [String] Curve name
346
+ def coil_dx_plf_fplr(coil_dx, equipment_type = 'Air Conditioners', heating = false)
303
347
  case equipment_type
304
348
  when 'PTAC'
305
349
  return 'HPACCOOLPLFFPLR'
350
+ when 'PSZ-AC', 'Air Conditioners'
351
+ return 'CoilClgDXEIRRatio_fQFrac'
352
+ when 'PTHP'
353
+ return 'DXHEAT-NECB2011-REF-PLFFPLR'
354
+ when 'PSZ-HP', 'Heat Pumps'
355
+ return 'HPACCOOLPLFFPLR'
306
356
  else
307
357
  return 'CoilClgDXEIRRatio_fQFrac'
308
358
  end
@@ -22,10 +22,10 @@ class Standard
22
22
  heat_pump = true
23
23
  htg_coil = containing_comp.to_AirLoopHVACUnitaryHeatPumpAirToAirMultiSpeed.get.supplementalHeatingCoil
24
24
  suppl_heating_type = if htg_coil.to_CoilHeatingElectric.is_initialized
25
- 'Electric Resistance or None'
26
- else
27
- 'All Other'
28
- end
25
+ 'Electric Resistance or None'
26
+ else
27
+ 'All Other'
28
+ end
29
29
  end
30
30
  # @todo Add other unitary systems
31
31
  end
@@ -68,7 +68,7 @@ class Standard
68
68
 
69
69
  # Check to make sure properties were found
70
70
  if hp_props.nil?
71
- OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.CoilHeatingDXMultipeed', "For #{coil_heating_dx_multi_speed.name}, cannot find efficiency info using #{search_criteria}, cannot apply efficiency standard.")
71
+ OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.CoilHeatingDXMultipeed', "For #{coil_heating_dx_multi_speed.name}, cannot find efficiency info using #{search_criteria} and capacity #{capacity_btu_per_hr} btu/hr, cannot apply efficiency standard.")
72
72
  successfully_set_all_properties = false
73
73
  return successfully_set_all_properties
74
74
  end