lib/openstudio-standards/standards/Standards.AirTerminalSingleDuctParallelPIUReheat.rb in openstudio-standards-0.1.15 vs lib/openstudio-standards/standards/Standards.AirTerminalSingleDuctParallelPIUReheat.rb in openstudio-standards-0.2.0.rc1
- old
+ new
@@ -1,15 +1,14 @@
+class Standard
+ # @!group AirTerminalSingleDuctParallelPIUReheat
-# open the class to add methods to apply HVAC efficiency standards
-class OpenStudio::Model::AirTerminalSingleDuctParallelPIUReheat
# Sets the fan power of a PIU fan based on the W/cfm
# specified in the standard.
#
- # @param template [String] the template base requirements on
# @return [Bool] returns true if successful, false if not
- def apply_prm_baseline_fan_power(template)
- OpenStudio.logFree(OpenStudio::Debug, 'openstudio.model.AirTerminalSingleDuctParallelPIUReheat', "Setting PIU fan power for #{name}.")
+ def air_terminal_single_duct_parallel_piu_reheat_apply_prm_baseline_fan_power(air_terminal_single_duct_parallel_piu_reheat)
+ OpenStudio.logFree(OpenStudio::Debug, 'openstudio.model.AirTerminalSingleDuctParallelPIUReheat', "Setting PIU fan power for #{air_terminal_single_duct_parallel_piu_reheat.name}.")
# Determine the fan sizing flow rate, min flow rate,
# and W/cfm
sec_flow_frac = 0.5
min_flow_frac = 0.3
@@ -19,44 +18,44 @@
# 1 cfm = 0.0004719 m^3/s
fan_efficacy_w_per_m3_per_s = fan_efficacy_w_per_cfm / 0.0004719
# Get the maximum flow rate through the terminal
max_primary_air_flow_rate = nil
- if autosizedMaximumPrimaryAirFlowRate.is_initialized
- max_primary_air_flow_rate = autosizedMaximumPrimaryAirFlowRate.get
- elsif maximumPrimaryAirFlowRate.is_initialized
- max_primary_air_flow_rate = maximumPrimaryAirFlowRate.get
+ if air_terminal_single_duct_parallel_piu_reheat.autosizedMaximumPrimaryAirFlowRate.is_initialized
+ max_primary_air_flow_rate = air_terminal_single_duct_parallel_piu_reheat.autosizedMaximumPrimaryAirFlowRate.get
+ elsif air_terminal_single_duct_parallel_piu_reheat.maximumPrimaryAirFlowRate.is_initialized
+ max_primary_air_flow_rate = air_terminal_single_duct_parallel_piu_reheat.maximumPrimaryAirFlowRate.get
end
# Set the max secondary air flow rate
max_sec_flow_rate_m3_per_s = max_primary_air_flow_rate * sec_flow_frac
- setMaximumSecondaryAirFlowRate(max_sec_flow_rate_m3_per_s)
+ air_terminal_single_duct_parallel_piu_reheat.setMaximumSecondaryAirFlowRate(max_sec_flow_rate_m3_per_s)
max_sec_flow_rate_cfm = OpenStudio.convert(max_sec_flow_rate_m3_per_s, 'm^3/s', 'ft^3/min').get
# Set the minimum flow fraction
# TODO Also compare to min OA requirement
- setMinimumPrimaryAirFlowFraction(min_flow_frac)
+ air_terminal_single_duct_parallel_piu_reheat.setMinimumPrimaryAirFlowFraction(min_flow_frac)
# Get the fan
- fan = self.fan.to_FanConstantVolume.get
+ fan = air_terminal_single_duct_parallel_piu_reheat.fan.to_FanConstantVolume.get
# Set the impeller efficiency
- fan.change_impeller_efficiency(fan.baseline_impeller_efficiency(template))
+ fan_change_impeller_efficiency(fan, fan_baseline_impeller_efficiency(fan))
# Set the motor efficiency, preserving the impeller efficency.
# For terminal fans, a bhp lookup of 0.5bhp is always used because
# they are assumed to represent a series of small fans in reality.
- fan.apply_standard_minimum_motor_efficiency(template, fan.brake_horsepower)
+ fan_apply_standard_minimum_motor_efficiency(fan, fan_brake_horsepower(fan))
# Calculate a new pressure rise to hit the target W/cfm
fan_tot_eff = fan.fanEfficiency
fan_rise_new_pa = fan_efficacy_w_per_m3_per_s * fan_tot_eff
fan.setPressureRise(fan_rise_new_pa)
# Calculate the newly set efficacy
fan_power_new_w = fan_rise_new_pa * max_sec_flow_rate_m3_per_s / fan_tot_eff
fan_efficacy_new_w_per_cfm = fan_power_new_w / max_sec_flow_rate_cfm
- OpenStudio.logFree(OpenStudio::Info, 'openstudio.model.AirTerminalSingleDuctParallelPIUReheat', "For #{name}: fan efficacy set to #{fan_efficacy_new_w_per_cfm.round(2)} W/cfm.")
+ OpenStudio.logFree(OpenStudio::Info, 'openstudio.model.AirTerminalSingleDuctParallelPIUReheat', "For #{air_terminal_single_duct_parallel_piu_reheat.name}: fan efficacy set to #{fan_efficacy_new_w_per_cfm.round(2)} W/cfm.")
return true
end
end