openstudio-standards 0.8.1 → 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.
- checksums.yaml +4 -4
- data/lib/openstudio-standards/exterior_lighting/data/entryways.csv +1 -1
- data/lib/openstudio-standards/exterior_lighting/data/parking.csv +1 -1
- data/lib/openstudio-standards/exterior_lighting/information.rb +7 -7
- data/lib/openstudio-standards/hvac/exhaust/data/typical_exhaust.csv +1 -1
- data/lib/openstudio-standards/infiltration/data/NISTInfiltrationCorrelations.csv +1 -1
- data/lib/openstudio-standards/infiltration/nist_infiltration.rb +1 -1
- data/lib/openstudio-standards/refrigeration/create_case.rb +60 -23
- data/lib/openstudio-standards/refrigeration/create_compressor.rb +2 -2
- data/lib/openstudio-standards/refrigeration/create_typical_refrigeration.rb +8 -6
- data/lib/openstudio-standards/refrigeration/create_walkin.rb +59 -24
- data/lib/openstudio-standards/refrigeration/data/refrigerated_cases.csv +31 -31
- data/lib/openstudio-standards/refrigeration/data/refrigerated_walkins.csv +76 -76
- data/lib/openstudio-standards/refrigeration/data/refrigeration_compressors.csv +1 -1
- data/lib/openstudio-standards/refrigeration/data/typical_refrigerated_cases.csv +1 -1
- data/lib/openstudio-standards/refrigeration/data/typical_refrigerated_walkins.csv +1 -1
- data/lib/openstudio-standards/refrigeration/information.rb +4 -4
- data/lib/openstudio-standards/service_water_heating/create_typical.rb +10 -10
- data/lib/openstudio-standards/service_water_heating/create_water_heater.rb +10 -0
- data/lib/openstudio-standards/service_water_heating/create_water_heating_loop.rb +16 -3
- data/lib/openstudio-standards/service_water_heating/data/convert_data.rb +9 -9
- data/lib/openstudio-standards/service_water_heating/data/typical_water_use_equipment.csv +49 -49
- data/lib/openstudio-standards/service_water_heating/data/typical_water_use_equipment.json +159 -159
- data/lib/openstudio-standards/standards/Standards.CoilCoolingDXMultiSpeed.rb +7 -18
- data/lib/openstudio-standards/standards/Standards.CoilCoolingDXSingleSpeed.rb +10 -20
- data/lib/openstudio-standards/standards/Standards.CoilCoolingDXTwoSpeed.rb +6 -15
- data/lib/openstudio-standards/standards/Standards.CoilCoolingWaterToAirHeatPumpEquationFit.rb +5 -6
- data/lib/openstudio-standards/standards/Standards.CoilDX.rb +93 -43
- data/lib/openstudio-standards/standards/Standards.CoilHeatingDXMultiSpeed.rb +5 -5
- data/lib/openstudio-standards/standards/Standards.CoilHeatingDXSingleSpeed.rb +135 -37
- data/lib/openstudio-standards/standards/Standards.CoilHeatingWaterToAirHeatPumpEquationFit.rb +2 -2
- data/lib/openstudio-standards/standards/Standards.Model.rb +9 -4
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.computer_room_acs.json +302 -140
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.heat_pumps.json +648 -326
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.heat_pumps_heating.json +371 -90
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.water_heaters.json +66 -22
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.computer_room_acs.json +302 -140
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.heat_pumps.json +1012 -296
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.heat_pumps_heating.json +443 -79
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.water_heaters.json +66 -22
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.computer_room_acs.json +302 -140
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.heat_pumps.json +672 -306
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.heat_pumps_heating.json +354 -74
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.water_heaters.json +72 -24
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.computer_room_acs.json +302 -140
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.energy_recovery.json +8 -8
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.heat_pumps.json +930 -604
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.heat_pumps_heating.json +415 -111
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.water_heaters.json +72 -24
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.computer_room_acs.json +602 -140
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.heat_pumps.json +1005 -333
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.heat_pumps_heating.json +642 -88
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.water_heaters.json +78 -26
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.computer_room_acs.json +722 -140
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.heat_pumps.json +1741 -426
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.heat_pumps_heating.json +1108 -111
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.water_heaters.json +186 -62
- data/lib/openstudio-standards/standards/ashrae_90_1/data/ashrae_90_1.schedules.json +62 -232
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilCoolingDXSingleSpeed.rb +2 -3
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilCoolingDXTwoSpeed.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilDX.rb +7 -18
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilHeatingDXSingleSpeed.rb +9 -7
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilHeatingGas.rb +1 -1
- 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
- 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
- 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
- data/lib/openstudio-standards/standards/deer/data/deer.schedules.json +62 -232
- data/lib/openstudio-standards/standards/necb/BTAPPRE1980/data/heat_pumps.json +16 -0
- data/lib/openstudio-standards/standards/necb/BTAPPRE1980/data/heat_pumps_heating.json +6 -0
- data/lib/openstudio-standards/standards/necb/NECB2011/data/heat_pumps.json +16 -0
- data/lib/openstudio-standards/standards/necb/NECB2011/data/heat_pumps_heating.json +6 -0
- data/lib/openstudio-standards/standards/necb/NECB2011/hvac_systems.rb +1 -1
- data/lib/openstudio-standards/standards/necb/NECB2011/necb_2011.rb +2 -2
- data/lib/openstudio-standards/standards/necb/NECB2015/data/heat_pumps.json +16 -0
- data/lib/openstudio-standards/standards/necb/NECB2015/data/heat_pumps_heating.json +8 -0
- data/lib/openstudio-standards/standards/necb/NECB2020/data/heat_pumps.json +20 -0
- data/lib/openstudio-standards/standards/necb/NECB2020/data/heat_pumps_heating.json +10 -0
- data/lib/openstudio-standards/utilities/simulation.rb +3 -2
- data/lib/openstudio-standards/version.rb +1 -1
- metadata +2 -2
@@ -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
|
-
|
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
|
-
|
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
|
-
|
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 =
|
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 =
|
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
|
-
|
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
|
68
|
-
search_criteria['application'] =
|
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
|
-
|
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
|
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
|
245
|
-
search_criteria['application'] =
|
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 =
|
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 =
|
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
|
-
|
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 =
|
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 =
|
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
|
data/lib/openstudio-standards/standards/Standards.CoilCoolingWaterToAirHeatPumpEquationFit.rb
CHANGED
@@ -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['
|
33
|
-
search_criteria['subcategory'] = 'CRAC'
|
32
|
+
search_criteria['standard_model'] = 'Downflow units'
|
34
33
|
cooling_type = search_criteria['cooling_type']
|
35
|
-
heating_type =
|
36
|
-
sub_category =
|
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
|
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.
|
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.
|
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
|
-
#
|
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
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
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
|
228
|
-
|
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
|
-
|
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
|
-
# @
|
242
|
-
|
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
|
-
# @
|
257
|
-
|
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
|
-
# @
|
272
|
-
|
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
|
-
# @
|
287
|
-
|
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
|
-
# @
|
302
|
-
|
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
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
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
|