openstudio-standards 0.1.6 → 0.1.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8c6cefd2e8e6692ea225fa16386b620b4898c017
4
- data.tar.gz: 8156a0585a1632a6e74246b5055ce6c8fbc61aba
3
+ metadata.gz: fb164d0538ce6852024fdd4a7a67a9a949f5fba6
4
+ data.tar.gz: e56317e0392df0e6401df7e4d4d72db2a11f057c
5
5
  SHA512:
6
- metadata.gz: 68033809696c245be2c7213f3263ac168080be527ee110f6d235b84e3ae0acb0ff65f8ae47ec218988a4ce21f76c7dbbf4c7d6e2e1fa29376f184d4f9133e5ba
7
- data.tar.gz: 97bce63f202c6b6588d9202466548a2928f66a4d997159abd7b210d85f5444363400536f88f07c99f85cca373ce275dab45bd2e4b64500c5c8c049dff8d5e3a4
6
+ metadata.gz: bf4d7e8dba6a645484fb0967726344b73c6d03a44a59ba88b417c9f99536ef94cfbbc5190ea4f294e835a01bbd331d498ba1b0fa6f2852f94d64dae9ad2b8a48
7
+ data.tar.gz: 279327046dc5ba3b2fa5e9ef6c8eb1048081ac1ea6e9c02a47f56543a36f7426b21af38a352d836ea7f253c6bcec6f088d9e604f7ed92b2c98177b139db3a72a
@@ -172,12 +172,22 @@ class OpenStudio::Model::Model
172
172
  if heating_coil.plantLoop.is_initialized
173
173
  fuels += self.plant_loop_heating_fuels(heating_coil.plantLoop.get)
174
174
  end
175
+ when 'OS_Coil_Heating_LowTemperatureRadiant_ConstantFlow'
176
+ heating_coil = heating_coil.to_CoilHeatingLowTempRadiantConstFlow.get
177
+ if heating_coil.plantLoop.is_initialized
178
+ fuels += self.plant_loop_heating_fuels(heating_coil.plantLoop.get)
179
+ end
180
+ when 'OS_Coil_Heating_LowTemperatureRadiant_VariableFlow'
181
+ heating_coil = heating_coil.to_CoilHeatingLowTempRadiantVarFlow.get
182
+ if heating_coil.plantLoop.is_initialized
183
+ fuels += self.plant_loop_heating_fuels(heating_coil.plantLoop.get)
184
+ end
175
185
  when 'OS_Coil_WaterHeating_AirToWaterHeatPump'
176
186
  fuels << 'Electricity'
177
187
  when 'OS_Coil_WaterHeating_Desuperheater'
178
188
  fuels << 'Electricity'
179
189
  else
180
- #OpenStudio::logFree(OpenStudio::Debug, 'openstudio.sizing.Model', "No heating fuel types found for #{obj_type}")
190
+ OpenStudio::logFree(OpenStudio::Debug, 'openstudio.sizing.Model', "No heating fuel types found for #{obj_type}")
181
191
  end
182
192
 
183
193
  return fuels.uniq.sort
@@ -219,12 +229,12 @@ class OpenStudio::Model::Model
219
229
  if cooling_coil.plantLoop.is_initialized
220
230
  fuels += self.plant_loop_cooling_fuels(cooling_coil.plantLoop.get)
221
231
  end
222
- when 'OS_Coil_Cooling_LowTempRadiant_ConstFlow'
232
+ when 'OS_Coil_Cooling_LowTemperatureRadiant_ConstantFlow'
223
233
  cooling_coil = cooling_coil.to_CoilCoolingLowTempRadiantConstFlow.get
224
234
  if cooling_coil.plantLoop.is_initialized
225
235
  fuels += self.plant_loop_cooling_fuels(cooling_coil.plantLoop.get)
226
236
  end
227
- when 'OS_Coil_Cooling_LowTempRadiant_VarFlow'
237
+ when 'OS_Coil_Cooling_LowTemperatureRadiant_VariableFlow'
228
238
  cooling_coil = cooling_coil.to_CoilCoolingLowTempRadiantVarFlow.get
229
239
  if cooling_coil.plantLoop.is_initialized
230
240
  fuels += self.plant_loop_cooling_fuels(cooling_coil.plantLoop.get)
