openstudio-geb 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 99e02016d3d2f307848fee0b326a4d746f5179c39322f9c3352acd9bd93ed5eb
4
- data.tar.gz: e649a232a4b34ca064aa7ccde7f6eab8990252739c6f793dbb6cbeb4351da8ea
3
+ metadata.gz: 1f5c6ce73d5eeff3672c2dded24ac1b0ee7f3444a622e8504f8fa4fd92fd257a
4
+ data.tar.gz: 4a67b1901225ede4ace75c4b7e1a99efb7af844582d8956cf11ebc4f9a860265
5
5
  SHA512:
6
- metadata.gz: 21a9dc08165e2b8d913e1233b345e868792578dd26f6b8ea4a06047a3211099886e00afd4e437ac2e2673d1ae7f5db086223e08c44f07eece261a2b4ba46086c
7
- data.tar.gz: 43441ee2003eb9e9852e5650a7cfc242da5060882704b48d5d05f762c5c99db2380cc69e0890d64100f5b5eae626d17f235608e56aaf014ad0b85bc6d06c0cac
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
- clg_op_scheme = OpenStudio::Model::PlantEquipmentOperationCoolingLoad.new(model)
562
- 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.
563
- # the sequence of addEquipment and addLoadRange can't be switched
564
- clg_op_scheme.addEquipment(sec_chiller)
565
- clg_op_scheme.addLoadRange(tank_supply_watt, [chw_storage_tank])
566
- sec_loop.setPlantEquipmentOperationCoolingLoad(clg_op_scheme)
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
@@ -35,6 +35,6 @@
35
35
 
36
36
  module OpenStudio
37
37
  module Geb
38
- VERSION = '0.1.0'.freeze
38
+ VERSION = '0.1.1'.freeze
39
39
  end
40
40
  end
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.0
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-10-25 00:00:00.000000000 Z
12
+ date: 2022-11-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler