openstudio-standards 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (40) hide show
  1. checksums.yaml +4 -4
  2. data/data/geometry/DEER_ERC.osm +2 -1
  3. data/data/geometry/DEER_MFm.osm +441 -70
  4. data/data/geometry/DEER_MFm_DXGF.json +210 -0
  5. data/data/geometry/DEER_MFm_DXHP.json +210 -0
  6. data/data/geometry/DEER_MFm_NCEH.json +163 -76
  7. data/data/geometry/DEER_MFm_NCGF.json +198 -44
  8. data/data/geometry/DEER_RtS.osm +0 -68
  9. data/data/geometry/DEER_SUn_Unc.json +2 -0
  10. data/data/standards/OpenStudio_Standards.xlsx +0 -0
  11. data/data/standards/OpenStudio_Standards_boilers.json +6 -6
  12. data/data/standards/OpenStudio_Standards_construction_properties.json +2304 -2304
  13. data/data/standards/OpenStudio_Standards_construction_sets.json +755 -125
  14. data/data/standards/OpenStudio_Standards_curves.json +51 -176
  15. data/data/standards/OpenStudio_Standards_entryways.json +11 -0
  16. data/data/standards/OpenStudio_Standards_exterior_lighting.json +30 -30
  17. data/data/standards/OpenStudio_Standards_ground_temperatures.json +288 -288
  18. data/data/standards/OpenStudio_Standards_heat_pumps.json +1320 -0
  19. data/data/standards/OpenStudio_Standards_heat_pumps_heating.json +840 -0
  20. data/data/standards/OpenStudio_Standards_materials.json +1 -1
  21. data/data/standards/OpenStudio_Standards_motors.json +11 -11
  22. data/data/standards/OpenStudio_Standards_parking.json +9 -0
  23. data/data/standards/OpenStudio_Standards_prototype_inputs.json +11877 -11301
  24. data/data/standards/OpenStudio_Standards_schedules.json +1847 -59
  25. data/data/standards/OpenStudio_Standards_space_types.json +88552 -75100
  26. data/data/standards/OpenStudio_Standards_templates.json +6 -6
  27. data/data/standards/OpenStudio_Standards_unitary_acs.json +1461 -185
  28. data/data/standards/OpenStudio_Standards_water_heaters.json +306 -0
  29. data/lib/openstudio-standards.rb +1 -0
  30. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.hvac.rb +19 -1
  31. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.swh.rb +13 -2
  32. data/lib/openstudio-standards/prototypes/common/objects/Prototype.hvac_systems.rb +3 -3
  33. data/lib/openstudio-standards/prototypes/common/prototype_metaprogramming.rb +5 -0
  34. data/lib/openstudio-standards/standards/Standards.Construction.rb +26 -5
  35. data/lib/openstudio-standards/standards/Standards.Space.rb +1 -0
  36. data/lib/openstudio-standards/standards/Standards.SpaceType.rb +1 -1
  37. data/lib/openstudio-standards/standards/Standards.WaterHeaterMixed.rb +1 -1
  38. data/lib/openstudio-standards/standards/deer/deer.Space.rb +17 -0
  39. data/lib/openstudio-standards/version.rb +1 -1
  40. metadata +5 -2
@@ -475,6 +475,312 @@
475
475
  "hourly_loss_volume_allowance": null,
476
476
  "thermal_efficiency": 0.8,
477
477
  "notes": "Same as 90.1-2013"
