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 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