@@ -235,7 +245,7 @@ class OpenStudio::Model::Model
235
245
  fuels += self.plant_loop_cooling_fuels(cooling_coil.plantLoop.get)
236
246
  end
237
247
  else
238
- #OpenStudio::logFree(OpenStudio::Debug, 'openstudio.sizing.Model', "No cooling fuel types found for #{obj_type}")
248
+ OpenStudio::logFree(OpenStudio::Debug, 'openstudio.sizing.Model', "No cooling fuel types found for #{obj_type}")
239
249
  end
240
250
 
241
251
  return fuels.uniq.sort
@@ -280,10 +290,10 @@ class OpenStudio::Model::Model
280
290
  when 'OS_ZoneHVAC_FourPipeFanCoil'
281
291
  equipment = equipment.to_ZoneHVACFourPipeFanCoil.get
282
292
  fuels += self.coil_heating_fuels(equipment.heatingCoil)
283
- when 'OS_ZoneHVAC_LowTempRadiant_ConstFlow'
293
+ when 'OS_ZoneHVAC_LowTemperatureRadiant_ConstantFlow'
284
294
  equipment = equipment.to_ZoneHVACLowTempRadiantConstFlow.get
285
295
  fuels += self.coil_heating_fuels(equipment.heatingCoil)
286
- when 'OS_ZoneHVAC_LowTempRadiant_VarFlow'
296
+ when 'OS_ZoneHVAC_LowTemperatureRadiant_VariableFlow'
287
297
  equipment = equipment.to_ZoneHVACLowTempRadiantVarFlow.get
288
298
  fuels += self.coil_heating_fuels(equipment.heatingCoil)
289
299
  when 'OS_ZoneHVAC_UnitHeater'
@@ -317,7 +327,7 @@ class OpenStudio::Model::Model
317
327
  equipment = equipment.to_ZoneHVACWaterToAirHeatPump.get
318
328
  fuels += self.coil_heating_fuels(equipment.heatingCoil)
319
329
  else
320
- #OpenStudio::logFree(OpenStudio::Debug, 'openstudio.sizing.Model', "No heating fuel types found for #{obj_type}")
330
+ OpenStudio::logFree(OpenStudio::Debug, 'openstudio.sizing.Model', "No heating fuel types found for #{obj_type}")
321
331
  end
322
332
  end
323
333
 
@@ -344,6 +354,12 @@ class OpenStudio::Model::Model
344
354
  when 'OS_ZoneHVAC_FourPipeFanCoil'
345
355
  equipment = equipment.to_ZoneHVACFourPipeFanCoil.get
346
356
  fuels += self.coil_cooling_fuels(equipment.coolingCoil)
357
+ when 'OS_ZoneHVAC_LowTemperatureRadiant_ConstantFlow'
358
+ equipment = equipment.to_ZoneHVACLowTempRadiantConstFlow.get
359
+ fuels += self.coil_cooling_fuels(equipment.coolingCoil)
360
+ when 'OS_ZoneHVAC_LowTemperatureRadiant_VariableFlow'
361
+ equipment = equipment.to_ZoneHVACLowTempRadiantVarFlow.get
362
+ fuels += self.coil_cooling_fuels(equipment.coolingCoil)
347
363
  when 'OS_Refrigeration_AirChiller'
348
364
  fuels << 'Electricity'
349
365
  when 'OS_ZoneHVAC_IdealLoadsAirSystem'
@@ -355,7 +371,7 @@ class OpenStudio::Model::Model
355
371
  when 'OS_ZoneHVAC_TerminalUnit_VariableRefrigerantFlow'
356
372
  fuels << 'Electricity'
357
373
  else
358
- #OpenStudio::logFree(OpenStudio::Debug, 'openstudio.sizing.Model', "No cooling fuel types found for #{obj_type}")
374
+ OpenStudio::logFree(OpenStudio::Debug, 'openstudio.sizing.Model', "No cooling fuel types found for #{obj_type}")
359
375
  end
360
376
  end
361
377
 
@@ -266,6 +266,8 @@ class OpenStudio::Model::ThermalZone
266
266
  # Check the zone airloop heating fuels
267
267
  fuels += self.model.zone_airloop_heating_fuels(self)
268
268
 