478
+ },
479
+ {
480
+ "template": "DEER Pre-1975",
481
+ "fuel_type": "NaturalGas",
482
+ "minimum_capacity": 0.0,
483
+ "maximum_capacity": 99999.99,
484
+ "start_date": "1919-09-10T00:00:00+00:00",
485
+ "end_date": "2999-09-10T00:00:00+00:00",
486
+ "energy_factor_base": 0.67,
487
+ "energy_factor_volume_derate": 0.00221,
488
+ "standby_loss_base": null,
489
+ "standby_loss_capacity_allowance": null,
490
+ "standby_loss_volume_allowance": null,
491
+ "hourly_loss_base": null,
492
+ "hourly_loss_volume_allowance": null,
493
+ "thermal_efficiency": null,
494
+ "notes": "From DEER Prototypes"
495
+ },
496
+ {
497
+ "template": "DEER 1985",
498
+ "fuel_type": "NaturalGas",
499
+ "minimum_capacity": 0.0,
500
+ "maximum_capacity": 99999.99,
501
+ "start_date": "1919-09-11T00:00:00+00:00",
502
+ "end_date": "2999-09-11T00:00:00+00:00",
503
+ "energy_factor_base": 0.67,
504
+ "energy_factor_volume_derate": 0.00221,
505
+ "standby_loss_base": null,
506
+ "standby_loss_capacity_allowance": null,
507
+ "standby_loss_volume_allowance": null,
508
+ "hourly_loss_base": null,
509
+ "hourly_loss_volume_allowance": null,
510
+ "thermal_efficiency": null,
511
+ "notes": "From DEER Prototypes"
512
+ },
513
+ {
514
+ "template": "DEER 1996",
515
+ "fuel_type": "NaturalGas",
516
+ "minimum_capacity": 0.0,
517
+ "maximum_capacity": 99999.99,
518
+ "start_date": "1919-09-12T00:00:00+00:00",
519
+ "end_date": "2999-09-12T00:00:00+00:00",
520
+ "energy_factor_base": 0.67,
521
+ "energy_factor_volume_derate": 0.00221,
522
+ "standby_loss_base": null,
523
+ "standby_loss_capacity_allowance": null,
524
+ "standby_loss_volume_allowance": null,
525
+ "hourly_loss_base": null,
526
+ "hourly_loss_volume_allowance": null,
527
+ "thermal_efficiency": null,
528
+ "notes": "From DEER Prototypes"
529
+ },
530
+ {
531
+ "template": "DEER 2003",
532
+ "fuel_type": "NaturalGas",
533
+ "minimum_capacity": 0.0,
534
+ "maximum_capacity": 99999.99,
535
+ "start_date": "1919-09-13T00:00:00+00:00",
536
+ "end_date": "2999-09-13T00:00:00+00:00",
537
+ "energy_factor_base": 0.67,
538
+ "energy_factor_volume_derate": 0.00221,
539
+ "standby_loss_base": null,
540
+ "standby_loss_capacity_allowance": null,
541
+ "standby_loss_volume_allowance": null,
542
+ "hourly_loss_base": null,
543
+ "hourly_loss_volume_allowance": null,
544
+ "thermal_efficiency": null,
545
+ "notes": "From DEER Prototypes"
546
+ },
547
+ {
548
+ "template": "DEER 2007",
549
+ "fuel_type": "NaturalGas",
550
+ "minimum_capacity": 0.0,
551
+ "maximum_capacity": 99999.99,
552
+ "start_date": "1919-09-14T00:00:00+00:00",
553
+ "end_date": "2999-09-14T00:00:00+00:00",
554
+ "energy_factor_base": 0.67,
555
+ "energy_factor_volume_derate": 0.00221,
556
+ "standby_loss_base": null,
557
+ "standby_loss_capacity_allowance": null,
558
+ "standby_loss_volume_allowance": null,
559
+ "hourly_loss_base": null,
560
+ "hourly_loss_volume_allowance": null,
561
+ "thermal_efficiency": null,
562
+ "notes": "From DEER Prototypes"
563
+ },
564
+ {
565
+ "template": "DEER 2011",
566
+ "fuel_type": "NaturalGas",
567
+ "minimum_capacity": 0.0,
568
+ "maximum_capacity": 99999.99,
569
+ "start_date": "1919-09-15T00:00:00+00:00",
570
+ "end_date": "2999-09-15T00:00:00+00:00",
571
+ "energy_factor_base": 0.67,
572
+ "energy_factor_volume_derate": 0.00221,
573
+ "standby_loss_base": null,
574
+ "standby_loss_capacity_allowance": null,
575
+ "standby_loss_volume_allowance": null,
576
+ "hourly_loss_base": null,
577
+ "hourly_loss_volume_allowance": null,
578
+ "thermal_efficiency": null,
579
+ "notes": "From DEER Prototypes"
580
+ },
581
+ {
582
+ "template": "DEER 2014",
583
+ "fuel_type": "NaturalGas",
584
+ "minimum_capacity": 0.0,
585
+ "maximum_capacity": 99999.99,
586
+ "start_date": "1919-09-16T00:00:00+00:00",
587
+ "end_date": "2999-09-16T00:00:00+00:00",
588
+ "energy_factor_base": 0.67,
589
+ "energy_factor_volume_derate": 0.00221,
590
+ "standby_loss_base": null,
591
+ "standby_loss_capacity_allowance": null,
592
+ "standby_loss_volume_allowance": null,
593
+ "hourly_loss_base": null,
594
+ "hourly_loss_volume_allowance": null,
595
+ "thermal_efficiency": null,
596
+ "notes": "From DEER Prototypes"
597
+ },
598
+ {
599
+ "template": "DEER 2015",
600
+ "fuel_type": "NaturalGas",
601
+ "minimum_capacity": 0.0,
602
+ "maximum_capacity": 99999.99,
603
+ "start_date": "1919-09-17T00:00:00+00:00",
604
+ "end_date": "2999-09-17T00:00:00+00:00",
605
+ "energy_factor_base": 0.67,
606
+ "energy_factor_volume_derate": 0.00221,
607
+ "standby_loss_base": null,
608
+ "standby_loss_capacity_allowance": null,
609
+ "standby_loss_volume_allowance": null,
610
+ "hourly_loss_base": null,
611
+ "hourly_loss_volume_allowance": null,
612
+ "thermal_efficiency": null,
613
+ "notes": "From DEER Prototypes"
614
+ },
615
+ {
616
+ "template": "DEER 2017",
617
+ "fuel_type": "NaturalGas",
618
+ "minimum_capacity": 0.0,
619
+ "maximum_capacity": 99999.99,
620
+ "start_date": "1919-09-18T00:00:00+00:00",
621
+ "end_date": "2999-09-18T00:00:00+00:00",
622
+ "energy_factor_base": 0.67,
623
+ "energy_factor_volume_derate": 0.00221,
624
+ "standby_loss_base": null,
625
+ "standby_loss_capacity_allowance": null,
626
+ "standby_loss_volume_allowance": null,
627
+ "hourly_loss_base": null,
628
+ "hourly_loss_volume_allowance": null,
629
+ "thermal_efficiency": null,
630
+ "notes": "From DEER Prototypes"
631
+ },
632
+ {
633
+ "template": "DEER Pre-1975",
634
+ "fuel_type": "NaturalGas",
635
+ "minimum_capacity": 100000.0,
636
+ "maximum_capacity": "9.9999999E7",
637
+ "start_date": "1919-09-19T00:00:00+00:00",
638
+ "end_date": "2999-09-19T00:00:00+00:00",
639
+ "energy_factor_base": null,
640
+ "energy_factor_volume_derate": null,
641
+ "standby_loss_base": null,
642
+ "standby_loss_capacity_allowance": 2053.0,
643
+ "standby_loss_volume_allowance": 54.67,
644
+ "hourly_loss_base": null,
645
+ "hourly_loss_volume_allowance": null,
646
+ "thermal_efficiency": 0.8,
647
+ "notes": "From DEER Prototypes, values optimized to match % loss/hr in eQuest"
648
+ },
649
+ {
650
+ "template": "DEER 1985",
651
+ "fuel_type": "NaturalGas",
652
+ "minimum_capacity": 100000.0,
653
+ "maximum_capacity": "9.9999999E7",
654
+ "start_date": "1919-09-20T00:00:00+00:00",
655
+ "end_date": "2999-09-20T00:00:00+00:00",
656
+ "energy_factor_base": null,
657
+ "energy_factor_volume_derate": null,
658
+ "standby_loss_base": null,
659
+ "standby_loss_capacity_allowance": 2053.0,
660
+ "standby_loss_volume_allowance": 54.67,
661
+ "hourly_loss_base": null,
662
+ "hourly_loss_volume_allowance": null,
663
+ "thermal_efficiency": 0.8,
664
+ "notes": "From DEER Prototypes, values optimized to match % loss/hr in eQuest"
665
+ },
666
+ {
667
+ "template": "DEER 1996",
668
+ "fuel_type": "NaturalGas",
669
+ "minimum_capacity": 100000.0,
670
+ "maximum_capacity": "9.9999999E7",
671
+ "start_date": "1919-09-21T00:00:00+00:00",
672
+ "end_date": "2999-09-21T00:00:00+00:00",
673
+ "energy_factor_base": null,
674
+ "energy_factor_volume_derate": null,
675
+ "standby_loss_base": null,
676
+ "standby_loss_capacity_allowance": 2053.0,
677
+ "standby_loss_volume_allowance": 54.67,
678
+ "hourly_loss_base": null,
679
+ "hourly_loss_volume_allowance": null,
680
+ "thermal_efficiency": 0.8,
681
+ "notes": "From DEER Prototypes, values optimized to match % loss/hr in eQuest"
682
+ },
683
+ {
684
+ "template": "DEER 2003",
685
+ "fuel_type": "NaturalGas",
686
+ "minimum_capacity": 100000.0,
687
+ "maximum_capacity": "9.9999999E7",
688
+ "start_date": "1919-09-22T00:00:00+00:00",
689
+ "end_date": "2999-09-22T00:00:00+00:00",
690
+ "energy_factor_base": null,
691
+ "energy_factor_volume_derate": null,
692
+ "standby_loss_base": null,
693
+ "standby_loss_capacity_allowance": 2053.0,
694
+ "standby_loss_volume_allowance": 54.67,
695
+ "hourly_loss_base": null,
696
+ "hourly_loss_volume_allowance": null,
697
+ "thermal_efficiency": 0.8,
698
+ "notes": "From DEER Prototypes, values optimized to match % loss/hr in eQuest"
699
+ },
700
+ {
701
+ "template": "DEER 2007",
702
+ "fuel_type": "NaturalGas",
703
+ "minimum_capacity": 100000.0,
704
+ "maximum_capacity": "9.9999999E7",
705
+ "start_date": "1919-09-23T00:00:00+00:00",
706
+ "end_date": "2999-09-23T00:00:00+00:00",
707
+ "energy_factor_base": null,
708
+ "energy_factor_volume_derate": null,
709
+ "standby_loss_base": null,
710
+ "standby_loss_capacity_allowance": 2053.0,
711
+ "standby_loss_volume_allowance": 54.67,
712
+ "hourly_loss_base": null,
713
+ "hourly_loss_volume_allowance": null,
714
+ "thermal_efficiency": 0.8,
715
+ "notes": "From DEER Prototypes, values optimized to match % loss/hr in eQuest"
716
+ },
717
+ {
718
+ "template": "DEER 2011",
719
+ "fuel_type": "NaturalGas",
720
+ "minimum_capacity": 100000.0,
721
+ "maximum_capacity": "9.9999999E7",
722
+ "start_date": "1919-09-24T00:00:00+00:00",
723
+ "end_date": "2999-09-24T00:00:00+00:00",
724
+ "energy_factor_base": null,
725
+ "energy_factor_volume_derate": null,
726
+ "standby_loss_base": null,
727
+ "standby_loss_capacity_allowance": 2053.0,
728
+ "standby_loss_volume_allowance": 54.67,
729
+ "hourly_loss_base": null,
730
+ "hourly_loss_volume_allowance": null,
731
+ "thermal_efficiency": 0.8,
732
+ "notes": "From DEER Prototypes, values optimized to match % loss/hr in eQuest"
733
+ },
734
+ {
735
+ "template": "DEER 2014",
736
+ "fuel_type": "NaturalGas",
737
+ "minimum_capacity": 100000.0,
738
+ "maximum_capacity": "9.9999999E7",
739
+ "start_date": "1919-09-25T00:00:00+00:00",
740
+ "end_date": "2999-09-25T00:00:00+00:00",
741
+ "energy_factor_base": null,
742
+ "energy_factor_volume_derate": null,
743
+ "standby_loss_base": null,
744
+ "standby_loss_capacity_allowance": 2053.0,
745
+ "standby_loss_volume_allowance": 54.67,
746
+ "hourly_loss_base": null,
747
+ "hourly_loss_volume_allowance": null,
748
+ "thermal_efficiency": 0.8,
749
+ "notes": "From DEER Prototypes, values optimized to match % loss/hr in eQuest"
750
+ },
751
+ {
752
+ "template": "DEER 2015",
753
+ "fuel_type": "NaturalGas",
754
+ "minimum_capacity": 100000.0,
755
+ "maximum_capacity": "9.9999999E7",
756
+ "start_date": "1919-09-26T00:00:00+00:00",
757
+ "end_date": "2999-09-26T00:00:00+00:00",
758
+ "energy_factor_base": null,
759
+ "energy_factor_volume_derate": null,
760
+ "standby_loss_base": null,
761
+ "standby_loss_capacity_allowance": 2053.0,
762
+ "standby_loss_volume_allowance": 54.67,
763
+ "hourly_loss_base": null,
764
+ "hourly_loss_volume_allowance": null,
765
+ "thermal_efficiency": 0.8,
766
+ "notes": "From DEER Prototypes, values optimized to match % loss/hr in eQuest"
767
+ },
768
+ {
769
+ "template": "DEER 2017",
770
+ "fuel_type": "NaturalGas",
771
+ "minimum_capacity": 100000.0,
772
+ "maximum_capacity": "9.9999999E7",
773
+ "start_date": "1919-09-27T00:00:00+00:00",
774
+ "end_date": "2999-09-27T00:00:00+00:00",
775
+ "energy_factor_base": null,
776
+ "energy_factor_volume_derate": null,
777
+ "standby_loss_base": null,
778
+ "standby_loss_capacity_allowance": 2053.0,
779
+ "standby_loss_volume_allowance": 54.67,
780
+ "hourly_loss_base": null,
781
+ "hourly_loss_volume_allowance": null,
782
+ "thermal_efficiency": 0.8,
783
+ "notes": "From DEER Prototypes, values optimized to match % loss/hr in eQuest"
478
784
  }
