openstudio-load-flexibility-measures 0.3.1 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (44) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +36 -36
  3. data/.rubocop.yml +6 -9
  4. data/CHANGELOG.html +75 -75
  5. data/CHANGELOG.md +63 -48
  6. data/Gemfile +31 -7
  7. data/Jenkinsfile +11 -10
  8. data/LICENSE.md +27 -0
  9. data/README.md +57 -42
  10. data/Rakefile +15 -15
  11. data/doc_templates/LICENSE.md +26 -26
  12. data/doc_templates/README.md.erb +41 -41
  13. data/doc_templates/copyright_erb.txt +35 -35
  14. data/doc_templates/copyright_js.txt +3 -3
  15. data/doc_templates/copyright_ruby.txt +33 -33
  16. data/lib/measures/add_central_ice_storage/LICENSE.md +26 -26
  17. data/lib/measures/add_central_ice_storage/README.md +264 -264
  18. data/lib/measures/add_central_ice_storage/README.md.erb +41 -41
  19. data/lib/measures/add_central_ice_storage/measure.rb +1325 -1324
  20. data/lib/measures/add_central_ice_storage/measure.xml +503 -503
  21. data/lib/measures/add_central_ice_storage/resources/OsLib_Schedules.rb +171 -173
  22. data/lib/measures/add_central_ice_storage/tests/add_central_ice_storage_test.rb +203 -203
  23. data/lib/measures/add_central_ice_storage/tests/ice_test_model.osm +21523 -21523
  24. data/lib/measures/add_hpwh/LICENSE.md +26 -26
  25. data/lib/measures/add_hpwh/README.md +186 -186
  26. data/lib/measures/add_hpwh/README.md.erb +41 -41
  27. data/lib/measures/add_hpwh/docs/Flexible Domestic Hot Water Implementation Guide.pdf +0 -0
  28. data/lib/measures/add_hpwh/measure.rb +674 -647
  29. data/lib/measures/add_hpwh/measure.xml +402 -397
  30. data/lib/measures/add_hpwh/tests/SmallHotel-2A.osm +42893 -42893
  31. data/lib/measures/add_hpwh/tests/add_hpwh_test.rb +237 -0
  32. data/lib/measures/add_packaged_ice_storage/LICENSE.md +26 -26
  33. data/lib/measures/add_packaged_ice_storage/README.html +185 -185
  34. data/lib/measures/add_packaged_ice_storage/README.md +189 -189
  35. data/lib/measures/add_packaged_ice_storage/measure.rb +694 -691
  36. data/lib/measures/add_packaged_ice_storage/measure.xml +245 -245
  37. data/lib/measures/add_packaged_ice_storage/resources/TESCurves.idf +1059 -1059
  38. data/lib/measures/add_packaged_ice_storage/tests/MeasureTest.osm +9507 -9507
  39. data/lib/measures/add_packaged_ice_storage/tests/add_packaged_ice_storage_test.rb +96 -96
  40. data/lib/openstudio/load_flexibility_measures/version.rb +40 -40
  41. data/lib/openstudio/load_flexibility_measures.rb +50 -50
  42. data/openstudio-load-flexibility-measures.gemspec +33 -34
  43. metadata +25 -24
  44. data/lib/measures/add_hpwh/tests/add_hphw_test.rb +0 -98
