openstudio-standards 0.1.3 → 0.1.4
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 +4 -4
- data/data/standards/OpenStudio_Standards.xlsx +0 -0
- data/data/standards/OpenStudio_Standards_chillers.json +5 -5
- data/data/standards/OpenStudio_Standards_construction_sets.json +2 -2
- data/data/standards/OpenStudio_Standards_curve_cubics.json +12 -0
- data/data/standards/OpenStudio_Standards_heat_pumps.json +2126 -72
- data/data/standards/OpenStudio_Standards_heat_pumps_heating.json +766 -14
- data/data/standards/OpenStudio_Standards_heat_rejection.json +172 -0
- data/data/standards/OpenStudio_Standards_prototype_inputs.json +355 -267
- data/data/standards/OpenStudio_Standards_schedules.json +262 -10
- data/data/standards/OpenStudio_Standards_space_types.json +1466 -794
- data/data/standards/manage_OpenStudio_Standards.rb +19 -21
- data/data/weather/weather_info.csv +96 -0
- data/lib/openstudio-standards/btap/btap.rb +1 -1
- data/lib/openstudio-standards/btap/compliance.rb +135 -40
- data/lib/openstudio-standards/btap/envelope.rb +26 -5
- data/lib/openstudio-standards/btap/geometry.rb +11 -1
- data/lib/openstudio-standards/btap/hvac.rb +489 -56
- data/lib/openstudio-standards/btap/simmanager.rb +1 -1
- data/lib/openstudio-standards/hvac_sizing/HVACSizing.CoilHeatingDXMultiSpeed.rb +120 -0
- data/lib/openstudio-standards/hvac_sizing/Siz.CoilCoolingDXMultiSpeed.rb +151 -7
- data/lib/openstudio-standards/hvac_sizing/Siz.CoilHeatingGasMultiStage.rb +48 -7
- data/lib/openstudio-standards/hvac_sizing/Siz.Model.rb +14 -12
- data/lib/openstudio-standards/prototypes/Prototype.AirTerminalSingleDuctVAVReheat.rb +33 -7
- data/lib/openstudio-standards/prototypes/Prototype.Model.hvac.rb +123 -91
- data/lib/openstudio-standards/prototypes/Prototype.Model.rb +130 -45
- data/lib/openstudio-standards/prototypes/Prototype.Model.swh.rb +13 -7
- data/lib/openstudio-standards/prototypes/Prototype.full_service_restaurant.rb +332 -324
- data/lib/openstudio-standards/prototypes/Prototype.hospital.rb +401 -99
- data/lib/openstudio-standards/prototypes/Prototype.hvac_systems.rb +309 -222
- data/lib/openstudio-standards/prototypes/Prototype.large_hotel.rb +100 -80
- data/lib/openstudio-standards/prototypes/Prototype.large_office.rb +37 -22
- data/lib/openstudio-standards/prototypes/Prototype.medium_office.rb +68 -53
- data/lib/openstudio-standards/prototypes/Prototype.mid_rise_apartment.rb +109 -88
- data/lib/openstudio-standards/prototypes/Prototype.outpatient.rb +52 -4
- data/lib/openstudio-standards/prototypes/Prototype.primary_school.rb +230 -213
- data/lib/openstudio-standards/prototypes/Prototype.quick_service_restaurant.rb +225 -218
- data/lib/openstudio-standards/prototypes/Prototype.retail_standalone.rb +29 -17
- data/lib/openstudio-standards/prototypes/Prototype.retail_stripmall.rb +42 -32
- data/lib/openstudio-standards/prototypes/Prototype.secondary_school.rb +331 -314
- data/lib/openstudio-standards/prototypes/Prototype.small_hotel.rb +233 -219
- data/lib/openstudio-standards/prototypes/Prototype.small_office.rb +40 -32
- data/lib/openstudio-standards/prototypes/Prototype.warehouse.rb +19 -6
- data/lib/openstudio-standards/standards/Standards.AirLoopHVAC.rb +576 -555
- data/lib/openstudio-standards/standards/Standards.AirTerminalSingleDuctVAVReheat.rb +3 -1
- data/lib/openstudio-standards/standards/Standards.BoilerHotWater.rb +35 -17
- data/lib/openstudio-standards/standards/Standards.ChillerElectricEIR.rb +51 -23
- data/lib/openstudio-standards/standards/Standards.CoilCoolingDXMultiSpeed.rb +255 -0
- data/lib/openstudio-standards/standards/Standards.CoilHeatingDXMultiSpeed.rb +192 -0
- data/lib/openstudio-standards/standards/Standards.CoilHeatingGasMultiStage.rb +65 -0
- data/lib/openstudio-standards/standards/Standards.Fan.rb +37 -6
- data/lib/openstudio-standards/standards/Standards.Model.rb +28 -3
- data/lib/openstudio-standards/standards/Standards.SpaceType.rb +3 -1
- data/lib/openstudio-standards/standards/Standards.WaterHeaterMixed.rb +41 -15
- data/lib/openstudio-standards/version.rb +1 -1
- data/lib/openstudio-standards/weather/Weather.Model.rb +509 -5
- data/lib/openstudio-standards/weather/Weather.stat_file.rb +145 -5
- metadata +8 -3
- data/lib/openstudio-standards/btap/environment.rb +0 -718
@@ -61,7 +61,7 @@ module BTAP
|
|
61
61
|
rm.enqueue( workflow.create( OpenStudio::Path.new("#{folder}/#{File.basename(model_path, ".osm")}"), OpenStudio::Path.new(model_path)),false)
|
62
62
|
puts "#{model_path} enqueued. #{counter} of #{osm_files.size}"
|
63
63
|
end
|
64
|
-
rm.showStatusDialog()
|
64
|
+
#rm.showStatusDialog()
|
65
65
|
rm.waitForFinished()
|
66
66
|
end
|
67
67
|
|
@@ -0,0 +1,120 @@
|
|
1
|
+
|
2
|
+
# open the class to add methods to return sizing values
|
3
|
+
class OpenStudio::Model::CoilHeatingDXMultiSpeed
|
4
|
+
|
5
|
+
# Sets all auto-sizeable fields to autosize
|
6
|
+
def autosize
|
7
|
+
autosizeSpeed1GrossRatedHeatingCapacity
|
8
|
+
autosizeSpeed2GrossRatedHeatingCapacity
|
9
|
+
autosizeSpeed3GrossRatedHeatingCapacity
|
10
|
+
autosizeSpeed4GrossRatedHeatingCapacity
|
11
|
+
autosizeSpeed1RatedAirFlowRate
|
12
|
+
autosizeSpeed2RatedAirFlowRate
|
13
|
+
autosizeSpeed3RatedAirFlowRate
|
14
|
+
autosizeSpeed4RatedAirFlowRate
|
15
|
+
end
|
16
|
+
|
17
|
+
# Takes the values calculated by the EnergyPlus sizing routines
|
18
|
+
# and puts them into this object model in place of the autosized fields.
|
19
|
+
# Must have previously completed a run with sql output for this to work.
|
20
|
+
def applySizingValues
|
21
|
+
|
22
|
+
speed1_rated_heating_capacity = self.autosizedSpeed1GrossRatedHeatingCapacity
|
23
|
+
if speed1_rated_heating_capacity.is_initialized
|
24
|
+
self.setSpeed1GrossRatedHeatingCapacity(speed1_rated_heating_capacity.get)
|
25
|
+
end
|
26
|
+
|
27
|
+
speed2_rated_total_cooling_capacity = self.autosizedSpeed2GrossRatedHeatingCapacity
|
28
|
+
if speed2_rated_total_cooling_capacity.is_initialized
|
29
|
+
self.setSpeed2GrossRatedTotalCoolingCapacity(speed2_rated_total_cooling_capacity.get)
|
30
|
+
end
|
31
|
+
|
32
|
+
speed3_rated_total_heating_capacity = self.autosizedSpeed3GrossRatedHeatingCapacity
|
33
|
+
if speed3_rated_total_heating_capacity.is_initialized
|
34
|
+
self.setSpeed3GrossRatedTotalCoolingCapacity(speed3_rated_total_heating_capacity.get)
|
35
|
+
end
|
36
|
+
|
37
|
+
speed4_rated_total_heating_capacity = self.autosizedSpeed4GrossRatedHeatingCapacity
|
38
|
+
if speed4_rated_total_heating_capacity.is_initialized
|
39
|
+
self.setSpeed4GrossRatedTotalCoolingCapacity(speed4_rated_total_heating_capacity.get)
|
40
|
+
end
|
41
|
+
|
42
|
+
speed1_rated_air_flow_rate = self.autosizedSpeed1RatedAirFlowRate
|
43
|
+
if speed1_rated_air_flow_rate.is_initialized
|
44
|
+
self.setSpeed1RatedAirFlowRate(speed1_rated_air_flow_rate.get)
|
45
|
+
end
|
46
|
+
|
47
|
+
speed2_rated_air_flow_rate = self.autosizedSpeed2RatedAirFlowRate
|
48
|
+
if speed2_rated_air_flow_rate.is_initialized
|
49
|
+
self.setSpeed2RatedAirFlowRate(speed2_rated_air_flow_rate.get)
|
50
|
+
end
|
51
|
+
|
52
|
+
speed3_rated_air_flow_rate = self.autosizedSpeed3RatedAirFlowRate
|
53
|
+
if speed3_rated_air_flow_rate.is_initialized
|
54
|
+
self.setSpeed3RatedAirFlowRate(speed3_rated_air_flow_rate.get)
|
55
|
+
end
|
56
|
+
|
57
|
+
speed4_rated_air_flow_rate = self.autosizedSpeed4RatedAirFlowRate
|
58
|
+
if speed4_rated_air_flow_rate.is_initialized
|
59
|
+
self.setSpeed4RatedAirFlowRate(speed4_rated_air_flow_rate.get)
|
60
|
+
end
|
61
|
+
|
62
|
+
end
|
63
|
+
|
64
|
+
# returns the autosized rated total cooling capacity for stage 1 as an optional double
|
65
|
+
def autosizedSpeed1GrossRatedHeatingCapacity
|
66
|
+
|
67
|
+
return self.model.getAutosizedValue(self,'Speed 1 Design Size Rated Total Heating Capacity', 'W')
|
68
|
+
|
69
|
+
end
|
70
|
+
|
71
|
+
# returns the autosized rated total cooling capacity for stage 2 as an optional double
|
72
|
+
def autosizedSpeed2GrossRatedHeatingCapacity
|
73
|
+
|
74
|
+
return self.model.getAutosizedValue(self,'Speed 2 Design Size Rated Total Heating Capacity', 'W')
|
75
|
+
|
76
|
+
end
|
77
|
+
|
78
|
+
# returns the autosized rated total cooling capacity for stage 3 as an optional double
|
79
|
+
def autosizedSpeed3GrossRatedHeatingCapacity
|
80
|
+
|
81
|
+
return self.model.getAutosizedValue(self,'Speed 3 Design Size Rated Total Heating Capacity', 'W')
|
82
|
+
|
83
|
+
end
|
84
|
+
|
85
|
+
# returns the autosized rated total cooling capacity for stage 4 as an optional double
|
86
|
+
def autosizedSpeed4GrossRatedHeatingCapacity
|
87
|
+
|
88
|
+
return self.model.getAutosizedValue(self,'Speed 4 Design Size Rated Total Heating Capacity', 'W')
|
89
|
+
|
90
|
+
end
|
91
|
+
|
92
|
+
# returns the autosized rated air flow rate for stage 1 as an optional double
|
93
|
+
def autosizedSpeed1RatedAirFlowRate
|
94
|
+
|
95
|
+
return self.model.getAutosizedValue(self,'Speed 1 Design Size Rated Air Flow Rate', 'm3/s')
|
96
|
+
|
97
|
+
end
|
98
|
+
|
99
|
+
# returns the autosized rated air flow rate for stage 2 as an optional double
|
100
|
+
def autosizedSpeed2RatedAirFlowRate
|
101
|
+
|
102
|
+
return self.model.getAutosizedValue(self,'Speed 2 Design Size Rated Air Flow Rate', 'm3/s')
|
103
|
+
|
104
|
+
end
|
105
|
+
|
106
|
+
# returns the autosized rated air flow rate for stage 3 as an optional double
|
107
|
+
def autosizedSpeed3RatedAirFlowRate
|
108
|
+
|
109
|
+
return self.model.getAutosizedValue(self,'Speed 3 Design Size Rated Air Flow Rate', 'm3/s')
|
110
|
+
|
111
|
+
end
|
112
|
+
|
113
|
+
# returns the autosized rated air flow rate for stage 4 as an optional double
|
114
|
+
def autosizedSpeed4RatedAirFlowRate
|
115
|
+
|
116
|
+
return self.model.getAutosizedValue(self,'Speed 4 Design Size Rated Air Flow Rate', 'm3/s')
|
117
|
+
|
118
|
+
end
|
119
|
+
|
120
|
+
end
|
@@ -4,7 +4,18 @@ class OpenStudio::Model::CoilCoolingDXMultiSpeed
|
|
4
4
|
|
5
5
|
# Sets all auto-sizeable fields to autosize
|
6
6
|
def autosize
|
7
|
-
|
7
|
+
autosizeSpeed1GrossRatedTotalCoolingCapacity
|
8
|
+
autosizeSpeed2GrossRatedTotalCoolingCapacity
|
9
|
+
autosizeSpeed3GrossRatedTotalCoolingCapacity
|
10
|
+
autosizeSpeed4GrossRatedTotalCoolingCapacity
|
11
|
+
autosizeSpeed1GrossRatedSensibleHeatRatio
|
12
|
+
autosizeSpeed2GrossRatedSensibleHeatRatio
|
13
|
+
autosizeSpeed3GrossRatedSensibleHeatRatio
|
14
|
+
autosizeSpeed4GrossRatedSensibleHeatRatio
|
15
|
+
autosizeSpeed1RatedAirFlowRate
|
16
|
+
autosizeSpeed2RatedAirFlowRate
|
17
|
+
autosizeSpeed3RatedAirFlowRate
|
18
|
+
autosizeSpeed4RatedAirFlowRate
|
8
19
|
end
|
9
20
|
|
10
21
|
# Takes the values calculated by the EnergyPlus sizing routines
|
@@ -12,16 +23,149 @@ class OpenStudio::Model::CoilCoolingDXMultiSpeed
|
|
12
23
|
# Must have previously completed a run with sql output for this to work.
|
13
24
|
def applySizingValues
|
14
25
|
|
15
|
-
|
16
|
-
|
26
|
+
rated_speed1_rated_total_cooling_capacity = self.autosizedSpeed1GrossRatedTotalCoolingCapacity
|
27
|
+
if rated_speed1_rated_total_cooling_capacity.is_initialized
|
28
|
+
self.setSpeed1GrossRatedTotalCoolingCapacity(rated_speed1_rated_total_cooling_capacity.get)
|
29
|
+
end
|
30
|
+
|
31
|
+
rated_speed2_rated_total_cooling_capacity = self.autosizedSpeed2GrossRatedTotalCoolingCapacity
|
32
|
+
if rated_speed2_rated_total_cooling_capacity.is_initialized
|
33
|
+
self.setSpeed2GrossRatedTotalCoolingCapacity(rated_speed2_rated_total_cooling_capacity.get)
|
34
|
+
end
|
35
|
+
|
36
|
+
rated_speed3_rated_total_cooling_capacity = self.autosizedSpeed3GrossRatedTotalCoolingCapacity
|
37
|
+
if rated_speed3_rated_total_cooling_capacity.is_initialized
|
38
|
+
self.setSpeed3GrossRatedTotalCoolingCapacity(rated_speed3_rated_total_cooling_capacity.get)
|
39
|
+
end
|
40
|
+
|
41
|
+
rated_speed4_rated_total_cooling_capacity = self.autosizedSpeed4GrossRatedTotalCoolingCapacity
|
42
|
+
if rated_speed4_rated_total_cooling_capacity.is_initialized
|
43
|
+
self.setSpeed4GrossRatedTotalCoolingCapacity(rated_speed4_rated_total_cooling_capacity.get)
|
44
|
+
end
|
45
|
+
|
46
|
+
rated_speed1_rated_sensible_heat_ratio = self.autosizedSpeed1RatedSensibleHeatRatio
|
47
|
+
if rated_speed1_rated_sensible_heat_ratio.is_initialized
|
48
|
+
self.setSpeed1RatedSensibleHeatRatio(rated_speed1_rated_sensible_heat_ratio.get)
|
49
|
+
end
|
50
|
+
|
51
|
+
rated_speed2_rated_sensible_heat_ratio = self.autosizedSpeed2RatedSensibleHeatRatio
|
52
|
+
if rated_speed2_rated_sensible_heat_ratio.is_initialized
|
53
|
+
self.setSpeed2RatedSensibleHeatRatio(rated_speed2_rated_sensible_heat_ratio.get)
|
54
|
+
end
|
55
|
+
|
56
|
+
rated_speed3_rated_sensible_heat_ratio = self.autosizedSpeed3RatedSensibleHeatRatio
|
57
|
+
if rated_speed3_rated_sensible_heat_ratio.is_initialized
|
58
|
+
self.setSpeed3RatedSensibleHeatRatio(rated_speed3_rated_sensible_heat_ratio.get)
|
59
|
+
end
|
60
|
+
|
61
|
+
rated_speed4_rated_sensible_heat_ratio = self.autosizedSpeed4RatedSensibleHeatRatio
|
62
|
+
if rated_speed4_rated_sensible_heat_ratio.is_initialized
|
63
|
+
self.setSpeed4RatedSensibleHeatRatio(rated_speed4_rated_sensible_heat_ratio.get)
|
64
|
+
end
|
65
|
+
|
66
|
+
rated_speed1_rated_air_flow_rate = self.autosizedSpeed1RatedAirFlowRate
|
67
|
+
if rated_speed1_rated_air_flow_rate.is_initialized
|
68
|
+
self.setSpeed1RatedAirFlowRate(rated_speed1_rated_air_flow_rate.get)
|
69
|
+
end
|
70
|
+
|
71
|
+
rated_speed2_rated_air_flow_rate = self.autosizedSpeed2RatedAirFlowRate
|
72
|
+
if rated_speed2_rated_air_flow_rate.is_initialized
|
73
|
+
self.setSpeed2RatedAirFlowRate(rated_speed2_rated_air_flow_rate.get)
|
74
|
+
end
|
75
|
+
|
76
|
+
rated_speed3_rated_air_flow_rate = self.autosizedSpeed3RatedAirFlowRate
|
77
|
+
if rated_speed3_rated_air_flow_rate.is_initialized
|
78
|
+
self.setSpeed3RatedAirFlowRate(rated_speed3_rated_air_flow_rate.get)
|
79
|
+
end
|
80
|
+
|
81
|
+
rated_speed4_rated_air_flow_rate = self.autosizedSpeed4RatedAirFlowRate
|
82
|
+
if rated_speed4_rated_air_flow_rate.is_initialized
|
83
|
+
self.setSpeed4RatedAirFlowRate(rated_speed4_rated_air_flow_rate.get)
|
84
|
+
end
|
85
|
+
|
17
86
|
end
|
18
87
|
|
19
|
-
# returns the autosized
|
20
|
-
|
88
|
+
# returns the autosized rated total cooling capacity for stage 1 as an optional double
|
89
|
+
def autosizedSpeed1GrossRatedTotalCoolingCapacity
|
21
90
|
|
22
|
-
|
91
|
+
return self.model.getAutosizedValue(self,'Speed 1 Design Size Rated Total Cooling Capacity', 'W')
|
23
92
|
|
24
|
-
|
93
|
+
end
|
25
94
|
|
95
|
+
# returns the autosized rated total cooling capacity for stage 2 as an optional double
|
96
|
+
def autosizedSpeed2GrossRatedTotalCoolingCapacity
|
97
|
+
|
98
|
+
return self.model.getAutosizedValue(self,'Speed 2 Design Size Rated Total Cooling Capacity', 'W')
|
99
|
+
|
100
|
+
end
|
26
101
|
|
102
|
+
# returns the autosized rated total cooling capacity for stage 3 as an optional double
|
103
|
+
def autosizedSpeed3GrossRatedTotalCoolingCapacity
|
104
|
+
|
105
|
+
return self.model.getAutosizedValue(self,'Speed 3 Design Size Rated Total Cooling Capacity', 'W')
|
106
|
+
|
107
|
+
end
|
108
|
+
|
109
|
+
# returns the autosized rated total cooling capacity for stage 4 as an optional double
|
110
|
+
def autosizedSpeed4GrossRatedTotalCoolingCapacity
|
111
|
+
|
112
|
+
return self.model.getAutosizedValue(self,'Speed 4 Design Size Rated Total Cooling Capacity', 'W')
|
113
|
+
|
114
|
+
end
|
115
|
+
|
116
|
+
# returns the autosized rated sensible heat ratio for stage 1 as an optional double
|
117
|
+
def autosizedSpeed1RatedSensibleHeatRatio
|
118
|
+
|
119
|
+
return self.model.getAutosizedValue(self,'Speed 1 Design Size Rated Sensible Heat Ratio', '')
|
120
|
+
|
121
|
+
end
|
122
|
+
|
123
|
+
# returns the autosized rated sensible heat ratio for stage 2 as an optional double
|
124
|
+
def autosizedSpeed2RatedSensibleHeatRatio
|
125
|
+
|
126
|
+
return self.model.getAutosizedValue(self,'Speed 2 Design Size Rated Sensible Heat Ratio', '')
|
127
|
+
|
128
|
+
end
|
129
|
+
|
130
|
+
# returns the autosized rated sensible heat ratio for stage 3 as an optional double
|
131
|
+
def autosizedSpeed3RatedSensibleHeatRatio
|
132
|
+
|
133
|
+
return self.model.getAutosizedValue(self,'Speed 3 Design Size Rated Sensible Heat Ratio', '')
|
134
|
+
|
135
|
+
end
|
136
|
+
|
137
|
+
# returns the autosized rated sensible heat ratio for stage 4 as an optional double
|
138
|
+
def autosizedSpeed4RatedSensibleHeatRatio
|
139
|
+
|
140
|
+
return self.model.getAutosizedValue(self,'Speed 4 Design Size Rated Sensible Heat Ratio', '')
|
141
|
+
|
142
|
+
end
|
143
|
+
|
144
|
+
# returns the autosized rated air flow rate for stage 1 as an optional double
|
145
|
+
def autosizedSpeed1RatedAirFlowRate
|
146
|
+
|
147
|
+
return self.model.getAutosizedValue(self,'Design Size Speed 1 Rated Air Flow Rate', 'm3/s')
|
148
|
+
|
149
|
+
end
|
150
|
+
|
151
|
+
# returns the autosized rated air flow rate for stage 2 as an optional double
|
152
|
+
def autosizedSpeed2RatedAirFlowRate
|
153
|
+
|
154
|
+
return self.model.getAutosizedValue(self,'Design Size Speed 2 Rated Air Flow Rate', 'm3/s')
|
155
|
+
|
156
|
+
end
|
157
|
+
|
158
|
+
# returns the autosized rated air flow rate for stage 3 as an optional double
|
159
|
+
def autosizedSpeed3RatedAirFlowRate
|
160
|
+
|
161
|
+
return self.model.getAutosizedValue(self,'Design Size Speed 3 Rated Air Flow Rate', 'm3/s')
|
162
|
+
|
163
|
+
end
|
164
|
+
|
165
|
+
# returns the autosized rated air flow rate for stage 4 as an optional double
|
166
|
+
def autosizedSpeed4RatedAirFlowRate
|
167
|
+
|
168
|
+
return self.model.getAutosizedValue(self,'Design Size Speed 4 Rated Air Flow Rate', 'm3/s')
|
169
|
+
|
170
|
+
end
|
27
171
|
end
|
@@ -4,7 +4,10 @@ class OpenStudio::Model::CoilHeatingGasMultiStage
|
|
4
4
|
|
5
5
|
# Sets all auto-sizeable fields to autosize
|
6
6
|
def autosize
|
7
|
-
|
7
|
+
autosizeStage1NominalCapacity
|
8
|
+
autosizeStage2NominalCapacity
|
9
|
+
autosizeStage3NominalCapacity
|
10
|
+
autosizeStage4NominalCapacity
|
8
11
|
end
|
9
12
|
|
10
13
|
# Takes the values calculated by the EnergyPlus sizing routines
|
@@ -12,16 +15,54 @@ class OpenStudio::Model::CoilHeatingGasMultiStage
|
|
12
15
|
# Must have previously completed a run with sql output for this to work.
|
13
16
|
def applySizingValues
|
14
17
|
|
15
|
-
|
16
|
-
|
18
|
+
design_size_stage1_nominal_capacity = self.autosizedStage1NominalCapacity
|
19
|
+
if design_size_stage1_nominal_capacity.is_initialized
|
20
|
+
self.setStage1NominalCapacity(design_size_stage1_nominal_capacity.get)
|
21
|
+
end
|
22
|
+
|
23
|
+
design_size_stage2_nominal_capacity = self.autosizedStage2NominalCapacity
|
24
|
+
if design_size_stage2_nominal_capacity.is_initialized
|
25
|
+
self.setStage2NominalCapacity(design_size_stage2_nominal_capacity.get)
|
26
|
+
end
|
27
|
+
|
28
|
+
design_size_stage3_nominal_capacity = self.autosizedStage3NominalCapacity
|
29
|
+
if design_size_stage3_nominal_capacity.is_initialized
|
30
|
+
self.setStage3NominalCapacity(design_size_stage3_nominal_capacity.get)
|
31
|
+
end
|
32
|
+
|
33
|
+
design_size_stage4_nominal_capacity = self.autosizedStage4NominalCapacity
|
34
|
+
if design_size_stage4_nominal_capacity.is_initialized
|
35
|
+
self.setStage4NominalCapacity(design_size_stage4_nominal_capacity.get)
|
36
|
+
end
|
37
|
+
|
17
38
|
end
|
18
39
|
|
19
|
-
# returns the autosized design
|
20
|
-
|
40
|
+
# returns the autosized design stage 1 capacity
|
41
|
+
def autosizedStage1NominalCapacity
|
21
42
|
|
22
|
-
|
43
|
+
return self.model.getAutosizedValue(self,'Design Size Stage 1 Nominal Capacity', 'W')
|
23
44
|
|
24
|
-
|
45
|
+
end
|
25
46
|
|
47
|
+
# returns the autosized design stage 2 capacity
|
48
|
+
def autosizedStage2NominalCapacity
|
49
|
+
|
50
|
+
return self.model.getAutosizedValue(self,'Design Size Stage 2 Nominal Capacity', 'W')
|
51
|
+
|
52
|
+
end
|
26
53
|
|
54
|
+
# returns the autosized design stage 3 capacity
|
55
|
+
def autosizedStage3NominalCapacity
|
56
|
+
|
57
|
+
return self.model.getAutosizedValue(self,'Design Size Stage 3 Nominal Capacity', 'W')
|
58
|
+
|
59
|
+
end
|
60
|
+
|
61
|
+
# returns the autosized design stage 4 capacity
|
62
|
+
def autosizedStage4NominalCapacity
|
63
|
+
|
64
|
+
return self.model.getAutosizedValue(self,'Design Size Stage 4 Nominal Capacity', 'W')
|
65
|
+
|
66
|
+
end
|
67
|
+
|
27
68
|
end
|
@@ -9,7 +9,7 @@ class OpenStudio::Model::Model
|
|
9
9
|
if OpenStudio::Model::Model.new.version < OpenStudio::VersionString.new(min_os_version)
|
10
10
|
OpenStudio::logFree(OpenStudio::Error, "openstudio.model.Model", "This measure requires a minimum OpenStudio version of #{min_os_version} because the HVACSizing .autosizedFoo methods expect EnergyPlus 8.2 output variable names.")
|
11
11
|
end
|
12
|
-
|
12
|
+
|
13
13
|
# Load the helper libraries for getting the autosized
|
14
14
|
# values for each type of model object.
|
15
15
|
require_relative 'Siz.AirTermSnglDuctParallelPIUReheat'
|
@@ -64,7 +64,7 @@ class OpenStudio::Model::Model
|
|
64
64
|
# A helper method to run a sizing run and pull any values calculated during
|
65
65
|
# autosizing back into the self.
|
66
66
|
def runSizingRun(sizing_run_dir = "#{Dir.pwd}/SizingRun")
|
67
|
-
|
67
|
+
|
68
68
|
# Change the simulation to only run the sizing days
|
69
69
|
sim_control = self.getSimulationControl
|
70
70
|
sim_control.setRunSimulationforSizingPeriods(true)
|
@@ -91,7 +91,7 @@ class OpenStudio::Model::Model
|
|
91
91
|
OpenStudio::logFree(OpenStudio::Error, 'openstudio.model.Model', 'Failed to apply sizing values because model is missing sql file containing sizing results.')
|
92
92
|
return false
|
93
93
|
end
|
94
|
-
|
94
|
+
|
95
95
|
# TODO Sizing methods for these types of equipment are
|
96
96
|
# currently only stubs that need to be filled in.
|
97
97
|
self.getAirConditionerVariableRefrigerantFlows.sort.each {|obj| obj.applySizingValues}
|
@@ -104,11 +104,9 @@ class OpenStudio::Model::Model
|
|
104
104
|
self.getAirTerminalSingleDuctVAVHeatAndCoolNoReheats.sort.each {|obj| obj.applySizingValues}
|
105
105
|
self.getAirTerminalSingleDuctVAVHeatAndCoolReheats.sort.each {|obj| obj.applySizingValues}
|
106
106
|
self.getBoilerSteams.sort.each {|obj| obj.applySizingValues}
|
107
|
-
self.getCoilCoolingDXMultiSpeeds.sort.each {|obj| obj.applySizingValues}
|
108
107
|
self.getCoilCoolingDXVariableRefrigerantFlows.sort.each {|obj| obj.applySizingValues}
|
109
108
|
self.getCoilCoolingWaterToAirHeatPumpEquationFits.sort.each {|obj| obj.applySizingValues}
|
110
109
|
self.getCoilHeatingWaterToAirHeatPumpEquationFits.sort.each {|obj| obj.applySizingValues}
|
111
|
-
self.getCoilHeatingGasMultiStages.sort.each {|obj| obj.applySizingValues}
|
112
110
|
self.getCoilHeatingDesuperheaters.sort.each {|obj| obj.applySizingValues}
|
113
111
|
self.getCoilHeatingDXVariableRefrigerantFlows.sort.each {|obj| obj.applySizingValues}
|
114
112
|
self.getCoilWaterHeatingDesuperheaters.sort.each {|obj| obj.applySizingValues}
|
@@ -151,13 +149,16 @@ class OpenStudio::Model::Model
|
|
151
149
|
# Heating coils
|
152
150
|
self.getCoilHeatingElectrics.sort.each {|obj| obj.applySizingValues}
|
153
151
|
self.getCoilHeatingGass.sort.each {|obj| obj.applySizingValues}
|
152
|
+
self.getCoilHeatingGasMultiStages.sort.each {|obj| obj.applySizingValues}
|
154
153
|
self.getCoilHeatingWaters.sort.each {|obj| obj.applySizingValues}
|
155
154
|
self.getCoilHeatingDXSingleSpeeds.sort.each {|obj| obj.applySizingValues}
|
155
|
+
self.getCoilHeatingDXMultiSpeeds.sort.each {|obj| obj.applySizingValues}
|
156
156
|
|
157
157
|
# Cooling coils
|
158
158
|
self.getCoilCoolingDXSingleSpeeds.sort.each {|obj| obj.applySizingValues}
|
159
159
|
self.getCoilCoolingDXTwoSpeeds.sort.each {|obj| obj.applySizingValues}
|
160
160
|
self.getCoilCoolingWaters.sort.each {|obj| obj.applySizingValues}
|
161
|
+
self.getCoilCoolingDXMultiSpeeds.sort.each {|obj| obj.applySizingValues}
|
161
162
|
|
162
163
|
# Outdoor air
|
163
164
|
self.getControllerOutdoorAirs.sort.each {|obj| obj.applySizingValues}
|
@@ -181,7 +182,7 @@ class OpenStudio::Model::Model
|
|
181
182
|
|
182
183
|
# Controls
|
183
184
|
self.getControllerWaterCoils.sort.each {|obj| obj.applySizingValues}
|
184
|
-
|
185
|
+
|
185
186
|
# VRF components
|
186
187
|
|
187
188
|
# Refrigeration components
|
@@ -299,29 +300,30 @@ class OpenStudio::Model::Model
|
|
299
300
|
result = OpenStudio::OptionalDouble.new
|
300
301
|
|
301
302
|
name = object.name.get.upcase
|
302
|
-
|
303
|
+
|
303
304
|
object_type = object.iddObject.type.valueDescription.gsub('OS:','')
|
304
|
-
|
305
|
+
if(object_type == 'Coil:Heating:Gas:MultiStage') then object_type = 'Coil:Heating:GasMultiStage' end
|
306
|
+
|
305
307
|
# Special logic for two coil types which are inconsistently
|
306
308
|
# uppercase in the sqlfile:
|
307
309
|
object_type = object_type.upcase if object_type == 'Coil:Cooling:WaterToAirHeatPump:EquationFit'
|
308
310
|
object_type = object_type.upcase if object_type == 'Coil:Heating:WaterToAirHeatPump:EquationFit'
|
309
311
|
|
310
312
|
sql = self.sqlFile
|
311
|
-
|
313
|
+
|
312
314
|
if sql.is_initialized
|
313
315
|
sql = sql.get
|
314
|
-
|
316
|
+
|
315
317
|
#SELECT * FROM ComponentSizes WHERE CompType = 'Coil:Heating:Gas' AND CompName = "COIL HEATING GAS 3" AND Description = "Design Size Nominal Capacity"
|
316
318
|
query = "SELECT Value
|
317
319
|
FROM ComponentSizes
|
318
320
|
WHERE CompType='#{object_type}'
|
319
321
|
AND CompName='#{name}'
|
320
|
-
AND Description='#{value_name}'
|
322
|
+
AND Description='#{value_name.strip}'
|
321
323
|
AND Units='#{units}'"
|
322
324
|
|
323
325
|
val = sql.execAndReturnFirstDouble(query)
|
324
|
-
|
326
|
+
|
325
327
|
if val.is_initialized
|
326
328
|
result = OpenStudio::OptionalDouble.new(val.get)
|
327
329
|
else
|