479
785
  ]
480
786
  }
@@ -174,6 +174,7 @@ module OpenstudioStandards
174
174
  # DEER Common
175
175
  require_relative "#{stds}/deer/deer.Model"
176
176
  require_relative "#{stds}/deer/deer.AirLoopHVAC"
177
+ require_relative "#{stds}/deer/deer.Space"
177
178
 
178
179
  ### Prototypes ###
179
180
  # Building Types
@@ -363,6 +363,24 @@ class Standard
363
363
  thermal_zones,
364
364
  ventilation=true)
365
365
 
366
+ when 'Baseboards'
367
+ case system['heating_type']
368
+ when 'Gas', 'DistrictHeating'
369
+ hot_water_loop = model_get_or_add_hot_water_loop(model, main_heat_fuel)
370
+ when 'Electricity'
371
+ hot_water_loop = nil
372
+ when nil
373
+ # TODO: Error, Baseboard systems must have a main_heat_fuel
374
+ # return ??
375
+ end
376
+
377
+ model_add_baseboard(model,
378
+ hot_water_loop,
379
+ thermal_zones)
380
+
381
+ when 'Unconditioned'
382
+ OpenStudio.logFree(OpenStudio::Info, 'openstudio.model.Model', "System type is Unconditioned. No system will be added.")
383
+
366
384
  else
