honeybee-openstudio 2.30.6 → 2.30.7
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/simulation/parameter_model.rb +67 -0
- 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: dbe2c2581aae65bb58d4fc5b13efc1093de9302e9f41a8b21a8b3e35ad909d0a
|
4
|
+
data.tar.gz: 1a08ed0e4ca2dccf145d961287b9ea2c60ea67034877957482a7c49318203a34
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a534759f8a48c410354c6c53e131e21fe0c9ef17824a761d6f338bdcc07f7007f1cc79c16406492782e9d580a0eaa8bfdf5bb5e89924157d2f08fc80d62bad12
|
7
|
+
data.tar.gz: a51dcad87234a081e63575fde99ea0a76a02a7a8d497a3d0a0e977af5ca5713b80db65b966489462f441ebc28575adc89082a86845cb5471d195f146da9c2fc4
|
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.30.
|
7
|
+
spec.version = '2.30.7'
|
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
|
|
@@ -154,6 +154,7 @@ module Honeybee
|
|
154
154
|
end
|
155
155
|
end
|
156
156
|
end
|
157
|
+
|
157
158
|
# use the average of design day temperatures to set the water mains temperature
|
158
159
|
os_water_mains = @openstudio_model.getSiteWaterMainsTemperature
|
159
160
|
os_water_mains.setCalculationMethod('Correlation')
|
@@ -164,6 +165,62 @@ module Honeybee
|
|
164
165
|
end
|
165
166
|
os_water_mains.setMaximumDifferenceInMonthlyAverageOutdoorAirTemperatures(4)
|
166
167
|
|
168
|
+
# set the climate zone from design days assuming 0.4% extremes and normal distribution
|
169
|
+
climate_zone_objs = @openstudio_model.getClimateZones
|
170
|
+
ashrae_zones = climate_zone_objs.getClimateZones('ASHRAE')
|
171
|
+
if ashrae_zones.empty? && db_temps.length > 0
|
172
|
+
# generate temperatures according to a normal distribution
|
173
|
+
mean_temp = (db_temps.max + db_temps.min) / 2
|
174
|
+
dist_to_mean = db_temps.max - mean_temp
|
175
|
+
st_dev = dist_to_mean / 2.65
|
176
|
+
vals = []
|
177
|
+
for i in 0..4379
|
178
|
+
step_seed = i.to_f / 4380
|
179
|
+
add_val1, add_val2 = gaussian(mean_temp, st_dev, step_seed)
|
180
|
+
vals << add_val1
|
181
|
+
vals << add_val2
|
182
|
+
end
|
183
|
+
|
184
|
+
# compute the number of heating and cooling degree days
|
185
|
+
cooling_deg_days, heating_deg_days = 0, 0
|
186
|
+
vals.each do |temp|
|
187
|
+
if temp > 10
|
188
|
+
cdd = (temp - 10) / 24
|
189
|
+
cooling_deg_days += cdd
|
190
|
+
end
|
191
|
+
if temp < 18
|
192
|
+
hdd = (18 - temp) / 24
|
193
|
+
heating_deg_days += hdd
|
194
|
+
end
|
195
|
+
end
|
196
|
+
|
197
|
+
# determine the climate zone from the degree-day distribution
|
198
|
+
if cooling_deg_days > 5000
|
199
|
+
cz = '1'
|
200
|
+
elsif cooling_deg_days > 3500
|
201
|
+
cz = '2A'
|
202
|
+
elsif cooling_deg_days > 2500
|
203
|
+
cz = '3A'
|
204
|
+
elsif cooling_deg_days <= 2500 and heating_deg_days <= 2000
|
205
|
+
cz = '3C'
|
206
|
+
elsif cooling_deg_days <= 2500 and heating_deg_days <= 3000
|
207
|
+
cz = '4A'
|
208
|
+
elsif heating_deg_days <= 3000
|
209
|
+
cz = '4C'
|
210
|
+
elsif heating_deg_days <= 4000
|
211
|
+
cz = '5A'
|
212
|
+
elsif heating_deg_days <= 5000
|
213
|
+
cz = '6A'
|
214
|
+
elsif heating_deg_days <= 7000
|
215
|
+
cz = '7'
|
216
|
+
else
|
217
|
+
cz = '8'
|
218
|
+
end
|
219
|
+
|
220
|
+
# set the climate zone
|
221
|
+
climate_zone_objs.setClimateZone('ASHRAE', cz)
|
222
|
+
end
|
223
|
+
|
167
224
|
# set Outputs for the simulation
|
168
225
|
if @hash[:output]
|
169
226
|
if @hash[:output][:outputs]
|
@@ -251,5 +308,15 @@ module Honeybee
|
|
251
308
|
|
252
309
|
end
|
253
310
|
|
311
|
+
def gaussian(mean, stddev, seed)
|
312
|
+
# generate a gaussian distribution of values
|
313
|
+
theta = 2 * Math::PI * seed
|
314
|
+
rho = Math.sqrt(-2 * Math.log(1 - seed))
|
315
|
+
scale = stddev * rho
|
316
|
+
x = mean + scale * Math.cos(theta)
|
317
|
+
y = mean + scale * Math.sin(theta)
|
318
|
+
return x, y
|
319
|
+
end
|
320
|
+
|
254
321
|
end #SimulationParameter
|
255
322
|
end #Honeybee
|
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.30.
|
4
|
+
version: 2.30.7
|
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-03-
|
14
|
+
date: 2022-03-12 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: bundler
|