openstudio-geb 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/measures/add_chilled_water_storage_tank/measure.rb +27 -17
- data/lib/openstudio/geb/version.rb +1 -1
- 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: 1f5c6ce73d5eeff3672c2dded24ac1b0ee7f3444a622e8504f8fa4fd92fd257a
|
4
|
+
data.tar.gz: 4a67b1901225ede4ace75c4b7e1a99efb7af844582d8956cf11ebc4f9a860265
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 907d8d052909600300259a16e78aeab672e89e17fe484ff1af3d3f1943ac24ed0a6fe5a629ab75638c06158e2da9df3682b87535741c8c82b302d60d8f9dcb42
|
7
|
+
data.tar.gz: 731d919ced3ef43ab5cc79bd52a6fdf2dbfe8aad71b3ef07a850ab809e96c789588f823462fc68af9031170c1954a0519d36e988ff5ce5034bbfdf6136d7993f
|
@@ -536,8 +536,6 @@ class AddChilledWaterStorageTank < OpenStudio::Measure::ModelMeasure
|
|
536
536
|
sizing_pri_plant.setDesignLoopExitTemperature(primary_loop_sp)
|
537
537
|
sizing_pri_plant.setLoopDesignTemperatureDifference(primary_delta_t)
|
538
538
|
|
539
|
-
|
540
|
-
|
541
539
|
# add chilled water tank to the primary loop as demand and secondary loop as supply
|
542
540
|
chw_storage_tank = OpenStudio::Model::ThermalStorageChilledWaterStratified.new(model)
|
543
541
|
tank_temp_sch = OpenStudio::Model::ScheduleRuleset.new(model)
|
@@ -546,6 +544,16 @@ class AddChilledWaterStorageTank < OpenStudio::Measure::ModelMeasure
|
|
546
544
|
chw_storage_tank.setSetpointTemperatureSchedule(tank_temp_sch)
|
547
545
|
sec_loop.addSupplyBranchForComponent(chw_storage_tank)
|
548
546
|
selected_primary_loop.addDemandBranchForComponent(chw_storage_tank)
|
547
|
+
|
548
|
+
# create discharging and charging schedule and apply to chilled water tank and primary loop
|
549
|
+
discharge_sch = create_sch(model, 'Chilled water tank discharge schedule', discharge_start, discharge_end, thermal_storage_season, wknds)
|
550
|
+
charge_sch = create_sch(model, 'Chilled water tank charge schedule', charge_start, charge_end, thermal_storage_season, wknds)
|
551
|
+
chw_storage_tank.setUseSideAvailabilitySchedule(discharge_sch)
|
552
|
+
chw_storage_tank.setSourceSideAvailabilitySchedule(charge_sch)
|
553
|
+
avm_sch = OpenStudio::Model::AvailabilityManagerScheduled.new(model)
|
554
|
+
avm_sch.setSchedule(charge_sch)
|
555
|
+
selected_primary_loop.addAvailabilityManager(avm_sch)
|
556
|
+
|
549
557
|
if objective == "Partial Storage"
|
550
558
|
sec_chiller = OpenStudio::Model::ChillerElectricEIR.new(model) # use default curves
|
551
559
|
sec_chiller.setName("CoolSysSecondary Chiller")
|
@@ -558,27 +566,29 @@ class AddChilledWaterStorageTank < OpenStudio::Measure::ModelMeasure
|
|
558
566
|
end
|
559
567
|
|
560
568
|
# add plant equipment operation schema if partial storage
|
561
|
-
|
562
|
-
|
563
|
-
|
564
|
-
|
565
|
-
|
566
|
-
|
569
|
+
clg_op_scheme_tank = OpenStudio::Model::PlantEquipmentOperationCoolingLoad.new(model)
|
570
|
+
clg_op_scheme_tank.addEquipment(chw_storage_tank)
|
571
|
+
clg_op_scheme_sec_chiller = OpenStudio::Model::PlantEquipmentOperationCoolingLoad.new(model)
|
572
|
+
clg_op_scheme_sec_chiller.addEquipment(sec_chiller)
|
573
|
+
undischarge_sch = create_sch(model, 'Chilled water tank not discharge schedule', discharge_end, discharge_start, thermal_storage_season, wknds)
|
574
|
+
# in this way, sequence in E+ will be tank first then chiller. In fact the sequence here doesn't matter as each schema is coupled with schedule
|
575
|
+
sec_loop.setPlantEquipmentOperationCoolingLoad(clg_op_scheme_tank)
|
576
|
+
sec_loop.setPlantEquipmentOperationCoolingLoadSchedule(discharge_sch)
|
577
|
+
sec_loop.setPrimaryPlantEquipmentOperationScheme(clg_op_scheme_sec_chiller)
|
578
|
+
sec_loop.setPrimaryPlantEquipmentOperationSchemeSchedule(undischarge_sch)
|
579
|
+
|
580
|
+
# clg_op_scheme = OpenStudio::Model::PlantEquipmentOperationCoolingLoad.new(model)
|
581
|
+
# tank_supply_watt = 2.0 * (4182 * tank_vol * 1000 * secondary_delta_t / (3600 * lasting_hrs)) # double the cooling cap in case thermal storage is not used at larger cooling load.
|
582
|
+
# # the sequence of addEquipment and addLoadRange can't be switched
|
583
|
+
# clg_op_scheme.addEquipment(sec_chiller)
|
584
|
+
# clg_op_scheme.addLoadRange(tank_supply_watt, [chw_storage_tank])
|
585
|
+
# sec_loop.setPlantEquipmentOperationCoolingLoad(clg_op_scheme)
|
567
586
|
end
|
568
587
|
# add secondary loop bypass pipe
|
569
588
|
sec_supply_bypass = OpenStudio::Model::PipeAdiabatic.new(model)
|
570
589
|
sec_supply_bypass.setName("Chilled Water Secondary Loop Supply Bypass Pipe")
|
571
590
|
sec_loop.addSupplyBranchForComponent(sec_supply_bypass)
|
572
591
|
|
573
|
-
# create discharging and charging schedule and apply to chilled water tank and primary loop
|
574
|
-
discharge_sch = create_sch(model, 'Chilled water tank discharge schedule', discharge_start, discharge_end, thermal_storage_season, wknds)
|
575
|
-
charge_sch = create_sch(model, 'Chilled water tank charge schedule', charge_start, charge_end, thermal_storage_season, wknds)
|
576
|
-
chw_storage_tank.setUseSideAvailabilitySchedule(discharge_sch)
|
577
|
-
chw_storage_tank.setSourceSideAvailabilitySchedule(charge_sch)
|
578
|
-
avm_sch = OpenStudio::Model::AvailabilityManagerScheduled.new(model)
|
579
|
-
avm_sch.setSchedule(charge_sch)
|
580
|
-
selected_primary_loop.addAvailabilityManager(avm_sch)
|
581
|
-
|
582
592
|
# move all primary loop demand components (except inlet and outlet pipes) to the secondary loop
|
583
593
|
selected_primary_loop.demandComponents(selected_primary_loop.demandSplitter, selected_primary_loop.demandMixer).each do |demand_comp|
|
584
594
|
if demand_comp.to_StraightComponent.is_initialized
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: openstudio-geb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kaiyu Sun
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date: 2022-
|
12
|
+
date: 2022-11-09 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|