honeybee-openstudio 2.38.8 → 2.38.9
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/radiant.rb +11 -112
- 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: a2f2bfb60c9779aff40ac4d86c6d2d3416fd1c34722b5378874b6b85cceaf8cd
|
4
|
+
data.tar.gz: e1638526a3701c0035efdb8695fdbb026364ecc85c42a38e262de43e9beb729f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 619bfa717c81e91aea5f481a6f86f538fb7c1cb4a508b4e8fa1695826096bde37e892de9fae98b3df71036c295b1ba2aed9f5f008a154e8ecfee2b6643e8b9e8
|
7
|
+
data.tar.gz: 22b5002543933e86a89192ae2fb6e0780306ca94308fd808651c93135f0f9f67145894e04f6188ac330d4345fb13ea49c8709dff26869af4eb6ea08548d77267
|
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.38.
|
7
|
+
spec.version = '2.38.9'
|
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
|
|
@@ -128,20 +128,12 @@ class OpenStudio::Model::Model
|
|
128
128
|
end
|
129
129
|
|
130
130
|
# get the various controls for the radiant system
|
131
|
-
if rad_props[:minimum_operation_time]
|
132
|
-
minimum_operation = rad_props[:minimum_operation_time]
|
133
|
-
else
|
134
|
-
minimum_operation = 1
|
135
|
-
end
|
136
131
|
if rad_props[:switch_over_time]
|
137
132
|
switch_over_time = rad_props[:switch_over_time]
|
138
133
|
else
|
139
134
|
switch_over_time = 24
|
140
135
|
end
|
141
136
|
|
142
|
-
# get the start and end hour from the input zones
|
143
|
-
start_hour, end_hour = start_end_hour_from_zones_occupancy(zones)
|
144
|
-
|
145
137
|
# add radiant system to the conditioned zones
|
146
138
|
include_carpet = false
|
147
139
|
control_strategy = 'proportional_control'
|
@@ -162,9 +154,6 @@ class OpenStudio::Model::Model
|
|
162
154
|
radiant_type: radiant_type,
|
163
155
|
control_strategy: control_strategy,
|
164
156
|
include_carpet: include_carpet,
|
165
|
-
model_occ_hr_start: start_hour,
|
166
|
-
model_occ_hr_end: end_hour,
|
167
|
-
minimum_operation: minimum_operation,
|
168
157
|
switch_over_time: switch_over_time,
|
169
158
|
cz_mult: cz_mult)
|
170
159
|
|
@@ -175,93 +164,6 @@ class OpenStudio::Model::Model
|
|
175
164
|
|
176
165
|
end
|
177
166
|
|
178
|
-
# get the start and end hour from the occupancy schedules of thermal zones
|
179
|
-
def start_end_hour_from_zones_occupancy(thermal_zones, threshold: 0.1)
|
180
|
-
# set the default start and end hour in the event there's no occupancy
|
181
|
-
start_hour = 12
|
182
|
-
end_hour = 12
|
183
|
-
# loop through the occupancy schedules and get the lowest start hour; highest end hour
|
184
|
-
thermal_zones.each do |zone|
|
185
|
-
zone.spaces.each do |space|
|
186
|
-
# gather all of the people objects assigned to the sapce
|
187
|
-
peoples = []
|
188
|
-
unless space.spaceType.empty?
|
189
|
-
space_type = space.spaceType.get
|
190
|
-
unless space_type.people.empty?
|
191
|
-
space_type.people.each do |ppl|
|
192
|
-
peoples << ppl
|
193
|
-
end
|
194
|
-
end
|
195
|
-
end
|
196
|
-
space.people.each do |ppl|
|
197
|
-
peoples << ppl
|
198
|
-
end
|
199
|
-
# loop through the pople and gather all occupancy schedules
|
200
|
-
peoples.each do |people|
|
201
|
-
occupancy_sch_opt = people.numberofPeopleSchedule
|
202
|
-
unless occupancy_sch_opt.empty?
|
203
|
-
occupancy_sch = occupancy_sch_opt.get
|
204
|
-
if occupancy_sch.to_ScheduleRuleset.is_initialized
|
205
|
-
occupancy_sch = occupancy_sch.to_ScheduleRuleset.get
|
206
|
-
# gather all of the day schedules across the schedule ruleset
|
207
|
-
schedule_days, day_ids = [], []
|
208
|
-
required_days = [
|
209
|
-
occupancy_sch.defaultDaySchedule,
|
210
|
-
occupancy_sch.summerDesignDaySchedule,
|
211
|
-
occupancy_sch.winterDesignDaySchedule,
|
212
|
-
occupancy_sch.holidaySchedule
|
213
|
-
]
|
214
|
-
required_days.each do |day_sch|
|
215
|
-
unless day_ids.include? day_sch.nameString
|
216
|
-
schedule_days << day_sch
|
217
|
-
day_ids << day_sch.nameString
|
218
|
-
end
|
219
|
-
end
|
220
|
-
occupancy_sch.scheduleRules.each do |schedule_rule|
|
221
|
-
day_sch = schedule_rule.daySchedule
|
222
|
-
unless day_ids.include? day_sch.nameString
|
223
|
-
schedule_days << day_sch
|
224
|
-
day_ids << day_sch.nameString
|
225
|
-
end
|
226
|
-
end
|
227
|
-
# loop through the day schedules and see if the start and end hours should be changed
|
228
|
-
schedule_days.each do |day_sch|
|
229
|
-
time_until = [1]
|
230
|
-
day_sch.times.each do |time|
|
231
|
-
time_until << time.hours
|
232
|
-
end
|
233
|
-
final_time = time_until[-2]
|
234
|
-
day_sch.values.zip(time_until).each do |value, time|
|
235
|
-
if value > threshold
|
236
|
-
if time < start_hour
|
237
|
-
start_hour = time
|
238
|
-
end
|
239
|
-
if time > end_hour
|
240
|
-
end_hour = time
|
241
|
-
end
|
242
|
-
if time == final_time
|
243
|
-
start_hour = 1
|
244
|
-
end_hour = 24
|
245
|
-
end
|
246
|
-
end
|
247
|
-
end
|
248
|
-
end
|
249
|
-
end
|
250
|
-
end
|
251
|
-
end
|
252
|
-
end
|
253
|
-
end
|
254
|
-
|
255
|
-
# if no values were set, just set the system to be on all of the time
|
256
|
-
if start_hour == 12 or start_hour == 0
|
257
|
-
start_hour = 1
|
258
|
-
end
|
259
|
-
if end_hour == 12
|
260
|
-
end_hour = 24
|
261
|
-
end
|
262
|
-
return start_hour, end_hour
|
263
|
-
end
|
264
|
-
|
265
167
|
def model_add_low_temp_radiant(std,
|
266
168
|
thermal_zones,
|
267
169
|
hot_water_loop,
|
@@ -273,9 +175,6 @@ class OpenStudio::Model::Model
|
|
273
175
|
model_occ_hr_end: 24.0,
|
274
176
|
control_strategy: 'proportional_control',
|
275
177
|
proportional_gain: 0.3,
|
276
|
-
minimum_operation: 1,
|
277
|
-
weekend_temperature_reset: 2,
|
278
|
-
early_reset_out_arg: 20,
|
279
178
|
switch_over_time: 24.0,
|
280
179
|
cz_mult: 4)
|
281
180
|
|
@@ -598,18 +497,18 @@ class OpenStudio::Model::Model
|
|
598
497
|
# rename nodes before adding EMS code
|
599
498
|
std.rename_plant_loop_nodes(self)
|
600
499
|
|
500
|
+
# TODO: Un-comment this once these controls are fixed (Matt made a lot of changes for OpenStudio 3.8)
|
601
501
|
# set radiant loop controls
|
602
|
-
if control_strategy == 'proportional_control'
|
603
|
-
|
604
|
-
|
605
|
-
|
606
|
-
|
607
|
-
|
608
|
-
|
609
|
-
|
610
|
-
|
611
|
-
|
612
|
-
end
|
502
|
+
#if control_strategy == 'proportional_control'
|
503
|
+
# std.model_add_radiant_proportional_controls(self, zone, radiant_loop,
|
504
|
+
# radiant_temperature_control_type: 'SurfaceFaceTemperature',
|
505
|
+
# use_zone_occupancy_for_control: true,
|
506
|
+
# occupied_percentage_threshold: 0.10,
|
507
|
+
# model_occ_hr_start: model_occ_hr_start,
|
508
|
+
# model_occ_hr_end: model_occ_hr_end,
|
509
|
+
# proportional_gain: proportional_gain,
|
510
|
+
# switch_over_time: switch_over_time)
|
511
|
+
#end
|
613
512
|
end
|
614
513
|
|
615
514
|
return radiant_loops
|
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.38.
|
4
|
+
version: 2.38.9
|
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: 2024-
|
14
|
+
date: 2024-05-24 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: json_pure
|