@@ -1,27 +1,27 @@
1
- OpenStudio(R), Copyright (c) 2008-2020, Alliance for Sustainable Energy, LLC. All rights reserved.
2
-
3
- Redistribution and use in source and binary forms, with or without modification, are permitted
4
- provided that the following conditions are met:
5
-
6
- (1) Redistributions of source code must retain the above copyright notice, this list of conditions
7
- and the following disclaimer.
8
-
9
- (2) Redistributions in binary form must reproduce the above copyright notice, this list of conditions
10
- and the following disclaimer in the documentation and/or other materials provided with the distribution.
11
-
12
- (3) Neither the name of the copyright holder nor the names of any contributors may be used to endorse
13
- or promote products derived from this software without specific prior written permission from the
14
- respective party.
15
-
16
- (4) Other than as required in clauses (1) and (2), distributions in any form of modifications or other
17
- derivative works may not use the "OpenStudio" trademark, "OS", "os", or any other confusingly similar
18
- designation without specific prior written permission from Alliance for Sustainable Energy, LLC.
19
-
20
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
21
- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
22
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER, THE UNITED STATES GOVERNMENT,
23
- OR ANY CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24
- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
25
- OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
26
- STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
1
+ OpenStudio(R), Copyright (c) 2008-2020, Alliance for Sustainable Energy, LLC. All rights reserved.
2
+
3
+ Redistribution and use in source and binary forms, with or without modification, are permitted
4
+ provided that the following conditions are met:
5
+
6
+ (1) Redistributions of source code must retain the above copyright notice, this list of conditions
7
+ and the following disclaimer.
8
+
9
+ (2) Redistributions in binary form must reproduce the above copyright notice, this list of conditions
10
+ and the following disclaimer in the documentation and/or other materials provided with the distribution.
11
+
12
+ (3) Neither the name of the copyright holder nor the names of any contributors may be used to endorse
13
+ or promote products derived from this software without specific prior written permission from the
14
+ respective party.
15
+
16
+ (4) Other than as required in clauses (1) and (2), distributions in any form of modifications or other
17
+ derivative works may not use the "OpenStudio" trademark, "OS", "os", or any other confusingly similar
18
+ designation without specific prior written permission from Alliance for Sustainable Energy, LLC.
19
+
20
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
21
+ WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
22
+ PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER, THE UNITED STATES GOVERNMENT,
23
+ OR ANY CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
25
+ OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
26
+ STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
27
27
  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -1,186 +1,186 @@
