openstudio-standards 0.6.0.rc1 → 0.6.0.rc2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/data/standards/test_performance_expected_dd_results.csv +8 -8
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingGas.rb +7 -2
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.rb +46 -1
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.hvac_systems.rb +171 -178
- data/lib/openstudio-standards/standards/necb/NECB2011/qaqc/necb_qaqc.rb +3 -3
- data/lib/openstudio-standards/utilities/simulation.rb +5 -0
- data/lib/openstudio-standards/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: eeae37f1a829d1531a5036352d1a2c63593060c6efbefd3af99dba3daeb46c1a
|
4
|
+
data.tar.gz: c5272723e22efb67b5e3d5b99a1db683b1d00e7c92c535d94cd8e0abba7cbc9f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a1f549cfe400b25576b93541d5fadc0d3aad695ea33a10ddea9b4d39a22d841c603da92b8860a3622af478189ea88f5627c1660d6ad764d27fd5bf3047fd3057
|
7
|
+
data.tar.gz: 844646771ff16c9e1ecf3b8860c694ae0b36e493651e1399268d47f000917ea7de13487c329f734bbf4468eab9bbf773cd2edda135e43d5a13a8d07e57b92cd8
|
@@ -65,17 +65,17 @@ FullServiceRestaurant,90.1-2010,ASHRAE 169-2013-4A,777539613.1023173,0,0,0,0,0,0
|
|
65
65
|
FullServiceRestaurant,90.1-2013,ASHRAE 169-2013-4A,755631711.948922,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256687116.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4297953623.6510105,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1245911470.5462978,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14136512.169772021,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3908703861.4121346,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11642346584.45856,0.0,11642346584.45856,504301758.4820919,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,659020530.2483394,0,0,0,0,0,0,0,0,0,18.483544466559202,0,0,0,0,0,0,0,0
|
66
66
|
FullServiceRestaurant,90.1-2016,ASHRAE 169-2013-4A,620443829.9347649,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,154382256.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4297953623.6510105,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1210468758.551721,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14136512.169772021,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3793374488.949421,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11254131588.132673,0.0,11254131588.132673,504409020.65290403,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,658963098.2230852,0,0,0,0,0,0,0,0,0,18.483544466559202,0,0,0,0,0,0,0,0
|
67
67
|
FullServiceRestaurant,90.1-2019,ASHRAE 169-2013-4A,597946658.1005332,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,154382256.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4184760983.6510096,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1198296660.8610497,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14136512.169772021,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3750980520.625906,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10948760999.042639,0.0,10948760999.042639,389190069.46910566,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,659067338.1652699,0,0,0,0,0,0,0,0,0,18.483544466559202,0,0,0,0,0,0,0,0
|
68
|
-
MidriseApartment,90.1-2004,ASHRAE 169-2013-4A,1228747413.939952,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,557040000.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4660550311.613755,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
69
|
-
MidriseApartment,90.1-2007,ASHRAE 169-2013-4A,1228747413.939952,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,557040000.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4660550311.613755,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
70
|
-
MidriseApartment,90.1-2010,ASHRAE 169-2013-4A,1264722844.1737761,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,300960000.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4611200599.0301285,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
68
|
+
MidriseApartment,90.1-2004,ASHRAE 169-2013-4A,1228747413.939952,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,557040000.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4660550311.613755,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,822237969.1271257,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.03033663212866495,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3118760026.6748786,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,13937338361.958841,0.0,13937338361.958841,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3550002640.5727863,0,0,0,0,0,0,0,0,0,15.410284867262238,0,0,0,0,0,0,0,0
|
69
|
+
MidriseApartment,90.1-2007,ASHRAE 169-2013-4A,1228747413.939952,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,557040000.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4660550311.613755,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,809000404.0380547,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.03033663212866495,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2528602358.197528,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,13333936887.96347,0.0,13333936887.96347,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3549996400.143838,0,0,0,0,0,0,0,0,0,15.410284867262238,0,0,0,0,0,0,0,0
|
70
|
+
MidriseApartment,90.1-2010,ASHRAE 169-2013-4A,1264722844.1737761,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,300960000.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4611200599.0301285,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,704832644.0873003,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.029272188896080235,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2295723503.6061645,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12711631630.973076,0.0,12711631630.973076,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3534192040.0464287,0,0,0,0,0,0,0,0,0,15.410284867262238,0,0,0,0,0,0,0,0
|
71
71
|
MidriseApartment,90.1-2013,ASHRAE 169-2013-4A,1101038681.645097,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,300960000.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4607308711.0301285,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1256799325.2086463,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.035753887865926565,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2744609020.8069496,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20046760.809141975,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,13144730768.847263,0.0,13144730768.847263,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3113968269.3115425,0,0,0,0,0,0,0,0,0,15.410284867262238,0,0,0,0,0,0,0,0
|
72
72
|
MidriseApartment,90.1-2016,ASHRAE 169-2013-4A,855834791.8498567,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,198123000.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4607308711.0301285,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1182782275.7769496,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.035753887865926565,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2569744536.0970163,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20046760.809141975,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12547808335.214468,0.0,12547808335.214468,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3113968259.6156197,0,0,0,0,0,0,0,0,0,15.410284867262238,0,0,0,0,0,0,0,0
|
73
73
|
MidriseApartment,90.1-2019,ASHRAE 169-2013-4A,709501859.475796,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,198123000.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4607308711.0301285,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1162767188.6764462,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.035753887865926565,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2520799815.662402,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20046760.809141975,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12332519761.625237,0.0,12332519761.625237,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3113972425.935563,0,0,0,0,0,0,0,0,0,15.410284867262238,0,0,0,0,0,0,0,0
|
74
|
-
HighriseApartment,90.1-2004,ASHRAE 169-2013-4A,2830783842.860468,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1629600000.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9870166813.800488,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,296067944.9853616,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
75
|
-
HighriseApartment,90.1-2007,ASHRAE 169-2013-4A,2830783842.860468,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1629600000.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9870166813.800488,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,296067944.9853616,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
76
|
-
HighriseApartment,90.1-2010,ASHRAE 169-2013-4A,2979275880.92879,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1286400000.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9820817101.216848,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,170434864.9558134,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
77
|
-
HighriseApartment,90.1-2013,ASHRAE 169-2013-4A,2502911158.565948,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1286400000.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9816925213.216848,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,170319510.47468275,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
78
|
-
HighriseApartment,90.1-2016,ASHRAE 169-2013-4A,1931902613.3330522,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,900109560.0000012,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9816925213.216848,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,118479993.45694521,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
74
|
+
HighriseApartment,90.1-2004,ASHRAE 169-2013-4A,2830783842.860468,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1629600000.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9870166813.800488,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,296067944.9853616,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2759561631.1494513,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,535385144.18915427,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5196503967.47089,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8875514542.687614,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,413405499.66227293,0,0,0,0,0,0,0,0,0,19.3778306394734,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32406989386.80568,0.0,32406989386.80568,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,39.27137111334572,0,0,0,0,0,0,0,0
|
75
|
+
HighriseApartment,90.1-2007,ASHRAE 169-2013-4A,2830783842.860468,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1629600000.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9870166813.800488,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,296067944.9853616,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2703997101.9827433,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,524708568.86517787,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4900477910.411963,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8876724591.81084,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,407243708.7186346,0,0,0,0,0,0,0,0,0,19.2909489563067,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32039770483.43566,0.0,32039770483.43566,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,39.27137111334572,0,0,0,0,0,0,0,0
|
76
|
+
HighriseApartment,90.1-2010,ASHRAE 169-2013-4A,2979275880.92879,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1286400000.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9820817101.216848,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,170434864.9558134,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2345467351.7142277,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,478968864.1229158,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3576635640.9440866,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8051631861.32485,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,978219656.8966086,0,0,0,0,0,0,0,0,0,21.611850387905623,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,29687851222.10414,0.0,29687851222.10414,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,39.27137111334572,0,0,0,0,0,0,0,0
|
77
|
+
HighriseApartment,90.1-2013,ASHRAE 169-2013-4A,2502911158.565948,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1286400000.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9816925213.216848,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,170319510.47468275,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3813943393.7084503,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,472222105.5504,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4945734316.175122,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8916435671.29256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,984248362.8439888,0,0,0,0,0,0,0,0,0,24.03349270191599,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20046760.809141975,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32929186492.63715,0.0,32929186492.63715,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,39.27137111334572,0,0,0,0,0,0,0,0
|
78
|
+
HighriseApartment,90.1-2016,ASHRAE 169-2013-4A,1931902613.3330522,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,900109560.0000012,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9816925213.216848,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,118479993.45694521,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3603255819.112727,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,446176575.3944447,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4703256163.616502,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8493315396.990675,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,790543658.4208595,0,0,0,0,0,0,0,0,0,21.72224373776791,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20046760.809141975,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,30824011754.3512,0.0,30824011754.3512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,39.27137111334572,0,0,0,0,0,0,0,0
|
79
79
|
HighriseApartment,90.1-2019,ASHRAE 169-2013-4A,1610413342.225185,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,900109560.0000012,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9816925213.216848,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,118471681.5553761,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3585415380.3169084,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,434118898.3026537,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4736283926.267405,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8374609000.969961,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,775714827.7673504,0,0,0,0,0,0,0,0,0,21.388790981215433,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20046760.809141975,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,30372108591.430824,0.0,30372108591.430824,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,39.27137111334572,0,0,0,0,0,0,0,0
|
80
80
|
Hospital,90.1-2004,ASHRAE 169-2013-4A,43700141905.51176,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1996320000.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,73851258109.6063,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34067503994.126015,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,33103022164.466347,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10112571728.238243,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46820766045.57834,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6532353748.843508,0,0,0,0,0,0,0,0,0,191.02704311998363,0,0,0,0,0,0,0,0,6798818700.137337,0,0,0,0,0,0,0,0,0,2.5291605564510893,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,258704259073.49158,0.0,258704259073.49158,1470040442.5647764,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,251462234.41894314,0,0,0,0,0,0,0,0,0,46.80754034926254,0,0,0,0,0,0,0,0
|
81
81
|
Hospital,90.1-2007,ASHRAE 169-2013-4A,43700141905.51176,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1996320000.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66950317309.60635,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,33600246624.695667,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32641907550.116947,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9789181478.960934,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,45212694684.451775,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6362012611.503619,0,0,0,0,0,0,0,0,0,185.34140190149392,0,0,0,0,0,0,0,0,7302765350.65984,0,0,0,0,0,0,0,0,0,2.716628710445461,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,249277725384.5667,0.0,249277725384.5667,1470690632.651906,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,251447236.40786576,0,0,0,0,0,0,0,0,0,46.80754034926254,0,0,0,0,0,0,0,0
|
@@ -51,8 +51,13 @@ class Standard
|
|
51
51
|
htg_coil.setGasBurnerEfficiency(efficiency)
|
52
52
|
|
53
53
|
# defaults
|
54
|
-
|
55
|
-
|
54
|
+
if model.version < OpenStudio::VersionString.new('3.7.0')
|
55
|
+
htg_coil.setParasiticElectricLoad(0.0)
|
56
|
+
htg_coil.setParasiticGasLoad(0.0)
|
57
|
+
else
|
58
|
+
htg_coil.setOnCycleParasiticElectricLoad(0.0)
|
59
|
+
htg_coil.setOffCycleParasiticGasLoad(0.0)
|
60
|
+
end
|
56
61
|
|
57
62
|
return htg_coil
|
58
63
|
end
|
@@ -1579,9 +1579,54 @@ Standard.class_eval do
|
|
1579
1579
|
air_loop_hvac.thermalZones.each do |zone|
|
1580
1580
|
next unless OpenstudioStandards::ThermalZone.thermal_zone_residential?(zone)
|
1581
1581
|
|
1582
|
+
# Exception 3 to 6.5.6.1.1
|
1583
|
+
case template
|
1584
|
+
when '90.1-2019'
|
1585
|
+
case climate_zone
|
1586
|
+
when 'ASHRAE 169-2006-0A',
|
1587
|
+
'ASHRAE 169-2006-0B',
|
1588
|
+
'ASHRAE 169-2006-1A',
|
1589
|
+
'ASHRAE 169-2006-1B',
|
1590
|
+
'ASHRAE 169-2006-2A',
|
1591
|
+
'ASHRAE 169-2006-2B',
|
1592
|
+
'ASHRAE 169-2006-3A',
|
1593
|
+
'ASHRAE 169-2006-3B',
|
1594
|
+
'ASHRAE 169-2006-3C',
|
1595
|
+
'ASHRAE 169-2006-4A',
|
1596
|
+
'ASHRAE 169-2006-4B',
|
1597
|
+
'ASHRAE 169-2006-4C',
|
1598
|
+
'ASHRAE 169-2006-5A',
|
1599
|
+
'ASHRAE 169-2006-5B',
|
1600
|
+
'ASHRAE 169-2006-5C',
|
1601
|
+
'ASHRAE 169-2013-0A',
|
1602
|
+
'ASHRAE 169-2013-0B',
|
1603
|
+
'ASHRAE 169-2013-1A',
|
1604
|
+
'ASHRAE 169-2013-1B',
|
1605
|
+
'ASHRAE 169-2013-2A',
|
1606
|
+
'ASHRAE 169-2013-2B',
|
1607
|
+
'ASHRAE 169-2013-3A',
|
1608
|
+
'ASHRAE 169-2013-3B',
|
1609
|
+
'ASHRAE 169-2013-3C',
|
1610
|
+
'ASHRAE 169-2013-4A',
|
1611
|
+
'ASHRAE 169-2013-4B',
|
1612
|
+
'ASHRAE 169-2013-4C',
|
1613
|
+
'ASHRAE 169-2013-5A',
|
1614
|
+
'ASHRAE 169-2013-5B',
|
1615
|
+
'ASHRAE 169-2013-5C'
|
1616
|
+
if zone.floorArea <= OpenStudio.convert(500.0, 'ft^2', 'm^2').get
|
1617
|
+
has_erv = false
|
1618
|
+
OpenStudio.logFree(OpenStudio::Info, 'openstudio.Model.Model', "Energy recovery will not be modeled for the ERV serving #{zone.name}.")
|
1619
|
+
end
|
1620
|
+
end
|
1621
|
+
end
|
1622
|
+
|
1582
1623
|
oa_cfm_per_ft2 = 0.0578940512546562
|
1583
1624
|
oa_m3_per_m2 = OpenStudio.convert(OpenStudio.convert(oa_cfm_per_ft2, 'cfm', 'm^3/s').get, '1/ft^2', '1/m^2').get
|
1584
|
-
|
1625
|
+
if has_erv
|
1626
|
+
model_add_residential_erv(model, zone, oa_m3_per_m2)
|
1627
|
+
else
|
1628
|
+
model_add_residential_ventilator(model, zone, oa_m3_per_m2)
|
1629
|
+
end
|
1585
1630
|
|
1586
1631
|
# Shut-off air loop level OA intake
|
1587
1632
|
oa_controller = air_loop_hvac.airLoopHVACOutdoorAirSystem.get.getControllerOutdoorAir
|
@@ -5904,6 +5904,177 @@ class Standard
|
|
5904
5904
|
return ideal_systems
|
5905
5905
|
end
|
5906
5906
|
|
5907
|
+
# Add a residential ERV: standalone ERV that operates to provide OA,
|
5908
|
+
# used in conjuction with a system that having mechanical cooling and a heating coil
|
5909
|
+
#
|
5910
|
+
# @param model [OpenStudio::Model::Model] OpenStudio Model object
|
5911
|
+
# @param thermal_zone [OpenStudio::Model::ThermalZone] OpenStudio ThermalZone object
|
5912
|
+
# @return [OpenStudio::Model::ZoneHVACEnergyRecoveryVentilator] Standalone ERV
|
5913
|
+
def model_add_residential_erv(model,
|
5914
|
+
thermal_zone,
|
5915
|
+
min_oa_flow_m3_per_s_per_m2 = nil)
|
5916
|
+
|
5917
|
+
OpenStudio.logFree(OpenStudio::Info, 'openstudio.Model.Model', "Adding standalone ERV for #{thermal_zone.name}.")
|
5918
|
+
|
5919
|
+
# Determine ERR and design basis when energy recovery is required
|
5920
|
+
#
|
5921
|
+
# enthalpy_recovery_ratio = nil will trigger an ERV with no effectiveness that only provides OA
|
5922
|
+
enthalpy_recovery_ratio = nil
|
5923
|
+
climate_zone = OpenstudioStandards::Weather.model_get_climate_zone(model)
|
5924
|
+
case template
|
5925
|
+
when '90.1-2019'
|
5926
|
+
search_criteria = {
|
5927
|
+
'template' => template,
|
5928
|
+
'climate_zone' => climate_zone,
|
5929
|
+
'under_8000_hours' => false,
|
5930
|
+
'nontransient_dwelling' => true
|
5931
|
+
}
|
5932
|
+
else
|
5933
|
+
search_criteria = {
|
5934
|
+
'template' => template,
|
5935
|
+
'climate_zone' => climate_zone,
|
5936
|
+
'under_8000_hours' => false
|
5937
|
+
}
|
5938
|
+
end
|
5939
|
+
|
5940
|
+
erv_enthalpy_recovery_ratio = model_find_object(standards_data['energy_recovery'], search_criteria)
|
5941
|
+
|
5942
|
+
# Extract ERR from data lookup
|
5943
|
+
if !erv_enthalpy_recovery_ratio.nil?
|
5944
|
+
if erv_enthalpy_recovery_ratio['enthalpy_recovery_ratio'].nil? & erv_enthalpy_recovery_ratio['enthalpy_recovery_ratio_design_conditions'].nil?
|
5945
|
+
# If not included in the data, an enthalpy
|
5946
|
+
# recovery ratio (ERR) of 50% is used
|
5947
|
+
enthalpy_recovery_ratio = 0.5
|
5948
|
+
case climate_zone
|
5949
|
+
when 'ASHRAE 169-2006-6B',
|
5950
|
+
'ASHRAE 169-2013-6B',
|
5951
|
+
'ASHRAE 169-2006-7A',
|
5952
|
+
'ASHRAE 169-2013-7A',
|
5953
|
+
'ASHRAE 169-2006-7B',
|
5954
|
+
'ASHRAE 169-2013-7B',
|
5955
|
+
'ASHRAE 169-2006-8A',
|
5956
|
+
'ASHRAE 169-2013-8A',
|
5957
|
+
'ASHRAE 169-2006-8B',
|
5958
|
+
'ASHRAE 169-2013-8B'
|
5959
|
+
design_conditions = 'heating'
|
5960
|
+
else
|
5961
|
+
design_conditions = 'cooling'
|
5962
|
+
end
|
5963
|
+
else
|
5964
|
+
design_conditions = erv_enthalpy_recovery_ratio['enthalpy_recovery_ratio_design_conditions'].downcase
|
5965
|
+
enthalpy_recovery_ratio = erv_enthalpy_recovery_ratio['enthalpy_recovery_ratio']
|
5966
|
+
end
|
5967
|
+
end
|
5968
|
+
|
5969
|
+
# # Fan power with energy recovery = 0.934 W/cfm
|
5970
|
+
supply_fan = create_fan_by_name(model,
|
5971
|
+
'ERV_Supply_Fan',
|
5972
|
+
fan_name: "#{thermal_zone.name} ERV Supply Fan")
|
5973
|
+
exhaust_fan = create_fan_by_name(model,
|
5974
|
+
'ERV_Supply_Fan',
|
5975
|
+
fan_name: "#{thermal_zone.name} ERV Exhaust Fan")
|
5976
|
+
supply_fan.setMotorEfficiency(0.48)
|
5977
|
+
exhaust_fan.setMotorEfficiency(0.48)
|
5978
|
+
supply_fan.setFanTotalEfficiency(0.303158)
|
5979
|
+
exhaust_fan.setFanTotalEfficiency(0.303158)
|
5980
|
+
supply_fan.setPressureRise(270.64755)
|
5981
|
+
exhaust_fan.setPressureRise(270.64755)
|
5982
|
+
|
5983
|
+
|
5984
|
+
# Create ERV Controller
|
5985
|
+
erv_controller = OpenStudio::Model::ZoneHVACEnergyRecoveryVentilatorController.new(model)
|
5986
|
+
erv_controller.setName("#{thermal_zone.name} ERV Controller")
|
5987
|
+
erv_controller.setControlHighIndoorHumidityBasedonOutdoorHumidityRatio(false)
|
5988
|
+
|
5989
|
+
# Create heat exchanger
|
5990
|
+
heat_exchanger = OpenStudio::Model::HeatExchangerAirToAirSensibleAndLatent.new(model)
|
5991
|
+
heat_exchanger.setName("#{thermal_zone.name} ERV HX")
|
5992
|
+
heat_exchanger.setSupplyAirOutletTemperatureControl(false)
|
5993
|
+
heat_exchanger.setHeatExchangerType('Rotary')
|
5994
|
+
heat_exchanger.setEconomizerLockout(false)
|
5995
|
+
heat_exchanger.setFrostControlType('ExhaustOnly')
|
5996
|
+
heat_exchanger.setThresholdTemperature(-23.3)
|
5997
|
+
heat_exchanger.setInitialDefrostTimeFraction(0.167)
|
5998
|
+
heat_exchanger.setRateofDefrostTimeFractionIncrease(1.44)
|
5999
|
+
heat_exchanger.setAvailabilitySchedule(model_add_schedule(model, 'Always On - No Design Day'))
|
6000
|
+
heat_exchanger_air_to_air_sensible_and_latent_apply_prototype_efficiency_enthalpy_recovery_ratio(heat_exchanger, enthalpy_recovery_ratio, design_conditions, climate_zone)
|
6001
|
+
|
6002
|
+
erv = OpenStudio::Model::ZoneHVACEnergyRecoveryVentilator.new(model, heat_exchanger, supply_fan, exhaust_fan)
|
6003
|
+
erv.setName("#{thermal_zone.name} ERV")
|
6004
|
+
|
6005
|
+
erv.setController(erv_controller)
|
6006
|
+
erv.addToThermalZone(thermal_zone)
|
6007
|
+
|
6008
|
+
# Set OA requirements; Assumes a default of 55 cfm
|
6009
|
+
if min_oa_flow_m3_per_s_per_m2.nil?
|
6010
|
+
erv.setSupplyAirFlowRate(OpenStudio.convert(55.0, 'cfm', 'm^3/s').get)
|
6011
|
+
erv.setExhaustAirFlowRate(OpenStudio.convert(55.0, 'cfm', 'm^3/s').get)
|
6012
|
+
else
|
6013
|
+
erv.setVentilationRateperUnitFloorArea(min_oa_flow_m3_per_s_per_m2)
|
6014
|
+
end
|
6015
|
+
erv.setVentilationRateperOccupant(0.0)
|
6016
|
+
|
6017
|
+
# Ensure the ERV takes priority, so ventilation load is included when treated by other zonal systems
|
6018
|
+
# From EnergyPlus I/O reference:
|
6019
|
+
# "For situations where one or more equipment types has limited capacity or limited control capability, order the
|
6020
|
+
# sequence so that the most controllable piece of equipment runs last. For example, with a dedicated outdoor air
|
6021
|
+
# system (DOAS), the air terminal for the DOAS should be assigned Heating Sequence = 1 and Cooling Sequence = 1.
|
6022
|
+
# Any other equipment should be assigned sequence 2 or higher so that it will see the net load after the DOAS air
|
6023
|
+
# is added to the zone."
|
6024
|
+
thermal_zone.setCoolingPriority(erv.to_ModelObject.get, 1)
|
6025
|
+
thermal_zone.setHeatingPriority(erv.to_ModelObject.get, 1)
|
6026
|
+
|
6027
|
+
return erv
|
6028
|
+
end
|
6029
|
+
|
6030
|
+
# Add a residential ventilation: standalone unit ventilation and zone exhaust that operates to provide OA,
|
6031
|
+
# used in conjuction with a system that having mechanical cooling and a heating coil
|
6032
|
+
#
|
6033
|
+
# @param model [OpenStudio::Model::Model] OpenStudio Model object
|
6034
|
+
# @param thermal_zone [OpenStudio::Model::ThermalZone] OpenStudio ThermalZone object
|
6035
|
+
# @return [OpenStudio::Model::ZoneHVACUnitVentilator] Standalone Unit Ventilator
|
6036
|
+
def model_add_residential_ventilator(model,
|
6037
|
+
thermal_zone,
|
6038
|
+
min_oa_flow_m3_per_s_per_m2 = nil)
|
6039
|
+
|
6040
|
+
OpenStudio.logFree(OpenStudio::Info, 'openstudio.Model.Model', "Adding standalone unit ventilator for #{thermal_zone.name}.")
|
6041
|
+
|
6042
|
+
# Fan power with no energy recovery = 0.806 W/cfm
|
6043
|
+
supply_fan = create_fan_by_name(model,
|
6044
|
+
'ERV_Supply_Fan',
|
6045
|
+
fan_name: "#{thermal_zone.name} Ventilator Supply Fan")
|
6046
|
+
supply_fan.setMotorEfficiency(0.48)
|
6047
|
+
supply_fan.setFanTotalEfficiency(0.303158)
|
6048
|
+
supply_fan.setPressureRise(233.6875)
|
6049
|
+
|
6050
|
+
unit_ventilator = OpenStudio::Model::ZoneHVACUnitVentilator.new(model, supply_fan)
|
6051
|
+
unit_ventilator.setName("#{thermal_zone.name} Unit Ventilator")
|
6052
|
+
unit_ventilator.addToThermalZone(thermal_zone)
|
6053
|
+
fan_zone_exhaust = create_fan_zone_exhaust(model,
|
6054
|
+
fan_name: "#{thermal_zone.name} Exhaust Fan",
|
6055
|
+
fan_efficiency: 0.303158,
|
6056
|
+
pressure_rise: 233.6875)
|
6057
|
+
|
6058
|
+
# Set OA requirements; Assumes a default of 55 cfm
|
6059
|
+
if min_oa_flow_m3_per_s_per_m2.nil?
|
6060
|
+
unit_ventilator.setMaximumSupplyAirFlowRate(OpenStudio.convert(55.0, 'cfm', 'm^3/s').get)
|
6061
|
+
fan_zone_exhaust.setMaximumFlowRate(OpenStudio.convert(55.0, 'cfm', 'm^3/s').get)
|
6062
|
+
else
|
6063
|
+
unit_ventilator.setMaximumSupplyAirFlowRate(min_oa_flow_m3_per_s_per_m2)
|
6064
|
+
fan_zone_exhaust.setMaximumFlowRate(min_oa_flow_m3_per_s_per_m2)
|
6065
|
+
end
|
6066
|
+
|
6067
|
+
# Ensure the unit ventilator takes priority, so ventilation load is included when treated by other zonal systems
|
6068
|
+
# From EnergyPlus I/O reference:
|
6069
|
+
# "For situations where one or more equipment types has limited capacity or limited control capability, order the
|
6070
|
+
# sequence so that the most controllable piece of equipment runs last. For example, with a dedicated outdoor air
|
6071
|
+
# system (DOAS), the air terminal for the DOAS should be assigned Heating Sequence = 1 and Cooling Sequence = 1.
|
6072
|
+
# Any other equipment should be assigned sequence 2 or higher so that it will see the net load after the DOAS air
|
6073
|
+
# is added to the zone."
|
6074
|
+
thermal_zone.setCoolingPriority(unit_ventilator.to_ModelObject.get, 1)
|
6075
|
+
thermal_zone.setHeatingPriority(unit_ventilator.to_ModelObject.get, 1)
|
6076
|
+
end
|
6077
|
+
|
5907
6078
|
# Adds an exhaust fan to each zone.
|
5908
6079
|
#
|
5909
6080
|
# @param model [OpenStudio::Model::Model] OpenStudio model object
|
@@ -7295,182 +7466,4 @@ class Standard
|
|
7295
7466
|
rename_air_loop_nodes(model)
|
7296
7467
|
rename_plant_loop_nodes(model)
|
7297
7468
|
end
|
7298
|
-
|
7299
|
-
# Add a residential ERV: standalone ERV that operates to provide OA,
|
7300
|
-
# use in conjuction witha system that having mechanical cooling and
|
7301
|
-
# a heating coil
|
7302
|
-
#
|
7303
|
-
# @param model [OpenStudio::Model::Model] OpenStudio Model object
|
7304
|
-
# @param thermal_zone [OpenStudio::Model::ThermalZone] OpenStudio ThermalZone object
|
7305
|
-
# @param climate_zone [String] Climate zone
|
7306
|
-
# @param energy_recovery [Boolean] Indicates if the ERV is to recover energy, if false, only provides OA
|
7307
|
-
# @return [OpenStudio::Model::ZoneHVACEnergyRecoveryVentilator] Standalone ERV
|
7308
|
-
def model_add_residential_erv(model,
|
7309
|
-
thermal_zone,
|
7310
|
-
climate_zone,
|
7311
|
-
energy_recovery,
|
7312
|
-
min_oa_flow_m3_per_s_per_m2 = nil)
|
7313
|
-
|
7314
|
-
OpenStudio.logFree(OpenStudio::Info, 'openstudio.Model.Model', "Adding standalone ERV for #{thermal_zone.name}.")
|
7315
|
-
|
7316
|
-
# Exception 3 to 6.5.6.1.1
|
7317
|
-
case template
|
7318
|
-
when '90.1-2019'
|
7319
|
-
case climate_zone
|
7320
|
-
when 'ASHRAE 169-2006-0A',
|
7321
|
-
'ASHRAE 169-2006-0B',
|
7322
|
-
'ASHRAE 169-2006-1A',
|
7323
|
-
'ASHRAE 169-2006-1B',
|
7324
|
-
'ASHRAE 169-2006-2A',
|
7325
|
-
'ASHRAE 169-2006-2B',
|
7326
|
-
'ASHRAE 169-2006-3A',
|
7327
|
-
'ASHRAE 169-2006-3B',
|
7328
|
-
'ASHRAE 169-2006-3C',
|
7329
|
-
'ASHRAE 169-2006-4A',
|
7330
|
-
'ASHRAE 169-2006-4B',
|
7331
|
-
'ASHRAE 169-2006-4C',
|
7332
|
-
'ASHRAE 169-2006-5A',
|
7333
|
-
'ASHRAE 169-2006-5B',
|
7334
|
-
'ASHRAE 169-2006-5C',
|
7335
|
-
'ASHRAE 169-2013-0A',
|
7336
|
-
'ASHRAE 169-2013-0B',
|
7337
|
-
'ASHRAE 169-2013-1A',
|
7338
|
-
'ASHRAE 169-2013-1B',
|
7339
|
-
'ASHRAE 169-2013-2A',
|
7340
|
-
'ASHRAE 169-2013-2B',
|
7341
|
-
'ASHRAE 169-2013-3A',
|
7342
|
-
'ASHRAE 169-2013-3B',
|
7343
|
-
'ASHRAE 169-2013-3C',
|
7344
|
-
'ASHRAE 169-2013-4A',
|
7345
|
-
'ASHRAE 169-2013-4B',
|
7346
|
-
'ASHRAE 169-2013-4C',
|
7347
|
-
'ASHRAE 169-2013-5A',
|
7348
|
-
'ASHRAE 169-2013-5B',
|
7349
|
-
'ASHRAE 169-2013-5C'
|
7350
|
-
if thermal_zone.floorArea <= OpenStudio.convert(500.0, 'ft^2', 'm^2').get
|
7351
|
-
energy_recovery = false
|
7352
|
-
OpenStudio.logFree(OpenStudio::Info, 'openstudio.Model.Model', "Energy recovery will not be modeled for the ERV serving #{thermal_zone.name}.")
|
7353
|
-
end
|
7354
|
-
end
|
7355
|
-
end
|
7356
|
-
|
7357
|
-
# Determine ERR and design basis when energy recovery is required
|
7358
|
-
#
|
7359
|
-
# enthalpy_recovery_ratio = nil will trigger an ERV with no effectiveness that only provides OA
|
7360
|
-
enthalpy_recovery_ratio = nil
|
7361
|
-
if energy_recovery
|
7362
|
-
case template
|
7363
|
-
when '90.1-2019'
|
7364
|
-
search_criteria = {
|
7365
|
-
'template' => template,
|
7366
|
-
'climate_zone' => climate_zone,
|
7367
|
-
'under_8000_hours' => false,
|
7368
|
-
'nontransient_dwelling' => true
|
7369
|
-
}
|
7370
|
-
else
|
7371
|
-
search_criteria = {
|
7372
|
-
'template' => template,
|
7373
|
-
'climate_zone' => climate_zone,
|
7374
|
-
'under_8000_hours' => false
|
7375
|
-
}
|
7376
|
-
end
|
7377
|
-
|
7378
|
-
erv_enthalpy_recovery_ratio = model_find_object(standards_data['energy_recovery'], search_criteria)
|
7379
|
-
|
7380
|
-
# Extract ERR from data lookup
|
7381
|
-
if !erv_enthalpy_recovery_ratio.nil?
|
7382
|
-
if erv_enthalpy_recovery_ratio['enthalpy_recovery_ratio'].nil? & erv_enthalpy_recovery_ratio['enthalpy_recovery_ratio_design_conditions'].nil?
|
7383
|
-
# If not included in the data, an enthalpy
|
7384
|
-
# recovery ratio (ERR) of 50% is used
|
7385
|
-
enthalpy_recovery_ratio = 0.5
|
7386
|
-
case climate_zone
|
7387
|
-
when 'ASHRAE 169-2006-6B',
|
7388
|
-
'ASHRAE 169-2013-6B',
|
7389
|
-
'ASHRAE 169-2006-7A',
|
7390
|
-
'ASHRAE 169-2013-7A',
|
7391
|
-
'ASHRAE 169-2006-7B',
|
7392
|
-
'ASHRAE 169-2013-7B',
|
7393
|
-
'ASHRAE 169-2006-8A',
|
7394
|
-
'ASHRAE 169-2013-8A',
|
7395
|
-
'ASHRAE 169-2006-8B',
|
7396
|
-
'ASHRAE 169-2013-8B'
|
7397
|
-
design_conditions = 'heating'
|
7398
|
-
else
|
7399
|
-
design_conditions = 'cooling'
|
7400
|
-
end
|
7401
|
-
else
|
7402
|
-
design_conditions = erv_enthalpy_recovery_ratio['enthalpy_recovery_ratio_design_conditions'].downcase
|
7403
|
-
enthalpy_recovery_ratio = erv_enthalpy_recovery_ratio['enthalpy_recovery_ratio']
|
7404
|
-
end
|
7405
|
-
end
|
7406
|
-
end
|
7407
|
-
|
7408
|
-
# Create fans
|
7409
|
-
#
|
7410
|
-
# Fan power:
|
7411
|
-
# No energy recovery = 0.806 W/cfm
|
7412
|
-
# Energy recovery = 0.934 W/cfm
|
7413
|
-
supply_fan = create_fan_by_name(model,
|
7414
|
-
'ERV_Supply_Fan',
|
7415
|
-
fan_name: "#{thermal_zone.name} ERV Supply Fan")
|
7416
|
-
exhaust_fan = create_fan_by_name(model,
|
7417
|
-
'ERV_Supply_Fan',
|
7418
|
-
fan_name: "#{thermal_zone.name} ERV Exhaust Fan")
|
7419
|
-
supply_fan.setMotorEfficiency(0.48)
|
7420
|
-
exhaust_fan.setMotorEfficiency(0.48)
|
7421
|
-
supply_fan.setFanTotalEfficiency(0.303158)
|
7422
|
-
exhaust_fan.setFanTotalEfficiency(0.303158)
|
7423
|
-
if energy_recovery
|
7424
|
-
supply_fan.setPressureRise(270.64755)
|
7425
|
-
exhaust_fan.setPressureRise(270.64755)
|
7426
|
-
else
|
7427
|
-
supply_fan.setPressureRise(233.6875)
|
7428
|
-
exhaust_fan.setPressureRise(233.6875)
|
7429
|
-
end
|
7430
|
-
|
7431
|
-
# Create ERV Controller
|
7432
|
-
erv_controller = OpenStudio::Model::ZoneHVACEnergyRecoveryVentilatorController.new(model)
|
7433
|
-
erv_controller.setName("#{thermal_zone.name} ERV Controller")
|
7434
|
-
erv_controller.setControlHighIndoorHumidityBasedonOutdoorHumidityRatio(false)
|
7435
|
-
|
7436
|
-
# Create heat exchanger
|
7437
|
-
heat_exchanger = OpenStudio::Model::HeatExchangerAirToAirSensibleAndLatent.new(model)
|
7438
|
-
heat_exchanger.setName("#{thermal_zone.name} ERV HX")
|
7439
|
-
heat_exchanger.setSupplyAirOutletTemperatureControl(false)
|
7440
|
-
heat_exchanger.setHeatExchangerType('Rotary')
|
7441
|
-
heat_exchanger.setEconomizerLockout(false)
|
7442
|
-
heat_exchanger.setFrostControlType('ExhaustOnly')
|
7443
|
-
heat_exchanger.setThresholdTemperature(-23.3)
|
7444
|
-
heat_exchanger.setInitialDefrostTimeFraction(0.167)
|
7445
|
-
heat_exchanger.setRateofDefrostTimeFractionIncrease(1.44)
|
7446
|
-
heat_exchanger.setAvailabilitySchedule(model_add_schedule(model, 'Always On - No Design Day'))
|
7447
|
-
heat_exchanger_air_to_air_sensible_and_latent_apply_prototype_efficiency_enthalpy_recovery_ratio(heat_exchanger, enthalpy_recovery_ratio, design_conditions, climate_zone)
|
7448
|
-
|
7449
|
-
erv = OpenStudio::Model::ZoneHVACEnergyRecoveryVentilator.new(model, heat_exchanger, supply_fan, exhaust_fan)
|
7450
|
-
erv.setName("#{thermal_zone.name} ERV")
|
7451
|
-
|
7452
|
-
erv.setController(erv_controller)
|
7453
|
-
erv.addToThermalZone(thermal_zone)
|
7454
|
-
|
7455
|
-
# Set OA requirements; Assumes a default of 55 cfm
|
7456
|
-
if min_oa_flow_m3_per_s_per_m2.nil?
|
7457
|
-
erv.setSupplyAirFlowRate(OpenStudio.convert(55.0, 'cfm', 'm^3/s').get)
|
7458
|
-
erv.setExhaustAirFlowRate(OpenStudio.convert(55.0, 'cfm', 'm^3/s').get)
|
7459
|
-
else
|
7460
|
-
erv.setVentilationRateperUnitFloorArea(min_oa_flow_m3_per_s_per_m2)
|
7461
|
-
end
|
7462
|
-
erv.setVentilationRateperOccupant(0.0)
|
7463
|
-
|
7464
|
-
# Ensure the ERV takes priority, so ventilation load is included when treated by other zonal systems
|
7465
|
-
# From EnergyPlus I/O reference:
|
7466
|
-
# "For situations where one or more equipment types has limited capacity or limited control capability, order the
|
7467
|
-
# sequence so that the most controllable piece of equipment runs last. For example, with a dedicated outdoor air
|
7468
|
-
# system (DOAS), the air terminal for the DOAS should be assigned Heating Sequence = 1 and Cooling Sequence = 1.
|
7469
|
-
# Any other equipment should be assigned sequence 2 or higher so that it will see the net load after the DOAS air
|
7470
|
-
# is added to the zone."
|
7471
|
-
thermal_zone.setCoolingPriority(erv.to_ModelObject.get, 1)
|
7472
|
-
thermal_zone.setHeatingPriority(erv.to_ModelObject.get, 1)
|
7473
|
-
|
7474
|
-
return erv
|
7475
|
-
end
|
7476
7469
|
end
|
@@ -541,7 +541,7 @@ class NECB2011
|
|
541
541
|
constructions = []
|
542
542
|
outdoor_subsurfaces.each { |surface| constructions << surface.construction.get }
|
543
543
|
ext_const_base = Hash.new(0)
|
544
|
-
constructions.each { |name| ext_const_base[name] += 1 }
|
544
|
+
constructions.each { |name| ext_const_base[name.to_Construction.get] += 1 }
|
545
545
|
# iterate thought each construction and get store data
|
546
546
|
ext_const_base.sort.each do |construction, count|
|
547
547
|
construction_info = {}
|
@@ -558,7 +558,7 @@ class NECB2011
|
|
558
558
|
constructions = []
|
559
559
|
outdoor_surfaces.each { |surface| constructions << surface.construction.get }
|
560
560
|
ext_const_base = Hash.new(0)
|
561
|
-
constructions.each { |name| ext_const_base[name] += 1 }
|
561
|
+
constructions.each { |name| ext_const_base[name.to_Construction.get] += 1 }
|
562
562
|
# iterate thought each construction and get store data
|
563
563
|
ext_const_base.sort.each do |construction, count|
|
564
564
|
construction_info = {}
|
@@ -575,7 +575,7 @@ class NECB2011
|
|
575
575
|
constructions = []
|
576
576
|
ground_surfaces.each { |surface| constructions << surface.construction.get }
|
577
577
|
ext_const_base = Hash.new(0)
|
578
|
-
constructions.each { |name| ext_const_base[name] += 1 }
|
578
|
+
constructions.each { |name| ext_const_base[name.to_Construction.get] += 1 }
|
579
579
|
# iterate thought each construction and get store data
|
580
580
|
ext_const_base.sort.each do |construction, count|
|
581
581
|
construction_info = {}
|
@@ -193,6 +193,11 @@ Standard.class_eval do
|
|
193
193
|
sim_control.setDoHVACSizingSimulationforSizingPeriods(true)
|
194
194
|
sim_control.setMaximumNumberofHVACSizingSimulationPasses(1)
|
195
195
|
end
|
196
|
+
if model.version >= OpenStudio::VersionString.new('3.8.0')
|
197
|
+
sim_control.setDoZoneSizingCalculation(true)
|
198
|
+
sim_control.setDoSystemSizingCalculation(true)
|
199
|
+
sim_control.setDoPlantSizingCalculation(true)
|
200
|
+
end
|
196
201
|
|
197
202
|
# check that all zones have surfaces.
|
198
203
|
raise 'Error: Sizing Run Failed. Thermal Zones with no surfaces exist.' unless model_do_all_zones_have_surfaces?(model)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: openstudio-standards
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.0.
|
4
|
+
version: 0.6.0.rc2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mark Adams
|
@@ -39,7 +39,7 @@ authors:
|
|
39
39
|
autorequire:
|
40
40
|
bindir: bin
|
41
41
|
cert_chain: []
|
42
|
-
date: 2024-04-
|
42
|
+
date: 2024-04-19 00:00:00.000000000 Z
|
43
43
|
dependencies:
|
44
44
|
- !ruby/object:Gem::Dependency
|
45
45
|
name: minitest-reporters
|