269
+ OpenStudio::logFree(OpenStudio::Debug, 'openstudio.model.Model', "For #{name}, heating fuels = #{fuels.uniq.sort.join(', ')}.")
270
+
269
271
  return fuels.uniq.sort
270
272
 
271
273
  end
@@ -289,6 +291,8 @@ class OpenStudio::Model::ThermalZone
289
291
  # Check the zone airloop cooling fuels
290
292
  fuels += self.model.zone_airloop_cooling_fuels(self)
291
293
 
294
+ OpenStudio::logFree(OpenStudio::Debug, 'openstudio.model.Model', "For #{name}, cooling fuels = #{fuels.uniq.sort.join(', ')}.")
295
+
292
296
  return fuels.uniq.sort
293
297
 
294
298
  end
@@ -100,6 +100,16 @@ class OpenStudio::Model::Model
100
100
  getClimateZones.setClimateZone('ASHRAE', climate_zone.gsub('ASHRAE 169-2006-', ''))
101
101
  end
102
102
 
103
+ # For some building types, stories are defined explicitly
104
+ if building_type == 'SmallHotel'
105
+ building_story_map = define_building_story_map(building_type, template, climate_zone)
106
+ assign_building_story(building_type, template, climate_zone, building_story_map)
107
+ end
108
+
109
+ # Assign building stories to spaces in the building
110
+ # where stories are not yet assigned.
111
+ assign_spaces_to_stories
112
+
103
113
  # Perform a sizing run
104
114
  if runSizingRun("#{sizing_run_dir}/SizingRun1") == false
105
115
  return false
@@ -34,13 +34,11 @@ class OpenStudio::Model::BoilerHotWater
34
34
  return search_criteria
35
35
  end
36
36
 
37
- # find capacity
37
+ # Find capacity in W
38
38
  #
39
- # @return [Double] capacity_btu_per_hr - used for find_object
39
+ # @return [Double] capacity in W
40
40
  def find_capacity
41
- # Get the capacity
42
41
  capacity_w = nil
43
- capacity_btu_per_hr = nil
44
42
  if nominalCapacity.is_initialized
45
43
  capacity_w = nominalCapacity.get
46
44
  elsif autosizedNominalCapacity.is_initialized
@@ -51,10 +49,7 @@ class OpenStudio::Model::BoilerHotWater
51
49
  return successfully_set_all_properties
52
50
  end
53
51
 
54
- # Convert capacity to Btu/hr
55
- capacity_btu_per_hr = OpenStudio.convert(capacity_w, 'W', 'Btu/hr').get
56
-
57
- return capacity_btu_per_hr
52
+ return capacity_w
58
53
  end
59
54
 
60
55
  # Finds lookup object in standards and return minimum thermal efficiency
@@ -62,30 +57,39 @@ class OpenStudio::Model::BoilerHotWater
62
57
  # @param template [String] valid choices: 'DOE Ref Pre-1980', 'DOE Ref 1980-2004', '90.1-2004', '90.1-2007', '90.1-2010', '90.1-2013'
63
58
  # @param standards [Hash] the OpenStudio_Standards spreadsheet in hash format
64
59
  # @return [Double] minimum thermal efficiency
65
- def standard_minimum_thermal_efficiency(template, standards)
60
+ def standard_minimum_thermal_efficiency(template, rename=false)
66
61
  # Get the boiler properties
67
62
  search_criteria = find_search_criteria(template)
68
- capacity_kbtu_per_hr = find_capacity
69
- blr_props = model.find_object(standards['boilers'], search_criteria, capacity_kbtu_per_hr)
70
-
71
- fuel_type = blr_props['fuel_type']
72
- fluid_type = blr_props['fluid_type']
63
+ capacity_w = find_capacity
64
+ capacity_btu_per_hr = OpenStudio.convert(capacity_w, 'W', 'Btu/hr').get
65
+ capacity_kbtu_per_hr = OpenStudio.convert(capacity_w, 'W', 'kBtu/hr').get
73
66
 
74
67
  # Get the minimum efficiency standards
75
68
  thermal_eff = nil
76
69
 