367
385
 
368
386
  OpenStudio.logFree(OpenStudio::Error, 'openstudio.model.Model', "System type '#{system['type']}' is not recognized for system named '#{system['name']}'. This system will not be added.")
@@ -370,7 +388,7 @@ class Standard
370
388
  end
371
389
  end
372
390
 
373
- OpenStudio.logFree(OpenStudio::Info, 'openstudio.model.Model', 'Finished adding HVAC')
391
+ OpenStudio.logFree(OpenStudio::Info, 'openstudio.model.Model', "Finished adding HVAC")
374
392
 
375
393
  return true
376
394
  end # add hvac
@@ -89,6 +89,7 @@ class Standard
89
89
  end
90
90
 
91
91
  elsif prototype_input['main_service_water_peak_flowrate']
92
+ OpenStudio.logFree(OpenStudio::Debug, 'openstudio.model.Model', 'Adding shw by main_service_water_peak_flowrate')
92
93
 
93
94
  # Attaches the end uses if specified as a lump value in the prototype_input
94
95
  model_add_swh_end_uses(model,
@@ -101,6 +102,7 @@ class Standard
101
102
  building_type)
102
103
 
103
104
  else
105
+ OpenStudio.logFree(OpenStudio::Debug, 'openstudio.model.Model', 'Adding shw by space_type_map')
104
106
 
