openstudio-standards 0.1.3 → 0.1.4
Sign up to get free protection for your applications and to get access to all the features.
- 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
|