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 +4 -4
- data/honeybee-openstudio.gemspec +1 -1
- data/lib/to_openstudio/hvac/template.rb +88 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9f0ab9bc81366ae4f3cecd686b7b84f27116f85d279f19b70debffcbfea19be4
|
4
|
+
data.tar.gz: e3a6188aba6202306fee8a740469a1c0c2420bce2404f899df8371a8c7c2469f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ee8d75b9ac45f6de8187d1945988f880050faf2c762d643a36adf2e513a50931451e52e05b604ff19a476d9bfb43a3b50872d4cd2037f05471307bf617385fb3
|
7
|
+
data.tar.gz: 54a8536d0fd02be9f1829776adc0b8eefc45dfaef920fed8cfc46feabac79777218a257fbdba3a88d195d77f137ec6fc6c22be5d2bef8ad197b3ca9e8ec67c15
|
data/honeybee-openstudio.gemspec
CHANGED
@@ -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.
|
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
|
-
|
61
|
+
standard_id = @@vintage_mapper[@hash[:vintage].to_sym]
|
62
62
|
else
|
63
|
-
|
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.
|
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-
|
14
|
+
date: 2022-10-10 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: bundler
|