105
107
  # Attaches the end uses if specified by space type
106
108
  space_type_map = @space_type_map
@@ -109,6 +111,10 @@ class Standard
109
111
  building_type = 'Space Function'
110
112
  end
111
113
 
114
+ # Log how many water fixtures are added
115
+ water_fixtures = []
116
+
117
+ # Loop through spaces types and add service hot water if specified
112
118
  space_type_map.sort.each do |space_type_name, space_names|
113
119
  search_criteria = {
114
120
  'template' => template,
@@ -121,7 +127,7 @@ class Standard
121
127
  next if data.nil?
122
128
 
123
129
  # Skip space types with no water use, unless it is a NECB archetype (these do not have peak flow rates defined)
124
- next unless template == 'NECB2011' || !data['service_water_heating_peak_flow_rate'].nil?
130
+ next unless template == 'NECB2011' || !data['service_water_heating_peak_flow_rate'].nil? || !data['service_water_heating_peak_flow_per_area'].nil?
125
131
 
126
132
  # Add a service water use for each space
127
133
  space_names.sort.each do |space_name|
@@ -135,15 +141,20 @@ class Standard
135
141
  space.multiplier
136
142
  end
137
143
 
138
- model_add_swh_end_uses_by_space(model, model_get_lookup_name(building_type),
144
+ water_fixture = model_add_swh_end_uses_by_space(model, model_get_lookup_name(building_type),
139
145
  climate_zone,
140
146
  main_swh_loop,
141
147
  space_type_name,
142
148
  space_name,
143
149
  space_multiplier)
150
+ if !water_fixture.nil?
151
+ water_fixtures << water_fixture
152
+ end
144
153
  end
145
154
  end
146
155
 
156
+ OpenStudio.logFree(OpenStudio::Info, 'openstudio.model.Model', "Added #{water_fixtures.size} water fixtures to model")
157
+
147
158
  end
148
159
 
149
160
  end
@@ -4027,7 +4027,7 @@ class Standard
4027
4027
  parasitic_fuel_consumption_rate,
4028
4028
  building_type = nil)
4029
4029
 
4030
- OpenStudio.logFree(OpenStudio::Info, 'openstudio.Model.Model', 'Adding service water loop.')
4030
+ OpenStudio.logFree(OpenStudio::Info, 'openstudio.Model.Model', 'Adding service water loop')
4031
4031
 
4032
4032
  # Service water heating loop
4033
4033
  service_water_loop = OpenStudio::Model::PlantLoop.new(model)
@@ -4159,7 +4159,7 @@ class Standard
4159
4159
  water_heater_thermal_zone,
4160
4160
  building_type = nil)