70
+ # Get the boiler properties
71
+ blr_props = model.find_object($os_standards['boilers'], search_criteria, capacity_btu_per_hr)
72
+ unless blr_props
73
+ OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.BoilerHotWater', "For #{name}, cannot find boiler properties, cannot apply efficiency standard.")
74
+ successfully_set_all_properties = false
75
+ return successfully_set_all_properties
76
+ end
77
+
78
+ fuel_type = blr_props['fuel_type']
79
+ fluid_type = blr_props['fluid_type']
80
+
77
81
  # If specified as AFUE
78
82
  unless blr_props['minimum_annual_fuel_utilization_efficiency'].nil?
79
83
  min_afue = blr_props['minimum_annual_fuel_utilization_efficiency']
80
84
  thermal_eff = afue_to_thermal_eff(min_afue)
81
- setName("#{name} #{capacity_kbtu_per_hr.round}kBtu/hr #{min_afue} AFUE")
85
+ new_comp_name = "#{name} #{capacity_kbtu_per_hr.round}kBtu/hr #{min_afue} AFUE"
82
86
  OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.BoilerHotWater', "For #{template}: #{name}: #{fuel_type} #{fluid_type} Capacity = #{capacity_kbtu_per_hr.round}kBtu/hr; AFUE = #{min_afue}")
83
87
  end
84
88
 
85
89
  # If specified as thermal efficiency
86
90
  unless blr_props['minimum_thermal_efficiency'].nil?
87
91
  thermal_eff = blr_props['minimum_thermal_efficiency']
88
- setName("#{name} #{capacity_kbtu_per_hr.round}kBtu/hr #{thermal_eff} Thermal Eff")
92
+ new_comp_name = "#{name} #{capacity_kbtu_per_hr.round}kBtu/hr #{thermal_eff} Thermal Eff"
89
93
  OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.BoilerHotWater', "For #{template}: #{name}: #{fuel_type} #{fluid_type} Capacity = #{capacity_kbtu_per_hr.round}kBtu/hr; Thermal Efficiency = #{thermal_eff}")
90
94
  end
91
95
 
@@ -93,10 +97,15 @@ class OpenStudio::Model::BoilerHotWater
93
97
  unless blr_props['minimum_combustion_efficiency'].nil?
94
98
  min_comb_eff = blr_props['minimum_combustion_efficiency']
95
99
  thermal_eff = combustion_eff_to_thermal_eff(min_comb_eff)
96
- setName("#{name} #{capacity_kbtu_per_hr.round}kBtu/hr #{min_comb_eff} Combustion Eff")
100
+ new_comp_name = "#{name} #{capacity_kbtu_per_hr.round}kBtu/hr #{min_comb_eff} Combustion Eff"
97
101
  OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.BoilerHotWater', "For #{template}: #{name}: #{fuel_type} #{fluid_type} Capacity = #{capacity_kbtu_per_hr.round}kBtu/hr; Combustion Efficiency = #{min_comb_eff}")
98
102
  end
99
103
 
104
+ # Rename
105
+ if rename
106
+ setName(new_comp_name)
107
+ end
108
+
100
109
  return thermal_eff
101
110
  end
102
111
 
@@ -106,46 +115,16 @@ class OpenStudio::Model::BoilerHotWater
106
115
  # @param standards [Hash] the OpenStudio_Standards spreadsheet in hash format
107
116
  # @return [Bool] true if successful, false if not
108
117
  def apply_efficiency_and_curves(template)
109
- successfully_set_all_properties = false
110
-
111
- boilers = $os_standards['boilers']
118
+ successfully_set_all_properties = false
112
119
 
113
120
  # Define the criteria to find the boiler properties
114
121
  # in the hvac standards data set.
115
- search_criteria = {}
116
- search_criteria['template'] = template
117
-
118
- # Get fuel type
119
- fuel_type = nil
120
- case fuelType
121
- when 'NaturalGas'
122
- fuel_type = 'Gas'
123
- when 'Electricity'
124
- fuel_type = 'Electric'
125
- when 'FuelOil#1', 'FuelOil#2'
126
- fuel_type = 'Oil'
127
- else
128
- OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.BoilerHotWater', "For #{name}, a fuel type of #{fuelType} is not yet supported. Assuming 'Gas.'")
129
- fuel_type = 'Gas'
130
- end
131
-
132
- search_criteria['fuel_type'] = fuel_type
133
-
134
- # Get the fluid type
135
- fluid_type = 'Hot Water'
136
- search_criteria['fluid_type'] = fluid_type
122
+ search_criteria = find_search_criteria(template)
123
+ fuel_type = search_criteria['fuel_type']
124
+ fluid_type = search_criteria['fluid_type']
137
125
 