1
-
2
-
3
- ###### (Automatically generated documentation)
4
-
5
- # Add HPWH for Domestic Hot Water
6
-
7
- ## Description
8
- This measure adds or replaces existing domestic hot water heater with air source heat pump system and allows for the addition of multiple daily flexible control time windows. The heater/tank system may charge at maximum capacity up to an elevated temperature, or float without any heat addition for a specified timeframe down to a minimum tank temperature.
9
-
10
- ## Modeler Description
11
- This measure allows selection between three heat pump water heater modeling approaches in EnergyPlus.The user may select between the pumped-condenser or wrapped-condenser objects. They may also elect to use a simplified calculation which does not use the heat pump objects, but instead used an electric resistance heater and approximates the equivalent electrical input that would be required from a heat pump. This expedites simulation at the expense of accuracy.
12
- The flexibility of the system is based on user-defined temperatures and times, which are converted into schedule objects. There are four flexibility options. (1) None: normal operation of the DHW system at a fixed tank temperature setpoint. (2) Charge - Heat Pump: the tank is charged to a maximum temperature using only the heat pump. (3) Charge - Electric: the tank is charged using internal electric resistance heaters to a maximum temperature. (4) Float: all heating elements are turned-off for a user-defined time period unless the tank temperature falls below a minimum value. The heat pump will be prioritized in a low tank temperature event, with the electric resistance heaters serving as back-up.
13
-
14
-
15
- ## Measure Type
16
- ModelMeasure
17
-
18
- ## Taxonomy
19
-
20
-
21
- ## Arguments
22
-
23
-
24
- ### Remove existing water heater on selected loop
25
-
26
- **Name:** remove_wh,
27
- **Type:** Boolean,
28
- **Units:** ,
29
- **Required:** true,
30
- **Model Dependent:** false
31
-
32
- ### Select hot water loop
33
- The water tank will be placed on the supply side of this loop.
34
- **Name:** loop,
35
- **Type:** Choice,
36
- **Units:** ,
37
- **Required:** true,
38
- **Model Dependent:** false
39
-
40
- ### Select thermal zone
41
- This is where the water heater tank will be placed
42
- **Name:** zone,
43
- **Type:** Choice,
44
- **Units:** ,
45
- **Required:** true,
46
- **Model Dependent:** false
47
-
48
- ### Select heat pump water heater type
49
-
50
- **Name:** type,
51
- **Type:** Choice,
52
- **Units:** ,
53
- **Required:** true,
54
- **Model Dependent:** false
55
-
56
- ### Set hot water tank volume
57
- [gal]
58
- **Name:** vol,
59
- **Type:** Double,
60
- **Units:** ,
61
- **Required:** true,
62
- **Model Dependent:** false
63
-
64
- ### Set heat pump heating capacity
65
- [kW]
66
- **Name:** cap,
67
- **Type:** Double,
68
- **Units:** ,
69
- **Required:** true,
70
- **Model Dependent:** false
71
-
72
- ### Set heat pump rated COP (heating)
73
-
74
- **Name:** cop,
75
- **Type:** Double,
76
- **Units:** ,
77
- **Required:** true,
78
- **Model Dependent:** false
79
-
80
- ### Set electric backup heating capacity
81
- [kW]
82
- **Name:** bu_cap,
83
- **Type:** Double,
84
- **Units:** ,
85
- **Required:** true,
86
- **Model Dependent:** false
87
-
88
- ### Set maximum tank temperature
89
- [F]
90
- **Name:** max_temp,
91
- **Type:** Double,
92
- **Units:** ,
93
- **Required:** true,
94
- **Model Dependent:** false
95
-
96
- ### Set minimum tank temperature during float
97
- [F]
98
- **Name:** min_temp,
99
- **Type:** Double,
100
- **Units:** ,
101
- **Required:** true,
102
- **Model Dependent:** false
103
-
104
- ### Set deadband temperature difference between heat pump and electric backup
105
- [F]
106
- **Name:** db_temp,
107
- **Type:** Double,
108
- **Units:** ,
109
- **Required:** true,
110
- **Model Dependent:** false
111
-
112
- ### Select reference tank setpoint temperature schedule
113
-
114
- **Name:** sched,
115
- **Type:** Choice,
116
- **Units:** ,
117
- **Required:** true,
118
- **Model Dependent:** false
119
-
120
- ### Daily Flex Period 1:
121
- Applies every day in the full run period.
122
- **Name:** flex0,
123
- **Type:** Choice,
124
- **Units:** ,
125
- **Required:** true,
126
- **Model Dependent:** false
127
-
128
- ### Use 24-Hour Format
129
-
130
- **Name:** flex_hrs0,
131
- **Type:** String,
132
- **Units:** ,
133
- **Required:** false,
134
- **Model Dependent:** false
135
-
136
- ### Daily Flex Period 2:
137
- Applies every day in the full run period.
138
- **Name:** flex1,
139
- **Type:** Choice,
140
- **Units:** ,
141
- **Required:** true,
142
- **Model Dependent:** false
143
-
144
- ### Use 24-Hour Format
145
-
146
- **Name:** flex_hrs1,
147
- **Type:** String,
148
- **Units:** ,
149
- **Required:** false,
150
- **Model Dependent:** false
151
-
152
- ### Daily Flex Period 3:
153
- Applies every day in the full run period.
154
- **Name:** flex2,
155
- **Type:** Choice,
156
- **Units:** ,
157
- **Required:** true,
158
- **Model Dependent:** false
159
-
160
- ### Use 24-Hour Format
161
-
162
- **Name:** flex_hrs2,
163
- **Type:** String,
164
- **Units:** ,
165
- **Required:** false,
166
- **Model Dependent:** false
167
-
168
- ### Daily Flex Period 4:
169
- Applies every day in the full run period.
170
- **Name:** flex3,
171
- **Type:** Choice,
172
- **Units:** ,
173
- **Required:** true,
174
- **Model Dependent:** false
175
-
176
- ### Use 24-Hour Format
177
-
178
- **Name:** flex_hrs3,
179
- **Type:** String,
180
- **Units:** ,
181
- **Required:** false,
182
- **Model Dependent:** false
183
-
184
-
185
-
186
-
1
+
2
+
3
+ ###### (Automatically generated documentation)
4
+
5
+ # Add HPWH for Domestic Hot Water
6
+
7
+ ## Description
8
+ This measure adds or replaces existing domestic hot water heater with air source heat pump system and allows for the addition of multiple daily flexible control time windows. The heater/tank system may charge at maximum capacity up to an elevated temperature, or float without any heat addition for a specified timeframe down to a minimum tank temperature.
9
+
10
+ ## Modeler Description
11
+ This measure allows selection between three heat pump water heater modeling approaches in EnergyPlus.The user may select between the pumped-condenser or wrapped-condenser objects. They may also elect to use a simplified calculation which does not use the heat pump objects, but instead used an electric resistance heater and approximates the equivalent electrical input that would be required from a heat pump. This expedites simulation at the expense of accuracy.
12
+ The flexibility of the system is based on user-defined temperatures and times, which are converted into schedule objects. There are four flexibility options. (1) None: normal operation of the DHW system at a fixed tank temperature setpoint. (2) Charge - Heat Pump: the tank is charged to a maximum temperature using only the heat pump. (3) Charge - Electric: the tank is charged using internal electric resistance heaters to a maximum temperature. (4) Float: all heating elements are turned-off for a user-defined time period unless the tank temperature falls below a minimum value. The heat pump will be prioritized in a low tank temperature event, with the electric resistance heaters serving as back-up.
13
+
14
+
15
+ ## Measure Type
16
+ ModelMeasure
17
+
18
+ ## Taxonomy
19
+
20
+
21
+ ## Arguments
22
+
23
+
24
+ ### Remove existing water heater?
25
+
26
+ **Name:** remove_wh,
27
+ **Type:** Boolean,
28
+ **Units:** ,
29
+ **Required:** true,
30
+ **Model Dependent:** false
31
+
32
+ ### Select 40+ gallon water heater to replace or augment
33
+ All can only be used with the 'Simplified' model
34
+ **Name:** wh,
35
+ **Type:** Choice,
36
+ **Units:** ,
37
+ **Required:** true,
38
+ **Model Dependent:** false
39
+
40
+ ### Set hot water tank volume [gal]
41
+ Enter 0 to use existing tank volume(s). Values less than 5 are treated as sizing multipliers.
42
+ **Name:** vol,
43
+ **Type:** Double,
44
+ **Units:** gal,
45
+ **Required:** false,
46
+ **Model Dependent:** false
47
+
48
+ ### Select heat pump water heater type
49
+
50
+ **Name:** type,
51
+ **Type:** Choice,
52
+ **Units:** ,
53
+ **Required:** true,
54
+ **Model Dependent:** false
55
+
56
+ ### Select thermal zone for HP evaporator
57
+ Does not apply to 'Simplified' cases
58
+ **Name:** zone,
59
+ **Type:** Choice,
60
+ **Units:** ,
61
+ **Required:** true,
62
+ **Model Dependent:** false
63
+
64
+ ### Set heat pump heating capacity
65
+ [kW]
66
+ **Name:** cap,
67
+ **Type:** Double,
68
+ **Units:** ,
69
+ **Required:** true,
70
+ **Model Dependent:** false
71
+
72
+ ### Set heat pump rated COP (heating)
73
+
74
+ **Name:** cop,
75
+ **Type:** Double,
76
+ **Units:** ,
77
+ **Required:** true,
78
+ **Model Dependent:** false
79
+
80
+ ### Set electric backup heating capacity
81
+ [kW]
82
+ **Name:** bu_cap,
83
+ **Type:** Double,
84
+ **Units:** ,
85
+ **Required:** true,
86
+ **Model Dependent:** false
87
+
88
+ ### Set maximum tank temperature
89
+ [F]
90
+ **Name:** max_temp,
91
+ **Type:** Double,
92
+ **Units:** ,
93
+ **Required:** true,
94
+ **Model Dependent:** false
95
+
96
+ ### Set minimum tank temperature during float
97
+ [F]
98
+ **Name:** min_temp,
99
+ **Type:** Double,
100
+ **Units:** ,
101
+ **Required:** true,
102
+ **Model Dependent:** false
103
+
104
+ ### Set deadband temperature difference between heat pump and electric backup
105
+ [F]
106
+ **Name:** db_temp,
107
+ **Type:** Double,
108
+ **Units:** ,
109
+ **Required:** true,
110
+ **Model Dependent:** false
111
+
112
+ ### Select reference tank setpoint temperature schedule
113
+
114
+ **Name:** sched,
115
+ **Type:** Choice,
116
+ **Units:** ,
117
+ **Required:** true,
118
+ **Model Dependent:** false
119
+
120
+ ### Daily Flex Period 1:
121
+ Applies every day in the full run period.
122
+ **Name:** flex0,
123
+ **Type:** Choice,
124
+ **Units:** ,
125
+ **Required:** true,
126
+ **Model Dependent:** false
127
+
128
+ ### Use 24-Hour Format
129
+
130
+ **Name:** flex_hrs0,
131
+ **Type:** String,
132
+ **Units:** ,
133
+ **Required:** false,
134
+ **Model Dependent:** false
135
+
136
+ ### Daily Flex Period 2:
137
+ Applies every day in the full run period.
138
+ **Name:** flex1,
139
+ **Type:** Choice,
140
+ **Units:** ,
141
+ **Required:** true,
142
+ **Model Dependent:** false
143
+
144
+ ### Use 24-Hour Format
145
+
146
+ **Name:** flex_hrs1,
147
+ **Type:** String,
148
+ **Units:** ,
149
+ **Required:** false,
150
+ **Model Dependent:** false
151
+
152
+ ### Daily Flex Period 3:
153
+ Applies every day in the full run period.
154
+ **Name:** flex2,
155
+ **Type:** Choice,
156
+ **Units:** ,
157
+ **Required:** true,
158
+ **Model Dependent:** false
159
+
160
+ ### Use 24-Hour Format
161
+
162
+ **Name:** flex_hrs2,
163
+ **Type:** String,
164
+ **Units:** ,
165
+ **Required:** false,
166
+ **Model Dependent:** false
167
+
168
+ ### Daily Flex Period 4:
169
+ Applies every day in the full run period.
170
+ **Name:** flex3,
171
+ **Type:** Choice,
172
+ **Units:** ,
173
+ **Required:** true,
174
+ **Model Dependent:** false
175
+
176
+ ### Use 24-Hour Format
177
+
178
+ **Name:** flex_hrs3,
179
+ **Type:** String,
180
+ **Units:** ,
181
+ **Required:** false,
182
+ **Model Dependent:** false
183
+
184
+
185
+
186
+
@@ -1,42 +1,42 @@
1
- <%#= README.md.erb is used to auto-generate README.md. %>
2
- <%#= To manually maintain README.md throw away README.md.erb and manually edit README.md %>
3
- ###### (Automatically generated documentation)
4
-
5
- # <%= name %>
6
-
7
- ## Description
8
- <%= description %>
9
-
10
- ## Modeler Description
11
- <%= modelerDescription %>
12
-
13
- ## Measure Type
14
- <%= measureType %>
15
-
16
- ## Taxonomy
17
- <%= taxonomy %>
18
-
19
- ## Arguments
20
-
21
- <% arguments.each do |argument| %>
22
- ### <%= argument[:display_name] %>
23
- <%= argument[:description] %>
24
- **Name:** <%= argument[:name] %>,
25
- **Type:** <%= argument[:type] %>,
26
- **Units:** <%= argument[:units] %>,
27
- **Required:** <%= argument[:required] %>,
28
- **Model Dependent:** <%= argument[:model_dependent] %>
29
- <% end %>
30
-
31
- <% if arguments.size == 0 %>
32
- <%= "This measure does not have any user arguments" %>
33
- <% end %>
34
-
35
- <% if outputs.size > 0 %>
36
- ## Outputs
37
- <% output_names = [] %>
38
- <% outputs.each do |output| %>
39
- <% output_names << output[:display_name] %>
40
- <% end %>
41
- <%= output_names.join(", ") %>
1
+ <%#= README.md.erb is used to auto-generate README.md. %>
2
+ <%#= To manually maintain README.md throw away README.md.erb and manually edit README.md %>
3
+ ###### (Automatically generated documentation)
4
+
5
+ # <%= name %>
6
+
7
+ ## Description
8
+ <%= description %>
9
+
10
+ ## Modeler Description
11
+ <%= modelerDescription %>
12
+
13
+ ## Measure Type
14
+ <%= measureType %>
15
+
16
+ ## Taxonomy
17
+ <%= taxonomy %>
18
+
19
+ ## Arguments
20
+
21
+ <% arguments.each do |argument| %>
22
+ ### <%= argument[:display_name] %>
23
+ <%= argument[:description] %>
24
+ **Name:** <%= argument[:name] %>,
25
+ **Type:** <%= argument[:type] %>,
26
+ **Units:** <%= argument[:units] %>,
27
+ **Required:** <%= argument[:required] %>,
28
+ **Model Dependent:** <%= argument[:model_dependent] %>
29
+ <% end %>
30
+
31
+ <% if arguments.size == 0 %>
32
+ <%= "This measure does not have any user arguments" %>
33
+ <% end %>
34
+
35
+ <% if outputs.size > 0 %>
36
+ ## Outputs
37
+ <% output_names = [] %>
38
+ <% outputs.each do |output| %>
39
+ <% output_names << output[:display_name] %>
40
+ <% end %>
41
+ <%= output_names.join(", ") %>
42
42
  <% end %>