honeybee-openstudio 2.33.1 → 2.33.2

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
  SHA256:
3
- metadata.gz: 9f3e60caafc9b181751046ffbaa62ce46efabff34565876e6e1855cefd17c389
4
- data.tar.gz: 00b5e7315dd40de10e24edb0f1bd937d27d06c6e318ed9c5dd4f442d5b6d842b
3
+ metadata.gz: 9f0ab9bc81366ae4f3cecd686b7b84f27116f85d279f19b70debffcbfea19be4
4
+ data.tar.gz: e3a6188aba6202306fee8a740469a1c0c2420bce2404f899df8371a8c7c2469f
5
5
  SHA512:
6
- metadata.gz: b27bfe18694f5f5c403fb2bb77d610037bf547e3e7f65e0248d740b6eacc51a7d4741a9e9b342566f12936937ee6633c4ef912ae5f457e291d6c99c24e919a45
7
- data.tar.gz: d31cb278a20a646c270de1390ce2efd0aa42d0aac61ce26a1cb965b5e5752f8a7453a7e764aab262d449e717a997f2e1890e940b5c2c8a192606539f31bd9dfa
6
+ metadata.gz: ee8d75b9ac45f6de8187d1945988f880050faf2c762d643a36adf2e513a50931451e52e05b604ff19a476d9bfb43a3b50872d4cd2037f05471307bf617385fb3
7
+ data.tar.gz: 54a8536d0fd02be9f1829776adc0b8eefc45dfaef920fed8cfc46feabac79777218a257fbdba3a88d195d77f137ec6fc6c22be5d2bef8ad197b3ca9e8ec67c15
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
 
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = 'honeybee-openstudio'
7
- spec.version = '2.33.1'
7
+ spec.version = '2.33.2'
8
8
  spec.authors = ['Tanushree Charan', 'Dan Macumber', 'Chris Mackey', 'Mostapha Sadeghipour Roudsari']
9
9
  spec.email = ['tanushree.charan@nrel.gov', 'chris@ladybug.tools']
10
10
 
@@ -58,10 +58,11 @@ module Honeybee
58
58
 
59
59
  # make the standard applier
60
60
  if @hash[:vintage]
61
- standard = Standard.build(@@vintage_mapper[@hash[:vintage].to_sym])
61
+ standard_id = @@vintage_mapper[@hash[:vintage].to_sym]
62
62
  else
63
- standard = Standard.build(@@vintage_mapper[hvac_defaults[:vintage][:default].to_sym])
63
+ standard_id = @@vintage_mapper[hvac_defaults[:vintage][:default].to_sym]
64
64
  end
65
+ standard = Standard.build(standard_id)
65
66
 
66
67
  # get the default equipment type
67
68
  if @hash[:equipment_type]
@@ -114,6 +115,79 @@ module Honeybee
114
115
  end
115
116
  end
116
117
 
118
+ # set the efficiencies of supply components in the air loop
119
+ if !os_air_loops.empty?
120
+ os_air_loops.each do |os_air_loop|
121
+ # set the supply fan efficiency
122
+ unless os_air_loop.supplyFan.empty?
123
+ s_fan = os_air_loop.supplyFan.get
124
+ s_fan = fan_from_component(s_fan)
125
+ unless s_fan.nil?
126
+ s_fan.setMaximumFlowRate(1)
127
+ standard.fan_apply_standard_minimum_motor_efficiency(
128
+ s_fan, standard.fan_brake_horsepower(s_fan))
129
+ s_fan.autosizeMaximumFlowRate()
130
+ end
131
+ end
132
+ # set the return fan efficiency
133
+ unless os_air_loop.returnFan.empty?
134
+ ex_fan = os_air_loop.returnFan.get
135
+ ex_fan = fan_from_component(ex_fan)
136
+ unless ex_fan.nil?
137
+ ex_fan.setMaximumFlowRate(1)
138
+ standard.fan_apply_standard_minimum_motor_efficiency(
139
+ ex_fan, standard.fan_brake_horsepower(ex_fan))
140
+ ex_fan.autosizeMaximumFlowRate()
141
+ end
142
+ end
143
+ end
144
+ end
145
+
146
+ # get the boilers and assign the correct efficiency
147
+ if equipment_type.to_s.include? 'Boiler'
148
+ openstudio_model.getBoilerHotWaters.sort.each do |obj|
149
+ obj.setNominalCapacity(40000) # set to a dummy value for the method
150
+ standard.boiler_hot_water_apply_efficiency_and_curves(obj)
151
+ obj.autosizeNominalCapacity() # set it back to autosize
152
+ obj.setName(standard_id + ' Boiler')
153
+ end
154
+ end
155
+
156
+ # get the chillers and assign a reasonable COP from the standard
157
+ if equipment_type.to_s.include? 'Chiller'
158
+ # set the chiller efficiency
159
+ clg_tower_objs = openstudio_model.getCoolingTowerSingleSpeeds
160
+ openstudio_model.getChillerElectricEIRs.sort.each do |obj|
161
+ obj.setReferenceCapacity(2000000) # set to a dummy value for method
162
+ if obj.name.empty?
163
+ obj_name = standard_id + ' Chiller'
164
+ else
165
+ obj_name = obj.name.get
166
+ end
167
+ standard.chiller_electric_eir_apply_efficiency_and_curves(obj, clg_tower_objs)
168
+ obj.autosizeReferenceCapacity() # set it back to autosize
169
+ obj.setName(obj_name)
170
+ end
171
+ end
172
+
173
+ # set the efficiency of any gas heaters
174
+ if equipment_type.to_s.include? 'GasHeaters'
175
+ zones.each do |zon|
176
+ zon.equipment.each do |equp|
177
+ if !equp.to_ZoneHVACUnitHeater.empty?
178
+ unit_heater = equp.to_ZoneHVACUnitHeater.get
179
+ coil = unit_heater.heatingCoil
180
+ unless coil.to_CoilHeatingGas.empty?
181
+ coil = coil.to_CoilHeatingGas.get
182
+ coil.setNominalCapacity(10000) # set to a dummy value for method
183
+ standard.coil_heating_gas_apply_efficiency_and_curves(coil)
184
+ coil.autosizeNominalCapacity() # set it back to autosize
185
+ end
186
+ end
187
+ end
188
+ end
189
+ end
190
+
117
191
  # assign the economizer type if there's an air loop and the economizer is specified
118
192
  if @hash[:economizer_type] && !os_air_loops.empty?
119
193
  os_air_loops.each do |os_air_loop|
@@ -277,6 +351,18 @@ module Honeybee
277
351
 
278
352
  private
279
353
 
354
+ def fan_from_component(fan_component)
355
+ # get a detailed fan object from a generic fan HVAC component; will be nil if it's not a fan
356
+ if !fan_component.to_FanVariableVolume.empty?
357
+ return fan_component.to_FanVariableVolume.get
358
+ elsif !fan_component.to_FanConstantVolume.empty?
359
+ return fan_component.to_FanConstantVolume.get
360
+ elsif !fan_component.to_FanOnOff.empty?
361
+ return fan_component.to_FanOnOff.get
362
+ end
363
+ nil
364
+ end
365
+
280
366
  def get_existing_erv(os_air_loop)
281
367
  # get an existing heat ecovery unit from an air loop; will be nil if there is none
282
368
  os_air_loop.oaComponents.each do |supply_component|
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: honeybee-openstudio
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.33.1
4
+ version: 2.33.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tanushree Charan
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: exe
13
13
  cert_chain: []
14
- date: 2022-09-19 00:00:00.000000000 Z
14
+ date: 2022-10-10 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: bundler