138
126
  # Get the capacity
139
- capacity_w = nil
140
- if nominalCapacity.is_initialized
141
- capacity_w = nominalCapacity.get
142
- elsif autosizedNominalCapacity.is_initialized
143
- capacity_w = autosizedNominalCapacity.get
144
- else
145
- OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.BoilerHotWater', "For #{name} capacity is not available, cannot apply efficiency standard.")
146
- successfully_set_all_properties = false
147
- return successfully_set_all_properties
148
- end
127
+ capacity_w = find_capacity
149
128
 
150
129
  # for NECB, check if secondary and/or modulating boiler required
151
130
  if template == 'NECB 2011'
@@ -179,7 +158,7 @@ class OpenStudio::Model::BoilerHotWater
179
158
  end
180
159
 
181
160
  # Get the boiler properties
182
- blr_props = model.find_object(boilers, search_criteria, capacity_btu_per_hr)
161
+ blr_props = model.find_object($os_standards['boilers'], search_criteria, capacity_btu_per_hr)
183
162
  unless blr_props
184
163
  OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.BoilerHotWater', "For #{name}, cannot find boiler properties, cannot apply efficiency standard.")
185
164
  successfully_set_all_properties = false
@@ -202,14 +181,14 @@ class OpenStudio::Model::BoilerHotWater
202
181
  unless blr_props['minimum_annual_fuel_utilization_efficiency'].nil?
203
182
  min_afue = blr_props['minimum_annual_fuel_utilization_efficiency']
204
183
  thermal_eff = afue_to_thermal_eff(min_afue)
205
- setName("#{name} #{capacity_kbtu_per_hr.round}kBtu/hr #{min_afue} AFUE")
184
+ new_comp_name = "#{name} #{capacity_kbtu_per_hr.round}kBtu/hr #{min_afue} AFUE"
206
185
  OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.BoilerHotWater', "For #{template}: #{name}: #{fuel_type} #{fluid_type} Capacity = #{capacity_kbtu_per_hr.round}kBtu/hr; AFUE = #{min_afue}")
207
186
  end
208
187
 
209
188
  # If specified as thermal efficiency
210
189
  unless blr_props['minimum_thermal_efficiency'].nil?
211
190
  thermal_eff = blr_props['minimum_thermal_efficiency']
212
- setName("#{name} #{capacity_kbtu_per_hr.round}kBtu/hr #{thermal_eff} Thermal Eff")
191
+ new_comp_name = "#{name} #{capacity_kbtu_per_hr.round}kBtu/hr #{thermal_eff} Thermal Eff"
213
192
  OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.BoilerHotWater', "For #{template}: #{name}: #{fuel_type} #{fluid_type} Capacity = #{capacity_kbtu_per_hr.round}kBtu/hr; Thermal Efficiency = #{thermal_eff}")
214
193
  end
215
194
 
@@ -217,10 +196,13 @@ class OpenStudio::Model::BoilerHotWater
217
196
  unless blr_props['minimum_combustion_efficiency'].nil?
218
197
  min_comb_eff = blr_props['minimum_combustion_efficiency']
219
198
  thermal_eff = combustion_eff_to_thermal_eff(min_comb_eff)
220
- setName("#{name} #{capacity_kbtu_per_hr.round}kBtu/hr #{min_comb_eff} Combustion Eff")
199
+ new_comp_name = "#{name} #{capacity_kbtu_per_hr.round}kBtu/hr #{min_comb_eff} Combustion Eff"
221
200
  OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.BoilerHotWater', "For #{template}: #{name}: #{fuel_type} #{fluid_type} Capacity = #{capacity_kbtu_per_hr.round}kBtu/hr; Combustion Efficiency = #{min_comb_eff}")
222
201
  end
223
202
 
203
+ # Set the name
204
+ setName(new_comp_name)
205
+
224
206
  # Set the efficiency values
225
207
  unless thermal_eff.nil?
226
208
  setNominalThermalEfficiency(thermal_eff)