4161
4161
 
4162
- OpenStudio.logFree(OpenStudio::Info, 'openstudio.Model.Model', 'Adding water heater.')
4162
+ OpenStudio.logFree(OpenStudio::Info, 'openstudio.Model.Model', 'Adding water heater')
4163
4163
 
4164
4164
  # Water heater
4165
4165
  # TODO Standards - Change water heater methodology to follow
@@ -4275,7 +4275,7 @@ class Standard
4275
4275
  booster_water_heater_thermal_zone,
4276
4276
  building_type = nil)
4277
4277
 
4278
- OpenStudio.logFree(OpenStudio::Info, 'openstudio.Model.Model', "Adding booster water heater to #{main_service_water_loop.name}.")
4278
+ OpenStudio.logFree(OpenStudio::Info, 'openstudio.Model.Model', "Adding booster water heater to #{main_service_water_loop.name}")
4279
4279
 
4280
4280
  # Booster water heating loop
4281
4281
  booster_service_water_loop = OpenStudio::Model::PlantLoop.new(model)
@@ -386,6 +386,11 @@ def create_deer_class_array
386
386
  'SVVE',
387
387
  'SVVG',
388
388
  'WLHP'],
389
+ 'MFm' => [
390
+ 'DXGF',
391
+ 'DXHP',
392
+ 'NCEH',
393
+ 'NCGF'],
389
394
  'MLI' => [
390
395
  'DXEH',
391
396
  'DXGF',