lib/openstudio-standards/standards/Standards.AirTerminalSingleDuctVAVReheat.rb in openstudio-standards-0.1.4 vs lib/openstudio-standards/standards/Standards.AirTerminalSingleDuctVAVReheat.rb in openstudio-standards-0.1.5
- old
+ new
@@ -1,50 +1,43 @@
class OpenStudio::Model::AirTerminalSingleDuctVAVReheat
-
# Set the minimum damper position based on OA
- # rate of the space and the building vintage.
- # Zones with low OA per area get lower initial guesses.
+ # rate of the space and the template.
+ # Zones with low OA per area get lower initial guesses.
# Final position will be adjusted upward
# as necessary by Standards.AirLoopHVAC.adjust_minimum_vav_damper_positions
- # @param building_vintage [String] the building vintage
- # @param zone_oa_per_area [Double] the zone outdoor air per area, m^3/s
- # @param has_ddc [Bool] whether or not there is DDC control of the VAV terminal
+ # @param template [String] the template
+ # @param zone_min_oa [Double] the zone outdoor air flow rate, in m^3/s.
+ # If supplied, this will be set as a minimum limit in addition to the minimum
+ # damper position. EnergyPlus will use the larger of the two values during sizing.
+ # @param has_ddc [Bool] whether or not there is DDC control of the VAV terminal,
+ # which impacts the minimum damper position requirement.
# @return [Bool] returns true if successful, false if not
# @todo remove exception where older vintages don't have minimum positions adjusted.
- def set_minimum_damper_position(building_vintage, zone_oa_per_area, has_ddc = true)
-
- # Minimum damper position is based on prototype
- # assumptions, which are not clearly documented.
+ def apply_minimum_damper_position(template, zone_min_oa = nil, has_ddc = true)
+ # Minimum damper position
min_damper_position = nil
- case building_vintage
+ case template
when 'DOE Ref Pre-1980', 'DOE Ref 1980-2004', '90.1-2004'
min_damper_position = 0.3
when '90.1-2007'
min_damper_position = 0.3
when '90.1-2010', '90.1-2013'
- if has_ddc
- min_damper_position = 0.2
- else
- min_damper_position = 0.3
- end
+ min_damper_position = if has_ddc
+ 0.2
+ else
+ 0.3
+ end
end
-
-
-
- # TODO remove the template conditional; doesn't make sense
- # Determine whether or not to use the high minimum guess.
- # Cutoff was determined by correlating apparent minimum guesses
- # to OA rates in prototypes since not well documented in papers.
- if zone_oa_per_area > 0.001 # 0.001 m^3/s*m^2 = .196 cfm/ft2
- # High OA zones
- self.setConstantMinimumAirFlowFraction(0.7)
- else
- # Low OA zones
- self.setConstantMinimumAirFlowFraction(min_damper_position)
+ setConstantMinimumAirFlowFraction(min_damper_position)
+
+ # Minimum OA flow rate
+ # If specified, will also add this limit
+ # and the larger of the two will be used
+ # for sizing.
+ unless zone_min_oa.nil?
+ setFixedMinimumAirFlowRate(zone_min_oa)
end
return true
-
end
-
end