@@ -6,11 +6,17 @@ class OpenStudio::Model::ChillerElectricEIR
6
6
  # @param template [String] valid choices: 'DOE Ref Pre-1980', 'DOE Ref 1980-2004', '90.1-2004', '90.1-2007', '90.1-2010', '90.1-2013'
7
7
  # @return [hash] has for search criteria to be used for find object
8
8
  def find_search_criteria(template)
9
- # Define the criteria to find the chiller properties
10
- # in the hvac standards data set.
11
9
  search_criteria = {}
12
10
  search_criteria['template'] = template
13
- cooling_type = condenserType
11
+
12
+ # Determine if WaterCooled or AirCooled by
13
+ # checking if the chiller is connected to a condenser
14
+ # water loop or not.
15
+ cooling_type = 'AirCooled'
16
+ if secondaryPlantLoop.is_initialized
17
+ cooling_type = 'WaterCooled'
18
+ end
19
+
14
20
  search_criteria['cooling_type'] = cooling_type
15
21
 
16
22
  # TODO: Standards replace this with a mechanism to store this
@@ -19,13 +25,13 @@ class OpenStudio::Model::ChillerElectricEIR
19
25
  name = self.name.get
20
26
  condenser_type = nil
21
27
  compressor_type = nil
22
- if name.include?('AirCooled')
28
+ if cooling_type == 'AirCooled'
23
29
  if name.include?('WithCondenser')
24
30
  condenser_type = 'WithCondenser'
25
31
  elsif name.include?('WithoutCondenser')
26
32
  condenser_type = 'WithoutCondenser'
27
33
  end
28
- elsif name.include?('WaterCooled')
34
+ elsif cooling_type == 'WaterCooled'
29
35
  if name.include?('Reciprocating')
30
36
  compressor_type = 'Reciprocating'
31
37
  elsif name.include?('Rotary Screw')
@@ -46,11 +52,10 @@ class OpenStudio::Model::ChillerElectricEIR
46
52
  return search_criteria
47
53
  end
48
54
 
49
- # Finds capacity in tons
55
+ # Finds capacity in W
50
56
  #
51
- # @return [Double] capacity in tons to be used for find object
57
+ # @return [Double] capacity in W to be used for find object
52
58
  def find_capacity
53
- # Get the chiller capacity
54
59
  capacity_w = nil
55
60
  if referenceCapacity.is_initialized
56
61
  capacity_w = referenceCapacity.get
@@ -62,9 +67,7 @@ class OpenStudio::Model::ChillerElectricEIR
62
67
  return successfully_set_all_properties
63
68
  end
64
69
 
65
- capacity_tons = OpenStudio.convert(capacity_w, 'W', 'ton').get
66
-
67
- return capacity_tons
70
+ return capacity_w
68
71
  end
69
72
 
70
73
  # Finds lookup object in standards and return full load efficiency
@@ -72,11 +75,11 @@ class OpenStudio::Model::ChillerElectricEIR
72
75
  # @param template [String] valid choices: 'DOE Ref Pre-1980', 'DOE Ref 1980-2004', '90.1-2004', '90.1-2007', '90.1-2010', '90.1-2013'
73
76
  # @param standards [Hash] the OpenStudio_Standards spreadsheet in hash format
74
77
  # @return [Double] full load efficiency (COP)
75
- def standard_minimum_full_load_efficiency(template, standards)
78
+ def standard_minimum_full_load_efficiency(template)
76
79
  # Get the chiller properties
77
80
  search_criteria = find_search_criteria(template)
78
- capacity_tons = find_capacity
79
- chlr_props = model.find_object(standards['chillers'], search_criteria, capacity_tons, Date.today)
81
+ capacity_tons = OpenStudio.convert(find_capacity, 'W', 'ton').get
82
+ chlr_props = model.find_object($os_standards['chillers'], search_criteria, capacity_tons, Date.today)
80
83
 
81
84
  # lookup the efficiency value
82
85
  kw_per_ton = nil
@@ -98,58 +101,16 @@ class OpenStudio::Model::ChillerElectricEIR
98
101
  # @return [Bool] true if successful, false if not
99
102
  def apply_efficiency_and_curves(template, clg_tower_objs)
100
103
  chillers = $os_standards['chillers']
101
- curve_biquadratics = $os_standards['curve_biquadratics']
102
- curve_quadratics = $os_standards['curve_quadratics']
103
- curve_bicubics = $os_standards['curve_bicubics']
104
104
 
