openstudio-standards 0.1.6 → 0.1.7

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 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