105
105
  # Define the criteria to find the chiller properties
106
106
  # in the hvac standards data set.
107
- search_criteria = {}
108
- search_criteria['template'] = template
109
- cooling_type = condenserType
110
- search_criteria['cooling_type'] = cooling_type
111
-
112
- # TODO: Standards replace this with a mechanism to store this
113
- # data in the chiller object itself.
114
- # For now, retrieve the condenser type from the name
115
- name = self.name.get
116
- condenser_type = nil
117
- compressor_type = nil
118
- if name.include?('AirCooled')
119
- if name.include?('WithCondenser')
120
- condenser_type = 'WithCondenser'
121
- elsif name.include?('WithoutCondenser')
122
- condenser_type = 'WithoutCondenser'
123
- end
124
- elsif name.include?('WaterCooled')
125
- if name.include?('Reciprocating')
126
- compressor_type = 'Reciprocating'
127
- elsif name.include?('Rotary Screw')
128
- compressor_type = 'Rotary Screw'
129
- elsif name.include?('Scroll')
130
- compressor_type = 'Scroll'
131
- elsif name.include?('Centrifugal')
132
- compressor_type = 'Centrifugal'
133
- end
134
- end
135
- unless condenser_type.nil?
136
- search_criteria['condenser_type'] = condenser_type
137
- end
138
- unless compressor_type.nil?
139
- search_criteria['compressor_type'] = compressor_type
140
- end
107
+ search_criteria = find_search_criteria(template)
108
+ cooling_type = search_criteria['cooling_type']
109
+ condenser_type = search_criteria['condenser_type']
110
+ compressor_type = search_criteria['compressor_type']
141
111
 
142
112
  # Get the chiller capacity
143
- capacity_w = nil
144
- if referenceCapacity.is_initialized
145
- capacity_w = referenceCapacity.get
146
- elsif autosizedReferenceCapacity.is_initialized
147
- capacity_w = autosizedReferenceCapacity.get
148
- else
149
- OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.ChillerElectricEIR', "For #{self.name} capacity is not available, cannot apply efficiency standard.")
150
- successfully_set_all_properties = false
151
- return successfully_set_all_properties
152
- end
113
+ capacity_w = find_capacity
153
114
 
154
115
  # NECB 2011 requires that all chillers be modulating down to 25% of their capacity
155
116
  if template == 'NECB 2011'
@@ -4,14 +4,10 @@ class OpenStudio::Model::CoilCoolingDXMultiSpeed
4
4
  # Applies the standard efficiency ratings and typical performance curves to this object.
5
5
  #
6
6
  # @param template [String] valid choices: 'DOE Ref Pre-1980', 'DOE Ref 1980-2004', '90.1-2004', '90.1-2007', '90.1-2010', '90.1-2013'
7
- # @param standards [Hash] the OpenStudio_Standards spreadsheet in hash format
8
7
  # @return [Bool] true if successful, false if not
9
- def apply_efficiency_and_curves(template, standards, sql_db_vars_map)
8
+ def apply_efficiency_and_curves(template, sql_db_vars_map)
10
9
  successfully_set_all_properties = true
11
10
 
12
- unitary_acs = standards['unitary_acs']
13
- heat_pumps = standards['heat_pumps']
14
-
15
11
  # Define the criteria to find the chiller properties
16
12
  # in the hvac standards data set.
17
13
  search_criteria = {}
@@ -119,9 +115,9 @@ class OpenStudio::Model::CoilCoolingDXMultiSpeed
119
115
  # Lookup efficiencies depending on whether it is a unitary AC or a heat pump
120
116
  ac_props = nil
121
117
  ac_props = if heat_pump == true
122
- model.find_object(heat_pumps, search_criteria, capacity_btu_per_hr, Date.today)
118
+ model.find_object($os_standards['heat_pumps'], search_criteria, capacity_btu_per_hr, Date.today)
123
119
  else
124
- model.find_object(unitary_acs, search_criteria, capacity_btu_per_hr, Date.today)
120
+ model.find_object($os_standards['unitary_acs'], search_criteria, capacity_btu_per_hr, Date.today)
125
121
  end
126
122
 
127
123
  # Check to make sure properties were found